linux系统管理员讲义(4)


Google
access定�哪些�域或ip �的信可以被接受,哪些不行,�某�主�一直�我�寄出垃圾�件,我�可以使用此�制�阻�它,通常access �同��查收信人�寄信人的�件地址,只要其中一�符合就算是比�成功,新版sendmail 推出後大幅�充access 的功能,�得relay-domains 有�多�(有�被淘汰的感�),但其�它�各有各的好�
relay-domains定�哪些�域或ip 可以要求寄信,如果您要允�使用者透�其它 ISP使用 MUA�上伺服器寄信,您必�先�� ISP IP ��加到���定��,�access 不同的是���不用��成db �料�,�定上也比��易
domaintable用��生�域名���,通常是��校的�域名�改��,�了�使用�地址的信件也能正常�送,因此才�定
local-host-names定�主�的所有�名
mailertable定�分信路由,把收到的信依照�件地址�式的比�,分�外��信程式�理或�送��信主��理
virtusertable定�如何�送要����域或��使用者的信件,��信件���送�某�真�存在的�� ,主要用��多�不同�域可以使用同一台�件主�,�ISP 公司��很需要
genericstable由於8.12 版的sendmail 已不再接受�件地址不完整的信件(例如:shane@my_hostname),因此��不完整的名�必�改�成合法的名�, ���案用�定�要把哪些名�改�哪一�名�,它也可以用�改�@ 前面的��名�,作此用途�其作用�userdb 相同
userdb�本�是mail gateway �,透����可以得知哪些使用者是位於哪一台�件主�上,分信��分��主�,而非分到本�的/var/spool/mail 中,��功能也可以用aliases �成
aliases���也是用�作�件�寄,一般拿�作�名��或�寄清���用,事�上sendmail 上的�寄�制很多,而且只要稍微修改�定也都能彼此取代,但我���明白其原始��的用意,�量不要去混用它�,以避免�寄���於��,造成事後除�的痛苦

以上�定�均�放在/etc/mail 目�,其中access domaintablemailertablevirtusertablegenericstable 等五�案必���料��至�料��才能�sendmail 引用,我�使用以下指令��行:

makemap  hash  /etc/mail/access  <  /etc/mail/access(前一��案是指access.db 省略了附加�名,後一�是指�文字�的access

userdb 必�以btree 建立索引才能sendmail 引用,我�使用以下指令��行:

makemap  btree  /etc/mail/userdb  <  /etc/mail/userdb.txt

使用MX ����化�寄地址

希望��件寄出�能�直接使用�域名�而非主�名��寄信,例如:shane@spps.tp.edu.tw,�必�修改/etc/mail/sendmail.mc 中的Masquerade �定,修改成:

FEATURE(always_add_domain)dnlJDuLinux联盟
FEATURE(`masquerade_entire_domain')dnlJDuLinux联盟
FEATURE(`masquerade_envelope')dnlJDuLinux联盟
FEATURE(`allmasquerade')dnlJDuLinux联盟
MASQUERADE_DOMAIN(`spps.tp.edu.tw')dnlJDuLinux联盟
MASQUERADE_AS(spps.tp.edu.tw)dnl

要�寄到shane@spps.tp.edu.tw 的信件能正�分信,除了在/etc/mail/sendmail.mc 需包含FEATURE (`relay_based_on_MX') �定外,�必�在DNS 中加入MX ��,由於加入DNS ��後必�等三天才能生效(DNS ��值未修改的�),因此不用急著去��!

��考下�,MX��中�包含三��位,首先是�件�送的目的地(以�域名��判�),接著指定要�理信件的伺服器,最後是�先�,�字越小越�先。一般�念中��MX ��是用���方寄信�我��查�用的,��念�不完全正�,事�上�我�的�件主���寄信�也�去查�MX ��,以便得知是否要�信件���某台特定主�由它�一�信,���制是用��作mail gateway ,�用�����理解sendmail.mc 中跟MX 相�的��,���念才不���!

�作Mail Gateway

使用MX ��最主要的目的,是要�作Mail Gateway ,�化�寄地址只能算是副�品,假�校��有�台�件主�mail.spps.tp.edu.tw stu.spps.tp.edu.tw ,�在已�在DNS �加入MX ��,�spps.tp.edu.tw 的�件交�主���mail.spps.tp.edu.tw ,所有寄到s61533@ spps.tp.edu.tw 的信件都�由mail.spps.tp.edu.tw �接收,��stu.spps.tp.edu.tw 上的使用者就�法享受�化�寄地址的便利了!

解�的方法就是�mail.spps.tp.edu.tw 成�stu.spps.tp.edu.tw mail gateway ,首先在mail.spps.tp.edu.tw 主�上�spps.tp.edu.tw 加入到/etc/local-host-names ,也可以修改sendmail.cw 或直接在sendmail.mc 加入Cwlocalhost mail.spps.tp.edu.tw spps.tp.edu.tw ,�些做法�果都相同,��sendmail 就�把要�s61533@ spps.tp.edu.tw 的信件��本��件,但是要怎�把信件�送到stu.spps.tp.edu.tw 上呢?�修改/etc/mail/userdb.txt ,如下:

s61533    s61533@stu.spps.tp.edu.tw

�好後不要忘�要用makemap btree �建立userdb.db �,��功能也可以用virtusertable genericstablealiases �做,但建�不要��做,因��出���需要除����很痛苦!

到��已�解�了收信的��,寄信的��稍微有�麻�:首先�在stu.spps.tp.edu.tw 主�上�定Smart Host ,�在sendmail.mc 加入 define(`SMART_HOST', `mail.spps.tp.edu.tw')、MASQUERADE_DOMAIN(`spps.tp.edu.tw') MASQUERADE_AS(spps.tp.edu.tw) ,��所有�stu.spps.tp.edu.tw 寄出的信件��被�送到mail.spps.tp.edu.tw ,同��使用�化的�寄地址�寄信。不要忘�sendmail ����relay ,因此�stu.spps.tp.edu.tw 把信件�送�mail.spps.tp.edu.tw ��被拒收,��我�必�修改mail.spps.tp.edu.tw 的�定�stu.spps.tp.edu.tw 主��放relay 才行,�放relay 可以直接把stu.spps.tp.edu.tw ip 直接�入/etc/relay-domains 中,或是使用access �控制,也可以直接在sendmail.mc 加入RELAY_DOMAIN(`stu.spps.tp.edu.tw'),�些做法�果是相同的。

使用mail gateway 最大的好�是可以�一�信,�垃圾信或病毒信的工作只要在mail gateway 上�定就可以了,不用同�去修改下��件主�,�一���器很多的�,工作���很重。

使用postfix 取代sendmail

由於sendmail �去的名�很不好,因此也有些版本的Linux 直接以postfix 取代sendmail Red Hat 公司也感�到�股潮流不可�,因此也提供postfix sendmail 的 ���制,在Red Hat Linux 上要�sendmail ��成postfix 是很容易的,直接�入redhat-switchmail 指令,然後��要��的MTA 即可,��後不要忘���的服�停掉,���新的服�,例如:

service  sendmail  stopJDuLinux联盟
service  postfix  start

postfix 的���是在/etc/main.cf /etc/master.cf ,�自行�考postfix 相�系�文件�行�定。

如何防止垃圾�件

在 sendmail 上,防止垃圾�件�寄的��,可以透�以下四��制��整:

  1. ��不作�信,�句��,寄信人或收信人其中之一必�是�自本�的Domain Name 才受理
  2. �寄信人的�址�行DNS 查�
  3. 透�/etc/mail/a ccess.db�行存取控管
  4. 透�信件��的特徵比�,���垃圾�件

以上四�方法其�很�防止垃圾�件的攻�,原因是新一代的�告信�信程式,早已���些措施�出��的策略,例如:

  1. �寄信人地址��成�自本��域
  2. 寄信�本��域的使用者,同��要大量�信的�象使用BCC ��以�密副本方式�送
  3. 使用��的IP 位址�寄信,以�避DNS 反查(缺�是����法��是否交寄成功)
  4. 透�socket proxy 交寄�件�躲避防火�稽核
  5. 透�後�程式�防火��模�合法使用者交寄�件

就是因��告信�信程式「道高一尺,魔高一丈」,因此造成系管�人人自危,�提供�件服��畏途。事�上sendmail ��的送信�制是造成垃圾�件之所以�以�防的主因,然而�些送信�制�於�件的�送�理又是不可或缺的,想要�底阻�垃圾�件,不能不了解sendmail 的送信�制,在前��小�已���交代sendmail �可以使用的功能和微���,�者特�整理下表��助大家了解sendmail 到底在做些什�事:

工作�容�理步�相�功能��
信件���位剖析�查���位是否完整
改�寄信人�位JDuLinux联盟
check_mail
是否需要改�domain always_add_domainJDuLinux联盟
local_no_masqueradeJDuLinux联盟
limited_masqueradeJDuLinux联盟
masquerade_entire_domainJDuLinux联盟
accept_unresolvable_domains
是否需要改�username ldap_routingJDuLinux联盟
accept_unqualified_senders
�查寄信人�域是否完整nocanonify
�查寄信人�域是否存在nodns
改�收信人�位JDuLinux联盟
check_rcpt
是否需要改�domain domaintabJDuLinux联盟
allmasqueradeJDuLinux联盟
local_no_masqueradeJDuLinux联盟
use_cw_file
是否需要改�username virtusertableJDuLinux联盟
genericstableJDuLinux联盟
redirectJDuLinux联盟
userdb
�查收信人�域是否完整nocanonify
�信存取控制�查JDuLinux联盟
check_relay
如何�行�信存取控制�查promiscuous_relayJDuLinux联盟
delay_checks
�查哪些domain 可以Relay relay-domainsJDuLinux联盟
accessJDuLinux联盟
relay_entire_domainJDuLinux联盟
relay_hosts_onlyJDuLinux联盟
relay_based_on_MXJDuLinux联盟
relay_mail_fromJDuLinux联盟
relay_local_fromJDuLinux联盟
blacklist_recipientsJDuLinux联盟
dnsblJDuLinux联盟
enhdnsblJDuLinux联盟
lookupdotdomain
�查哪些user 可以Relay use_ct_fileJDuLinux联盟
blacklist_recipients
是否通�����auth_options
�送信件�待寄信件�入mail queue
分信�理�本�的信件要如何�行分信mailertable
是否���信箱aliases
是否需要�信.forward

利用access.db ��寄要求�行存取控管是sendmail �最重要的功能之一,�底下�例�介�access 的�定方法:

spammer@aol.com REJECTJDuLinux联盟
cyberspammer.com REJECTJDuLinux联盟
TLD REJECTJDuLinux联盟
192.168.212 REJECTJDuLinux联盟
IPv6:2002:c0a8:02c7 RELAYJDuLinux联盟
IPv6:2002:c0a8:51d2::23f4 REJECT
核�寄信人或收信人信箱是否�spammer@aol.com JDuLinux联盟
核�寄信人或收信人�域是否�
cyberspammer.com JDuLinux联盟
核�寄信人或收信人�域是否�TLD ��的名�JDuLinux联盟
核�提出寄信要求的
IP 是否�192.168.212 ��JDuLinux联盟
核�提出寄信要求的
IP 是否�ipv6 格式JDuLinux联盟
核�提出寄信要求的
IP 是否�ipv6 格式中的子�域

除了使用REJECT �拒��信要求外,也可以使用RELAY �接受�信要求,如果想�被拒��信的�域中某些��仍然可以�信,或是某�被拒�的�段中的某�IP 允��信,���情形下可以�定成OK ,�似的情形下想�某��段中的某�IP 或某��域中的某台主�不要�行比�,�可以使用SKIP ,DISCARD 用��信件完全��,�REJECT 不同的是�不��生退信通知,ERROR 也是用�REJECT �信,但是可以指定退信通知的�息�容,�用�例如下:

cyberspammer.com ERROR:550 "We don't accept mail from spammers"JDuLinux联盟
okay.cyberspammer.com OKJDuLinux联盟
sendmail.org RELAYJDuLinux联盟
128.32 RELAY

使用access 除了���本比�外,�可以指定比��位,事�上使用��方式�比�,�於防止垃圾�件更�有效,�例��:

mail.spps.tp.edu.tw RELAY

�����允�假冒寄信人地址�user@mail.spps.tp.edu.tw 的信件,能�成功透�本��行�寄,如果改�:

To:mail.spps.tp.edu.tw RELAYJDuLinux联盟
Connect:192.57 RELAY

�保�只有收信人地址是user@mail.spps.tp.edu.tw 的信件,本�才接受,另配合ip 的比���校��器可以正常寄信,由於限定比���者(Connect)的ip ,所以即使把寄信人地址改�user@[192.57.1.2] ,本��是��掉不Relay ,�比起��的�式比��得更�底。更��的�用如下面的例子:

From:spammer@some.dom REJECTJDuLinux联盟
To:friend.domain RELAYJDuLinux联盟
Connect:friend.domain OKJDuLinux联盟
Connect:from.domain RELAYJDuLinux联盟
From:good@another.dom OKJDuLinux联盟
From:another.dom REJECT

��用 FEATURE(`delay_checks') ���,可以附加以下����:

FEATURE(`delay_checks', `friend')JDuLinux联盟
FEATURE(`delay_checks', `hater')

��候在access.db �,就可以使用下列�法�宣告垃圾�件的同路人,sendmail ��在退信通知中,提示�方�件主�遭人利用�信的�息,底下�法分�是比��寄地址、使用者名�和�域名�。

Spam:abuse@my.domain FRIENDJDuLinux联盟
Spam:abuse@ FRIENDJDuLinux联盟
Spam:spam.domain FRIEND

想要完全防堵垃圾�件,最有效的方法就是使用SMTP AUTH 功能,�你�用此功能後,如果�方能通���密���,就可以取得Relay 的�限,但透�其他方式Relay 仍然是被接受的,例如:通�access.db 的�查、透�relay-domains 的宣告、透�MX ��或通�trusted-user 的宣告......等等。因此想�底防�垃圾�件,第一件事就是必�把其他功能��或做最大限制,�者的做法是:

  1. 不使用MX ��
  2. trusted-user relay-domains 保持�空
  3. access 中�包含127.0.0.1 RELAY localhost RELAY localhost.localdomain RELAY 三行
  4. �定���制�,不�放LOGIN PLAIN

在���格的限制下,�校老�不管在家�寄信或在�校寄信(透�WEB 介面除外),都必�修改outlook express 的�定,�定如下:

access定�哪些�域或ip �的信可以被接受,哪些不行,�某�主�一直�我�寄出垃圾�件,我�可以使用此�制�阻�它,通常access �同��查收信人�寄信人的�件地址,只要其中一�符合就算是比�成功,新版sendmail 推出後大幅�充access 的功能,�得relay-domains 有�多�(有�被淘汰的感�),但其�它�各有各的好�
relay-domains定�哪些�域或ip 可以要求寄信,如果您要允�使用者透�其它 ISP使用 MUA�上伺服器寄信,您必�先�� ISP IP ��加到���定��,�access 不同的是���不用��成db �料�,�定上也比��易
domaintable用��生�域名���,通常是��校的�域名�改��,�了�使用�地址的信件也能正常�送,因此才�定
local-host-names定�主�的所有�名
mailertable定�分信路由,把收到的信依照�件地址�式的比�,分�外��信程式�理或�送��信主��理
virtusertable定�如何�送要����域或��使用者的信件,��信件���送�某�真�存在的�� ,主要用��多�不同�域可以使用同一台�件主�,�ISP 公司��很需要
genericstable由於8.12 版的sendmail 已不再接受�件地址不完整的信件(例如:shane@my_hostname),因此��不完整的名�必�改�成合法的名�, ���案用�定�要把哪些名�改�哪一�名�,它也可以用�改�@ 前面的��名�,作此用途�其作用�userdb 相同
userdb�本�是mail gateway �,透����可以得知哪些使用者是位於哪一台�件主�上,分信��分��主�,而非分到本�的/var/spool/mail 中,��功能也可以用aliases �成
aliases���也是用�作�件�寄,一般拿�作�名��或�寄清���用,事�上sendmail 上的�寄�制很多,而且只要稍微修改�定也都能彼此取代,但我���明白其原始��的用意,�量不要去混用它�,以避免�寄���於��,造成事後除�的痛苦

以上�定�均�放在/etc/mail 目�,其中access domaintablemailertablevirtusertablegenericstable 等五�案必���料��至�料��才能�sendmail 引用,我�使用以下指令��行:

makemap  hash  /etc/mail/access  <  /etc/mail/access(前一��案是指access.db 省略了附加�名,後一�是指�文字�的access

userdb 必�以btree 建立索引才能sendmail 引用,我�使用以下指令��行:

makemap  btree  /etc/mail/userdb  <  /etc/mail/userdb.txt

使用MX ����化�寄地址

希望��件寄出�能�直接使用�域名�而非主�名��寄信,例如:shane@spps.tp.edu.tw,�必�修改/etc/mail/sendmail.mc 中的Masquerade �定,修改成:

FEATURE(always_add_domain)dnlJDuLinux联盟
FEATURE(`masquerade_entire_domain')dnlJDuLinux联盟
FEATURE(`masquerade_envelope')dnlJDuLinux联盟
FEATURE(`allmasquerade')dnlJDuLinux联盟
MASQUERADE_DOMAIN(`spps.tp.edu.tw')dnlJDuLinux联盟
MASQUERADE_AS(spps.tp.edu.tw)dnl

要�寄到shane@spps.tp.edu.tw 的信件能正�分信,除了在/etc/mail/sendmail.mc 需包含FEATURE (`relay_based_on_MX') �定外,�必�在DNS 中加入MX ��,由於加入DNS ��後必�等三天才能生效(DNS ��值未修改的�),因此不用急著去��!

��考下�,MX��中�包含三��位,首先是�件�送的目的地(以�域名��判�),接著指定要�理信件的伺服器,最後是�先�,�字越小越�先。一般�念中��MX ��是用���方寄信�我��查�用的,��念�不完全正�,事�上�我�的�件主���寄信�也�去查�MX ��,以便得知是否要�信件���某台特定主�由它�一�信,���制是用��作mail gateway ,�用�����理解sendmail.mc 中跟MX 相�的��,���念才不���!

�作Mail Gateway

使用MX ��最主要的目的,是要�作Mail Gateway ,�化�寄地址只能算是副�品,假�校��有�台�件主�mail.spps.tp.edu.tw stu.spps.tp.edu.tw ,�在已�在DNS �加入MX ��,�spps.tp.edu.tw 的�件交�主���mail.spps.tp.edu.tw ,所有寄到s61533@ spps.tp.edu.tw 的信件都�由mail.spps.tp.edu.tw �接收,��stu.spps.tp.edu.tw 上的使用者就�法享受�化�寄地址的便利了!

解�的方法就是�mail.spps.tp.edu.tw 成�stu.spps.tp.edu.tw mail gateway ,首先在mail.spps.tp.edu.tw 主�上�spps.tp.edu.tw 加入到/etc/local-host-names ,也可以修改sendmail.cw 或直接在sendmail.mc 加入Cwlocalhost mail.spps.tp.edu.tw spps.tp.edu.tw ,�些做法�果都相同,��sendmail 就�把要�s61533@ spps.tp.edu.tw 的信件��本��件,但是要怎�把信件�送到stu.spps.tp.edu.tw 上呢?�修改/etc/mail/userdb.txt ,如下:

s61533    s61533@stu.spps.tp.edu.tw

�好後不要忘�要用makemap btree �建立userdb.db �,��功能也可以用virtusertable genericstablealiases �做,但建�不要��做,因��出���需要除����很痛苦!

到��已�解�了收信的��,寄信的��稍微有�麻�:首先�在stu.spps.tp.edu.tw 主�上�定Smart Host ,�在sendmail.mc 加入 define(`SMART_HOST', `mail.spps.tp.edu.tw')、MASQUERADE_DOMAIN(`spps.tp.edu.tw') MASQUERADE_AS(spps.tp.edu.tw) ,��所有�stu.spps.tp.edu.tw 寄出的信件��被�送到mail.spps.tp.edu.tw ,同��使用�化的�寄地址�寄信。不要忘�sendmail ����relay ,因此�stu.spps.tp.edu.tw 把信件�送�mail.spps.tp.edu.tw ��被拒收,��我�必�修改mail.spps.tp.edu.tw 的�定�stu.spps.tp.edu.tw 主��放relay 才行,�放relay 可以直接把stu.spps.tp.edu.tw ip 直接�入/etc/relay-domains 中,或是使用access �控制,也可以直接在sendmail.mc 加入RELAY_DOMAIN(`stu.spps.tp.edu.tw'),�些做法�果是相同的。

使用mail gateway 最大的好�是可以�一�信,�垃圾信或病毒信的工作只要在mail gateway 上�定就可以了,不用同�去修改下��件主�,�一���器很多的�,工作���很重。

使用postfix 取代sendmail

由於sendmail �去的名�很不好,因此也有些版本的Linux 直接以postfix 取代sendmail Red Hat 公司也感�到�股潮流不可�,因此也提供postfix sendmail 的 ���制,在Red Hat Linux 上要�sendmail ��成postfix 是很容易的,直接�入redhat-switchmail 指令,然後��要��的MTA 即可,��後不要忘���的服�停掉,���新的服�,例如:

service  sendmail  stopJDuLinux联盟
service  postfix  start

postfix 的���是在/etc/main.cf /etc/master.cf ,�自行�考postfix 相�系�文件�行�定。

如何防止垃圾�件

在 sendmail 上,防止垃圾�件�寄的��,可以透�以下四��制��整:

  1. ��不作�信,�句��,寄信人或收信人其中之一必�是�自本�的Domain Name 才受理
  2. �寄信人的�址�行DNS 查�
  3. 透�/etc/mail/a ccess.db�行存取控管
  4. 透�信件��的特徵比�,���垃圾�件

以上四�方法其�很�防止垃圾�件的攻�,原因是新一代的�告信�信程式,早已���些措施�出��的策略,例如:

  1. �寄信人地址��成�自本��域
  2. 寄信�本��域的使用者,同��要大量�信的�象使用BCC ��以�密副本方式�送
  3. 使用��的IP 位址�寄信,以�避DNS 反查(缺�是����法��是否交寄成功)
  4. 透�socket proxy 交寄�件�躲避防火�稽核
  5. 透�後�程式�防火��模�合法使用者交寄�件

就是因��告信�信程式「道高一尺,魔高一丈」,因此造成系管�人人自危,�提供�件服��畏途。事�上sendmail ��的送信�制是造成垃圾�件之所以�以�防的主因,然而�些送信�制�於�件的�送�理又是不可或缺的,想要�底阻�垃圾�件,不能不了解sendmail 的送信�制,在前��小�已���交代sendmail �可以使用的功能和微���,�者特�整理下表��助大家了解sendmail 到底在做些什�事:

工作�容�理步�相�功能��
信件���位剖析�查���位是否完整
改�寄信人�位JDuLinux联盟
check_mail
是否需要改�domain always_add_domainJDuLinux联盟
local_no_masqueradeJDuLinux联盟
limited_masqueradeJDuLinux联盟
masquerade_entire_domainJDuLinux联盟
accept_unresolvable_domains
是否需要改�username ldap_routingJDuLinux联盟
accept_unqualified_senders
�查寄信人�域是否完整nocanonify
�查寄信人�域是否存在nodns
改�收信人�位JDuLinux联盟
check_rcpt
是否需要改�domain domaintabJDuLinux联盟
allmasqueradeJDuLinux联盟
local_no_masqueradeJDuLinux联盟
use_cw_file
是否需要改�username virtusertableJDuLinux联盟
genericstableJDuLinux联盟
redirectJDuLinux联盟
userdb
�查收信人�域是否完整nocanonify
�信存取控制�查JDuLinux联盟
check_relay
如何�行�信存取控制�查promiscuous_relayJDuLinux联盟
delay_checks
�查哪些domain 可以Relay relay-domainsJDuLinux联盟
accessJDuLinux联盟
relay_entire_domainJDuLinux联盟
relay_hosts_onlyJDuLinux联盟
relay_based_on_MXJDuLinux联盟
relay_mail_fromJDuLinux联盟
relay_local_fromJDuLinux联盟
blacklist_recipientsJDuLinux联盟
dnsblJDuLinux联盟
enhdnsblJDuLinux联盟
lookupdotdomain
�查哪些user 可以Relay use_ct_fileJDuLinux联盟
blacklist_recipients
是否通�����auth_options
�送信件�待寄信件�入mail queue
分信�理�本�的信件要如何�行分信mailertable
是否���信箱aliases
是否需要�信.forward

利用access.db ��寄要求�行存取控管是sendmail �最重要的功能之一,�底下�例�介�access 的�定方法:

spammer@aol.com REJECTJDuLinux联盟
cyberspammer.com REJECTJDuLinux联盟
TLD REJECTJDuLinux联盟
192.168.212 REJECTJDuLinux联盟
IPv6:2002:c0a8:02c7 RELAYJDuLinux联盟
IPv6:2002:c0a8:51d2::23f4 REJECT
核�寄信人或收信人信箱是否�spammer@aol.com JDuLinux联盟
核�寄信人或收信人�域是否�
cyberspammer.com JDuLinux联盟
核�寄信人或收信人�域是否�TLD ��的名�JDuLinux联盟
核�提出寄信要求的
IP 是否�192.168.212 ��JDuLinux联盟
核�提出寄信要求的
IP 是否�ipv6 格式JDuLinux联盟
核�提出寄信要求的
IP 是否�ipv6 格式中的子�域

除了使用REJECT �拒��信要求外,也可以使用RELAY �接受�信要求,如果想�被拒��信的�域中某些��仍然可以�信,或是某�被拒�的�段中的某�IP 允��信,���情形下可以�定成OK ,�似的情形下想�某��段中的某�IP 或某��域中的某台主�不要�行比�,�可以使用SKIP ,DISCARD 用��信件完全��,�REJECT 不同的是�不��生退信通知,ERROR 也是用�REJECT �信,但是可以指定退信通知的�息�容,�用�例如下:

cyberspammer.com ERROR:550 "We don't accept mail from spammers"JDuLinux联盟
okay.cyberspammer.com OKJDuLinux联盟
sendmail.org RELAYJDuLinux联盟
128.32 RELAY

使用access 除了���本比�外,�可以指定比��位,事�上使用��方式�比�,�於防止垃圾�件更�有效,�例��:

mail.spps.tp.edu.tw RELAY

�����允�假冒寄信人地址�user@mail.spps.tp.edu.tw 的信件,能�成功透�本��行�寄,如果改�:

To:mail.spps.tp.edu.tw RELAYJDuLinux联盟
Connect:192.57 RELAY

�保�只有收信人地址是user@mail.spps.tp.edu.tw 的信件,本�才接受,另配合ip 的比���校��器可以正常寄信,由於限定比���者(Connect)的ip ,所以即使把寄信人地址改�user@[192.57.1.2] ,本��是��掉不Relay ,�比起��的�式比��得更�底。更��的�用如下面的例子:

From:spammer@some.dom REJECTJDuLinux联盟
To:friend.domain RELAYJDuLinux联盟
Connect:friend.domain OKJDuLinux联盟
Connect:from.domain RELAYJDuLinux联盟
From:good@another.dom OKJDuLinux联盟
From:another.dom REJECT

��用 FEATURE(`delay_checks') ���,可以附加以下����:

FEATURE(`delay_checks', `friend')JDuLinux联盟
FEATURE(`delay_checks', `hater')

��候在access.db �,就可以使用下列�法�宣告垃圾�件的同路人,sendmail ��在退信通知中,提示�方�件主�遭人利用�信的�息,底下�法分�是比��寄地址、使用者名�和�域名�。

Spam:abuse@my.domain FRIENDJDuLinux联盟
Spam:abuse@ FRIENDJDuLinux联盟
Spam:spam.domain FRIEND

想要完全防堵垃圾�件,最有效的方法就是使用SMTP AUTH 功能,�你�用此功能後,如果�方能通���密���,就可以取得Relay 的�限,但透�其他方式Relay 仍然是被接受的,例如:通�access.db 的�查、透�relay-domains 的宣告、透�MX ��或通�trusted-user 的宣告......等等。因此想�底防�垃圾�件,第一件事就是必�把其他功能��或做最大限制,�者的做法是:

  1. 不使用MX ��
  2. trusted-user relay-domains 保持�空
  3. access 中�包含127.0.0.1 RELAY localhost RELAY localhost.localdomain RELAY 三行
  4. �定���制�,不�放LOGIN PLAIN

在���格的限制下,�校老�不管在家�寄信或在�校寄信(透�WEB 介面除外),都必�修改outlook express 的�定,�定如下:

Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
免责声明:
1、本文系本网编辑转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
2、如涉及作品内容、版权和其它问题,请在30日内与本网联系,我们将在第一时间删除内容