系统:Redhat Linux 9.0
目的:配置一个sendmail电子邮件服务器,具有以下功能:
1.具有转发控制;避免被垃圾邮件利用。
2.具有邮箱容量控制;避免系统被黑客攻满或被垃圾邮件挤满,导致系统瘫痪。
3.本邮件服务器采用网关方式工作,内、外网分开,所以机内用双网卡。
一、系统安装前的准备工作:
1. 确认机内有两个网络接口。如果没有的话,应加装网卡。
2. 准备好两个网络接口的IP地址。一般一个是内网接口地址,一个是外网接口地址。目前该服务器地址是:
外网IP:221.11.135.180/255.255.255.240
内网IP:192.168.0.5/255.255.240.0
网关:221.11.135.190
DNS:221.11.132.2
192.168.0.100
3. 准备好机器名。为了保证邮箱名正确,目前取名为:hnwh.org。
4. 做好硬盘规划。因为用户邮件文件是放在/var目录中的,所以为了做磁盘限额功能,在安装系统时应对/var目录单独建一个分区。在不影响系统安装的前提下,适当分大一些。
二、系统安装:
建议系统安装时选择“用户定制”方式。
在服务项目选择时应选择mail服务(即保证pop3、imap程序被安装上)。
在防火墙选择项应选择mail,以保证电子邮件协议通信正常。
把“系统工具”也选上,便于编辑调试。
因为用户邮件文件是放在/var目录中的,所以为了做磁盘限额功能,在安装系统时可对/var目录单独建一个分区。在不影响系统安装的前提下,适当分大一些。
三、文件安装与配置:
1. 系统安装后对etc/mail/sendmail.mc进行配置。
主要对下面三条命令进行修改:
第一条:设置用户邮件的大小限制;原来限制为2MB,建议改为20MB,注意这里容量单位为字节,2000000=2M,20000000=20M,改后该行命令如下:
define(`UUCP_MAILER_MAX', `20000000')dnl
第二条:设置邮箱接收邮件的地址范围;原来该命令行中地址为127.0.0.1,这样只能收本机系统产生的邮件,改为通配地址0.0.0.0,改后该命令行如下:
dnl DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0,Name=MTA' )dnl
第三条:设置本地邮箱的域名;
LOCAL_DOMAIN MASQUERADE_AS(`hnwh.org')dnl
设置完成后,保存,退出。该文件的其它默认设置,如果你不懂,就不要动了,以免影响正常使用。
建议将现在的sendmail.mc文件保存好,安装服务器时直接将这个文件拷贝到etc/mail/目录里即可。
2. 对etc/mail/access文件进行配置。
在该文件中加入允许转发邮件的地址范围,如下:
192.168.0 RELAY
192.168.1 RELAY
192.168.2 RELAY
192.168.4 RELAY
192.168.5 RELAY
mail.hnwh.org RELAY
hnwh.org RELAY
localhost RELAY
127.0.0.1 RELAY
localhost.localdomain RELAY
改后保存退出。
注:建议网管员将原机的access文件备份,恢复服务器时可将备份拷贝到/etc/mail/目录里即可。
四、 检查与电子邮件相关进程的启动设置情况
点“红帽子”,“系统设置”,“服务器设置”,“服务”。打开服务(进程)管理窗口。看sendmail左面的小框是否被钩上,如果没有则应点击钩上。并将ipop3、imap左面的小框钩上,因为电子邮箱要用到这两个进程。
关闭服务(进程)管理窗口时会询问是否保存等事项,都点确认。
退出来后重新启动系统。这一点十分重要,因为我们修改的access和sendmail.mc文件都是需要重新编译后才能用的,系统会在重新启动系统时会自动对这两个文件进行编译。
在邮件服务器上开用户,然后就可以进行测试了。Sendmail邮件服务器的用户就是系统用户,所以开用户就是开系统用户。用鼠标点红帽子――系统设置――用户和群组,打开用户管理窗口,再点“添加”就可以添加用户了。
五、 用客户机进行试机测试:
客户机的outlook或foxmail里应设置好邮件服务器的各项参数,并注意邮件服务器上应开有用户,然后进行测试,如果收发正常,则第一阶段配置OK。
六、 进行磁盘配额设置
要实现磁盘配额,可使用以下步骤:
1. 修改 /etc/fstab文件来启用某个文件系统的配额。
2. 重新挂载文件系统。
3. 创建配额文件,重新生成磁盘用量表。
4. 分配配额。
以上步骤在下面各节中被详细讨论。
七、 首先修改etc目录里的fstab文件
例如现在的服务器需要对/var文件系统加上磁盘配额功能,则在
LABEL=/var /var ext3 defaults 1 2
这一行中加上,usrquota,grpquota命令参数,如下:
例:某机中fstab文件内容:
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
LABEL=/home /home ext3 defaults 1 2
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
LABEL=/var /var ext3 defaults,usrquota,grpquota 1 2
/dev/hda3 swap swap defaults 0 0
保存后退出。
重新启动机器,使修改后的文件系统被挂载。重新启动过程中,因为下面要做的配额文件还没有建立,所以会在装载文件系统时出错,这没有关系,在做了下面的创建配额文件工作后,错误就会消失。
八、 创建配额文件,重新生成磁盘用量表
要在文件系统上创建配额文件(aquota.user 和 aquota.group),使用 quotacheck 命令的 -c 选项。例如,如果用户和组群配额都为 /var 分区启用,就在 /var 目录下创建这些文件,在终端程序下:
可以用:cd /var #进入/var目录,再输入:
quotacheck Cacugm
也可以在根目录下用 quotacheck -acugm /var
(在使用quotacheck Cavug时系统会报错,并且不执行。加m参数可强制执行。)
-a 选项意味着在 /etc/mtab 中所有挂载了的非 NFS 文件系统都会被检查来决定是否启用了配额。-c 选项指定每个启用了配额的文件系统都应该创建配额文件,-u 选项指定检查用户配额,-g 选项指定检查组群配额。
如果 -u选项被指定,只有用户配额文件被创建。如果只指定了 -g 选项,只有组群配额文件会被创建。
文件被创建后,可以用ls命令检查一下进行配额的目录(/var)下应该有quota.user和quota.group这两个文件。
运行以下命令来生成每个启用了配额的文件系统的当前磁盘用量表:
quotacheck -avug
quotacheck 运行完毕后,和启用配额(用户和/或组群)相应的配额文件中就会写入用于每个启用了配额的文件系统(如 /var)的基本数据。
九、 为每个用户设置磁盘配额
使用 edquota 命令分配磁盘配额。在要进行磁盘配额的文件系统运行该命令,例如,在/var目录下执行以下命令。命令格式为:
edquota 用户名
为每个你想实现配额的用户执行该步骤。例如,要为名字为testuser的用户启用配额,执行了 edquota testuser 命令后,系统默认的编辑器中就会有如下显示:
Disk quotas for user testuser (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/hda3 40436 0 0 6418 0 0
第一列是启用了配额的文件系统的名称。第二列显示了用户当前使用的块数。随后的两列用来设置用户在该文件系统上的软soft和硬hard的块限度。inodes 列显示了用户当前使用的内节点数量。最后两列用来设置用户在该文件系统上的软硬内节点限度。注意不要修改blocks和inodes,因为它们显示的是当前的使用情况。
修改时按Insert键可进入插入字符的状态。采用退格键方式可以进行删除字符的操作。改好后Esc键退出插入状态,按Shift+:键进入:号(命令)方式,再键入wq回车,即写入后退出,w代表写,q表示退出。其操作方法与vi编辑差不多。
(对于新建立的系统,你可以做一个小实验,向testuser发些邮件,看看blocks和inodes的变化情况,从而可以看出设置的单位容量。)
硬限是用户或组群可以使用的磁盘空间的绝对最大值。达到了该限度后,磁盘空间就不能再被用户或组群使用了。
软限定义可被使用的最大磁盘空间量。和硬限不同的是,软限可以在一段时期内被超过。这段时期被称为 过渡期(grace period)。过渡期可以用秒钟、分钟、小时、天数、周数、或月数表示。一般系统默认为7天,可不必修改。
如果以上值中的任何一个被设置为 0,那个限度就不会被设置。
例:目前一般设置的限度为软限额20MB,硬限额30MB,如下:
Disk quotas for user testuser (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/hda3 2436 20000 30000 318 0 0
注意,单位大约是kb。
要校验用户的配额是否被设置,使用以下命令:
quota testuser
这时会显示该用户配置的情况。
配置完成后也可以通过收发邮件进行一些测试。硬限额被超过时,邮件将不被邮箱接受。但一般情况下好像也不报错,只是邮件被丢弃了。
注意,因为磁盘配额文件是随着每个机器的情况而由系统生成的,所以若网络管理员将原服务器中的fstab及quota.user和quota.group文件拷贝出来,恢复服务器时,将这些文件拷贝回去,往往是不行的。