Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

用Linux防火墙构建DMZ

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]


    当数据从连接外网的eth0流出时,要将来自内网的数据包的源地址改成Internet上的真实IP,这样才能和外网的主机进行通信。“[NAT的真实IP]”表示分配给NAT用户的真实IP,有几个就写几个,以空格分开,但至少要写一个。

    2.内网可以访问DMZ
    对应的防火墙脚本片段如下:
    /sbin/iptables -A FORWARD -s [内网地址] -d [DMZ地址] -i eth2 -j ACCEPT
    以上命令允许所有来自内网、目的地为DMZ的数据包通过。

    3.外网不能访问内网
    对应的防火墙脚本片段如下:
    /sbin/iptables -t nat -A PREROUTING -s [外网地址] -d [内网地址] -i eth0 -j DROP
    以上命令将来自外网、去往内网的数据包全部丢弃。

    4.外网可以访问DMZ
    为了保护DMZ中的服务器,外网对DMZ的访问也要加以限制。通常的思路是,只允许外网访问DMZ中服务器所提供的特定服务,比如HTTP。
    对应的防火墙脚本片段如下:
    /sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -d [分配给HTTP服务器的Internet上的真实IP] -s [外网地址] -i eth0 -j DNAT --to [HTTP服务器的实际IP]
    /sbin/iptables -A FORWARD -p tcp -s [外网地址] -d [HTTP服务器的实际IP] -i eth0 --dport 80 -j ACCEPT
    /sbin/iptables -A FORWARD -p tcp -d [外网地址] -s [HTTP服务器的实际IP] -i eth1 --sport 80 ! --syn -j ACCEPT
    /sbin/iptables -t nat -A PREROUTING -s [外网地址] -d [DMZ地址] -i eth0 -j DROP

    该防火墙脚本片段将开放HTTP服务,使得只有访问DMZ中HTTP服务的数据包才能通过防火墙。

    5.DMZ不能访问内网
    对应的防火墙脚本片段如下:
    /sbin/iptables -A FORWARD -s [DMZ地址] -d [内网地址] -i eth1 -j DROP
    以上命令将丢弃所有从DMZ到内网的数据包。

    6.DMZ不能访问外网
    对应的防火墙脚本片段如下:
    /sbin/iptables -t nat -A POSTROUTING -p tcp --dport 25 -d [外网地址] -s [邮件服务器的IP] -o eth0 -j SNAT --to [分配给SMTP服务器的Internet上的真实IP]
    /sbin/iptables -A FORWARD -p tcp -s [邮件服务器的IP] -d [外网地址] -i eth1 --dport 25 -j ACCEPT
    /sbin/iptables -A FORWARD -p tcp -d [邮件服务器的IP] -s [外网地址] -i eth0--sport 25 ! --syn -j ACCEPT

    以上命令先允许DMZ中邮件服务器连接外网的SMTP服务端口(25),然后禁止其它从DMZ发往外网的数据包。

    针对以上基本策略例举了实现它们的基本规则。在实际应用中,需要根据具体情况进行设置。只要设置得当,Linux也能成为很好的防火墙。需要补充的是,无论何种防火墙都只能提供有限的保护。设置好防火墙不等于网络就是安全的,关键在于综合运用各种安全手段。


 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:多一点不如少一点   下一篇:保护Linux下的Apache网站

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号