linux防火墙--iptables(二)

五、filter过滤和转发

a、打开内核的IP转发

    # sysctl -w net.ipv4.ip_forward=1

    或 # echo 1 > /proc/sys/net/ipv4/ip_forward


b、基本匹配条件

・通用匹配

    → 可直接使用,不依赖于其他条件或扩展

    → 包括网络协议、IP地址、网络接口等条件

・隐含匹配

    → 要求以特定的协议匹配作为前提

    → 包括端口、TCP标记、ICMP类型等条件


类别 选项 用法
通用匹配 协议匹配 -p 协议名
地址匹配 -s 源地址         -d 目标地址
接口匹配 -i 收数据网卡     -o发数据网卡
隐含匹配 端口匹配 --sport 源端口    --dsport 目标端口
ICMP类型匹配 --icmp-type  ICMP类型
TCP标记匹配 --tcp-flags检查哪些位哪些位被设置(!取反)


c、封禁IP地址、网段(这里加 -p icmp 做测试)

・主机防护,针对入站访问的源地址(源地址:发起访问的地址)

    # 在192.168.1.202上ping201

    # ping 192.168.1.201

    PING 192.168.1.201 (192.168.1.201) 56(84) bytes of data.

    64 bytes from 192.168.1.201: icmp_seq=1 ttl=64 time=1.98 ms

    64 bytes from 192.168.1.201: icmp_seq=2 ttl=64 time=0.326 ms


    # 在192.168.1.201上做策略

    # iptables -I INPUT 1 -p icmp -s 192.168.1.202 -j DROP

    # 在202上ping201

    # ping 192.168.1.201(ping不通,用ctrl+c取消)

    PING 192.168.1.201 (192.168.1.201) 56(84) bytes of data.

    --- 192.168.1.201 ping statistics ---

    3 packets transmitted, 0 received, 100% packet loss, time 2510ms


・网络防护,针对转发访问的源地址(源地址:并非真正发起访问的地址)

    # iptables -F

    # ping 192.168.1.201

    PING 192.168.1.201 (192.168.1.201) 56(84) bytes of data.

    64 bytes from 192.168.1.201: icmp_seq=1 ttl=64 time=2.16 ms

    64 bytes from 192.168.1.201: icmp_seq=2 ttl=64 time=0.250 ms


    # iptables -I FORWARD -p icmp -s 192.168.1.202 -j DROP

    # ping 192.168.1.201

    PING 192.168.1.201 (192.168.1.201) 56(84) bytes of data.

    64 bytes from 192.168.1.201: icmp_seq=1 ttl=64 time=0.408 ms

    64 bytes from 192.168.1.201: icmp_seq=2 ttl=64 time=0.341 ms

    

d、保护指定的网络服务

・限制对指定服务端口的访问

    # iptables -A INPUT -s 192.168.1.202/24 -p tcp --dport 22 -j ACCEPT

    # iptables -A INPUT -p tcp --dport 22 -j DROP

    # iptables -A INPUT ! -s 192.168.1.202/24 -p tcp --dport 20:21 -j DROP


e、禁ping相关策略处理

・允许本机ping其他主机,但是,禁止其他主机ping本机

   # iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT

   # iptables -A INPUT -p icmp ! --icmp-type echo-request -j ACCEPT


   # iptables -A INPUT ! -s 127.0.0.1 -p icmp --icmp-type echo-request -j DROP

   # iptables -A OUTPUT ! -s 127.0.0.1 -p icmp ! --icmp-type echo-request -j DROP


f、TCP标记细分控制

・禁止入站的SYN请求包(第一次握手)

    → 检查4个标记位,其中SYN位被设置

・放行入站访问的其他数据包

    # iptables -A INPUT -i eth1 -p tcp --tcp-flags SYN,RST,ACK,FIN  SYN -j DROP

    # iptables -A INPUT -i eth1 -p tcp ! --syn -j ACCEPT


六、iptables状态匹配

a、扩展匹配的用法

・基本格式

    → -m 扩展模块 --扩展条件 条件值

    example:-m mac --mac 00:0D:29:24:EC:19

b、常见的扩展匹配

类别 选项 用法
显示匹配
状态匹配 -m state --state 状态值
MAC地址匹配 -m mac --mac-source MAC地址
多端口匹配
-m multiport --sport 源端口列表
-m multiport --dport 目标端口列表
IP范围匹配
-m iprange --src-range IP1-IP2
-m iprange --dst-range IP1-IP2


c、iptables状态跟踪

・网络连接的五种状态

    → NEW,请求建立连接的包、完全陌生的包

    → ESTABLISHED,将要或已经建立连接的包

    → RELATED,与已知某个连接相关联的包

    → INVALID,无对应连接,以及连接无效的包

    → UNTRACKED,未跟踪状态的包


d、丢弃陌生的TCP响应

・比如,反射、反弹式攻击

    # iptables -A INPUT -m state --state NEW -p tcp ! --syn -j DROP

    # iptables -A FORWARD -m state --state NEW -p tcp ! --syn -j DROP


e、识别FTP数据连接

・针对FTP被动模式,数据端口未知

    # iptables -A FORWARD -d 192.168.1.201 -p tcp --dport 20:21 -j ACCEPT

    # iptables -A FORWARD -d 192.168.1.201 -p tcp --sport 20:21 -j ACCEPT


    # iptables -A FORWARD -d 192.168.1.201 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

    # iptables -A FORWARD -s 192.168.1.201 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


f、根据MAC地址封锁主机

・适用于交换网络,针对源MAC地址

    # iptables -A INPUT -m mac --mac-source 00:0B:29:25:CA:19 -j DROP


g、简化服务开启规则

・一条规则开放多个端口

    # iptables -A INPUT -p tcp -m multiport --dport 20:22,25,80,16501:16600 -j ACCEPT


h、根据IP范围封锁主机

・SSH登录的IP范围控制

    # iptables -A INPUT -p tcp --dport 22 -m iprange --src-range 192.168.2.10-192.168.2.100 -j ACCEPT

    # iptables -A INPUT -p tcp --dport 22 -s 192.168.3.0/24 -j DROP



linux防火墙--iptables(一)        http://nmore.blog.51cto.com/9008175/1437118

linux防火墙--iptables(二)        http://nmore.blog.51cto.com/9008175/1437304

linux防火墙--iptables(三)        http://nmore.blog.51cto.com/9008175/1437540






你可能感兴趣的:(linux,防火墙,iptables,转发)