# setup 打开Linux防火墙在Other Port里加上pop3:tcp即可打开110端口

查看本机关于IPTABLES设置情况
# iptables -L -nv

#屏蔽单个IP的命令是
iptables -I INPUT -s 39.117.71.32 -j DROP

#开启下列端口:
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 8400 -j ACCEPT
iptables -A INPUT -p tcp --dport 8402 -j ACCEPT
iptables -A INPUT -p tcp --dport 8403:8420 -j ACCEPT

写到/etc/sysconfig/iptables文件里.
# /etc/rc.d/init.d/iptables save

# service iptables save

写入后记得把防火墙重起一下,才能起作用.
# service iptables restart

端口连接状况查看
# netstat -an

看到过去有那些IP拦截了,以及是那个服务
cat /var/log/fail2ban.log | grep '] Ban '


测试postfix(包含SMTP和POP3)
perl -MMIME::Base64 -e 'print encode_base64("postmaster\@hnie.edu.cn");' (@前要加 \ 右斜杠)
cG9zdG1hc3RlckBobmllLmVkdS5jbg== (打出 postmaster@hnie.edu.cn 的MIME base64 编码
# perl -MMIME::Base64 -e 'print encode_base64("8683999\@hnie");'(@前要加 \ 右斜杠)
ODY4Mzk5OUBobmll (打出 86********ie 的MIME base64 编码)
# service postfix restart (重启一下)

测试SMTP
[root@mail ~]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.hnie.edu.cn ESMTP EMOS V1.5 (Postfix)
ehlo hnie.edu.cn   (域名告知)
250-mail.hnie.edu.cn
250-PIPELINING
250-SIZE 20971520
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
auth login
334 VXNlcm5hbWU6
cG9zdG1hc3RlckBobmllLmVkdS5jbg== (postmaster@hnie.edu.cn 的MIME base64 编码)
334 UGFzc3dvcmQ6
ODY4Mzk5OUBobmll (86********ie 的MIME base64 编码)
235 2.7.0 Authentication successful (成功)
quit
221 2.0.0 Bye
Connection closed by foreign host.
方便粘贴以下4条
**********************************************
ehlo hnie.edu.cn
auth login
cG9zdG1hc3RlckBobmllLmVkdS5jbg==
ODY4Mzk5OUBobmll
**********************************************
Extmail服务器上LINUX系统下查看邮件日志的命令
tail -f   /var/log/maillog (用Ctrl+C 或 Ctrl+Z 终止)
取指定日期(May  6)的错误日志:
cat /var/log/maillog | grep "^May  6" | egrep "reject|warning|error|fatal|panic" | more

测试POP3
[root@mail ~]# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.
user postmaster@hnie.edu.cn //请求的帐户
+OK Password required.
pass 86********ie           //帐户密码
+OK logged in.
list                        //列出邮件
+OK POP3 clients that break here, they violate STD53.
1 5901
.
retr 1                      //传输 
+OK 5901 octets follow.
Return-Path: <.....
......
.
quit
+OK Bye-bye.
Connection closed by foreign host.



查看邮件队列用的是 mailq 命令

还有查看队列的命令

看被Queue的信:
postqueue -p
强迫Queue信寄出:
postqueue -f
删除所有被Queue的信:
postsuper -d ALL
刪除某封Queue的信:
postsuper -d queue_id
刪除所有正在 deferred 行列中的邮件 ( 删除曾经发送失败的信 ):
postsuper -d ALL deferred
刪除所有正在 deferred 行列中的邮件 ( 查看那些信被删除 ):
find /var/spool/postfix/deferred -type f -print | xargs rm -f
刪掉3天以前无法发出的邮件:
find /var/spool/postfix/deferred -type f -mtime +3 -print | xargs rm -f
列出目前所有无法发出的郵件:
find /var/spool/postfix/deferred -type f -exec ls -l –time-style=+%Y-%m-%d_%H:%M:%S {} ; (报错!)
刪除超过 5 天的 "defer" 行列中的退信记录:
find /var/spool/postfix/defer -type f -mtime +5 -print | xargs rm -f  (好像全删了,慎用!)

# ls /var/spool/postfix/defer/ (此命令查看队列中的各邮件id首字符文件夹,不宜对其操作)

修复队列以及任何权限错误
postfix check

查看邮件队列中的特定邮件
# mailq | grep hieyy@hnie.edu.cn (此命令将列出有关hieyy@hnie.edu.cn信息的所有队列中邮件)

使用postcat工具的-q选项,可以查看一个Postfix邮件队列文件的内容 例:
# postcat -q queue_id 可以借助编辑清楚屏幕和翻滚,方便提取邮件内容查看。(queue_id是队列中邮件的id)

用一个命令组合即可删除 Postfix 邮件队列中的特定邮件。例:
# mailq | awk '/************/ {print $1}' | tr -d '*' | xargs -n 1 postsuper -d
其中 ************ 这个字符串根据实际情况修改。(下面这条删除有关 MAILER-DAEMON 的所有队列中邮件)
# mailq | awk '/lxx875@hnie.edu.cn/ {print $1}' | tr -d '*' | xargs -n 1 postsuper -d
这个命令用到了 awk,tr, xargs 这些命令,很有代表性,因此记录一下。

快速删除某用户收到的大量退信邮件
小心别删错了其他人的邮件,先看看邮件文件夹大小(被攻破的邮箱往往比较大150M或更大)。
# du -sh /home/domains/hnie.edu.cn/某用户/Maildir/cur (看看某用户邮件文件夹大小)
# rm -fv /home/domains/hnie.edu.cn/某用户/Maildir/cur/* (删除 某用户 的所有收件箱邮件)
# du -sh /home/domains/hnie.edu.cn/lxx875/Maildir/cur (看看 用户lxx875 邮件文件夹大小)
# rm -fv /home/domains/hnie.edu.cn/lxx875/Maildir/cur/*(这条删除lxx875@hnie.edu.cn 的所有收件箱邮件)
# rm /home/domains/hnie.edu.cn/hieyy/Maildir/extmail-curcache.db(这条删除hieyy@hnie.edu.cn 的收件箱邮件索引)
# rm -fv /home/domains/hnie.edu.cn/hieyy/Maildir/.Sent/cur/*(这条删除hieyy@hnie.edu.cn 的所有发件箱邮件)
# rm /home/domains/hnie.edu.cn/hieyy/Maildir/.Sent/extmail-curcache.db(这条删除hieyy@hnie.edu.cn 的发件箱邮件索引)

快速删除垃圾用户
http://202.197.240.28/phpmyadmin/ (打开phpmyadmin)
登入名称:root
密码:a*********l
数据库-Extmail(5)-mailbox-浏览-(选中某行或多行)-X(删除)-(出现提示)- 是



Email服务器 2013年2月26日 Linux登录(root)密码以及MYSQL密码作调整
================******************************===================
[root@mail ~]# passwd root (修改Linux登录root密码)
  Changing password for user root.
  New UNIX password:i***************7
  Retype new UNIX password:i***************7
  passwd: all authentication tokens updated successfully.

ExtMail管理后台root@hnie.edu.cn密码修改,打开下列网页输入旧密码:
http://mail.hnie.edu.cn/extman/cgi/index.cgi
ExtMail管理后台登录后,在[管理员][系统管理员列表]中修改,
修改后生成的密文如下:(Extmail.db库manager表password字段)
$1$w1CofZD9$JXWXLShEimSKX7LRvcb520

[root@mail ~]# mysql -u root -p  (修改MYSQL密码)
Enter password: a*********e   //旧密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 486592
Server version: 5.0.77 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
  mysql> use mysql;
  mysql> UPDATE user SET Password = PASSWORD('a**********l') WHERE user = 'root';
  mysql> FLUSH PRIVILEGES; 
//UPDATE方法把root的3个账号(root@localhost;root@hnie.edu.cn;root@127.0.0.1)密码全修改。
    mysql> SET PASSWORD FOR 'exmail'@'localhost' = PASSWORD('a**********l');  //邮箱登录数据库访问账号
    mysql> SET PASSWORD FOR 'webman'@'localhost' = PASSWORD('a**********l');  //邮箱管理数据库访问账号
    mysql> SET PASSWORD FOR 'dspam'@'localhost' = PASSWORD('a**********l');  //反垃圾邮件数据库访问账号

grep -ri "abc123" /var/www/*   //linux命令搜索文件中含 abc123 内容的文件 -r (文件夹递归) -i (不分大小写)
修改MYSQL密码后,有关mysql数据库访问的文件将受影响,须作相应修改:
/var/spool/cron/root                            //计划任务中关系到垃圾邮件自动清除
/var/www/backup.sh                              //自动备份中有关数据库备份命令
/var/www/extsuite/extmail/webmail.cf
/var/www/extsuite/extman/webman.cf
/etc/postfix/mysql_virtual_alias_maps.cf
/etc/postfix/mysql_virtual_domains_maps.cf
/etc/postfix/mysql_virtual_mailbox_maps.cf
/etc/postfix/mysql_virtual_sender_maps.cf
/etc/authlib/authmysqlrc
/etc/dspam/dspam.conf


2013年3月2日查出mysql的dspam数据库中的dspam_token_data表有错误
# cd /var/lib/mysql/dspam
# myisamchk dspam_token_data.MYI  //检查dspam_token_data表
# myisamchk -r dspam_token_data.MYI  //修复dspam_token_data表(-r)可以解决几乎所有问题
注:修复表的 选项开关 有很多 (-o)安全方式(-f)强制方式(-q)快速方式(错误严重时不能用)
实际操作时用了多种选项开关或组合,最后修复成功的记录显示如下:

[root@mail dspam]# myisamchk -f dspam_token_data.MYI
Checking MyISAM file: dspam_token_data.MYI
Data records: 14326778   Deleted blocks:  907003
myisamchk: warning: Table is marked as crashed and last repair failed
- check file-size
myisamchk: warning: Size of indexfile is: 300661760      Should be: 108279808
- check record delete-chain
myisamchk: warning: Found 0 deleted space in delete link chain. Should be 19954066
myisamchk: error: Found 0 deleted rows in delete link chain. Should be 907003
myisamchk: error: record delete-link-chain corrupted
- recovering (with sort) MyISAM-table 'dspam_token_data.MYI'
Data records: 14326778
- Fixing index 1
myisamchk: warning: Duplicate key for record at  315149384 against record at     959552

Data records: 14326777
myisamchk: warning: 1 records have been removed