iptables 防火墙(下)

iptables 防火墙(下)

1. 常见的隐含匹配条件:

1.1 端口匹配: --sport 源端口、--dport 目的端口

image_1cnasuoka1opslaq11pgjgq5mb16.png-24.3kB

1.2 TCP标记匹配: -tcp-flags 检查范围被设置的标记

image_1cnatj9n71k9a1b5d2f1qrj1ovc1j.png-25.5kB

1.3 ICMP类型匹配: --icmp-type ICMP类型常见的icmp类型

  • 8 Echo request--->回显请求( Ping请求)
  • 8 0 Echo Reply--->回显应答(Ping 应答)
  • 8 3 错误回显

image_1cnatsg3r1oik16g41ij97vbc5a2g.png-20.7kB

2. 常用的显示匹配条件:

2.1 多端口匹配:

  • -m multiport --sports源端口列表、
  • -m multiport --dports目的端口列表

image_1cnavbmdmtqs14ip17s1fgvlpj3d.png-16.8kB

2.2 IP范围匹配:

-m iprange --src-range IP范围

image_1cnavk7v22o71o31e9418pi8d24d.png-18.1kB

2.3 MAC地址匹配:

-m mac --mac-source MAC地址

image_1cnavqpk8eu5177d14lk1cnie2o4q.png-16.6kB

2.4 状态匹配: -m state --state 连接状态

  • 常见的连接状态:
  • NEW: 新连接,与任何连接无关
  • ESTABLISHED: 响应请求或已建立连接的
  • RELATED: 与已连接有相关性的,如FTP数据连接

image_1cnb0dcbb154b1ibnoorgbp72aq.png-20kB

image_1cnb0eev5p5v1pkn1g876ji1fgnb7.png-160.4kB

3.SNAT策略

3.1 SNAT作用:

局域网主机共享单个公网IP地址接入Internet

3.2 SNAT策略的原理

源地址转换,Source Network Address Translation修改数据包的源地址

3.3 固定的外网IP地址

image_1cne6lggi4r41sm1o5gd6n167s9.png-18.2kB

[root@iptables02 ~]# iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -o eth1 -j SNAT --to-source 192.168.100.100

3.4 非固定外网IP地址或ADSL

image_1cne7hcm11l6r1kgf1nbe1ebr1m1im.png-17.2kB

[root@iptables02 ~]# iptables -t nat -I POSTROUTING -s 192.168.200.0/24 -o eth0 -j MASQUERADE

4. DNAT策略

4.1 DNAT 原理

在Internet环境中,通过网关服务器中正确设置DNAT策略可实现企业所注册的网站或域名必须对应公网IP地址。

4.2 DNAT转发规则1:发内网Web服务

image_1cne7s0c0g2pl12112f1kc512cc2j.png-19.1kB

[root@iptables02 ~]# iptables -t nat -A PREROUTING -i eth1 -d 192.168.100.100 -p tcp --dport 80 -j DNAT --to-destination 192.168.200.99

4.3 (2) DNAT转换规则2:发布时修改目标端口

image_1cne85k361jin1vue1fdl13kj1ru85j.png-20.5kB

[root@iptables02 ~]# iptables -t nat -A PREROUTING -i eth1 -d 192.168.100.100 -p tcp --dport 80 -j DNAT --to-destination 192.168.200.99:8080

5. 项目实战

项目要求:三台主机,要求其中部署Nginx(iptables01),另外一台可以查看到网页内容
注:主机2与主机3均无网关

5.1 部署环境

主机名 主机IP(1) 主机IP(2) 网卡模式(1) 网卡模式(2) 主机网关
iptables01 192.168.200.99 NET8 192.168.200.100
iptables02 192.168.200.100 192.168.100.100 NET8 NET1(仅主机)
iptables03 192.168.100.110 NET8

5.2 部署网卡配置文件

5.2.1 iptables01的网卡配置文件

[root@iptables01 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@iptables01 network-scripts]# cat ifcfg-eth0 
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.200.99     #本主机的IP
NETMASK=255.255.255.0
GATEWAY=192.168.200.100   #本主机的网关,iptables02第一个网卡的IP

5.2.2 iptables02的网卡配置文件

[root@iptables02 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@iptables02 network-scripts]# cat ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.200.100   #本主机的IP,iptables01的网关
NETMASK=255.255.255.0


[root@iptables02 network-scripts]# cat ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.100.100   #本主机的IP,iptables03的网关
NETMASK=255.255.255.0

5.2.3 iptables03的网卡配置文件

[root@iptables03 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@iptables03 network-scripts]# cat ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.100.110   #本主机的IP
NETMASK=255.255.255.0

5.2.4 Nginx

Nginx部署略。。。

[root@iptables01 ~]# curl www.yangwenbo.com
192.168.200.99 welcome to yunjisuan   Nginx网页内容

5.3 修改iptables02转发的配置

[root@iptables02 /]# sed -n '7p' /etc/sysctl.conf 
net.ipv4.ip_forward = 1  #修改成1

5.4 对来往网卡IP做限制

image_1cne8caq7i5k1sodm03b4mh5b60.png-31.8kB

[root@iptables02 ~]# iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -o eth1 -j SNAT --to-source 192.168.100.100
[root@iptables02 ~]# iptables -t nat -A PREROUTING -i eth1 -d 192.168.100.100 -p tcp --dport 80 -j DNAT --to-destination 192.168.200.99:8080
[root@iptables02 ~]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  anywhere             192.168.100.100     tcp dpt:http to:192.168.200.99:8080 

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  192.168.200.0/24     anywhere            to:192.168.100.100 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

5.5 PC主机映射并查看

[root@iptables03 ~]# curl www.yangwenbo.com
192.168.200.99 welcome to yunjisuan