温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

perl 系统文件监控脚本

发布时间:2020-04-02 03:29:17 来源:网络 阅读:415 作者:niuniu0716 栏目:安全技术

script 说明:

该脚本可以对指定的系统重要文件进行监控,当文件被查看或修改后,脚本会查看最近登陆系统的用户和IP,并发邮件通知。


  1. #!/usr/bin/perl 
  2. use strict; 
  3. use Mail::Sender; 
  4. use Digest::SHA; 
  5. my @files=('/etc/passwd''/etc/shadow''/var/log/wtmp'); 
  6. my $last_cmd=`last -2`; 
  7.  
  8. while (1) { 
  9.         my %md5_res; 
  10.         my %output
  11.         my @change; 
  12.         foreach my $file (@files) { 
  13.                 $md5_res{$file}=MD5_digest($file); 
  14.         }; 
  15.                 while(1) { 
  16.                         sleep 10; 
  17.                         foreach my $file (@files) { 
  18.                                 if ($md5_res{$file} ne MD5_digest($file)) { 
  19.                                         $output{$file}="$file is changed"
  20.  
  21.                                 }; 
  22.                         }; 
  23.                         if (%output) { 
  24.                                 foreach my $key (%output) { 
  25.                                        print "$output{$key}\n"
  26.  
  27.                                 } 
  28.                                 print "$last_cmd"
  29.                                 last
  30.                         }; 
  31.                 }; 
  32. }; 
  33.  
  34. sub MD5_digest { 
  35.         my $file=shift; 
  36.         my $sha=Digest::SHA->new('256'); 
  37.         $sha->addfile($file); 
  38.         my $digest=$sha->hexdigest; 
  39.         return "$digest"
  40.  
  41.  
  42.  
  43. sub Send_mail { 
  44.         my($subject,$msg)=@_; 
  45.         my $sender=new Mail::Sender->MailMsg({ 
  46.          smtp => 'mail.aaa.com'
  47.          from => 'neo@aaa.com'
  48.          to =>'neo@gmail.com'
  49.          subject => $subject, 
  50.          msg => $msg, 
  51.          auth => 'LOGIN'
  52.          authid => 'neo'
  53.          authpwd => '1234',} 
  54.         ) or die "$Mail::Sender::Error\n"
  55.         print "Mail sent ok"

 

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI