设为首页 收藏本站
查看: 1201|回复: 0

[经验分享] dhcp sendmail tcpwrapper

[复制链接]

尚未签到

发表于 2015-11-25 10:29:24 | 显示全部楼层 |阅读模式
  yum install dhcp -y

拷贝模板文件到/etc/下
cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf

ddns-update-style interim;
ignore client-updates;
subnet 10.1.1.0 netmask 255.255.255.0 {
        option routers                  10.1.1.1;
        option subnet-mask              255.255.255.0;
        option nis-domain               "cluster.com";
        option domain-name              "upl.com";
        option domain-name-servers      10.1.1.1;
        option time-offset              -18000; # Eastern Standard Time
        range dynamic-bootp 10.1.1.88 10.1.1.88;
        default-lease-time 21600;
        max-lease-time 43200;
        # we want the nameserver to appear at a fixed address
        host boss {
                hardware ethernet 00:27:19:96:19:B5;
                fixed-address 10.1.1.88;
        }
        host sb {
                hardware ethernet 00:27:19:96:19:B5;
                fixed-address 10.1.1.244;
        }
}


service dhcpd restart


客户端动态获取IP
dhclient eth0



===================================================

Sendmail

    协议:tcp/smtp
    端口:25

软件:
sendmail.i386
sendmail-cf.i386
sendmail-devel.i386
sendmail-doc.i386
m4.i386
dovecot  <---MDA
promail  <---负责把邮件分发到本地不同的帐号

# yum install sendmail* m4 procmail dovecot -y        


配置目录 /etc/mail/
sendmail.cf
sendmail.mc
access
virtusertable
local-host-names
/etc/aliases


准备:
    主机名FQDN
    时间同步
    关闭selinux,iptables

    在DNS上设定正确的MX记录
@       IN      NS      squid.upl.com.
squid   IN      A       10.1.1.21
@       IN      MX 0    mail.upl.com.
mail    IN      CNAME   squid

    验证MX记录的正确性
[iyunv@dns 06]# nslookup
> set type=mx
> upl.com
Server:         10.1.1.21
Address:        10.1.1.21#53

upl.com mail exchanger = 0 mail.upl.com.


例子1:直接启动,验证服务器工作正常
# netstat -ntlp | grep :25

[iyunv@squid mail]# telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 squid.upl.com ESMTP Sendmail 8.13.8/8.13.8; Fri, 23 Jul 2010 11:06:59 +0800
helo ddddd
250 squid.upl.com Hello localhost.localdomain [127.0.0.1], pleased to meet you
mail from:10000@qq.com
250 2.1.0 10000@qq.com... Sender ok
rcpt to:tom@squid.upl.com
250 2.1.5 tom@squid.upl.com... Recipient ok
data
354 Enter mail, end with &quot;.&quot; on a line by itself
wel to upl
.
250 2.0.0 o6N36x3O004704 Message accepted for delivery
quit
221 2.0.0 squid.upl.com closing connection
Connection closed by foreign host.

查看邮件
cat /var/mail/tom


例子2:允许本地网络连接上来发送邮件
# vim 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


# m4 sendmail.mc > sendmail.cf

# netstat -ntlp | grep :25

使用别的机器连接上来测试
# telnet 10.1.1.21 25

例子3:让邮件服务器支持短域名 ,支持 xxx@upl.com
# vim local-host-names
upl.com
squid.upl.com

测试
rcpt to:tom@upl.com
250 2.1.5 tom@upl.com... Recipient ok


例子4:邮件别名,群发等
# vim /etc/aliases
it: tom,bean  群发
mary: tom 转发

# newaliases


测试
# cat /etc/fstab | mail -s &quot;group mail&quot; it@upl.com
# mail -s &quot;group mail&quot; it@upl.com < /etc/inittab

# cat /etc/hosts | sendmail -v mary@upl.com


例子5:支持发送外部邮件

必须打开中继功能: 把邮件发送到外部网络(MTA绑定的域名跟收件人的域名不一样)

[iyunv@dns 06]# telnet 10.1.1.21 25
Trying 10.1.1.21...
Connected to squid.upl.com (10.1.1.21).
Escape character is '^]'.
220 squid.upl.com ESMTP Sendmail 8.13.8/8.13.8; Fri, 23 Jul 2010 13:49:12 +0800
mail from:10000@qq.com
250 2.1.0 10000@qq.com... Sender ok
rcpt to:l.t.b@126.com
550 5.7.1 l.t.b@126.com... Relaying denied

中继拒绝:默认是不允许其他IP登录邮件服务器发送外部邮件


实现允许内部某个网段发送外部邮件

# vim /etc/mail/access
Connect:10.1.1.19                       REJCET
Connect:10.1.1                          RELAY
TO:qq.com                               REJECT
FROM:gmail.com                          REJECT

# makemap  hash /etc/mail/access.db < /etc/mail/access


[iyunv@dns 06]# telnet 10.1.1.21 25
Trying 10.1.1.21...
Connected to squid.upl.com (10.1.1.21).
Escape character is '^]'.
220 squid.upl.com ESMTP Sendmail 8.13.8/8.13.8; Fri, 23 Jul 2010 13:56:51 +0800
mail from:10000@gmail.com
550 5.7.1 10000@gmail.com... Access denied
mail from:admin@qq.com
250 2.1.0 admin@qq.com... Sender ok
rcpt to:10000@qq.com
550 5.2.1 10000@qq.com... Mailbox disabled for this recipient
rcpt to:l.t.b@126.com
250 2.1.5 l.t.b@126.com... Recipient ok
data
354 Enter mail, end with &quot;.&quot; on a line by itself
just for test
.
250 2.0.0 o6N5up32005376 Message accepted for delivery
quit
221 2.0.0 squid.upl.com closing connection
Connection closed by foreign host.



例子6:支持smtp验证

发送邮件必须验证帐号和密码
只要服务器打开了smtp验证之后,access就会被忽略

# vim sendmail.mc
搜索MD5

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

搜索submission
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl

# m4 sendmail.mc > sendmail.cf

确定是否支持验证
[iyunv@dns 06]# telnet 10.1.1.21 25
Trying 10.1.1.21...
Connected to squid.upl.com (10.1.1.21).
Escape character is '^]'.
220 squid.upl.com ESMTP Sendmail 8.13.8/8.13.8; Fri, 23 Jul 2010 14:05:30 +0800
ehlo squid.upl.com  《----
250-squid.upl.com Hello dns.upl.com [10.1.1.20], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH LOGIN PLAIN  《----
250-DELIVERBY
250 HELP

2、把验证需要的软件包都安装

# yum install cyrus-* -y

3、重启所有相关的服务

service sendmail restart
service saslauthd restart


测试
[iyunv@dns 06]# telnet 10.1.1.21 25
Trying 10.1.1.21...
Connected to squid.upl.com (10.1.1.21).
Escape character is '^]'.
220 squid.upl.com ESMTP Sendmail 8.13.8/8.13.8; Fri, 23 Jul 2010 14:12:30 +0800
auth login
334 VXNlcm5hbWU6
dG9t   《---编码之后的用户名
334 UGFzc3dvcmQ6
MTIz  《---编码之后的密码
235 2.0.0 OK Authenticated
mail from:1000@qq.com
250 2.1.0 1000@qq.com... Sender ok
rcpt to:l.t.b@126.com
250 2.1.5 l.t.b@126.com... Recipient ok
data
354 Enter mail, end with &quot;.&quot; on a line by itself
mail comes again
.
250 2.0.0 o6N6CUg9005754 Message accepted for delivery
quit
221 2.0.0 squid.upl.com closing connection
Connection closed by foreign host.

使用foxmail验证发送需要密码,验证接受邮件

接受邮件需要存在MDA

service dovecot restart  <---打开他才允许MUA连接上来收取邮件
chkconfig dovecot on

===============================
Xinetd  (扩展的网络服务守护进程)

    1、提高系统性能,提高服务性能
    2、增强访问控制
    3、增加了额外的日志记录

配置目录
    /etc/xinetd.d/
    /etc/xinetd.conf

针对某个托管给xinetd的服务独立配置文件
# vim /etc/xinetd.d/tftp
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot
        disable                 = yes
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}



例子1:把vsftp托管给xinetd
# vim /etc/xinetd.d/vsftp
service ftp
{
        socket_type             = stream
        protocol                = tcp
        wait                    = no
        user                    = root
        server                  = /usr/sbin/vsftpd
        disable                 = no
}

修改vsftp的配置

# listen=YES  <--注释掉

# service vsftpd stop
# service xinetd restart

验证:
# netstat -ntlp | grep :21
tcp    0    0 0.0.0.0:21     0.0.0.0:*    LISTEN      6264/xinetd

登录之前ps -ef | grep vsftpd
登录之后ps -ef | grep vsftpd
退出登录ps -ef | grep vsftpd

例子2:把sshd托管给xinetd

# vim sshd
service ssh
{
        socket_type             = stream
        protocol                = tcp
        wait                    = no
        user                    = root
        server                  = /usr/sbin/sshd
        server_args             = -i
        disable                 = no
        per_source              = 2
        cps                     = 100 2 <--媚笑最多处理100个请求,否则停止服务2秒
        no_access               = 10.1.1.251
        only_from               = 10.1.1.0/24
        access_times            = 16:00-23:00
        instances               = 3
        flags                   = IPv4
}

# service sshd stop
           

===============================
tcpwrapper

client <----->  tcpwrapper <----> xinetd <----> vsftpd
client <----->  tcpwrapper <---->  vsftpd

[iyunv@squid ~]# ldd /usr/sbin/xinetd | grep wrap
        libwrap.so.0 => /lib/libwrap.so.0 (0x00e95000)
[iyunv@squid ~]# ldd /usr/sbin/vsftpd | grep  wrap
        libwrap.so.0 => /lib/libwrap.so.0 (0x00781000)
[iyunv@squid ~]# ldd /usr/sbin/sshd | grep  wrap
        libwrap.so.0 => /lib/libwrap.so.0 (0x007c9000)

配置文件:
    /etc/hosts.allow
    /etc/hosts.deny

规则读取以及匹配算法:
    首先读取allow文件,如果找到匹配的规则,就停止继续往下读取规则
    如果allow找不到规则,就去找deny规则,如果找到就拒绝
    如果找不到匹配规则,就默认允许
   


例子1:拒绝10.1.1.20访问vsftpd
# vim /etc/hosts.deny  <--马上生效
vsftpd: 10.1.1.20

例子2:只是禁止10.1.1.0/24网段里的主机访问,但是10.1.1.20可以访问

方法1:

# vim /etc/hosts.allow
vsftpd: 10.1.1.20


# vim /etc/hosts.deny
vsftpd: 10.1.1.0/255.255.255.0



方法2:
# vim /etc/hosts.deny
vsftpd: 10.1.1.0/255.255.255.0 EXCEPT 10.1.1.20

方法3:
# vim /etc/hosts.allow
vsftpd: all EXCEPT 10.1.1.0/255.255.255.0 EXCEPT 10.1.1.20
允许所有IP,但除了10.1.1.1~10.1.1.19, 10.1.1.21~10.1.1.254
# vim /etc/hosts.deny  <---拒绝所有人访问,别忘记了
vsftpd:all

例子3: 拒绝所有人访问,但是允许10.1.1.0/24访问,但不允许10.1.1.20


写两个文件:

# vim /etc/hosts.allow
vsftpd: 10.1.1.0/255.255.255.0 EXCEPT 10.1.1.20


# vim /etc/hosts.deny
vsftpd: all

方法2:
# vim /etc/hosts.deny
vsftpd: all EXCEPT 10.1.1.0/255.255.255.0 EXCEPT 10.1.1.20

拒绝所有IP,但除了10.1.1.1~10.1.1.19, 10.1.1.21~10.1.1.254

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-143316-1-1.html 上篇帖子: sendmail使用中的一些问题 下篇帖子: 终于成功配置了sendmail为本地用户转发邮件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表