热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

redhat系统中sendmail邮件服务器的配置过程

RedHat9.0Sendmail电子邮件服务器的配置系统:RedhatLinux9.0目的:配置一个sendmail电子邮件服务器,具有以下功能:1.具有转发控制;避免被垃圾邮件利用。2.具有邮箱容量控制;避免系统被黑客攻满或被垃圾邮件挤满,导致系统瘫痪。3.本邮件服务器采
RedHat 9.0 Sendmail电子邮件服务器的配置
系统: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文件拷贝出来,恢复服务器时,将这些文件拷贝回去,往往是不行的。


推荐阅读
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 本文介绍了一个基于 Java SpringMVC 和 SSM 框架的综合系统,涵盖了操作日志记录、文件管理、头像编辑、权限控制、以及多种技术集成如 Shiro、Redis 等,旨在提供一个高效且功能丰富的开发平台。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • MySQL Debug 模式的实现与应用
    本文详细介绍了如何启用和使用 MySQL 的调试模式,包括编译选项、环境变量配置以及调试信息的解析。通过实际案例展示了如何利用调试模式解决客户端无法连接服务器的问题。 ... [详细]
  • 本文深入探讨了 PHP 实现计划任务的方法,包括其原理、具体实现方式以及在不同操作系统中的应用。通过详细示例和代码片段,帮助开发者理解和掌握如何高效地设置和管理定时任务。 ... [详细]
  • 本文介绍如何配置SecureCRT以正确显示Linux终端的颜色,并解决中文显示问题。通过简单的步骤设置,可以显著提升使用体验。 ... [详细]
  • 如何从python读取sql[mysql基础教程]
    从python读取sql的方法:1、利用python内置的open函数读入sql文件;2、利用第三方库pymysql中的connect函数连接mysql服务器;3、利用第三方库pa ... [详细]
  • 俗话说得好,“工欲善其事,必先利其器”。这句话不仅强调了工具的重要性,也提醒我们在任何项目开始前,准备合适的工具至关重要。本文将介绍几款C语言编程中常用的工具,帮助初学者更好地选择适合自己学习和工作的编程环境。 ... [详细]
  • 解决Windows 10开机频繁自检问题的实用方法
    许多用户在使用Windows 10系统时,经常会遇到开机时自动进行磁盘检查的情况。这不仅影响了开机速度,还可能带来不必要的麻烦。本文将详细介绍如何通过简单的注册表修改来避免每次开机时的磁盘自检,提升系统启动效率。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • 本文详细介绍了 Linux 系统中用户、组和文件权限的设置方法,包括基本权限(读、写、执行)、特殊权限(SUID、SGID、Sticky Bit)以及相关配置文件的使用。 ... [详细]
  • Shell脚本中变量操作详解
    本文基于《鸟哥的Linux私房菜》一书,详细介绍了Shell脚本中变量的使用方法,包括变量的赋值规则、字符串处理技巧以及环境变量的管理等,旨在帮助读者更好地理解和使用Shell中的变量。 ... [详细]
author-avatar
莫名2602913353
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有