samir82show

hardening login.defs script

Sep 6th, 2014
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.45 KB | None | 0 0
  1. #!/usr/bin/perl
  2. #Author: Samir Ahmed
  3. #Date: 6.9.2014
  4. #Purpose: Securing and limiting the user login attributes
  5. use strict;
  6. use warnings;
  7.  
  8. my $HardRootDir = "/UNIXscripts/hardening";
  9. my $HardLog = "$HardRootDir/log";
  10. my $LoginTmp = "/tmp";
  11. my $DestLoginDefs = "$LoginTmp/login.defs";
  12. my $SrcLoginDefs = "/etc/login.defs";
  13. my $LgnSt = "$HardLog/LoginAttrSet.log";
  14. my $LgnSetLog = "$HardLog/LoginAttrSet.log";
  15.  
  16. open (my $FH, "$SrcLoginDefs") || die "error opening the file $!";
  17. open (my $NFileH, ">", "$DestLoginDefs") || die "error opening the file $!";
  18. my @LoginArray = <$FH>;
  19.  
  20.  
  21. ##setting users login attributes
  22. foreach (@LoginArray) {
  23. if (/^PASS_MAX_DAYS/) {
  24. my @LineArray = split /\s+/, $_;
  25. if ($LineArray[1] > 90) {
  26. $LineArray[1] = 90;
  27. my $AfterUpdate = join "\t", @LineArray;
  28. $_ = "$AfterUpdate\n";
  29. msg("PASS_MAX_DAYS", $LineArray[1], $LgnSt);
  30. }
  31. }
  32. if (/^PASS_MIN_DAYS/) {
  33. my @LineArray = split /\s+/, $_;
  34. if ($LineArray[1] < 7) {
  35. $LineArray[1] = 7;
  36. my $AfterUpdate = join "\t", @LineArray;
  37. $_ = "$AfterUpdate\n";
  38. msg("PASS_MIN_DAYS", $LineArray[1], $LgnSt);
  39. }
  40. }
  41. if (/^PASS_MIN_LEN/) {
  42. my @LineArray = split /\s+/, $_;
  43. if ($LineArray[1] < 8) {
  44. $LineArray[1] = 8;
  45. my $AfterUpdate = join "\t", @LineArray;
  46. $_ = "$AfterUpdate\n";
  47. msg("PASS_MIN_LEN", $LineArray[1], $LgnSt);
  48. }
  49. }
  50. if (/^PASS_WARN_AGE/) {
  51. my @LineArray = split /\s+/, $_;
  52. if ($LineArray[1] < 7) {
  53. $LineArray[1] = 7;
  54. my $AfterUpdate = join "\t", @LineArray;
  55. $_ = "$AfterUpdate\n";
  56. msg("PASS_WARN_AGE", $LineArray[1], $LgnSt);
  57. }
  58. }
  59. print $NFileH $_;
  60. system ("cp -f $DestLoginDefs $SrcLoginDefs ");
  61. if ($? != 0) {
  62. print "copy was not successfull\n";
  63. }
  64. }
  65.  
  66.  
  67. #END
  68.  
  69. sub msg {
  70. open (my $LH, ">>", "$_[2]") || die "$!";
  71. print $LH "$_[0] is set to : $_[1] \t","-" x 10, `date`,"\n";
  72. }
Advertisement
Add Comment
Please, Sign In to add comment