分享

笔记: Sendmail安装使用

 喜欢雨路的火焰狼 2006-11-05
1,根据book,先安装procmail
make LOCKINGTEST=/tmp install &&
make install-suid
中间询问what is your mailer called?  我直接回车了
完成后没有/etc/procmailrc文件,先不管了
2,安装sendmail了
建立smmsp组和用户,
建立site.config.m4,连接进来tcpwrapper,openssl,sasl,openldap
sh Build
出错:
map.c: In function `db_map_open‘:
> map.c:1620: warning: passing arg 2 of pointer to function from incompatible pointer typemap.c: In function `db_map_open‘:
搜索google,linuxfromscratch上有,但我打不开,代理都不好用,郁闷啊
找到了使用google快照功能的方法,在search?q=cache 中间加入一个字符,比如&,把search? 和 q=cache分开,这个好啊
Yeah,我通过上面提到的方法,使用了快照,还可以通过直接在搜索栏里 cache:url地址 的方法直接访问cache
通过查看lfs的邮件列表,知道是因为db太新了的缘故,db-open函数变化了,可以直接修改,我找到map.c的1620页,再第四个参数后加了一个NULL,编译就过去了
新错误:一大堆啊,真郁闷啊,看来是我下载的sendmail-8.10.0的版本太低了,得去找BOOK上的8.13.4或者更新的
这里主要学到了使用google的cache功能
搜索天网,通过wget直接下回来了,这回的sh Build就顺利了
cd ../cf/cf
cp generic-linux.mc sendmail.mc && sh Build sendmail.cf  按照BOOK安装完
配制:
echo $(hostname) > /etc/mail/local-host-names
cat > /etc/mail/aliases << "EOF"
postmaster: root
MAILER-DAEMON: root
EOF
newaliases -v
往后不直接边界sendmail.cf,而是通过sendmail.mc生成
m4 m4/cf.m4 sendmail.mc > sendmail.cf

启动
通过sendmail -v -bi 调试启动
可以看到
WARNING: local host name () is not qualified; see cf/README: WHO AM I?
/etc/mail/aliases: 42 aliases, longest 10 bytes, 432 bytes total
成功应该是成功了,再试daemon模式
sendmail -bd -q30m  开始很久没反应,还以为是死了,原来是要过比较久
 telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is ‘^]‘.
220 mylinux ESMTP Sendmail 8.13.4/8.13.4; Wed, 1 Nov 2006 06:25:05 +0800
ehlo test(我输入的命令)
250-mylinux Hello mylinux [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP
quit(退出命令)
221 2.0.0 mylinux closing connection
Connection closed by foreign host.
成功!

配置sasl认证
重新编译,在上回configure参数的基础上,顺便加上--enable-ldapdb(在openLDAP的安装中说过),当然加上这里需要的--enable-login
但提示:
checking for ldap_initialize in -lldap... (cached) no
configure: error: Cannot enable LDAPDB plugin: Could not locate OpenLDAP
我用--with-ldap=/usr/lib    还是不行,只好把--enable-ldapdb去掉了
OK,进入saslauthd目录编译testsaslauthd,然后拷贝testauthd到/usr/sbin目录下去
知道sasl的配置文件是/usr/lib/sasl2/Appname.conf
echo ‘pwcheck_method: saslauthd‘ > Sendmail.conf
验证saslauthd
saslauthd -a shadow
 testsaslauthd -u blfs -p blfs
0: OK "Success."
验证OK


使用sendmail发信
telnet 127.0.0.1 25
mail From: mylinux@ip      这里,开始在@后面开始我怎么写都说无法解析域名,使用ip地址也不行
                           然后我quit退出,ping也居然说不知道的主机,查看我的resolve.conf,一看才知道我的nameserver只设了我自己127.0.0.1
                           再添上我们的DNS服务器,这回可以通了吧,再试,一下子没反应,等我把后面命令输完了才告诉我说还是无法解析,晕
                           我启动我自己的DNS服务器,使用mylinx@mylinux.com,还是不行,一直到。。。
mail From: mylinux@www.mylinux.com    成功得到250,sender OK
rcpt To:myemail     250 Recipient ok
data                 354 Enter mail,end with “.”on a line itself
hi,this is my test
i am happy
.
quit
写到这里,我查看了我邮箱,Yeah,收到了,和和,再测试了向163和21cn发,也收到了
我试验了我们学校的smtp,它用的是sendmail-8.12.8的版本,并且也是不用验证的,可以发匿名信件
而163的却不行,220 163.com Anti-spam GT for Coremail System (163com[20050206])
21cn的也是:
220 aisp2-smtp antispam proxy server is ready
helo test
250 21cn.com
mail from: mylinux@scut.edu.cn
553 mylinux@scut.edu.cn: Sender address rejected: not logged in
help
502 Error: command not implemented
它们商业用途的安全多了啊
另外,我在我windows里发不了,rcpt To: root@www.mylinux.com
550 5.7.1 root@www.mylinux.com... Relaying denied. IP name possibly forged [windows ip]


配置sendmail+sasl,还是根据http://www./bbs/showthread.php?t=103163
检查我的/etc/mail下的sendmail.cf和sendmail.mc,很少信息
cd /etc/mail
vi cf/sendmail.mc
添加:
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN‘)dnl
define(`confAUTH_MECHANISMS‘, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN‘)dnl
然后通过上面介绍的命令
m4 m4/cf.m4 sendmail.mc > sendmail.cf   更新
重启sendmail服务,登陆ehlo
ehlo localhost
250-mylinux Hello mylinux [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
250-DELIVERBY
250 HELP
出现了LOGIN PLAIN认证方式
然后使用
auth login
auth login
334 VXNlcm5hbWU6
amVwaGU=
501 5.5.4 cannot decode AUTH parameter amVwaGU=
这里不知道怎么通过验证,找到http://www./forum/gshowflat.php?Cat=&Board=dns&Number=164089&page=0&view=expanded&sb=6&o=all
先在系统里建立jephe用户,知道jephe转化成base64格式是 amVwaGU=
但我试图改变jephe的密码也为jephe时,我的passwd出错了
passwd jephe
passwd: Critical error - immediate abort   郁闷啊
google说有时候磁盘满了会出现这样的情况,但我的情况应该不是这样的
找到了,原来是我的/etc/pam.d/passwd中应用cracklib造成的,我依照BOOK中不用cracklib的情况修改 ,可以了
重新启动sendmail
saslauthd -a shadow
testsaslauthd -u jephe -p jephe  成功
再在sendmail中验证,成功!
auth login
334 VXNlcm5hbWU6
amVwaGU=
334 UGFzc3dvcmQ6
amVwaGU=
235 2.0.0 OK Authenticated
通过验证就可以通过我的windows发信了

查看http://72.14.203.104/search?hl=zh-CN&newwindow=1&q=cache%3Ahttp%3A%2F%2Fwww.feep.net%2Fsendmail%2Ftutorial%2Fintro%2FMUA-MTA-MDA.html&lr=
明确MUA,MTA,MDA的作用和区别
查看http://72.14.203.104/search?hl=zh-CN&newwindow=1&q=cache%3Ahttp%3A%2F%2Fwww.sendmail.org%2F~ca%2Femail%2Fauth.html&lr=
明确sendmail的验证方式
在outlook中设置smtp的地址为我mylinux地址,发送服务器要求身份验证,填上jephe,jephe,成功发送邮件!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多