iptables简单配置DMZ

要求

  1. 内网可以访问外网
  2. 内网可以访问DMZ区
  3. 外网不能访问内网
  4. 外网能访问DMZ区的服务
  5. DMZ区不能访问内网
  6. DMZ区不能主动访问外网

拓扑

iptables_dmz_topology.png

各主机IP信息

内网网段为:192.168.1.0/24
DMZ区网段为:172.16.1.0/24

iptables_dmz_ip_info.png

iptables的策略

新建iptables.sh,内容如下:

#!/bin/bash

iptables –F #清空此表中的规则
iptables –X #清空此表中的自定义规则
iptables –Z #清空此表中的计数器为0
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

#添加必要的模块
modprobe ip_nat_ftp
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
#开启转发功能
echo "1" > /proc/sys/net/ipv4/ip_forward
#********************************************************************
#PREROUTING:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 172.16.1.1
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 21 -j DNAT --to-destination 172.16.1.1
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 10000:10100 -j DNAT --to-destination 172.16.1.1
iptables -t nat -A PREROUTING -i eth2 -p tcp -d 172.16.1.1 --dport 80 -j DNAT --to-destination 172.16.1.1
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.144
#********************************************************************
#FORWARD:
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i eth2 -o eth0 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -m state --state NEW -j ACCEPT
#********************************************************************
#INPUT:
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp –m multiport --dports 20,21 -j ACCEPT
iptables -A INPUT -i eth2 -s 192.168.1.0/24 -j ACCEPT
#********************************************************************
#OUTPUT:
iptables -A OUTPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --dport 20 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --dport 21 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --dport 10000:10100 -m state --state NEW -j ACCEPT
#********************************************************************
#POSTROUTING:
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j SNAT --to-source 192.168.2.144
iptables -t nat -A POSTROUTING -o eth0 -s 172.16.1.0/24 -j SNAT --to-source 192.168.2.144
#********************************************************************
service iptables save
service iptables restart

测试

  • 内网可以访问外网


    iptables_dmz_lan_to_internet.png
  • 内网可以访问DMZ


    iptables_dmz_lan_to_dmz_www.png
iptables_dmz_lan_to_dmz_ftp.png
  • 外网不能访问内网


    iptables_dmz_internet_not_to_lan.png
  • 外网可以访问DMZ


    iptables_dmz_internet_to_dmz_www.png
iptables_dmz_internet_to_dmz_ftp.png
  • DMZ不能访问内网


    iptables_dmz_dmz_not_to_lan.png
  • DMZ不能访问外网


    iptables_dmz_dmz_not_to_internet.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iptables简介 netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防...
    yshenhn阅读 113,472评论 2 78
  • netfileter:防火墙内核态ip tables:防火墙用户态(管理防火墙规则) iptables的表和链表包...
    老夫刘某阅读 3,593评论 0 0
  • 目前市面上比较常见的有3、4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代理层的网关。 三层的防火墙会在...
    辉耀辉耀阅读 7,552评论 0 2
  • 秋天,带着丝丝细雨缓缓走来。清浅的微风轻轻拂过脸颊,水面上激起层层涟漪。时间在指缝中缓缓溜走,我们每个人都是人生中...
    知更先生阅读 2,523评论 2 4
  • 今天要多写几个文案了 姐姐要远离故乡了
    南音烟雨阅读 2,953评论 0 1

友情链接更多精彩内容