2.保障IMAP安全
IMAP(Internet MessageAccess Protocol)是用户从不同的计算机访问邮件的一种方式。其工作方式为在一台中央计算机上存储信息,并且允许用户访问信息的一个拷贝。用户可以让本地工作站和服务器同步, 此外也可以为邮件创建一个文件夹, 并且具有完全的访问权限。通过Stunnel封装IMAP有两种方法。
1).通过stunnel直接运行IMAP服务
如果有使用SSL协议连接的IMAP客户端,则推荐使用这种方法。首先关闭imapd守护进程,然后使用重启脚本(/etc/rc.d/rc.1ocal)中的命令行代替imapd,使用如下命令:
/usr/sbin/stunel -p /usr/local/ssl/certs/stunel.pem -d 993 -r localhost:143
这个命令使用IMAPS端口(993)上指定的文件运行Stunnel,imapd端口监听程序的代理,在143端口上运行。如果允许非SSL IMAP客户端连接到标准的IMAP端口(143),可以配置SSL IMAP客户端连接到端口I MAPS(993)代替:
/usr/sbin/stunel -p /usr/local/ssl/certs/stunel.pem -d 993 -l /usr/sbin/imapd
2).使用xinetd运行安全的IMAP
从守护进程的概念可以看出,对于系统所要通过的每一种服务,都必须运行监听某个端口连接所发生的守护进程,这通常意味着资源浪费。
为了解决这个问题,Linux引入了"网络守护进程服务程序" 的概念。xinetd能够同时监听多个指定的端口,在接受用户请求时,能够根据用户请求的端口不同,启动不同的网络服务进程处理这些用户请求。可以把xinetd看做一个管理启动服务的管理服务器,把一个客户请求交给程序处理,然后启动相应的守护进程。如果使用xinetd运行IMAP服务,修改配置文件(/etc/xinetd.d/imapd)如下:
service imap
{
disable=no
socket_type=stream
wait=no
user=root
port=143
server=/usr/sbin/stunel
server_args=stunel imapd -l /usr/sbin/imapd -imapd
log_on_succes+=USERID
log_on_failure+=USERID
#env=VIRTDOMAIN=virtual.hostname
}
然后向超级服务程序传递SIGHUP信号,重新载人xinetd配置:
killall -USR1 xinetd