linux系统管理员讲义(5)
手�RELAY ��
想要知道自己架�的�件主�是否�定正�,�有Relay 的��,可以使用telnet 工具作��,先以help 查�可以使用的指令:
# telnet 127.0.0.1 25TkfLinux联盟
Trying 127.0.0.1...TkfLinux联盟
Connected to 127.0.0.1.TkfLinux联盟
Escape character is '^]'.TkfLinux联盟
220 ESMTP //sendmail 版本�息已�被�藏TkfLinux联盟
helpTkfLinux联盟
214-2.0.0 This is sendmail version 8.12.8 //但是打help �是看得到版本�息,�����修改/etc/mail/helpfile �解�TkfLinux联盟
214-2.0.0 Topics:TkfLinux联盟
214-2.0.0 HELO EHLO MAIL RCPT DATATkfLinux联盟
214-2.0.0 RSET NOOP QUIT HELP VRFYTkfLinux联盟
214-2.0.0 EXPN VERB ETRN DSN AUTHTkfLinux联盟
214-2.0.0 STARTTLSTkfLinux联盟
214-2.0.0 For more info use "HELP <topic>".TkfLinux联盟
214-2.0.0 To report bugs in the implementation send email toTkfLinux联盟
214-2.0.0 sendmail-bugs@sendmail.org.TkfLinux联盟
214-2.0.0 For local information send email to Postmaster at your site.TkfLinux联盟
214 2.0.0 End of HELP infoTkfLinux联盟
helo test.com //��假冒自己身份�test.com TkfLinux联盟
250 mail.spps.tp.edu.tw Hello localhost.localdomain [127.0.0.1], //��一定��示正�的��位置TkfLinux联盟
pleased to meet you. TkfLinux联盟
mail from: spam@test.com //假�寄信人是spam@test.com TkfLinux联盟
250 2.1.0 spam@test.com... Sender okTkfLinux联盟
rcpt to: spam@test.com //假�收信人也是spam@test.com TkfLinux联盟
250 2.1.5 spam@test.com... Recipient ok //居然被接受了,其�因�是�127.0.0.1 ��,所以���TkfLinux联盟
quitTkfLinux联盟
221 2.0.0 mail.spps.tp.edu.tw closing connectionTkfLinux联盟
Connection closed by foreign host.
$ telnet 192.57.1.7 25 //�次��台主��上���TkfLinux联盟
Trying 192.57.1.7...TkfLinux联盟
Connected to 192.57.1.7.TkfLinux联盟
Escape character is '^]'.TkfLinux联盟
220 ESMTPTkfLinux联盟
helo test.com// 假冒自己的身分TkfLinux联盟
250 mail.spps.tp.edu.tw Hello stu.spps.tp.edu.tw [192.57.1.6], pleased to meet you. //�示正�的��位置TkfLinux联盟
mail from: spam@test.com //假�寄信人是spam@test.com TkfLinux联盟
250 2.1.0 spam@test.com... Sender okTkfLinux联盟
rcpt to: spam@test.com //假�收信人是spam@test.com TkfLinux联盟
550 5.7.1 spam@test.com... Relaying denied. Proper authentication required. //果然被要求要先登入TkfLinux联盟
rcpt to: shane@mail.spps.tp.edu.tw //改寄�本���shane@mail.spps.tp.edu.tw TkfLinux联盟
250 2.1.5 shane@mail.spps.tp.edu.tw... Recipient ok //被接受了,事�上��收信是不��RELAY ,�然前提�件是寄信人spam@test.com 在access.db 中不可以被REJECT TkfLinux联盟
data //�始�入信件�容TkfLinux联盟
354 Enter mail, end with "." on a line by itselfTkfLinux联盟
From: 你抓不到我@test.com //透�����, 可以取代MAIL 指令所�定的�件信箱地址,以避免被追�TkfLinux联盟
To: 你抓不到我@test.com //透�����, 可以取代RCPT 指令所�定的�件信箱地址,以避免被追�TkfLinux联盟
Subject: helloTkfLinux联盟
TkfLinux联盟
hi, how are you?TkfLinux联盟
. //�束�入,必�另起一行然後�入英文句�TkfLinux联盟
250 2.0.0 h284YtkF025941 Message accepted for delivery //信件被接受��行分信�理TkfLinux联盟
quitTkfLinux联盟
221 2.0.0 mail.spps.tp.edu.tw closing connectionTkfLinux联盟
Connection closed by foreign host.
$ telnet 192.57.1.7 25TkfLinux联盟
Trying 192.57.1.7...TkfLinux联盟
Connected to 192.57.1.7.TkfLinux联盟
Escape character is '^]'.TkfLinux联盟
220 ESMTPTkfLinux联盟
auth plain //��以�文字密�登入TkfLinux联盟
504 5.3.3 AUTH mechanism plain not available //�����制已�被移除TkfLinux联盟
auth login //��以POP3 方式登入TkfLinux联盟
334 VXNlcm5hbWU6 //提示�入username ,之所以看不懂是因�被�成base64 TkfLinux联盟
shane //直接�入��是�的 ,�先使用底下指令找出 base64 字串:TkfLinux联盟
perl -MMIME::Base64 -e 'print encode_base64("要�密的字串");'TkfLinux联盟
334 UGFzc3dvcmQ6 //提示�入password TkfLinux联盟
123456 //���相同,要先�成 base64TkfLinux联盟
535 5.7.0 authentication failed //由於base64 ��事�上�未加密,最好�是不要用TkfLinux联盟
auth digest-md5 //��其他���制存不存在TkfLinux联盟
504 5.3.3 AUTH mechanism digest-md5 not availableTkfLinux联盟
starttls// ��TLS/SSL 安全���有�有�用TkfLinux联盟
454 4.3.3 TLS not available after startTkfLinux联盟
help dsn// 查���指令TkfLinux联盟
214-2.0.0 MAIL FROM: <sender> [ RET={ FULL | HDRS} ] [ ENVID=<envid> ]TkfLinux联盟
214-2.0.0 RCPT TO: <recipient> [ NOTIFY={NEVER,SUCCESS,FAILURE,DELAY} ]TkfLinux联盟
214-2.0.0 [ ORCPT=<recipient> ]TkfLinux联盟
214-2.0.0 SMTP Delivery Status Notifications.TkfLinux联盟
214-2.0.0 Descriptions:TkfLinux联盟
214-2.0.0 RET Return either the full message or only headers.TkfLinux联盟
214-2.0.0 ENVID Sender's "envelope identifier" for tracking.TkfLinux联盟
214-2.0.0 NOTIFY When to send a DSN. Multiple options are OK, comma-TkfLinux联盟
214-2.0.0 delimited. NEVER must appear by itself.TkfLinux联盟
214-2.0.0 ORCPT Original recipient.TkfLinux联盟
214 2.0.0 End of HELP infoTkfLinux联盟
ehlo test.com //用EHLO 指令打招呼,就可以使用��指令,事�上��指令有很多安全漏洞TkfLinux联盟
250 mail.spps.tp.edu.tw Hello stu.spps.tp.edu.tw [192.57.1.6], pleased to meet you.TkfLinux联盟
mail from: spam@mail.spps.tp.edu.tw// ��假�自己是本�使用者TkfLinux联盟
250 2.1.0 spam@mail.spps.tp.edu.tw... Sender okTkfLinux联盟
rcpt to: hp2013@ms8.hinet.net// 能不能寄垃圾信到hinet TkfLinux联盟
550 5.7.1 hp2013@ms8.hinet.net... Relaying denied. Proper authentication required.// �果被拒�了,跟上一次的��不同的是,�在是要寄信出去所以�然��RELAY ,�且�才��登入也�成功TkfLinux联盟
quitTkfLinux联盟
221 2.0.0 mail.spps.tp.edu.tw closing connectionTkfLinux联盟
Connection closed by foreign host.
procmail �信程式
procmail 是一支功能�大用途�泛的�信程式,�sendmail 收到 �本�的信件�行分信�,�先�理aliases �名��,�理完aliases 後procmail 就�被呼叫�行,procmail ��根�比����行信件��(Header)或信件�文(Body)的特徵比�,比���是�用正�表�式的形式,若比�成功��行相��的�理,包括:�信�另一���、�存到�案、��另一支程式�理......等等,其�未符合�件之信件����行比�,直到所有比���比�完��止,最後比�未成功的信件,��交由sendmail �建的MDA 分信�收信人。系���的比������放於/etc/procmailrc �案�,或者是/etc/procmailrcs �料��,�些��在收到每一封信�都�被�入比�,接著procmail 才�去�取使用者自行建立在自己家目��的.procmailrc �案,以便���人的信件�行比�,�然本文�不��一般使用者�用procmail 的�例,也不建�教使用者去利用��功能,�者建��信工作��由系管��一���施。
底下介����例��明procmail 的用法,更多的�例可以�考 http://www.iki.fi/era/procmail/links.html �站的�明。procmailrc 的�法格式如下:
:0<旗�>:<�定��名>TkfLinux联盟
* <特殊比�字元> <正�表示式-1>TkfLinux联盟
* <特殊比�字元> <正�表示式-2>TkfLinux联盟
* <特殊比�字元> <正�表示式-N>TkfLinux联盟
<特殊�理字元><�理�的>
在�明�法涵�之前,先�看底下��例子,以便了解�用的方式�效果:
:0:TkfLinux联盟
all_mail_stored.here
上面���例��建立�定�,建立�定�可以保�信件�入到all_mail_stored.here 的同�,不�有其它程序存取此�案,由於�例中未指定�定��名,所以��名�由procmail 自行命名,另外�例中省略比�演算,也就是�所有新收到的�件都符合比��件(��件),都��行�一步的�理,�理方式是�信�存於all_mail_stored.here �案中,�理�的信件�不�分信�收信人。事�上���例一旦�行,所有的信件都�被�存於�一�案中,�有人�再收到信件。
:0cTkfLinux联盟
! spy@some.where
�前一��例不同的是,���例不�建立�定�,同�由於使用旗�c ,因此比�成功後�理的是��信,���例��此伺服器所有收到的信件,�寄�spy@some.where 信箱,但收信人仍然可以正常收到信件,��法得知信件被�寄到其它地方以便�查�容。
:0TkfLinux联盟
* ^From: spammer@some.whereTkfLinux联盟
/dev/null
���例不�建立�定�,�例中有比�演算式,�比�寄信人是否�spammer@some.where ,若是��行後��理,�理方式是�信�到黑洞�,�信���底消失!
底下逐一�明�法��中每���的意�:
| 旗� | �定比�生效的方式 |
| A | �行and 比�,�上一次比�(�有A 或a 旗�的那一次)比�成功的情形下才�行此次比� |
| a | 同上,但�先��前一次的�理�作是否�理成功,若是才�行此次比� |
| B | 比�信件�文是否符合�件 |
| b | �行�理�作�,例如:�寄�某人或�存到�案,是否要包含信件�文,��要包含 |
| c | 在�理比�之前,是否先��一份,�比���的那一份,若比�成功�,���理��信,原始信件仍����行後�比�,或比�完�後由MDA 分信�收信人 |
| D | 指定比��要�分大小�,��值是不�分 |
| E | �行else 比�,�上一次比�(�有E 或e 旗�的那一次)比�不成功的情形下才�行此次比� |
| e | 同上,但�先��前一次的�理�作是否�理失�,若是才�行此次比� |
| f | 指定�| 符���管道而非OR |
| H | 比�信件��是否符合�件 |
| h | �行�理�作�,例如:�寄�某人或�存到�案,是否要包含信件��,��要包含 |
| w | 要求procmail �行下一�比�之前,先等待�理�作�理完�,通常是用於呼叫外��理程式的情形下,�是�了避免�外�程式未�行完��被反覆��,造成IO �突 |
| 特殊比�字元 | �用於正�表�式�法�理的比��合 |
| ! | 表示要做反向比�,比�不符合�件的信件 |
| < | 比�信件大小是否小於指定Bytes � |
| > | 比�信件大小是否大於指定Bytes � |
| 正�表示法 | �自行�考regular expression �明文件 |
| 特殊�理字元 | �定如何�行信件的�理,如果省略此字元,意思是要�存到一��案� |
| ! | �寄�某�指定的信箱 |
| $ | �寄�某��先�定好的��其所指定的信箱 |
| | | �交�其他程式�理(任何可�行的程式,例如:shell script、perl、二�位�案......等等) |
| {} | �行巢��理,�信件��被保留����行後�比�,��用法可�考底下HTML 剖析�例的�容 |
| �理�的 | �名、信箱或外�程式的名� |
formail �件�生器
��工具是用�重新改�信件��,或是用��生信件�文,procmail �合formail 就可以用�寄�警告信、通知信或是用���自�回信�制,由於�用方式稍嫌��,在此�程中不介�,�有�趣的��自行研究。
��病毒信�例
早期利用病毒信的特徵,可以��一些��的病毒,�著病毒不�的衍生�化,病毒信已��有一定的特徵可供比�,��候就只能透�附加�案的延伸�名�判��附加�案是否可以�行,如果可以�行就�有�播病毒的危�性,一律�它��,��的�案包含:wsh、bat、exe、pif......等,但曾�何��著微�MIME ��的漏洞出�後,有�多可�行�化身��形�以躲避防毒��的��,而此��案��被微�的MIME 剖析器���行,�致病毒��。除此之外,更多的病毒�案�藏在HTML ��中,在�端伺�而�,等待使用者���件�自�下��行,��的病毒需要能剖析HTML �法的�信程式才能��,幸�的是有�公益��已�利用procmail 的�制�出可以剖析HTML 的�信演算法,推�大家安�使用,�站台�址� http://www.impsec.org/ ,目前最新的版本�1.318 �按�� procmail-sanitizer.tar.gz 下�。(下�石牌�小 PROCMAILRC)
�用procmail 日�
�在/etc/procmailrc ��加入
LOGFILE="/var/log/procmail"
接著自己用touch 指令建立��案,��就��用日�功能,�於除�很有�助!
�名��寄群�
sendmail �查信件的收信人�位,���收信人的�域名��本��域�就��始�行分信,所�本��域指的就是定�在/etc/mail/local-host-names 中的�域名�(�版本使用sendmail.cw ),分信之前�先�查aliases �名�,看看是否有定���信箱,所���信箱就是指不是�使用者使用的信箱,�些信箱多半是有特殊用途,例如:系�管理用的、�寄群�用的......等等。也有人把aliases �名�拿�作使用者全名的��,例如:Shane.Lee ��成shane ,�然�也是一��用的方式,但按照sendmail ��的原意,��是使用genericstable 去做�件事比�正�,�者不同的地方在於:genericstable 在ruleset 2 �行收信人�位改��就直接�理了,不�等到分信�才�理,而且按照aliases 的��必�要能�入include 、呼叫�行script ,�且允�使用���名,�都�降低�理效能,如果只是��要作全名��使用aliases 比�不划算!
�安�sendmail �系��自��我��生aliases �名�,同��把系�上的服������root ,�是因�服���是��用程式使用的,��用程式�行�程中遇到某些突����,或�路上的其他管理人�需要����用程式的管理人�,有�候��信��些��,透�aliases �名�的作用,�些信件就�分到root 的�人信箱以免�人�理。但在���境中,�了避免root 密�在�路上��遭到�客�取,不管是透�outlook express 或是透�web 介面,我�都不�去收取root 的信件,而��在aliases �名�中�root 的信件分���管理��器的使用者,而且�了避免�客查出�是真正的管理�,���案的�限���成600 。���名�的�容��如下:
| #TkfLinux联盟 # Aliases in this file will NOT be expanded in the header fromTkfLinux联盟 # Mail, but WILL be visible over networks or from /bin/mail.TkfLinux联盟 #TkfLinux联盟 # >>>>>>>>>> The program "newaliases" must be run afterTkfLinux联盟 # >> NOTE >> this file is updated for any changes toTkfLinux联盟 # >>>>>>>>>> show through to sendmail.TkfLinux联盟 #TkfLinux联盟 # Basic system aliases -- these MUST be present.TkfLinux联盟 mailer-daemon: postmasterTkfLinux联盟 postmaster: rootTkfLinux联盟 TkfLinux联盟 # General redirections for pseudo accounts.TkfLinux联盟 bin: root TkfLinux联盟 daemon: root TkfLinux联盟 ============中�省略===================TkfLinux联盟 TkfLinux联盟 # trap decode to catch security attacksTkfLinux联盟 decode: root TkfLinux联盟 TkfLinux联盟 # Person who should get root's mailTkfLinux联盟 #root: marc <==�去掉Remark �改成自己的�� |
aliases 除了用����信箱���真�的��外,�可以�信件�存在�份�案�,��做的目的是希望信件被收走後,能留一份在伺服器上�查,例如我�可以把上例解��的那一行改�:
root: shane,/var/log/backup-mail
除此之外,aliases 也可以用��寄信件,例如下面的�定��信件�寄出去,以便�定shane 一定收得到:
root: shane,shane@ms8.hinet.net,shane@tmtc.edu.tw,shane@tp.edu.tw
�要�寄的信箱很多�,全部�成一行�真是困�,譬如想寄同一封信�全校所有老�,但不想一�一��入收信人地址,透�aliases 的�助,我�只需要建立一�teachers ��信箱,接著��一�空的�文字�,把全校老�的信箱地址打�去,一�地址一行,最後得留一行空白行。�案做好後,我�就可以��名�定改成:
teachers: ":include:/etc/mail/all_teachers.txt"
利用��方式,想同�寄信�一群人再容易不�了。但是,��寄群�很多而且成�相互重��,想要���寄清�的正�性就�很痛苦,好比除了全校教�外,我�另外�有各�年教�、科任教�、行政人�、主任等多�清�,�期末老�退休或�期初新�同仁加入,��多清�要同��查修改不能�漏,�工作可累了!�好aliases 提供了���照的功能,�我�可以�清�分批建立,�以�照方式建立�集,工作就��多了,例如:
headship: lee (校�) TkfLinux联盟
director: suelan,wang,............(主任)TkfLinux联盟
manager: maggy,young,.......... (��)TkfLinux联盟
grade1: jack,mary,helen,........ (一年�老�)TkfLinux联盟
grade2: vicky,johnny,,,,,,,...... (二年�老�)TkfLinux联盟
..........................................................(省略)TkfLinux联盟
course: sean,marc,.................(科任)TkfLinux联盟
administer: headship,director,manager (行政人�)TkfLinux联盟
teachers: administer,grade1,grade2,grade3,grade4,grade5,grade6,course (全校老�)
在更��的�用中,aliases �可以�合外�的程式提供更��的服�,例如:�件��、自�回信系�(auto reply)、��群�(mailing list)......等。例如:
check: "| perl /usr/libexec/subscribe.cgi"
如果您想建立��群�但不想花精神��它,建�您安�smart list ,��套件�然�春但是非常�易好用,它包含:信件��、取消��、��文件索引�分、查���清���容、自�清除�送有��之��者......等等。如果您想�使用者都能建立自己的��群�,majordomo 是第一��,����不但使用者�多,相���分析工具也已���得很完善,�些套件在rpm 安���自�修改aliases ��,需要手�修改的情�不多,因此不在此��。
�定好aliases 之後,必�以newaliases 指令�����案以利sendmail �取�用,由於aliases 是�用��,因此�不需要重新��sendmail 伺服器,它�立即生效。
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论linux系统管理员讲义(2)
周五家电 永乐大低价 还是晚下手为强
linux系统管理员讲义(6)
温习压缩与解压缩命令Tar
�案的���打包
Rhel AS4 server sendmail配置,带SMTP认证
命令Man解释:mkfs:建立Linux文件系统
rsync �料同步
�易 Mail Server 架� -- Postfix �定
工作日志
1、本文系本网编辑转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
2、如涉及作品内容、版权和其它问题,请在30日内与本网联系,我们将在第一时间删除内容
linux系统管理员讲义(4)
linux各种服务器的架设
MailScanner 安��置(中文版) ― mailscanner.conf
推荐三款linux克隆,备份软件
�易 vsftpd 伺服器�定
vim set 功能�定
Linux ���身份管理二
apache参数说明
crontab命令
防火��ShoreWall使用方法
中糖集团收购酒鬼酒事宜收官
电风扇“鸡肋”变“鸡腿”上演热销戏
fuse-convmvfs 0.2 released!
如何进入到嵌入式系统开发行业
洗衣机能效标识贴标启动双桶无一级品
ST啤酒花:关于重组进展情况公告
linux内核配置系统分析
青岛啤酒营销管理总部崔虹在答辩
西门子冰洗在华06年可能首次出现亏损