设为首页 收藏本站
查看: 1164|回复: 0

[经验分享] Perl邮件报警 for PHPIDS

[复制链接]

尚未签到

发表于 2018-9-1 06:45:48 | 显示全部楼层 |阅读模式
  PHPIDS缺省支持的邮件报警存在一些不足之处:
  1、对页面的访问速度有一定影响。
  2、邮件发送以一条告警日志为单位,如果日志比较多的话,我们可能会收到上百封邮件。(可能有某个选项可以设置,但我没找到)
  设计一个perl脚本来发送邮件,原理如下:
  
首先读取phpids的log文件(tmp/phpids_log.txt),然后利用正则对日志内容进行简单的格式话,最后把格式化的内容发送出去。
  


  • #!/usr/bin/perl -w
  • use strict;
  • use warnings;
  • use MIME::Lite;
  • # set up email
  • my $mailto = "you\@example.com";
  • my $mailfrom = "phpids\@example.com";
  • my $Cc = "";
  • my $subject = "PHPIDS detected an intrusion attempt!";
  • my $message = "The following attack has been detected by PHPIDS";
  • my $content = $message."\n\n";
  • my $count;
  • get_content();
  • if($content eq $message."\n\n") {
  •         print "No data to mail!\nByeBye!\n";
  • }else{
  •         print "Sending mail now!\n";
  •         email($mailto, $mailfrom, $Cc, $subject, $message, $content);
  • }

  • sub email
  • {
  •         # get incoming parameters
  •         my ($mailto, $mailfrom, $Cc, $subject, $message, $content) = @_;

  •         #create a new message
  •         my $msg = MIME::Lite->new(
  •                 From => $mailfrom,
  •                 To => $mailto,
  •                 Cc => $Cc,
  •                 Subject => $subject,
  •                 Data => "message",
  •                 Type => 'multipart/mixed'
  •         );

  •         $msg->attach(
  •         Type => 'text/plain',
  •         Data => $content,
  •         );
  •         # send the mail
  •         MIME::Lite->send('smtp', 'example.com', Debug =>0, Timeout => 60);
  •         $msg->send();
  • }

  • # get log content from log file
  • sub get_content{
  •         read_count();
  •         format_log();
  •         read_result();
  •         note_count();
  • }

  • # read count number from the count file.
  • sub read_count{
  •         if (-e "count"){
  •     open(FILE, "result.log") or die "can't open result.log\n";
  •         my $number = 1;
  •     while() {
  •         if($. >= $count){
  •                         chomp;
  •                         if($_ =~ /"(.*?)",(.*?),(\d+)."(.*?)","(.*?)","(.*?)","(.*?)"/){
  •                                         printf O ("NO.%s\nIP: %s\nDate: %s\nImpact: %s\nAffected tags: %s\nAffected parameters: %s\nRequest URI: %s\nOrigin: %s\n\n", $number, $1, $2, $3, $4, $5, $6, $7);
  •                         }else{
  •                                         if($_ = ~/"(.*?)",(.*?),(\d+)."(.*?)","(.*?)","(.*?)"/) {
  •                                                         printf O ("NO.%s\nIP: %s\nDate: %s\nImpact: %s\nAffected tags: %s\nAffected parameters: %s\nRequest URI: %s\n\n", $number, $1, $2, $3, $4, $5, $6);
  •                                         }else{
  •                                                 print O "NO.".$number."\n"."$_";
  •                                         }
  •                         }
  •                         $number++;
  •             $count++;
  •         }
  •     }
  •     close LOG;
  •         close O;
  • }

  • # read formatted result from result.log
  • sub read_result {
  •         open(R,"

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-560276-1-1.html 上篇帖子: Perl帮MM轻松搞定Excel数据 下篇帖子: 2种简单的perl socket
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表