再见西城 发表于 2015-1-14 21:11:32

Linux教程之CentOS Postfix邮件办事器设置架设条记

小知识:对CentOS提供支持将是OpenLogic首次支持一个完整的Linux操作系统。
明天我们第一个义务就是postfix
装置postfix


装置完成今后,进进/etc/postfix目次


修正postfix主设置文件main.cf,如今我们要修正设置文件了,次要修正七个中央
第一和第二个是设置主机名和域名
第一个必要修正的参数是myhostname,指向真实的域名
mydomain参数指向根域



第三个是设置本机寄进来的邮件所利用的域名或主机名
myorigin和mydestination都能够指向mydomain
假如你的邮件办事器有ip和间接域名ip一样,就能够利用$mydomin,假如纷歧样最好利用$myhostname


设置postfix监听的接口,这里利用监听一切接口
Postfix默许只监听当地地点,假如要与外界通讯,就必要监听网卡的一切IP


能够承受的主机名大概域名的邮件,这里只能写本人的主机名和域名,好比写进163.com,那末给163.com发送邮件,本人就会收到


可转发哪些收集的邮件,一样平常都只转发信托收集的邮件


Postfix默许将子网内的呆板设置为可托任呆板,假如只信托本机,就设置为host:
mynetworks_style=host
设置哪些地点的邮件可以被Postfix转发,固然是mydomain的才干转发,不然其别人都能够用这台邮件办事器转发渣滓邮件了:
relay_domains=$mydomain
可转发哪些收集域的邮件,这个是函数mydestination,方才我们设置过mydestination,也就是只转发当地域的邮件,这个是为了避免渣滓邮件的战略


基础设置就这么多,然后保留加入
因为我们的办事器如今正在运转sendmail,以是我们要封闭sendmail,如许postfix才干一般运转,切忌要利用kill下令杀失落sendmail的历程,由于体系利用的sendmail来关照体系形态然后启动postfix


看看25号端口是否是被master监听起来了


入手下手测试,给51cto用户发了一封邮件。


我们换成51cto用户承受尝尝


乐成收到邮件
启动dovecot办事
servicedovecotstart


然后我们利用win下的工具尝尝,起首修正dns办事器地点


测试能不克不及剖析michael.com


剖析乐成
测试postfix办事器25、110端口事情一般哈~




翻开outlook


我们用outlook给root发送邮件尝尝




邮件内容没有显现,看来是字符编码的成绩了,办事器是没成绩的,次要是办事器的编码显现不出来,办事器是utf8的编码,WIN2003是gb2312的编码,可是client和client之间是没成绩的,假如想在办事器上看邮件,必要修正下字符集
也能够利用我们讲过的mutt工具


利用mutt能够一般检察邮件内容哈~
上面说说postfix的会见把持和别号设置
翻开/etc/postfix/access文件


这个文件的精髓就在这里


下面一句是必要加到/etc/postfix/main.cf中往,他已申明。上面一句是client端形貌体例
把smtpd_client_restrictions=check_client_accesshash:/etc/postfix/access这句加到main.cf的最初面


我们克制192.168.8.88利用postfix邮件办事


方才我的outlook是能够收发邮件的,如今我们碰运气还能够不
修正了access后,必要利用这个下令更新数据库
postmap/etc/postfix/access
然后从头启动postfix




不克不及发送了


我们把方才的设置作废尝尝




一般发送了


root用户也一般吸收




上面的内容是别号列表,这一般名列表和sendmail的别号列表一样,修正的文件也是一样/etc/aliases,修正完成利用posalias/etc/aliases
能够参考sendmail课程的内容,RHCE课程-RH253Linux办事器架设条记七-Sendmail办事器设置
vim/etc/aliases


postalias/etc/aliases


测试一下


michael帐号一般吸收


51cto帐号一般吸收


检察设置信息postconf-n


#####################Michael支解线####################
Postfix已基础设置完成,我们必要对邮件的发送举行把持:
关于外域到本域的邮件,必需吸收,不然,收不就任何来自内部的邮件;
关于本域到外域的邮件,只同意从本机收回,不然,其别人经由过程假造本域地点就能够向外域发信;
关于外域到外域的邮件,间接回绝,不然我们的邮件办事器就是OpenRelay,将被视为渣滓邮件办事器。
先设置发件人的划定规矩:
smtpd_sender_restrictions=permit_mynetworks,check_sender_accesshash:/etc/postfix/sender_access,permit
以上划定规矩先判别是不是是本域地点,假如是,同意,然后再从sender_access文件里反省发件人是不是存在,回绝存在的发件人,最初同意其他发件人
然后设置收件人划定规矩:
smtpd_recipient_restrictions=permit_mynetworks,check_recipient_accesshash:/etc/postfix/recipient_access,reject


以上划定规矩先判别是不是是本域地点,假如是,同意,然后再从recipient_access文件里反省收件人是不是存在,同意存在的收件人,最初回绝其他收件人。


/etc/postfix/sender_access的内容:
michael.comREJECT


目标是避免其他用户从内部xx@michael.com身份发送邮件,但登录到本机再发送则不受影响,由于第一条划定规矩permit_mynetworks同意本机登任命户发送邮件。
/etc/postfix/recipient_access的内容:
michael@michael.comOK
51cto@michael.comOK


因而,外域只能发送赐与上两个Email地点,其他任何地点都将被回绝。但本机到本机发送不受影响。
最初用postmap天生hash格局的文件:
#postmapsender_access
#postmaprecipient_access


发送一般


如今我们来克制发件人51cto@michael.com,修正main.cf往失落permit_mynetworks


设置michael.com为OK,51cto@michael.com为REJECT


测试一下


而其他本域用户能够一般收发~如今我们作废限定



又能够发送了~

#####################Michael支解线####################
参考:
4.1postfix的设置文件布局
postfix的设置文件位于/etc/postfix下,装置完postfix今后,我们能够经由过程ls下令检察postfix的设置文件:
#ls
install.cfmain.cfmaster.cfpostfix-script
这四个文件就是postfix最基础的设置文件,它们的区分在于:
mail.cf:是postfix次要的设置文件。
Install.cf:包括装置过程当中装置步伐发生的postfix初始化设置。
master.cf:是postfix的master历程的设置文件,该文件中的每行都是用来设置postfix的组件历程的运转体例。
postfix-script:包装了一些postfix下令,以便我们在linux情况中宁静地实行这些postfix下令。
4.2postfix的基础设置
postfix约莫有100个设置参数,这些参数都能够经由过程main.cf指定。设置的格局是如许的,用等号毗连参数和参数的值。如:
myhostname=mail.mydomain.com
等号的右边是参数的称号,等号的右侧是参数的值;固然,我们也能够在参数的后面加上$来援用该参数,如:
myorigin=$myhostname
固然postfix有100个摆布的参数,可是postfix为年夜多半的参数都设置了缺省值,以是在让postfix一般为你办事之前,你只必要设置为数未几的几个参数。上面我们一同来看一看这些基础的postfix参数。必要注重的是,一旦你变动了main.cf文件的内容,则必需运转postfixreload下令使其失效。
1.myorigin
myorigin参数指明发件人地点的域名。假如你的用户的邮件地点为user@domain.com,则该参数指定@前面的域名。缺省地,postfix利用当地主机名作为myorigin,可是倡议你最好利用你的域名,由于如许更具有可读性。好比:装置postfix的主机为mail.domain.com则我们能够如许指定myorigin:
myorigin=domain.com
固然我们也能够援用其他参数,如:
myorigin=$mydomain
2.mydestination
mydestination参数指定postfix吸收邮件时收件人的域名,换句话说,也就是你的postfix体系要吸收甚么样的邮件。好比:你的用户的邮件地点为user@domain.com,也就是你的域为domain.com,则你就必要吸收一切收件工资user_name@domain.com的邮件。与myorigin一样,缺省地,postfix利用当地主机名作为mydestination。如:
mydestination=$mydomain
mydestination=domain.com
3.notify_classes
在postfix体系中,必需指定一个postfix体系***的别号指向一个用户,
只要如许,在用户碰到成绩时才有呈报的工具,postfix也才干将体系的成绩呈报给***。notify_classes参数就是用来指定向postfix***呈报毛病时的信息级别。共有以下几种级别:
bounce:将不成以送达的邮件的拷贝发送给postfix***。出于团体隐私的原因,该邮件的拷贝不包括信头。
2bounce:将两次不成送达的邮件拷贝发送给postfix***。
delay:将邮件的送达提早信息发送给***,仅仅包括信头。
policy:将因为UCE划定规矩限定而被回绝的用户哀求发送给postfix***,包括全部SMTP会话的内容。
protocol:将协定的毛病信息或用户妄图实行不撑持的下令的纪录发送给postfix***。一样包括全部SMTP会话的内容。
resource:将因为资本毛病而不成送达的毛病信息发送给postfix***,好比:行列文件写毛病等等。
software:将因为软件毛病而招致不成送达的毛病信息发送给postfix***。
缺省值为:
notify_classes=resource,software
4.myhostname
myhostname参数指定运转postfix邮件体系的主机的主机名。缺省地,该值被设定为当地呆板名。你也能够指定该值,必要注重的是,要指定完全的主机名。如:
myhostname=mail.domain.com
5.mydomain
mydomain参数指定你的域名,缺省地,postfix将myhostname的第一局部删除而作为mydomain的值。你也能够本人指定该值,如:
mydomain=domain.com
6.mynetworks
mynetworks参数指定你地点的收集的收集地点,postfix体系依据其值来区分用户是近程的仍是当地的,假如是当地收集用户则同意其会见。你能够用尺度的A、B、C类收集地点,也能够用CIDR(无类域间路由)地点来暗示,如:
192.168.1.0/24
192.168.1.0/26
7.inet_inte***ces
inet_inte***ces参数指定postfix体系监听的收集接口。缺省地,postfix监听一切的收集接口。假如你的postfix运转在一个假造的ip地点上,则必需指定其监听的地点。如:
inet_inte***ces=all
inet_inte***ce=192.168.1.1
4.3postfix的UCE(unsolicitedcommercialemail)把持
所谓UCE把持就是控告制postfix吸收或转发来自于甚么中央的邮件。
缺省地,postfix转发切合以下前提的邮件:
*来自客户端ip地点切合$mynetworks的邮件。
*来自客户端主机名切合$relay_domains及其子域的邮件。
*目标地为$relay_domains及其子域的邮件。
缺省地,postfix承受切合以下前提的邮件:
*目标地为$inet_inte***ces的邮件。
*目标地为$mydestination的邮件。
*目标地为$virtual_maps的邮件。
可是我们也能够经由过程上面的划定规矩来完成更壮大的把持功效。
1.信头过滤
经由过程header_checks参数限定吸收邮件的信头的格局,假如切合指定的格局,则回绝吸收该邮件。能够指定一个或多个查询列表,假如新邮件的信头切合列表中的某一项则回绝该吸收邮件。如:
header_checks=regexp:/etc/postfix/header_checks
header_checks=pcre:/etc/postfix/header_checks
缺省地,postfix不举行信头过滤。
2.客户端主机名/地点限定
经由过程smtpd_client_restrictions参数限定能够向postfix倡议SMTP毗连的客户真个主机名或ip地点。能够指定一个或多个参数值,两头用逗号离隔。限定划定规矩是依照查询的按次举行的,第一条切合前提的划定规矩被实行。可用的划定规矩有:
reject_unknown_client:假如客户真个ip地点在DNS中没有PTR纪录则回绝转发该客户真个毗连哀求。能够用unknown_client_reject_code参数指定前往给客户机的毛病代码(缺省为450)。假如你有效户没有作DNS纪录则不要启用该选项。
permit_mynetworks:假如客户真个ip地点切合$mynetworks参数界说的局限则承受该客户真个毗连哀求,并转发该邮件。
check_client_accessmaptype:mapname:依据客户真个主机名、父域名、ip地点或属于的收集搜刮access数据库。假如搜刮的了局为REJECT大概XXtext则回绝该客户真个毗连哀求;假如搜刮的了局为OK、RELAY或数字则承受该客户真个毗连哀求,并转发该邮件。。能够用access_map_reject_code参数指定前往给客户机的毛病代码(缺省为554)。
reject_maps_rbl:假如客户真个收集地点切合$maps_rbl_domains参数的值则回绝该客户真个毗连哀求。能够用maps_rbl_reject_code参数指定前往给客户机的毛病代码(缺省为554)。
示例:
smtpd_client_restrictions=hash:/etc/postfix/access,reject_maps_rbl
smtpd_client_restrictions=permit_mynetworks,reject_unknown_client
该参数的缺省值为:
smtpd_client_restrictions=
也即吸收来自任何客户真个SMTP毗连。
3.是不是哀求HELO下令
能够经由过程smtpd_helo_required参数指定客户端在SMTP会话的入手下手是不是发送一个HELO下令。你能够指定该参数的值为yes或no。缺省值为:
smtpd_helo_required=no
4.HELO主机名限定
能够经由过程smtpd_helo_restrictions参数指定客户端在实行HELO下令时发送给postfix的主机名。缺省地,postfix吸收客户端发送的恣意情势的主机名。能够指定一个或多个参数值,两头用逗号离隔。限定划定规矩是依照查询的按次举行的,第一条切合前提的划定规矩被实行。可用的划定规矩有:
reject_invalid_hostname:假如HELO下令所带的主机名参数不切合语律例范则回绝客户机的毗连哀求。能够用invalid_hostname_reject_code参数指定前往给客户机的毛病代码(缺省为501)。
permit_naked_ip_address:RFC请求客户真个HELO下令包括的ip地点放在方括号内,你能够用permit_naked_ip_address参数作废该限定。由于有的mail客户端不恪守该RFC的划定。
reject_unknown_hostname:假如客户端实行HELO下令时的主机名在DNS中没有响应的A或MX纪录则回绝该客户真个毗连哀求。能够用invalid_hostname_reject_code参数指定前往给客户机的毛病代码(缺省为450)。
reject_non_fqdn_hostname:假如客户端实行HELO下令时的主机名不是RFC划定的完全的域名则回绝客户真个毗连哀求。能够用invalid_hostname_reject_code参数指定前往给客户机的毛病代码(缺省为504)。
check_helo_accessmaptype:mapname:依据客户端HELO的主机名、父域名搜刮access数据库。假如搜刮的了局为REJECT大概XXtext则回绝该客户真个毗连哀求;假如搜刮的了局为OK、RELAY或数字则承受该客户真个毗连哀求。能够用access_map_reject_code参数指定前往给客户机的毛病代码(缺省为554)。
示例:
smtpd_helo_restrictions=permit_mynetworks,reject_invalid_hostname
5.RFC821信头限定
RFC821对邮件的信头做了严厉的划定,可是普遍利用的sendmail其实不支
持该划定,以是关于该参数我们只能说不,即:
strict_rfc821_envelopes=no
6.经由过程发件人地点举行限定
能够用smtpd_sender_restrictions参数经由过程发件人在实行MAILFROM下令时供应的地点举行限定。能够指定一个或多个参数值,两头用逗号离隔。限定划定规矩是依照查询的按次举行的,第一条切合前提的划定规矩被实行。可用的划定规矩有:
reject_unknown_sender_domain:假如MAILFROM下令供应的主机名在DNS中没有响应的A或MX纪录则回绝该客户真个毗连哀求。能够用unknown_address_reject_code参数指定前往给客户机的毛病代码(缺省为450)。
check_sender_accessmaptype:mapname:依据MAILFROM下令供应的主机名、父域搜刮access数据库。假如搜刮的了局为REJECT大概XXtext则回绝该客户真个毗连哀求;假如搜刮的了局为OK、RELAY或数字则承受该客户真个毗连哀求。能够用access_map_reject_code参数指定前往给客户机的毛病代码(缺省为554)。能够经由过程该参数过滤来自某些不受接待的发件人的邮件。
reject_non_fqdn_sender:假如MAILFROM下令供应的主机名不是RFC划定的完全的域名则回绝客户真个毗连哀求。能够用non_fqdn_reject_code参数指定前往给客户机的毛病代码(缺省为504)。
缺省地,postfix承受来自任何发件人的邮件。
示例:
smtpd_sender_restrictions=hash:/etc/postfix/access,reject_unknown_sender_domain
7.经由过程收件人地点举行过滤
能够用smtpd_recipient_restrictions参数经由过程发件人在实行RCPTTO下令时供应的地点举行限定。缺省值为:
smtpd_recipient_restrictions=permit_mynetworks,check_relay_domains
能够指定一个或多个参数值,两头用逗号离隔。限定划定规矩是依照查询的按次举行的,第一条切合前提的划定规矩被实行。可用的划定规矩有:
check_relay_domains:假如切合以下的前提,则承受SMTP毗连哀求,不然回绝该毗连,能够用relay_domains_reject_code参数指定前往给客户机的毛病代码(缺省为504)。
*客户端主机名切合$relay_domains及其子域
*目标地为$inet_inte***ces、$mydestination或$virtual_maps
permit_auth_destination:不论客户真个主机名,只需切合以下的前提,就
承受SMTP毗连哀求:
*剖析后的方针地点切合$relay_domains及其子域
*剖析后的方针地点切合$inet_inte***ces、$mydestination或$virtual_maps
reject_unauth_destination:不论客户真个主机名,只需切合以下的前提,就回绝该客户端SMTP毗连哀求:
*剖析后的方针地点切合$relay_domains及其子域
*剖析后的方针地点切合$inet_inte***ces、$mydestination或$virtual_maps
check_recipient_access:依据剖析后的方针地点、父域搜刮access数据库。假如搜刮的了局为REJECT大概XXtext则回绝该客户真个毗连哀求;假如搜刮的了局为OK、RELAY或数字则承受该客户真个毗连哀求。能够用access_map_reject_code参数指定前往给客户机的毛病代码(缺省为554)。
reject_unknown_recipient_domain:假如收件人的邮件地点在DNS中没有响应的A或MX纪录则回绝该客户真个毗连哀求。能够用unknown_address_reject_code参数指定前往给客户机的毛病代码(缺省为450)。
reject_non_fqdn_recipient:假如发件人在实行RCPTTO下令时供应的地点
不是完全的域名则回绝其SMTP毗连哀求。能够用Thenon_fqdn_reject_code参数指定前往给客户机的毛病代码(缺省为504)。
4.4posftfix的功能把持
之以是对postfix的功能举行把持,是为了在碰到邮件风暴时包管postfix能够一般运转。一般,我们能够经由过程对以下postfix参数的设置来调治postfix的功能,这些参数都是经由过程mail.cf设置文件举行设置的,修正今后不要忘了运转postfixreload下令来使设置失效。
1.历程数限定
能够经由过程default_process_limit参数来把持postfix体系同时能够运转的最猛进程数量。缺省值是50个。
2.对统一方针主机的并发毗连限定
当向统一方针主机收回SMTP毗连时,postfix初始化收回两个SMTP毗连,假如送达乐成则增添并发的SMTP毗连数量,碰到堵塞时又削减并发毗连的数量。postfix中经由过程以下的参数对统一方针主机的并发毗连举行把持:
*initial_destination_concurrency:把持对统一方针主机的初始化并发毗连数量。缺省值为2。
*default_destination_concurrency_limit:把持初始化毗连后对统一方针主机的最年夜并发毗连数量。缺省值为10。
*local_destination_concurrency_limit:把持对统一当地收件人的最年夜同时送达的邮件数量。缺省值为2,由于对当地统一收件人送达邮件时送达事情只能一个接一个的举行,以是设得在年夜也没用。
3.对统一封邮件的收件人数量限定
经由过程default_destination_recipient_limit参数来把持postfix的送达代办署理(如
smtp历程)能够将统一封邮件发送给几个收件人。缺省值为50。也能够用明白指出该送达代办署理的参数来掩盖该缺省值。如用smtpd_recipient_limit来指定smtp送达代办署理能够将统一封邮件发送给几个收件人,该参数的缺省值为1000。
4.推延送达把持
经由过程defer_transports参数,我们能够推延送达该参数指定的邮件直到postfix明白的提出送达请求。上面我们看一个例子:
有一个小型的局域网,用户都将邮件发送给局域网外部的一台postfix邮件办事器,然后经由过程在该办事器上拨号将邮件发送进来。这时候我们能够如许指定该参数的值:
defer_transports=smtp
该语句暗示postfix推延送达一切的邮件直到实行sendmail-q下令,如许我们就能够在ppp的剧本中加上sendmail-q,以便在拨号乐成后让postfix入手下手送达邮件。小知识:对CentOS提供支持将是OpenLogic首次支持一个完整的Linux操作系统。

小魔女 发表于 2015-1-17 06:52:46

Windows有MS-DOS?方式,在该方式下通过输入DOS命令来操作电脑;Linux与Windows类似,也有命令方式,Linux?启动后如果不执行?X-WINDOWS,就会处于命令方式下,必须发命令才能操作电脑。?

老尸 发表于 2015-1-26 13:38:22

随着IT从业人员越来越多,理论上会有更多的人使用Linux,可以肯定,Linux在以后这多时间不会消失。

飘飘悠悠 发表于 2015-2-4 21:12:14

选择一些适于初学者的Linux社区。

愤怒的大鸟 发表于 2015-2-10 13:37:42

说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。?

因胸联盟 发表于 2015-3-1 15:06:57

现在的linux操作系统如redhat,难点,红旗等,都是用这么一个内核,加上其它的用程序(包括X)构成的。

活着的死人 发表于 2015-3-10 22:26:19

在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。

分手快乐 发表于 2015-3-17 16:18:44

随着实验课程的结束,理论课也该结束了,说实话教OS的这两位老师是我们遇到过的不错的老师(这话放这可能不太恰当).

仓酷云 发表于 2015-3-24 19:19:17

Windows?是图形界面的,Linux类似以前的?DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux?也能显示图形界面,也有开始菜单、桌面、图标等。
页: [1]
查看完整版本: Linux教程之CentOS Postfix邮件办事器设置架设条记