在LINUX中部署sendmail 服务器(邮件服务器)
Linux服务器部署系列之八—Sendmail篇
Linux服务器部署系列之⼋—Sendmail篇Sendmail是⽬前Linux系统下⾯⽤得最⼴的邮件系统之⼀,虽然它存在⼀些不⾜,不过,⽬前还是有不少公司在使⽤它。
对它的学习,也能让我们更深的了解邮件系统的运作。
下⾯我们就来看看sendmail邮件服务器的部署。
本⽂将从以下⼏个⽅⾯讲解Sendmail邮件系统:1.Sendmail安装;2.Sendmail基本配置;3.Openwebmail安装和配置;4.配置Mailscanner+clamav过滤病毒;5.配置SpamAssassin+mimedefang过滤垃圾邮件。
本⽂系统运⾏环境:CentOS 5。
⼀、安装Sendmail1. 软件需求(以下软件在安装光盘上都可以找到)cyrus-sasl-2.1.22-4.i386.rpmcyrus-sasl-lib-2.1.22-4.i386.rpmcyrus-sasl-plain-2.1.22-4.i386.rpmcyrus-sasl-devel-2.1.22-4.i386.rpmcyrus-sasl-md5-2.1.22-4.i386.rpmsendmail-8.13.8-2.el5.i386.rpmsendmail-cf-8.13.8-2.el5.i386.rpmsendmail-devel-8.13.8-2.el5.i386.rpmsendmail-doc-8.13.8-2.el5.i386.rpmm4-1.4.5-3.el5.1.i386.rpmdovecot-1.0.7-2.el5.i386.rpm另外,dovecot需要两外两个程序包的⽀持:perl-DBI-1.52-1.fc6.i386.rpmmysql-5.0.45-7.el5.i386.rpm2. 软件安装1)cyrus-sasl的安装先检查⼀下,系统默认安装了哪些软件包,如下图:安装cyrus-sasl-md5-2.1.22-4.i386.rpm,如下图:2)安装sendmail、dovecot等相关程序包,如下图:Sendmail要正常⼯作,是需要DNS⽀持的,⼀般企业都有DNS服务器,如果没有,可以参考我的另⼀篇⽂章:Linux服务器部署系列之三—DNS篇(/379574/169718),⾃⼰搭建⼀台DNS服务器。
Linux1 邮件服务器 配置Sendmail
Linux1 邮件服务器配置Sendmail完成Sendmail安装操作后,接下来以开放Sendmail监听端口与设置收件计算机名称、使用MTA Relay权限设置/etc/mail/access为目的来对Sendmail邮件服务器进行配置。
1.开放监听端口及设置收件计算机名称事实上Red Hat Enterprise Linux5.4在安装Sendmail后默认已经启动Sendmail (端口25处于LISTEN状态),只是它仅接收来自本计算机的MTA要求,验证此结果可在终端下输入“netstat -tulnp”命令,并按【回车】键查阅,如图9-19所示。
图9-19 查看Sendmail默认端口状态由图9-19可查看到端口25处于LISTEN状态,且只监听127.0.0.1这个lookup 接口。
所以用户的重点就是如何将监听的接口开启到整个Internet上,否则它是无法接收来自Internet的邮件的。
虽然配置文件在/etc/mail/sendmail.cf中,但建议不要手动修改它,应该修改的是sendmail.mc文件。
这个文件设置项目的基本语法为“设置组件(`设置项目’,`参数一’,`参数二’)”。
提示每个设置项目与参数左边使用的符号均为数字键1左边的引用键(quote),右边则是单引号。
这个文件的设置项目用户可以参考/m4/readme.html网页说明。
若要开放Sendmail对整个Internet的监听功能,只需要在终端下输入“vi /etc/mail/sendmail.mc”命令,按【回车】键进入sendmail.mc文件的编辑界面。
然后按“i”,切换到插入模式,将第116行中“Addr=127.0.0.1”改为“Addr=0.0.0.0”,按【ESC】键退出插入模式,最后按“:”并输入wq”按【回车】键保存配置,如图9-20所示。
图9-20 开放Sendmail监听功能修改sendmail.mc参数后,在使用m4宏文件生成器和修改后的配置创建新的sendmail.cf配置文件之前,还需要使用mv命令对原有的设置文件进行备份,这一点很重要,如图9-21所示。
linux mail 命令参数
linux mail 命令参数使用mail发邮件时,必须先将sendmail服务启动。
mail –s “邮件主题”–c”抄送地址”–b “密送地址” -- -f 发送人邮件地址–F 发件人姓名 < 要发送的邮件内容三种常用格式发信mail -s test yangfang@ #第一种方法,你可以把当前shell当成编辑器来用,编辑完内容后Ctrl-D结束echo “mail content”|mail -s test yangfang@ #第二种方法,我用的最多,可能是喜欢管道的缘故吧mail -s test yangfang@ < file #第三种方法,以file的内容为邮件内容发信指定特定的发送人:$ mail -s "just a test" 收信人邮箱地址 < 要发送的邮件内容文件 -- -f 发送人邮件地址 -F 发件人姓名。
效果是: 信件内容将发送给收信人邮箱,显示的发送人为发送人姓名<发送人邮件地址>,显示的内容为发送的邮件内容...包含命令执行结果的MAIL发送:echo -e `ls /tmp`|mail -s "test" fff@ < /tmp/dd.txt -- -f cc@ -F cci 忽略 tty 的中断讯号。
(interrupt)I 强迫设成互动模式。
(Interactive)v 列印出讯息,例如送信的地点、状态等等。
(verbose)n 不读入 mail.rc 设定档。
s 邮件标题。
c cc 抄送邮件地址。
b bcc密送邮件地址。
需要sendmail或postfix服务如果单纯的发文件文件可以用cat xxxx.txt |mail -s "主旨" abc@ fff@ 如果需要发送附件需要安装uuencode来编码 (yum install sharutils)单独发附件,这样xxxx@会收到一个data.txt的附件uuencode /tmp/data_process.log data.txt |mail xxx@如果需要正文和附件一起发:uuencode /tmp/data_process.log data.txt > /tmp/data_temp.txt系统收到邮件都会保存在“/var/spool/mail/[linux用户名]”文件中。
Linux下的Postfix邮件服务器
Linux下的邮件服务器Postfix(一)在Linux下1、挂载光驱建立DNS服务器的MX记录:正向:反向:2、创建用户和密码:看一下邮箱邮件默认保存在这里:3、安装Postfix包,开启Postfix服务:4、关闭sendmail服务:5、编辑/etc/postfix/main.cf文件找到这几项修改其余不改:myhostname = 邮件主机的完整名称mydomain = 邮件主机域名myorigin = $mydomain(表示所有)设置发件人邮件地址的网域名inet_interfaces = all (表示监听所有端口)监听端口【把下面的inet_interfaces=localhost注释掉】mydestination = $myhostname, $mydomain(表示所有)指定接收邮件时收件人的域名mynetworks = 192.168.1.0/24, 127.0.0.0/8(192.168.1.0/24表示这个网段,127.0.0.0/8表示本地)设置可以为其转发邮件的网络relay_domains = $mydestination(表示所有)设置可以为其转发邮件的域名6、重新启动服务:7、验证:发信:#telnet 25 telnet到邮件服务器的25号端口helo 用helo或ehlo介绍自己(可以不写)mail from:li@ 发信人地址rcpt to:gen@ 收件人地址data 表示开始输入邮件正文Hello! 邮件正文.新起一行以“.”表示正文结束quit 退出telnet收信:Linux下的邮件服务器Postfix(二)windows下第三方软件在(一)的基础上作:1、安装软件包dovecot、perl-DBI和mysql:2、修改主配置文件/etc/dovecot.conf3、开启服务重启服务器:4、将windows的首选DNS指向写成DNS服务器IP:5、验证:安装一个收发邮件的软件,然后在用windows自带的邮件收发软件(开始---程序---Outlook Express)互相测试:Windows自带的:工具-----账户-----添加-----邮件------软件安装完后:开始----程序-----找到刚安装的收发邮件的软件Windows Live Mail点开发一封邮件试一下(抄送是同时发给谁):这里有可能被认为是垃圾邮件:再用另一种软件(pine)测试一下:在windows中安装这个软件(这个软件可以在Linux里用但要依赖很多包所以这里只在windows里试一下):再选几个OK或是就进入:点回车:选择S项:选中前四一项一项调(选中后双击可调,回车确定):到li中查看一下:设置Postfix服务器邮件转发和用户的别名在(一)(二)的基础上(这个大致写一下):1、编辑配置文件/etc/aliases文件的记录格式(在最下面添加)用户的别名(假名):用户的真名admin: root 邮件的别名(发给admin也就是发给root)group: user1,user2邮件的群发(发给group也就是发给user1、user2….. user1:root@邮件转发(将发给user1的邮件发给root用户)2、修改aliases文件后更新aliases.db文件postalias hash:/etc/aliases3、刷新服务器。
在Linux下安装邮件服务器
在Linux下安装邮件服务器(RHAS3+Qmail+Apache+PHP+smtp-auth+Vpopmail+MySQL+Igenus+ezmlm+autores pond+qmailadmin)版本:2.7最后更新日期: 2004年11月11日功能列表SMTP服务器:SMTP-AUTH认证(Plain,Login,CRAM-MD5),TLS(SSL)支持POP3服务器:CRAM-MD5,APOP,和SSL支持IMAP服务器:TLS(SSL)支持病毒和垃圾邮件检测自动回复邮件列表Web管理通过Web显示统计信息WebMailMRTG--------------------------------------------------------------------------------安装准备安装环境这个安装过程基本上你只需要复制粘贴就可以完成.我在RedHat上安装成功,其他系统还没试过.为了方便安装我在安装Redhat3.0时选了apache、php、mysql,注意mysql-devel 和mysql-server开发包一定要装上.另外大家在安装LINUX时一定要装上软件开发和内核开发两个软件组,这样可以避免不必要的由于编译环境的问题而导致的安装问题,这点对于LINUX新手犹为重要。
安装系统后,一般另需安装php-mysql 这个包,在安装光碟第三张。
AS3.0安装后,并没有mysql-server软件包,需自行下载安装,为方便大家,mysql-server软件包我已经与所有软件放在一个包中。
要确认下面的软件是否已经安装:rpm -q httpdrpm -q phprpm -q php-mysqlrpm -q mysqlrpm -q mysql-serverrpm -q mysql-develrpm -q gdbmrpm -q gdbm-develrpm -q opensslrpm -q openssl-develrpm -q stunnelrpm -q krb5-devel如果你还没有安装, 请先安装它们. 你可以到安装光盘或是在这里找到它们的RPM包 .启动mysql server:# /etc/rc.d/init.d/mysqld start设置mysql root口令:# mysqladmin -u root password ‘xukixu’(设置你的密码)mysql的头文件和库文件分别在/usr/include/mysql和/usr/lib/mysql。
Linux1 邮件服务器 配置sendmail.cf
Linux1 邮件服务器配置sendmail.cfsendmail.cf文件是sendmail每次启动时要读取的配置文件。
它包含了sendmail 启动时必须的信息。
它列出了所有重要文件的位置,指定了这些文件的缺省权限。
包含了一些影响sendmail行为的选项。
更重要的是,它还包含了地址重写(rewriting addresses)规则。
sendmail.cf文件是按行组织的。
每一个配置命令行都是由命令加上特定参数构成的,例如命令V的参数是一个数字,而F命令的参数则是字母w,再加上绝对路径,如图9-35中第70、91行所示。
图9-35 sendmail.cf配置命令行提示在对sendmail.cf文件进行配置时,必须保证每个配置命令行只能有一个命令,且位于该命令行行首(不存在空格),否则配置将不生效。
在该文件中如果行首的第一个字符为“#”,表示该行为注释;如果第一个字符为空格则表示该行为上一行的延续。
除此之外,行首的第一个字符均为命令,但是命令同变量或值之间没有间隔。
这种格式便于sendmail进行分析,但令很难使用户读懂。
下面介绍一下sendmail.cf配置文件中的命令。
1.D(定义宏)命令D定义宏并为其赋值。
当宏被定义之后,它就负责提供提供其存储的值给sendmail.cf文件中其他的命令使用或者直接提供给sendmail使用。
宏的名字可以是任何单字符,小写的用于sendmail内部宏,用户创建的宏只能使用大写字母作为名字。
一些sendmail的内部宏也在sendmail.cf文件里定义。
例如在配置文件中的第148、149两行定义了宏D和内部宏n,如图9-36所示。
图9-36 定义宏D和内部宏n那么宏D的值为,宏n的值为MAILER-DEAMON。
但若要使用宏的值时,还必须在宏的名字前面加上符号“$”,以这种形式来引用它的值。
例如图9-37配置文件中第150行设置。
图9-37 应用宏的值如果宏w的值为主机名moon,此时宏j的值就为,这便是本主机的全称名(FQDN)。
linux下实现两台不同域名的邮件服务器互发邮件
若有疑问,联系我,帮你答疑!实现两台不同域名的邮件服务器互相发送邮件一、实验环境两台linux服务器(Red Hat Enterprise Linux),主机名分别是RHEL1和RHEL2,一台物理机win7IP:RHEL1:192.168.1.51/24 gateway:192.168.1.1RHEL2:192.168.1.52/24 gateway:192.168.1.1Win7:192.168.1.104/24 gateway:192.168.1.1域:RHEL1:RHEL2:邮件客户端:Outlook 2010两台linux的防火墙、selinux都已关闭二、主机名的修改先在RHEL1上修改:要做三处修改,很重要!(1)[root@RHEL1 ~]# hostname (2)[root@RHEL1 ~]# vi /etc/sysconfig/networkNETWORKING=yesNETWORKING_IPV6=yesHOSTNAME=GATEWAY=192.168.1.1(3)[root@RHEL1 ~]# vi /etc/hosts127.0.0.1 localhost.localdomainlocalhost::1 localhost6.localdomain6 localhost6192.168.1.51 RHEL1在RHEL2上做类似修改全部修改完毕,重启!三、在RHEL1上配置DNS服务器(1)安装bind[root@RHEL1 ~]# mkdir /mnt/cdrom[root@RHEL1 ~]# mount /dev/hdc /mnt/cdrommount: block device /dev/hdc is write-protected, mounting read-only[root@RHEL1 ~]# cd /mnt/cdrom/Server[root@RHEL1 Server]# find -name "bind*"./bind-9.3.4-10.P1.el5.i386.rpm./bind-chroot-9.3.4-10.P1.el5.i386.rpm./bind-devel-9.3.4-10.P1.el5.i386.rpm./bind-libbind-devel-9.3.4-10.P1.el5.i386.rpm./bind-libs-9.3.4-10.P1.el5.i386.rpm./bind-sdb-9.3.4-10.P1.el5.i386.rpm./bind-utils-9.3.4-10.P1.el5.i386.rpm[root@RHEL1 Server]# rpm -ivh bind-9.3.4-10.P1.el5.i386.rpm(依次安装上面几个RPM包)最后安装:[root@RHEL1 Server]# rpm -ivh caching-nameserver-9.3.4-10.P1.el5.i386.rpm (2)在RHEL1上自定义正向和反向区域[root@RHEL1 Server]# cd /var/named/chroot/etc/[root@RHEL1 etc]# ll婊璁?16-rw-r--r-- 1 root root 405 06-12 18:16 localtime-rw-r----- 1 root named 1195 2009-01-06 named.caching-nameserver.conf-rw-r----- 1 root named 955 2009-01-06 named.rfc1912.zones-rw-r----- 1 root named 113 06-14 10:18 rndc.key[root@RHEL1 etc]# cp -p named.caching-nameserver.confnamed.conf[root@RHEL1 etc]# vinamed.conf修改为如下内容(红色出为修改过的):options {listen-on port 53 { any; };listen-on-v6 port 53 { ::1; };directory "/var/named";dump-file "/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";// Those options should be used carefully because they disable port// randomization// query-source port 53;// query-source-v6 port 53;allow-query { any; };};logging {channeldefault_debug {file "data/named.run";severity dynamic;};};viewlocalhost_resolver {match-clients { any; };match-destinations { any; };recursion yes;include "/etc/named.rfc1912.zones";};保存退出[root@RHEL1 etc]# vi named.rfc1912.zones添加以下内容:zone "" IN {type master;file ".hosts";allow-update { none; };};zone "1.168.192.in-addr.arpa" IN {type master;file ".rev";allow-update { none; };};保存退出(3)建立正向和反向区域数据库文件[root@RHEL1 etc]# cd /var/named/chroot/var/named[root@RHEL1 named]# cp -p localhost.zone .hosts[root@RHEL1 named]# cp -p named.local .rev[root@RHEL1 named]# vi .hosts修改为以下内容:$TTL 86400@ IN SOA . . (42 ; serial (d. adams)3H ; refresh15M ; retry1W ; expiry1D ) ; minimumIN NS .IN MX .ns IN A 192.168.1.51mail IN A 192.168.1.51[root@RHEL1 named]# vi .rev修改反向区域数据库文件为以下内容:$TTL 86400@ IN SOA . . ( 1997022700 ; Serial28800 ; Refresh14400 ; Retry3600000 ; Expire86400 ) ; MinimumIN NS .IN NS .51 IN PTR .51 IN PTR .52 IN PTR .52IN PTR .(4)配置DNS客户端[root@RHEL1 named]# vi /etc/resolv.conf修改为:search nameserver 192.168.1.51重启DNS服务:设置开机启动,执行以下命令[root@RHEL1 named]# ntsysv用空格键选中named进程,tab键切换“确定”按钮保存设置!四、安装sendmail[root@RHEL1 named]# cd /mnt/cdrom/Server[root@RHEL1 Server]# find -name "sendmail*"./sendmail-8.13.8-2.el5.i386.rpm./sendmail-cf-8.13.8-2.el5.i386.rpm./sendmail-devel-8.13.8-2.el5.i386.rpm./sendmail-doc-8.13.8-2.el5.i386.rpm[root@RHEL1 Server]# rpm -ivh sendmail-8.13.8-2.el5.i386.rpm(依次安装以上各个RPM包)在RHEL2上安装sendmail:[root@RHEL2 ~]# mkdir /mnt/cdrom[root@RHEL2 ~]# mount /dev/hdc /mnt/cdrommount: block device /dev/hdc is write-protected, mounting read-only [root@RHEL2 ~]# cd /mnt/cdrom/Server[root@RHEL2 Server]# find -name "sendmail*"./sendmail-8.13.8-2.el5.i386.rpm./sendmail-cf-8.13.8-2.el5.i386.rpm./sendmail-devel-8.13.8-2.el5.i386.rpm./sendmail-doc-8.13.8-2.el5.i386.rpm[root@RHEL2 Server]# rpm -ivh sendmail-8.13.8-2.el5.i386.rpm(依次安装以上各个RPM包)五、在RHEL1上建立RHEL2的DNS服务增加区域[root@RHEL1 Server]# cd /var/named/chroot/etc/[root@RHEL1 etc]# vi named.rfc1912.zones添加以下记录:zone "" IN {type master;file ".hosts";allow-update { none; };};创建.hosts的区域数据库文件[root@RHEL1 etc]# cd /var/named/chroot/var/named[root@RHEL1 named]# ll婊璁?44drwxrwx--- 2 named named 4096 06-14 10:50 data-rw-r----- 1 root named 198 2009-01-06 localdomain.zone-rw-r----- 1 root named 195 2009-01-06 localhost.zone-rw-r----- 1 root named 427 2009-01-06 named.broadcast-rw-r----- 1 root named 1892 2009-01-06 named.ca-rw-r----- 1 root named 424 2009-01-06 named.ip6.local-rw-r----- 1 root named 426 2009-01-06 named.local-rw-r----- 1 root named 427 2009-01-06 named.zerodrwxrwx--- 2 named named 4096 2004-07-27 slaves-rw-r----- 1 root named 244 06-14 10:41 .hosts-rw-r----- 1 root named 451 06-14 10:43 .rev[root@RHEL1 named]# cp -p .hosts .hosts[root@RHEL1 named]# vi .hosts修改为以下内容:$TTL 86400@ IN SOA . . (42 ; serial (d.adams)3H ; refresh15M ; retry1W ; expiry 1D ) ; minimumIN NS .IN MX 10 .ns IN A 192.168.1.52mail IN A 192.168.1.52保存退出,重启DNS服务:[root@RHEL1 named]# service named restart六、在RHEL2上修改DNS客户端配置文件,使指向192.168.1.51[root@RHEL2 Server]# vi /etc/resolv.conf修改为以下内容:search nameserver 192.168.1.51保存退出七、验证DNS的配置[root@RHEL1 named]# nslookup> Server: 192.168.1.51Address: 192.168.1.51#53Name: Address: 192.168.1.51> 192.168.1.51Server: 192.168.1.51Address: 192.168.1.51#5351.1.168.192.in-addr.arpa name = .51.1.168.192.in-addr.arpa name = .> Server: 192.168.1.51Address: 192.168.1.51#53Name: Address: 192.168.1.52> 192.168.1.52Server: 192.168.1.51Address: 192.168.1.51#5352.1.168.192.in-addr.arpa name = .52.1.168.192.in-addr.arpa name = .经验证,DNS可以正向、反向解析DNS配置得到验证!八、编辑两台sendmail服务器的宏配置文件sendmail.mc在RHEL1上:[root@RHEL1 named]# cd /etc/mail[root@RHEL1 mail]# vi sendmail.mc找到下面一行:DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl 修改为:DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl [root@RHEL1 mail]# m4 sendmail.mc>sendmail.cf在RHEL2上:做与上面相同的修改[root@RHEL2 mail]# m4 sendmail.mc>sendmail.cf九、编辑local-host-names数据库文件在RHEL1上:[root@RHEL1 mail]# vi local-host-names修改为:在RHEL2上:[root@RHEL2 mail]# vi local-host-names修改为:十、编辑access数据库文件在RHEL1上:[root@RHEL1 mail]# vi access修改为:Connect:localhost.localdomainRELAYConnect:localhostRELAYConnect:127.0.0.1 RELAYConnect:192.168.1 RELAYConnect: RELAYConnect: RELAYConnect: RELAYConnect:RHEL1 RELAY保存退出[root@RHEL1 mail]# makemap hash access.db<access重启sendmail[root@RHEL1 mail]# servicesendmail restart在RHEL2上:[root@RHEL2 mail]# vi access修改为:Connect:localhost.localdomainRELAYConnect:localhost RELAYConnect:127.0.0.1 RELAYConnect:192.168.1 RELAYConnect: RELAYConnect: RELAYConnect: RELAYConnect:RHEL2 RELAY保存退出[root@RHEL2 mail]# makemap hash access.db<access重启sendmail[root@RHEL2 mail]# servicesendmail restart十一、配置dovecot服务,开启pop3服务在RHEL1上:安装提供dovecot服务的rpm包[root@RHEL1 ~]# cd /mnt/cdrom/Server[root@RHEL1 Server]# rpm -ivh perl-DBI-1.52-2.el5.i386.rpm[root@RHEL1 Server]# rpm -ivh mysql-5.0.22-2.1.i386.rpm[root@RHEL1 Server]# rpm -ivh postgresql-libs.7.4.6-1.RHEL4.2.i386.rpm[root@RHEL1 Server]# rpm -ivh dovecot-1.0-1.2.rc15.el5.i386.rpm配置[root@RHEL1 Server]# cd /etc[root@RHEL1 etc]# vidovecot.conf找到#protocols = imapimaps pop3 pop3s一行修改为protocols = imapimaps pop3 pop3s保存退出,启动dovecot服务,设置开机启动[root@RHEL1 etc]# service dovecot start[root@RHEL1 etc]# ntsysv空格键选中ntsysv进程,tab键切换保存退出在RHEL2上:[root@RHEL2 ~]# cd /mnt/cdrom/Server/[root@RHEL2 Server]# rpm -ivh perl-DBI-1.52-2.el5.i386.rpm[root@RHEL2 Server]# rpm -ivh mysql-5.0.22-2.1.i386.rpm[root@RHEL2 Server]# rpm -ivh postgresql-libs.7.4.6-1.RHEL4.2.i386.rpm [root@RHEL2 Server]# rpm -ivh dovecot-1.0-1.2.rc15.el5.i386.rpm[root@RHEL2 Server]# cd /etc[root@RHEL2etc]# vidovecot.conf找到#protocols = imapimaps pop3 pop3s一行修改为protocols = imapimaps pop3 pop3s[root@RHEL2etc]# service dovecot start[root@RHEL2etc]# ntsysv十二、测试RHEL1、RHEL2、win7之间的连通性分别在RHEL1和RHEL2上添加用户zhangsan,lisi,并创建密码[root@RHEL1 ~]# useraddzhangsan[root@RHEL1 ~]# passwdzhangsan[root@RHEL2 etc]# useraddlisi[root@RHEL2 etc]# passwdlisi是否能互相ping通[root@RHEL1 ~]# ping 192.168.1.52PING 192.168.1.52 (192.168.1.52) 56(84) bytes of data.64 bytes from 192.168.1.52: icmp_seq=1 ttl=64 time=0.850 ms64 bytes from 192.168.1.52: icmp_seq=2 ttl=64 time=0.258 ms……[root@RHEL1 ~]# ping 192.168.1.104(104为物理机win7的IP)PING 192.168.1.104 (192.168.1.104) 56(84) bytes of data.64 bytes from 192.168.1.104: icmp_seq=1 ttl=64 time=0.456 ms64 bytes from 192.168.1.104: icmp_seq=2 ttl=64 time=0.320 ms……[root@RHEL2 etc]# ping 192.168.1.51PING 192.168.1.51 (192.168.1.51) 56(84) bytes of data.64 bytes from 192.168.1.51: icmp_seq=1 ttl=64 time=8.38 ms64 bytes from 192.168.1.51: icmp_seq=2 ttl=64 time=0.347 ms……[root@RHEL2 etc]# ping 192.168.1.104PING 192.168.1.104 (192.168.1.104) 56(84) bytes of data.64 bytes from 192.168.1.104: icmp_seq=1 ttl=64 time=0.372 ms64 bytes from 192.168.1.104: icmp_seq=2 ttl=64 time=0.369 ms……C:\Users\guoyin>ping 192.168.1.51正在Ping 192.168.1.51 具有32 字节的数据:来自192.168.1.51 的回复: 字节=32 时间<1ms TTL=64来自192.168.1.51 的回复: 字节=32 时间<1ms TTL=64来自192.168.1.51 的回复: 字节=32 时间<1ms TTL=64……C:\Users\guoyin>ping 192.168.1.52正在Ping 192.168.1.52 具有32 字节的数据:来自192.168.1.52 的回复: 字节=32 时间<1ms TTL=64来自192.168.1.52 的回复: 字节=32 时间<1ms TTL=64来自192.168.1.52 的回复: 字节=32 时间<1ms TTL=64……在win7上打开C:\windows\system32\drivers\etc\hosts添加以下两条主机记录:192.168.1.51 192.168.1.52 C:\Users\guoyin>ping 正在Ping [192.168.1.51] 具有32 字节的数据: 来自192.168.1.51 的回复: 字节=32 时间<1ms TTL=64来自192.168.1.51 的回复: 字节=32 时间<1ms TTL=64……C:\Users\guoyin>ping 正在Ping [192.168.1.52] 具有32 字节的数据: 来自192.168.1.52 的回复: 字节=32 时间<1ms TTL=64来自192.168.1.52 的回复: 字节=32 时间<1ms TTL=64……经测试,ping ip和域名都能ping通!十三、在outlook上互发邮件验证(1)在outlook上建立两个邮件账户(步骤略)账户信息如下:zhangsanlisi(2)发送测试邮件先用zhangsan@给lisi@发送一份测试邮件,结果显示:zhangsan的”已发送邮件”如下,说明zhangsan给lisi发送成功再看lisi的收件箱中,显示如下,说明lisi收到了zhangsan发来的邮件再用lisi@给zhangsan@发送一封测试邮件,结果如下:lisi的“已发送邮件”中显示如下,说明lisi给zhangsan发送邮件成功同样,在zhangsan的收件箱中可以看到lisi发来的邮件,说明lisi给zhangsan发送成功综上:邮件测试工作完成。
Linux1 邮件服务器 启动和停止Sendmail服务
Linux1 邮件服务器启动和停止Sendmail服务安装Sendmail服务器配置之后,接下来需要做的就是启动Sendmail服务确保设置参数生效。
不过linux/unix等系统自带的mail应用,在多数情况下并不需要启用(默认是启用的),但有时会因此而产生不少的安全漏洞(如大量垃圾邮件的干扰),所以在通常情况下将停止(/etc/init.d/sendmail stop)这些系统的Sendmail服务。
在/etc/init.d目录中的脚本文件sendmail是控制Sendmail服务的,通过参数start、stop和restart可控制Sendmail服务的启动、停止和重启。
1.启动Sendmail服务若要启动Sendmail服务,只需在终端中输入“/etc/init.d/sendmail start”命令并按【回车】键,如图9-27所示。
图9-27 启动Sendmail服务或者在终端中,输入“service sendmail start”命令并按【回车】键,同样可以启动Sendmail服务,如图9-28所示。
图9-28 启动Sendmail服务2.自动启动Sendmail服务如果需要让Sendmail服务随系统启动而自动加载,可以执行“ntsysv”命令启动服务配置程序,找到“sendmail”服务,在其前面加上星号(*),然后选择“确定”即可,如图9-29所示。
图9-29 自动启动Sendmail服务3.重启Sendmail服务重启Sendmail服务,只需在终端中输入“/etc/init.d/sendmail restart”命令并按【回车】键,如图9-30所示。
图9-30 重启Sendmail服务或者在终端中,输入“service sendmial restart”命令并按【回车】键,重启Sendmail 服务,如图9-31所示。
图9-31 重启Sendmail服务4.停止Sendmail服务若要停止Sendmail服务,只需在终端中输入“/etc/init.d/sendmail stop”命令并按【回车】键,如图9-32所示。
linux 邮件
SMTP、MTA 及 MUA
SD PR O L I A N T SD PR O L I A N T
8 000
8 000
ES C
S MTP 邮 件 客 户端 (MUA)
SD
S MTP
ES C
P
SD
DL T
DL T
OP 邮 件 客 户端 (MUA)
邮 件 服 务器 (MTA)
邮 件 服 务器 (MTA)
2.1.1
2.1.1.1
#rpm
Postfix 的安装和配置
安装 Postfix
-ivh postfix-1.1.12-.7.i386.rpm
相关文件: main.cf:postfix 主要配置文件 main.cf.default:postfxi 主要配置文件的样本文件 master.cf:master 进程的配置文件
SMTP (Simple Mail Transfer Protocol)协议称为简单邮件传输协议。是为了保证电子邮件的可靠 和高效传送。TCP/IP 协议的应用层中包含有 SMTP 协议,它工作在 TCP 上,它使用端口 25 进行传输。 在整个电子邮件系统中,有两处需要使用 smtp:一处是电子邮件从客户机传输到服务器,另一处是 电子邮件从某一个服务器传输到另一个服务器。 SMTP 是个请求/响应协议,命令和响应都是基于 ASCII 文本,并以 CR 和 LF 符结束。响应包括一个表 示返回状态的三位数字代码。表 13-1 列出常用的 SMTP 命令。 表 13-1 常用的 SMTP 命令集 命令 HELO MAIL FROM RCPT DATA REST VRFY EXPN HELP NOOP QUIT RSET TO 向服务器标识用户身份 指明发件人地址 指明收件人地址 初始化数据传输,以.结束 废弃一个邮件消息 验证指定的用户/邮箱是否存在 验证给定的邮箱列表是否存在,扩充邮箱列表,被禁用 查询服务器命令和命令的说明 无操作,服务器应响应 OK 结束会话 重置会话,当前传输被取消 说明
Linux1 邮件服务器 Postfix的配置
Linux1 邮件服务器Postfix的配置Red Hat Enterprise Linux 5.4中的Postfix与Sendmail一样,默认只监听本地127.0.0.1端口的邮件收发。
但如果要对整个Internet开放的话,就需要学会对Postfix 进行配置。
然而,几乎所有的设置都可以通过/etc/postfix/main.cf文件搞定。
对于这个文件的内容需要注意以下几点:●“#”符号表示注释。
●所有设置值以类似变量的设置方式来处理。
例如myhostname =,其中等号两边要有空格,且第一个字符不可以是空白,也就是要从行首写起。
●可以使用“$”来扩展使用变量设置,例如myorigin = $myhostname,其等价于myorigin = 。
●如果该变量支持2个以上的数据,则需要使用空格符分隔,不过建议使用“,”加空格来处理。
例如myorigin = $myhostname, $mydomain,表示myorigin支持2个数据内容。
●可使用多行来表示同一个设置值,只要在第1行最后有“,”,且第2行开头为空格,即可将数据延伸到第2行继续书写。
●若重复设置某一项目,则以最后一次设置为准。
虽然该配置文件的内容比较多,但其中大部分内容都是注释(以“#”号开头的行),真正需要自行定义的参数并不多,而且这些参数就算不去定义,按照默认值也可以正常运行。
下面我们一起来看一看这些基本的postfix参数。
需要注意的是,一旦更改了main.cf文件的内容,则必须运行postfix reload命令使其生效。
1.myhostname这个参数用来设置Postfix服务器的计算机名称,且这个设置值被后面许多其它参数所引用,所以必须设置正确,应该设置成为完整的计算机名称(如),如图9-55中第71行所示。
图9-55 设置Postfix的计算机名称除了myhostname外,还有一个mydomain参数,该项目默认会取myhostname ()中删除第一个“.”之前内容的名称()为设置值,而设置Domain Name。
linux搭建内网邮件服务器
linux搭建内⽹邮件服务器⼀、配置发件服务器1.1 根据现场IP,配置主机名vi /etc/hosts192.168.40.133 将主机名更改为邮件服务器域名1.2 关闭防⽕墙,禁⽌开机启动systemctl stop firewalldsystemctl disable firewalld1.3 关闭selinuxvi /etc/selinux/config将未注释的SELINUX值改为disabled1.4 安装/配置postfix服务器(1)检查系统是否已经安装了postfix服务器rpm -q postfix(2) 如果没有就安装,安装了就跳过yum -y install postfix(3) 编辑postfix的配置⽂件,查找并修改对应配置项vi /etc/postfix/main.cf在⽂件最后添加如下内容myhostname = mydomain = myorigin = $mydomaininet_interfaces = allinet_protocols = allmydestination = $myhostname, $mydomainhome_mailbox = Maildir/mynetworks = 0.0.0.0,127.0.0.0/8,60.60.60.0/24 // ⽹络权限(根据现场IP配置,粘贴进去的时候去掉//后⾯的所有内容)(4) 检查配置⽂件是否有语法错误postfix check(5) 重新启动postfix服务器systemctl restart postfix1.5 发件测试(1) 添加邮件账号组groupadd mailusers(2)添加邮箱账号useradd -g mailusers -s /sbin/nologin dkycspasswd dkycsuseradd -g mailusers -s /sbin/nologin dfcpasswd dfc(3) 安装远程登录插件yum install -y telnet(4) 远程登录25端⼝,如报错连接不上,重启postfixtelnet 25(确认现场25端⼝是否开放)(5)测试邮件发送[root@localhost new]# telnet 25 // Trying 192.168.40.133...Connected to .Escape character is '^]'.220 ESMTP Postfix#显⽰上⾯表⽰telnet连接成功mail from:<shaokang@>#邮件发送者250 2.1.0 Okrcpt to:dfc@#邮件接收者250 2.1.5 Okdata#data加回车开始编写邮件354 End data with <CR><LF>.<CR><LF>Subject:test mail#邮件主题hello serva 3D_city_wprl^Hhello serva 3FDhello 3D!thanks!#邮件内容.#.表⽰编写结束发送邮件250 2.0.0 Ok: queued as 21C5340F1992#发送成功quit#退出telnet221 2.0.0 ByeConnection closed by foreign host.如果报错就修改下列⽂件:vi /etc/postfix/main.cfmynetworks = allsystemctl restart postfix(6)接收查看邮件内容cd /home/收件⼈/Maildir/new⽬录下,所有新收的邮件都在这个下⾯:⼆、配置收件服务器2.1 安装dovecotyum -y install dovecot安装完,查看版本:dovecot --version2.2 修改配置⽂件(1)执⾏vi /etc/dovecot/dovecot.conf修改如下:protocols = imap pop3listen = *, ::login_trusted_networks = 0.0.0.0,127.0.0.0/8,60.60.60.0/24 (根据现场配置填写)!include conf.d/*.conf!include_try local.conf(2)执⾏vi /etc/dovecot/conf.d/10-ssl.conf修改如下:ssl = no(3)执⾏vi /etc/dovecot/conf.d/10-auth.conf修改如下:disable_plaintext_auth = noauth_mechanisms = plain login!include auth-system.conf.ext(4)执⾏vi /etc/dovecot/conf.d/10-logging.conf修改如下:info_log_path = /var/log/dovecot_info.logdebug_log_path = /var/log/dovecot_debug.log(5)执⾏vi /etc/dovecot/conf.d/10-mail.conf修改如下:mail_location = maildir:~/Maildir2.3 启动服务systemctl start dovecotsystemctl enable dovecot2.3 查看服务状态systemctl status dovecot查看端⼝:yum -y install net-toolsnetstat -tlnp |grep dovecot三、配置DNS安装:yum install rng-tools -yservice rngd start安装/配置:yum install bind-utils -yyum install dnsmasq -yvi /etc/hosts 添加 127.0.0.1 vi /etc/dnsmasq.conf添加 address=//127.0.0.1, 添加 listen-address=127.0.0.1,192.168.40.133(本机ip)service dnsmasq start测试 nslookupServer: 127.0.0.1Address: 127.0.0.1#53Name: Address: 60.60.60.42Name: Address: 127.0.0.1四、配置Foxmail客户端账号配置:。
Linux服务器实用教程sendmail
2. 启动Sendmail
3. 配置DNS的MX记录
$TTL 86400 @ IN SOA . root.localhost ( 2 ; serial 28800 ; refresh 7200 ; retry 604800 ; expire 86400 ; ttl ) IN NS . @ IN MX 1 computer computer IN A 211.85.203.22
(1)SMTP协议
SMTP(Simple Mail Transfer Protocol,简 单邮件传输协议)是Internet上基于TCP/IP应用 层的协议,适用于主机之间电子邮件交换。
使用SMTP时,收信人可以是和发信人连接在同一个 本地网络上的用户,也可以是Internet上其它网络的用户, 或者是与Internet相连但不是TCP/IP网络上的用户,
3 邮件服务器(E-mail)
3.1 概述 电子邮件(Electronic mail)服务是Internet网络为用户 提供的一种最基本的、最重要的服务之一。 电子邮件将邮件发送到收信人的邮箱(mail box)中, 收信人可随时读取邮件。 电子邮件有非常高的效率。
1 E-mail的工作原理
在Internet网上,一封电子邮件的实际传递过程如下: (1)由发送方计算机(客户机)的邮件管理程序将邮件进 行分拆,即把一个大的信息块分成一个个小的信息块,并把 些小的信息块封装成传输层协议(TCP层)下的一个或多个 TCP邮包(分组)。 (2)TCP邮包又按网际层协议(IP层)要求,拆分成IP邮 包(分组),并在上面附上目的计算机的地址(IP地址)。
2. E-mail的地址
完整的电子邮件地址由二部分组成,第一部分为计算机上 的邮箱,第二部分为计算机。一种广泛使用的格式是用 “@”隔开二部分,例如: lb@
linux下架设邮箱 配置篇一[sendmail]
A、sendmail.mc配置批注vi /etc/mail/sendmail.mcdivert(-1)dnl在生成配置文件时删除额外的输出。
dnl #dnl # This is the sendmail macro config file for m4. If you make changes todnl # /etc/mail/sendmail.mc, you will need to regenerate thednl # /etc/mail/sendmail.cf file by confirming that the sendmail-cf package isdnl # installed and then performing adnl #dnl # make -C /etc/maildnl #这是m4的sendmail宏观设置文件。
如果您做变动/etc/mail/sendmail.mc,您将需要通过认证安装的sendmail-cf包执行make -C /etc/mail命名生成/etc/mail/sendmail.cf文件。
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl将sendmail所需的规则包含进来。
VERSIONID(`setup for linux')dnl指出配置文件是针对linuxOSTYPE(`linux')dnl必须设置为linux以获得sendmail所需文件的正确位置。
dnl #dnl # Do not advertize sendmail version.dnl #dnl define(`confSMTP_LOGIN_MSG', `$j Sendmail; $b')dnldnl #dnl # default logging level is 9, you might want to set it higher todnl # debug the configurationdnl #默认的日志记录级别为9,您可能希望将其设置较高级别,则调整这个配置dnl define(`confLOG_LEVEL', `9')dnldnl #dnl # Uncomment and edit the following line if your outgoing mail needs todnl # be sent out through an external mail server:dnl #如果你需要通过外部邮件服务器发送的邮件的,取消注释和编辑以下行。
linux sendmail配置详解
sendmailMUA (mail user agent 邮件用户代理),用于用户端发送邮件或者阅读邮件 linux有mutt这个工具MTA (mail tranfer agent 邮件传输代理),相当于一个邮局,server端的软件,主要的功能有,接收MUA发来的邮件和把邮件发送给下一个MTA,可以说是一个邮件路由(mail router),server端的软件就属于MTA,现在开源的有sendmail,postfix,qmail等MDA (mail devilery agent 邮件投递代理),主要是将MTA所接受的邮件,依照邮件的目的地将此邮件放到本机账号下或者是给下一个MTA,一般就是指mail 这样的命令邮件的协议:发信: SMTP (simple mail tranfer protocol 简单邮件传输协议)端口号TCP的25端口,在发信时,MUA会主动连接MTA的port 25,然后经由SMTP协议发送出去,SMTP分为接受SMTP和发送SMTP,它不管两端主机的配置或者系统等,只要两边SMTP协议OK就可以发送邮件收信: POP (post office protocol 邮局协议),来连接到MTA,以读取或者下载邮件,现在常用的版本是POP3,端口为110IMAP (internet message access protocol 网络报文件协议),能在下载邮件前先下载邮件头信息,以可以让用户选择性下载端口 143软件包yum install sendmail*yum install dovecotsendmail.i386 --邮件服务器端 MTA sendmail-cf.i386 --配置文件包sendmail-devel.i386 --开发包sendmail-doc.i386 --文档包dovecot.i386 --(鸽舍),pop邮件服务端 MDAm4.i386 --处理配置文件的包端口: smtp (25) pop3 (110) imap (143)协议: TCP服务启动脚本:/etc/init.d/sendmail/etc/init.d/dovecot配置文件:/etc/mail/sendmail.cf --sendmail邮件服务启动时读取的主配置文件/etc/mail/sendmail.mc --管理员修改sendmail服务器功能时的配置文件/etc/mail/local-host-names --配置支持发送邮件时使用短域名形式/etc/mail/virtusertable --虚拟用户列表/etc/aliases --用户别名/etc/mail/access --邮件中继/etc/init.d/sendmail restart[root@li ~]# netstat -ntl |grep 25 --看到默认是只监听了127.0.0.1的回环地址tcp 0 0127.0.0.1:25 0.0.0.0:* LISTEN--发送邮件方法一:[root@li ~]# mail -s "mail" root@ --用此命令发送邮件 -s 后接邮件主题1111 --写邮件内容. --“." 点号表示结束Cc: --直接回车退出[root@li ~]# mail -s 'yyyy' a@ < /etc/grub.conf --还可以这样把/etc/grub.conf的内容直接发送给a用户--查看邮件方法一:cat /var/mail/rootcat /var/spool/mail/root --查看这两个一样的这样是可以查看到刚才发送的邮件,因为一个是自己发送给自己用的127.0.0.1这个回环地址,这种情况不需要DNS的MX支持--发送邮件方法二:[root@li ~]# telnet 127.0.0.1 25 --对smtp协议进行验证Trying 127.0.0.1...Connected to localhost.localdomain (127.0.0.1).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 11:30:09 +0800helo --定义来访者,可以用help去查看支持哪些命令集,用help+命令来看单个命令如何使用250 Hello localhost.localdomain [127.0.0.1], pleased tomeet youmail from:aa@ --定义一个发送者,这里可以随便定义250 2.1.0 aa@... Sender okrcpt to:a@ --定义接收者,这里是我本机的a用户250 2.1.5 a@... Recipient okdata --表示下面要写邮件内容354 Enter mail, end with "." on a line by itself4444444444 --随便写上你要发送的邮件的内容. --"." 点号表示结束250 2.0.0 o4T3U9l1026581 Message accepted for deliveryquit --quit退出,有时候一次退不出,就多敲几次quit221 2.0.0 closing connectionConnection closed by foreign host.yum install muttmutt --是一个在unix-like系统下小巧但强大的基于文本的一个能发送和阅读邮件的工具(MUA)--查看邮件方法二:直接在root用户下使用mutt命令,可以看到root用户的收信箱如果要看普通的邮件,就要先su - 普通用户名切换到普通用户再使用mutt命令查看--发送邮件方法三:[root@li ~]# mutt a@ --可以直接使用这样的命令发送给a@,会提示用户写内容,还有附件等功能--发送邮件方法四:[root@li ~]# cat /etc/rc.local |sendmail -v a@-------------------------下面先把DNS的MX记录给配置好[root@li mail]# vim/var/named/chroot/var/named/data/.zone$TTL 86400@ IN SOA . . ( 2010051605606036086400)IN NS .IN MX 0 . --MX是邮件交换记录,0是代表优先级别,可以写多个,数字越小优先级越高li IN A 10.1.1.35pop IN A 10.1.1.35smtp IN A 10.1.1.35/etc/init.d/named reloadvim /etc/resolv.conf --DNS指向改为本机[root@li mail]# nslookup --验证MX记录的方法> set type=mx> Server: 10.1.1.35Address: 10.1.1.35#53 mail exchanger = 0 . --看到这样的信息表示成功最好把时间同步也配好[root@li mail]# echo 'while :; do ntpdate 10.1.1.1> /dev/null 2>/dev/null; sleep 10; done'>> /etc/rc.local--每十秒同步一次10.1.1.1,放到/etc/rc.local里,开机自动运行把邮件客户端软件claws-mail拷过去装好ls /share/soft/soft/mail_client/tar xvf /share/soft/soft/mail_client/claws-mail-3.5.0.tar.gz -C/usr/src/tar xvf /share/soft/soft/mail_client/libetpan-0.57.tar.gz -C /usr/src/ cd /usr/src/libetpan-0.57/./configure ;make ;make installcd /usr/src/claws-mail-3.5.0/./configure ;make ;make install例一:让smtp协议监听所有端口vim /etc/mail/sendmail.mcDAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl --把127.0.0.1改为0.0.0.0,或者是把中间那一小段去掉保存退出m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf --如果没有装m4.i386这个包,就需要使用m4命令去生成sendmail.cf配置文件,装了就不需要,重启sendmail服务自动生成/etc/init.d/sendmail restart[root@li claws-mail-3.5.0]# netstat -ntl|grep 25tcp 0 00.0.0.0:25 0.0.0.0:* LISTEN[root@li claws-mail-3.5.0]# telnet 10.1.1.35 25 --对本机的IP(非回环地址)做smtp协议的测试是可以做的,如果只监听127.0.0.1,就不能这样用IP测试Trying 10.1.1.35...Connected to (10.1.1.35).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 13:47:01 +0800helo 250 .................例二:用claws-mail收发邮件用claws-mail 发送一封邮件给本机用户,能写,但点收信时会报连接到:110失败原因检验:[root@li /]# nslookup --先查看DNS,能解析Server: 10.1.1.35Address: 10.1.1.35#53Name: Address: 10.1.1.35netstat -ntl |grep 110 --再查看端口,发现没有110端口,表示pop3协议没有配置所以要去配置dovecot服务[root@li /]# vim /etc/dovecot.confprotocols = imap imaps pop3 pop3s --在20行找到有一行注释,打开注释,或者写一行,表示支持pop3和imap协议/etc/init.d/dovecot restart --重启服务后,就可以看到监听143和110端口打开了[root@li /]# netstat -ntlup |grep 143tcp 0 0 :::143 :::* LISTEN 21674/dovecot[root@li /]# netstat -ntlup |grep 110tcp 0 0 :::110 :::* LISTEN 21674/dovecot然后就可以收邮件了例三:使用支持短域名来发送邮件[root@li /]# mail -s '222' a@ --使用短域名222222.Cc:[root@li /]# tail /var/mail/a --查看时看不到,表示不支持短域名[root@li /]# tail /var/mail/root --可以看到扔到root的邮箱去了配置方法:[root@li /]# vim /etc/mail/local-host-names --写上短域名--注意的是写的域名,最好是DNS能解析,否则测试失败/etc/init.d/sendmail reload再用短域名发送并测试发现是可以成功的例四:邮件别名,邮件转发,邮件群发[root@li /]# vim /etc/aliases加上a: b --表示发送给a用户的邮件,发给了b用户,a用户自己收不到c: d,e,f --表示发送c用户的邮件,发给了d,e,f三个用户,a用户自己收不到salegroup: :include:/etc/mail/salegroup --还可以这样写,把一些用户分组,注意/etc/mail/salegroup是不存在的,要手动建立并把这个组的成员写进去,一行一个用户;测试时发给的用户名要写成salegroup,例如:mail -s '7777' salegroup@/etc/init.d/sendmail reload例五:邮件的虚拟账号,虚拟用户表格[root@li /]# vim /etc/mail/virtusertablea@ b@ --把b@的账号虚拟成a@账号@ c --所有发往域的邮件都会发到本地的c用户的mailbox/etc/init.d/sendmail reload例五:邮件中继保持上面的配置不变的情况下,用另一台电脑做测试[root@dns ~]# telnet 10.1.1.35 25 --另一台电脑测试35这台服务器上的smtp 协议Trying 10.1.1.35...Connected to 10.1.1.35 (10.1.1.35).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 15:39:36 +0800helo 250 Hello [10.1.1.218], pleased to meet youmail from:sdfsa@250 2.1.0 sdfsa@... Sender okrcpt to:sfsadfa@550 5.7.1 sfsadfa@... Relaying denied. --可以看到中继拒绝[root@li /]# vim /etc/mail/access --默认是只允许127.0.0.1中继Connect:10.1.1.218 OK --非常信任的主机可以用OKConnect:10.1.1 RELAY --表示允许10.1.1.0网段中继FROM: REJECT --表示从来的邮件都拒绝TO: discard --到的邮件丢弃--reject和discard的区别,discard是直接丢弃,reject还要返回一个错误或者警告我在这里加上了Connect:10.1.1 RELAY/etc/init.d/sendmail reload再用刚才的另一台电脑来测试(要是10.1.1.0网段,因为上面我只允许这个网段relay)[root@dns ~]# telnet 10.1.1.35 25Trying 10.1.1.35...Connected to 10.1.1.35 (10.1.1.35).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 15:51:35 +0800helo dns.lu.con250 Hello [10.1.1.218], pleased to meet youmail from:sfsafa@250 2.1.0 sfsafa@... Sender okrcpt to:sdfsadf@250 2.1.5 sdfsadf@... Recipient ok --这次测试没有报relay deny的错误------------------------------------------------------------------- 使用smtp验证yum install cyrus-sasl*vim /etc/mail/sendmail.mc --把下面三行注释打开TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnldefine(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnlDAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl/etc/init.d/sendmail restart/etc/init.d/dovecot restart/etc/init.d/saslauthd restart[root@li /]# telnet 10.1.1.35 25Trying 10.1.1.35...Connected to (10.1.1.35).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 16:42:54 +0800ehlo --注意这里是ehlo 不是 helo Hello [10.1.1.35], pleased to meet you 250-ENHANCEDSTATUSCODES250-PIPELINING250-8BITMIME250-SIZE250-DSN250-ETRN250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN --看到这里有login plain验证信息表示支持smtp验证250-DELIVERBY250 HELP验证:[root@li /]# telnet 10.1.1.35 25Trying 10.1.1.35...Connected to (10.1.1.35).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 16:45:12 +0800helo 250 Hello [10.1.1.35], pleased to meet youmail from:fsfafa@250 2.1.0 fsfafa@... Sender ok --这里没有要求验证原因:是因为smtp验证默认只是在587端口,而不是25端口,所以你还是直接telnet 10.1.1.35 25 就避开了使用smtp验证vim /etc/mail/sendmail.mc把下面这句DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl改为DAEMON_OPTIONS(`Port=25, Name=MSA, M=Ea')dnl然后还要DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl --把这名注释掉,注意注释时用dnl,不用#--表示强制使用smtp验证/etc/init.d/sendmail restart[root@li /]# telnet 10.1.1.35 25Trying 10.1.1.35...Connected to (10.1.1.35).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 16:55:58 +0800helo 250 Hello [10.1.1.35], pleased to meet you mail from:sfsafsa@530 5.7.0 Authentication required --现在就会看到需要验证auth login --开始验证334 VXNlcm5hbWU6a --输入用户名,会报错,因为这里是用base64位编码501 5.5.4 cannot decode AUTH parameter aauth login334 VXNlcm5hbWU6YQ== --这就是a的base64位编码334 UGFzc3dvcmQ6MTIz --这是123的base64位编码235 2.0.0 OK Authenticated --验证成功,可以发送邮件了mail from:sdfasfas@250 2.1.0 sdfasfas@... Sender okrcpt to:b@250 2.1.5 b@... Recipient okdata354 Enter mail, end with "." on a line by itselflast test.250 2.0.0 o4T8twFU025598 Message accepted for deliveryquit221 2.0.0 closing connectionConnection closed by foreign host.cat /var/mail/b 是可以看到发送的邮件---------------用claws-mail来验证点设置--目前账号的偏好设置--发送--把SMTP鉴权(SMTP AUTH)前面的勾打上--鉴权方式选PLAIN--用户ID和密码写上本机的一个普通名和其密码就OK再发送信件等都是经过了SMTP验证的。
Liunx-DNS,DNS,邮件服务Sendmail,反向解析
Liunx-DNS,DNS,邮件服务Sendmail,反向解析一、要紧内容(1)复习简单DNS的配置(2)学习反向解析的配置方法(3)学习邮件服务Sendmail二、内容1:DNS配置部分测试题1、差不多概念(1)请简述什么是DNS(2)请回答Linux中的DNS是由哪一程序实现的(3)请回答假如Linux中的DNS启动失败,我们安装哪一应用程序包,那个安装包还包括相应的设置模版2、请利用虚拟机搭建如下拓扑:拓扑搭建完毕后使用Linux虚拟机配置自己的DNS服务器,要求:(1)物理机和XP虚拟机均可通过自己的DNS访问Internet(2)将linux命名为:〝dns.自己姓名全拼〞的主机名(3)添加dns.自己姓名全拼的域名,解析出的IP是Linux虚拟机IP (4)添加test.自己姓名全拼的域名,解析出的IP是XP虚拟机IP (5)添加自己姓名全拼的域名,解析出的IP是物理机IP三、内容2:反向DNS配置部分1、差不多概念(1)什么是反向DNS正向DNS是把域名变成IP,而反向DNS是把IP变成域名,我们曾经说过,反向DNS大多数情形下专门少用到,在邮件中转方面需要使用的最为广泛,同时反向DNS在真实的环境中是需要上级DNS服务器授权的。
2、实验1 反向DNS设置(1)第一打开〝/etc/named.rfc1912.zones〞查看,其中这一部分是反向解析的例如:指定记录反向解析的文件注意:IP反写,这一段表示回环地址段127.0.0的逆向解析(2)接下来我们来仿照之作一个自己Linux主机的反向解析(3)把刚才的一段复制,粘贴在下方(4)把反写的回环地址〝0.0.127”改为自己的Linux主机的IP段,我的IP段是192.168.0因此修改成以下图所示。
注意:文件名按规范名称的话应该是反写IP段(5)接下来储存,重新启动Named服务。
注意:第一我们发觉启动失败,紧跟着找到关键性的一句话File Not Found 〔文件找不到〕,回想DNS的查询机制,每个Zone都要有文件,因此我们要建立刚才加的Zone的反向解析文件。
Linux1 邮件服务器 配置与测试邮件服务器
Linux1 邮件服务器配置与测试邮件服务器在家庭或企业网络中,都离不开电子邮件系统,而电子邮件系统始终都离不开邮件服务器,因为邮件服务器构成了电子邮件系统的核心。
(1)在一个网络中,有一台安装了“bind-9.3.3”(邮件服务器需要DNS的支持)和“se ndmail”的“RedHatEnterprisesLinux5.4”服务器,其“IP”是:“192.168.0.9”。
(2)在终端中,输入“vi /var/named/chroot/etc/named.conf”命令(打开“DNS”主配置文件),并按【回车】键,如图9-91所示。
图9-91 打开配置文件(3)在已打开的DNS主配置文件中,依次按下“G”和“a”键,切换到最末行,并进入插入模式,写入如图9-92所示内容。
图9-92 写入相应内容(4)在该配置文件中,依次按下“Esc”和“:”键(切换到末行模式),输入“wq”命令(保存并退出),并按【回车】键,如图9-93所示。
图9-93 保存并退出(5)输入“vi /var/name/chroot/var/named/slyx.zone”命令(创建并打开正向区域文件),并按【回车】键,如图9-94所示。
图9-94 创建并打开正向区域文件(6)在已打开的正向区域文件中,按“a”键,进入插入模式,写入如图9-95所示内容。
图9-95 写入内容(7)在该区域文件中,依次按下“Esc”和“:”键(切换到末行模式),输入“wq”命令(保存并退出),并按【回车】键,如图9-96所示。
图9-96 保存并退出(8)在终端中,输入“vi /var/name/chroot/var/named/slyx.rev”命令(创建并打开反向区域文件),并按【回车】键,如图9-97所示。
图9-97 创建并打开反向区域文件(9)在已打开的反向区域文件中,按“a”键,并进入插入模式,写入如图9-98所示内容。
图6-99 写入内容(10)在该区域文件中,依次按下“Esc”和“:”键(切换到末行模式),输入“wq”命令(保存并退出),按【回车】键,如图9-99所示。
Linux1 邮件服务器 安装Sendmail
Linux1 邮件服务器安装Sendmail免费版本的Sendmail官方网站是,用户可以在上面下载最新版本的源代码包进行编译安装。
而对于Red Hat Enterprise Linux5.4的用户来讲也可以使用安装光盘上自带的RPM包进行安装。
在使用RPM安装Sendmail之前,首先需要在终端界面下使用-qa命令参数查看系统是否安装有Sendmail及所需宏文件编辑器m4,如图9-7所示。
图9-7 查看是否安装Sendmail所需软件由图9-7所示,可看出默认情况下Sendmail及m4已经安装了。
但其它与Sendmail相关的软件是没有被安装的,其中sendmail-cf分布在系统的第2张光盘中,而sendmail-doc和sendmail-devel两个软件包则分布在系统的第3张光盘。
这里,首先将系统的第2张光盘放入光驱中,然后使用mount命令将此光盘挂载到一个指定的目录(如,/tmp)下,如图9-8所示。
图9-8 挂载第2张光盘到/tmp目录将光盘挂载到指定的目录后,接着可在终端下输入mount命令,查看光盘是否挂载成功,如图9-9所示。
图9-9 查看光盘是否挂载成功从图9-9所示的最后一行输出结果可查看到系统的第2张光盘已被成功挂载到/tmp目录下。
然后可以使用find搜索命令,在该系统光盘中查找Sendmail的sendmail-cf软件包,如图9-10所示。
图9-10 查找sendmail-cf软件包由图9-10输出结果可知,已成功查找到sendmail-cf软件包,其路径为/tmp/Server/sendmail-cf-8.13.8-2.e15.i386.rpm。
接下来,就可以使用rpm工具对sendmail-cf软件包进行安装。
安装软件包时,使用的语法为“rpm –vih 软件包的绝对路径”。
如图9-11所示。
图9-11 安装Sendmail-cf软件包当sendmail-cf软件包安装完成后,为了确保正确无误,此时可通过在终端下输入“rpm –qa|grep sendmail”命令,并按【回车】键查看软件包安装情况,如图9-12所示若在输出中,能够查看到已安装的sendmail-cf软件包时,则证明该软件包已成功安装。
linux搭建邮件服务器
linux搭建邮件服务器邮件服务器概述使⽤Email很容易,但是Internet的邮件系统是通过很复杂的⼏个系统组成的,对于最终⽤户⽽⾔,我们熟悉的Outlook,Foxmail等都是⽤来收信和发信的,称之为MUA:Mail User Agent,邮件⽤户代理。
MUA并⾮直接将邮件发送⾄收件⼈⼿中,⽽是通过MTA:Mail Transfer Agent,邮件传输代理代为传递,Sendmail和Postfix就是扮演MTA 的⾓⾊。
⼀封邮件从MUA发出后,可能通过⼀个或多个MTA传递,最终到达MDA:Mail Delivery Agent,邮件投递代理,邮件到达MDA后,就存放在某个⽂件或特殊的数据库⾥,我们将这个长期保存邮件的地⽅称之为邮箱。
⼀旦邮件到达邮箱,就原地不动了,等⽤户再通过MUA将其取⾛,就是⽤Outlook,Foxmail等软件收信的过程。
所以⼀封邮件的流程是:发件⼈:MUA --发送–> MTA -> 若⼲个MTA… -> MTA -> MDA <–收取-- MUA:收件⼈协议:MUA到MTA,以及MTA到MTA之间使⽤的协议就是SMTP协议,⽽收邮件时,MUA到MDA之间使⽤的协议最常⽤的是POP3或IMAP。
1。
安装及配置postfix和dovecot服务关闭防⽕墙和selinux开始安装postfix和dovecotyum install postfix dovecot -y设置主机名及域名[root@mail ~]# hostnamectl set-hostname [root@mail ~]# echo '192.168.0.155 ' > /etc/hosts设置DNS服务vi /var/named/.zone$TTL 1D@ IN SOA . . (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimumNS .MX 5 .ns A 192.168.0.155mail A 192.168.0.155smtp CNAME mailpop3 CNAME mailwww CNAME mail[root@mail ~]# host -n -t mx 192.168.0.155Using domain server:Name: 192.168.0.155Address: 192.168.0.155#53Aliases: mail is handled by 5 . mail is handled by 10 .2.基本配置,编辑主配置⽂件[root@mail ~]# cp /etc/postfix/main.cf /etc/postfix/main.cf.bakvi /etc/postfix/main.cf // 对以下参数做修改*myhostname* //主机名myhostname =*mydomain* //使⽤邮件域mydomain = //设置本地⽹络的邮件域*myorigin* //要外发邮件时发件⼈的邮件域名myorigin = $mydomaininet_interfaces = all //设置postfix监听的⽹络端⼝mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain //设置可接收邮件的主机名或域名。
Linux邮件服务器
最常用的有Microsoft环境下的Outlook Express、
Foxmail,Linux环境下的mail、mailx、Evolution等。
1.电子邮件发送和接收系统
电子邮件发送与接收的工作原理
当用户撰写好邮件后,由邮件处理应用程序将其发送到网 络中,而收信方则通过客户端应用程序将邮件从网络中下载 到客户机,实现邮件的显示和处理功能。
IN MX 10 mail IN MX 20 mail mail mail IN A IN A 192.168.204.10 192.168.204.10
15.1.3 Sendmail的工作方式
显然,在DNS中说明有两个MX服务器,于是 Sendmail试图将邮件发送给两者之一,一般来说,排在 前面的MX服务器的优先级别比较高,因此服务器将试图连 接的25端口。
第15章 Linux邮件服务器 安装与配置
15.1邮件服务器的概述
本节介绍:电子邮件系统的组与电子邮件 服务相关的3个协议:STMP、POP和IMAP, 最后介绍Sendmail的工作方式。
15.1.1 电子邮件系统的组成
每个电子邮件死有邮件头和邮件内容组成,电子邮件头既是 邮件地址,有收件人的账户名称和电子邮局域名两部分构成, 它们之间用“@”符号隔开,如下所示:
15.1.2 电子邮件系统相关协议
与E-mail服务相关的协议主要有SMTP、POP和IMAP等,它们是TCP/IP 协议簇的一部分。
1. SMTP协议 SMTP(Simple Mail Transter Protocol,简单邮件传输协议)是最 早出现的邮件协议,也是被普遍使用的最基本的Internet邮件服务协议。 Sendmail就是支持SMTP协议。但是SMTP支持的功能比较简单,所 以在安全方面存在不足,后来又出现了ESMTP(Extended SMTP, 扩展的SMTP协议)
Linux1 邮件服务器 Sendmail文件
Linux1 邮件服务器Sendmail文件Sendmail是配置Sendmail邮件服务器的关键,里面包括许多配置文件,且各个功能都有所不同。
主要包括以下几个:●/etc/mail/sendmail.cf sendmail的主配置文件。
●/etc/mail/access 文件继访问控制。
●/etc/mail/domaitable 域名映射。
●/etc/mail/local-host-name 本地计算机别名。
●/etc/mail/mailertable 为特定的域指定特殊的路由规则。
●/etc/mail/virtusertable 虚拟域配置。
其中,sendmail.cf文件是Sendmail最主要的配置文件,没有它Sendmail就无法运行。
Sendmail文件一向以其内容较长、费解、难以配置而著称。
如果查看里面的内容就会发现它和其它服务器的配置文件截然不同,没有任何的可读性,因此除非真的熟悉其语法原则,否则不建议用户直接对其进行编辑。
Sendmail提供一个宏处理器m4,用户可以先编辑一个相对简单的m4宏配置文件,然后用m4宏处理器把这个文件转换成为Sendmail的配置文件。
在Red Hat Enterprise Linux5.4的/etc/mail目录下,存放着默认的m4宏配置文件sendmail.mc,对于满足一般需求的邮件服务器来讲,用户只需在终端下输入“vi /etc/mail/sendmail.mc”命令,然后按【回车】键进入sendmail.mc文件的编辑界面,对文件进行简单的修改即可满足需求。
此文件的内容如图9-34所示。
图9-34 默认的m4宏文件内容下面来详细的讲解一下这个配置文件。
第1行divert(-1),代表这一行开始一直到divert(0)的部分将在m4进行处理时被忽略掉,不会出现在生成的配置文件中,一般会在这两行之间加入一些版本信息等内容。
文件中有的行是以字符串dnl开头,dnl的作用是注释从它开始到下一行开始的所有字符,即注释部分;还有的行是以dnl结尾,因为m4宏处理器是不识别行的,所以在一行的结尾处需要用dnl注释后面的空格和换行符,以免在生成配置文件中出现不必要的空行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在LINUX中部署sendmail 服务器(邮件服务器)
出处 /375221/92487
一. 邮件服务器,的一些基本常识。
1. POP 协议端口号为:110 用于接收邮件。
2. SMTP 协议端口号为:25 用于发送邮件。
3. 邮件传输的过程有两种情况。
1)一种是,邮件发送与接收者在同一域内。
2)一种是,邮件发送与接收者在不同域内,此时必须通过DNS服务器来转换。
二. 配置前的工作如下:
1. 确认服务是否安装。
rpm -qa sendmail
2. 调整状态。
1)自动启动:
2)手动调整:
3. 更改hosts文件。
/etc/hosts
格式:主机IP地址主机的DNS名主机的NETBIOS名
service network restart
4. 具体配置如下:
1)cd /etc/mail
vi sendmail.cf (主配置文件)
2)cd /etc/mail
vi local-host-names (指定主机名)
3)cd /etc/mail
vi access (定义中继)
makemap hash access.db <access
4)cd /etc
vi dovecot.conf (指定邮件接收协议)
service dovecot restart
5)最后重启SENDMAIL服务。
service sendmail restart
6)DNS的配置。
在域的正向区域文件中加入MX记录。
service named restart
5. 测试:
在服务器上创建两个用户SSS和CCC用来做测试。
确保服务器与客户机能正常能信。
服务器IP: 192.168.0.7
客户机IP: 192.168.0.101
在客户机的所有程序中打开Outlook Express 客户端软件。
设置如下:注:创建的帐户必须是服务器中的合法用户!
用刚创建的SSS帐户给CCC用户发一封邮件。
服务器切换成CCC用户登录。
SSS没发之前是没有邮件的。
CCC用户收到SSS发来的邮件。
接下来CCC用户给SSS用户发邮件。
SSS用户收到了CCC用户发来的邮件。
完成这个实验的操作。