
| 出版日期:2000-12-18 总期号:982 本年期号:94 |
|
SendMail用户管理的安全策略
阿波 SCO UNIX作为微机上的UNIX操作系统,从安装到使用都比较简单,应用SCO UNIX系统在投资方面也相对小一点,但功能和性能方面是比较完善的,因此可将它作为邮件服务器。SCO UNIX系统可以管理6万个用户,所以它适合用作6万用户以内的SendMail邮件系统服务器。SendMail系统无需增加任何其他软、硬件,是比较理想的邮件管理系统。 在服务器上完全安装SCO OpenServer 5.0.4,系统本身自带了SendMail软件,安装完Sendmail后要根据系统要求做详细配置。 客户端可以是Win 95/98/2000,用系统自带的Outlook收、发邮件,或编制CGI程序,通过浏览器收发邮件。 ■SendMail邮件系统的工作原理 SCO UNIX OpenServer 5 的E-mail协议支持SMTP和POP3,通过邮件传输代理MTA(Mail Transport Agent)包括MMDF 和SendMail实用程序实现邮件的发送和接收。SendMail根据电子邮件的地址,为邮件选择一条适当的邮件传输程序的路由。SendMail接收来自一个用户程序的邮件,解释这个邮件的地址,将其重新改写成适合于狭义传输程序的格式,从而将邮件传送到用户的邮件程序或转发到另外一个系统。 ■编制SHELL程序管理SendMail邮件用户 1.增加用户 #add euser if [ "$#" -eq 1 ] then useradd -g mail -d /usr/email -s /bin/passwd ${1} passwd ${1} # nulfile是一个0字节的空文件,将其复制作为用户的初始邮箱 cp /usr/spool/mail/nulfile /usr/spool/mail/${1} cd /usr/spool/mail chgrp mail ${1} chown ${1} ${1} echo "Added a user ${1} sucessful ";exit else echo "Error,input user name!";exit fi 用useradd -g mail -d /usr/email -s /bin/passwd ${1}命令增加用户时,用户可用远程登录方式修改自己的口令(但只能做此操作),修改完口令后应该立即断开和服务器的连接。这种方法最适用于邮件用户,既满足了用户需求,又不会对系统安全造成威胁。 2.删除用户 #deleuser #删除邮件用户 if [ "$#" -eq 1 ] then userdel ${1} rm -r /usr/spool/mail/${1} echo "Deleted a user ${1} sucessful ";exit else echo "Error,has no user! ";exit fi 这种方法在管理大用户数的SCO UNIX或其它UNIX操作系统时特别实用,可进行成批用户的删除操作。 ■安全管理措施 要想更改UNIX用户的口令,系统管理员可在root 用户下用passwd命令来实现,但对于一般用户来说,是不能这样做的。也许有人要说,普通用户通过telnet登录服务器后,再用passwd命令来更改自己的密码,不是很简单的事吗?确实简单,但普通用户登录服务器后,如果对其在服务器上的操作权限不加限制,其后果是严重的。举一个例子,普通用户获取passwd文件后,就可以用一些解密软件破译密码,达到“非法”访问服务器之目的,这个大家都很清楚,黑客的进入就是采用此类方法。 如何让普通用户能够更改自己的口令而不影响系统安全性呢?方法是有的,本文列举两种。 方法一:让普通用户拥有telnet登录权限,即在/etc目录下的配置文件inetd.conf中,保留telnet操作权限,使得普通用户能够通过telnet登录服务器: # inetd.conf ...... telnet stream tcp nowait NOLUID /etc/telnetd telnetd shell stream tcp nowait NOLUID /etc/rshd rshd login stream tcp nowait NOLUID /etc/rlogind rlogind ...... 另一方面,使得用户仅能够在服务器上做更换口令的操作,操作完毕后,立即和服务器挂断,这就要将用户对应的.profile文件做如下配置: 进入/usr/email目录,将.profile文件做如下修改: # .profile ...... echo "Here is the way to change your password" echo "Input your old password,then use the new one instead,ok?" passwd echo "You have done,will be disconnect to server " exit 这样,用户通过telnet登录后,运行passwd,更改口令成功后,立即结束和服务器的连接,达到了维护系统安全的目的。 方法二:建立一shell程序/bin/mail.sh,将/etc/passwd中的/bin/sh改成/bin/mail.sh,mail.sh编写方法如下: echo "\n Select\n\n" echo "1-Change pd\n" echo "0-Return\n\n" echo "Select:\c" read key if (test $key = "1" 1>/dev/null 2>/dev/null) then passwd fi exit 这种方法也能够保证用户在使用telnet修改密码后立即退出连接,从而保证了系统的安全性。 为了日常管理的方便,一般选择系统在低安全模式下运行UNIX,黑客利用不法工具将passwd文件更改,使部分用户改变安全模式,生成“非法”的shadow文件,使系统用户的安全一致性受到破坏,无法用telnet登录自己的账户。解决此问题的方法是,重新启动系统到单用户方式,将系统设置在低安全模式下进行,然后可以随便更改安全模式,系统便恢复正常工作。 ■邮件用户的安全恢复方法 如果系统瘫痪或更换服务器,SCO UNIX(以5.0.4版为例)系统(包括SendMail)需要重新安装。要让以前的邮件用户平滑地过渡到新系统上来,关键要做下边几步操作: SCO UNIX系统安装完成后,要将备份出的用户文件passwd拷贝到 /etc目录下,重新生成用户。 在 /usr/spool/mail目录下,建立各邮件用户的邮箱,实际上就是建立初始化的空邮箱,方法如下: 在 /usr/spool/mail目录下建立大小为0字节的文件(这里取名为nulfile); 从passwd文件中,将邮件用户信息制作成文本文件(可用Excel实现,以下几步用同样的方法实现,非常简便),例如该文件取名为mailusers,内容是: user1 user2 ...... usern 编辑mailusers文件生成build_mbox文件,并将其属性设为可执行(#chmod 755 build_mbox),在/usr/spool/mail下执行build_mbox,邮件用户的邮箱就生成了。build_mbox的内容如下: cp nulfile user1 cp nulfile user2 ...... cp nulfile usern 最后,将这些邮箱都归宿到mail组,即在当前目录下,执行: chgrp mail 编辑mailusers文件,生成chown_musers(即将mailusers另存为chown_musers), 将其属性设为可执行,在/usr/spool/mail下执行chown_musers,使用户的邮箱和用户本身宿主一样。chown_musers文件如下: chown user1 user1 chown user2 user2 ...... chown usern usern 重新启动SCO UNIX系统,用户完全恢复到了系统中,该SendMail邮件系统就能正常运行了。 |
|||||||||||||||||