postfix+cyrus-imapd搭建邮件服务器

1.关闭Sendmail服务:

查看Sendmai服务是否在监听TCP25端口
netstat -nutlp | grep :25

关闭Sendmail
/etc/rc.d/init.d/sendmail stop
chkconfig sendmail off
chkconfig sendmail --list

2.安装Postfix,在DISK4上
用rpm -ivh 安装

确认命令:
rpm -q postfix

3.配置/etc/postfix/main.cf,用域名例:syw.sh.cn

以下是需要修改的地方
myhostname = song.syw.sh.cn
mydomain = syw.sh.cn
myorigin = $mydomain
inet_interface = all
mydestination = $mydomain, $myhostname, localhosst, localhost.$mydomain
mynetworks = 192.168.16.0/28, 127.0.0.0/8
mynetworks_style = subnet
relay_domains = $mydestination

然後準備來啟動啦!你可以這樣處理喔:

1. 先檢查設定檔的語法是否有錯誤
[root@linux ~]# postfix check   <==如果沒有出現任何訊息,表示沒有問題。

2. 啟動與觀察 port number
[root@linux ~]# /etc/init.d/postfix restart
[root@linux ~]# netstat -tlunp | grep ':25'
tcp  0   0 0.0.0.0:25    0.0.0.0:*   LISTEN   20850/master
很簡單吧!這樣就設定妥當了,你的 Postfix 已經可以開放用戶端進行轉遞,並且也可以收受信件囉!

邮件大小尺寸控制: 30M
[root@mail postfix]# vi main.cf
message_size_limit = 30720000
默认邮箱大小为300M(下面两项都要设置才能设置默认邮箱大小为300M)
mailbox_size_limit = 307200000    //默认的邮箱大小
virtual_mailbox_limit = 30720000 //默认的邮箱大小 

3。安装Cyrus-SASL , 在DISK2、3上
确认命令:
rpm -qa | grep sasl

cyrus-sasl-sql
cyrus-sasl-md5
cyrus-sasl-plain
cyrus-sasl-devel
cyrus-sasl-ntlm
cyrus-sasl
cyrus-sasl-gssapi
共以上7个文件

验证机制选择:
saslauthd -v
MACH=shadow

启动及测试:
ps aux | grep saslauthd
/etc/init.d/saslauthd start
chkconfig saslauthd on
/usr/sbin/testsaslauthd -u song -p 'xxxxxx'
(其中song是LINUX用户名,xxxxxx是密码)

4。设置/etc/postfix/main.cf启用SMTP
在最后加上:
#Cyrus-SASL
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = "
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
broken_sasl_auth_clients = yes
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_sasl_security_options = noanonymous
#
#Cyrus-imapd
mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp

5.启动postfix
/etc/init.d/postfix start

测试:
telnet song.syw.sh.cn 25
EHLO 163.com
EHLO sh163.net
quit

chkconfig postfix on
chkconfig postfix --list

开放25端口
iptables -I INPUT -p tcp --dport 25 -j ACCEPT

6。安装Cyrus-imapd服务,在DISK4上,使用rpm -ivh命令
例:
rpm -ivh /media/cdrom/RedHat/RPMS/cyrus-imapd-devel-2.2.12-3.RHEL4.1.i386.rpm

确认命令:
rpm -qa | grep cyrus-imapd
rpm -qa | grep perl-Cyrus

cyrus-imapd-nntp
cyrus-imapd-
cyrus-imapd-devel
cyrus-imapd-murder
perl-Cyrus
cyrus-imapd-utils
共6个文件,utils一定要在perl后安装

启动cyrus-imapd:
service cyrus-imapd start
chkconfig cyrus-imapd on
chkconfig cyrus-imapd --list

7.用户邮箱管理

设定管理员密码:
passwd cyrus

为用户创建邮箱:
/usr/lib64/cyrus-imapd/cyradm -u cyrus localhost
输入管理员密码后进入管理命令状态

>cm user.song
>cm user.song.Send
>cm user.song.Trash
>cm user.song.Drafts

设置配额:(例:5M)
>sq user.song 5210
>listquota user.song

退出:
>quit

8。查看运行LOG
tail -f /var/log/maillog

如果出现这样的错误:

Jan 20 23:45:21 argus postfix/lmtp[24296]: 64659F49CE: to=, orig_to=, relay=none, delay=0, status=deferred (connect to /var/lib/imap/socket/lmtp[/var/lib/imap/socket/lmtp]: Permission denied) 

再mail服务里面加上postfix

どうやら/var/lib/imap/socket/lmtpのパーミッションが無い模様。 ファイルのパーミッションを確認しても、worldに対してread/write/execute権限有りとなっている。 よく分からないので、とりあえずsu postfixでpostfixユーザーになってみたところ、/var/lib/imap/socket/lmtpにはアクセスできなかった。 原因は、/var/lib/imapディレクトリの実行権がないことだった。 所有者およびグループには実行権があるのだが、オーナーはcyrus:mailであり、postfixユーザーはアクセス権が無かったのだった。

いろいろ直し方が在るだろうが、対策としては/etc/groupファイルのmailグループにpostfixを追加した。

你可能感兴趣的:(linux,tcp,Security,interface,disk,邮件服务器)