iptables

发布时间 2023-03-28 15:12:31作者: 法螺話

 规则链(Chain):PREROUTING

                           FORWARD

                           POSTROUTING

                           INPUT

                           OUTPUT

规则表:raw

              nat

              filter

              mangle

 

语法

iptables的条件:
        1.协议:tcp  udp  icmp
            -p   protocol  小写的p
            -p  icmp   --icmp-type  8    ping请求报文
            -p  icmp   --icmp-type  0    ping响应报文
        2.端口号:
            -p  tcp   --sport
            -p  tcp   --dport
            -p  udp   --sport
            -p  udp   --dport
             -p tcp --sport 20:80
             iptables -A INPUT -p tcp -m multiport --dport 20,21,25,110,1250:1280 -j ACCEPT
        3.ip地址
            -s  source
            -d  destination
iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.20-192.168.1.99 -j DROP
        4.mac地址
        5.状态
        6.其他
            -i  in-interface
            -o  out-interface


iptables -I INPUT -i ens33 -p tcp --tcp-flags  SYN,RST,ACK  SYN -j REJECT
ens33接口上不接收tcp三次握手的第一个包--》不允许新的连接产生了

[root@localhost ~]# iptables -A FORWARD -m mac --mac-source 00:0C:29:27:55:3F -j DROP
[root@localhost ~]# iptables -A INPUT -p tcp -m multiport --dport 20,21,25,110,1250:1280 -j ACCEPT
[root@localhost ~]# iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.20-192.168.1.99 -j DROP


常见的数据包处理方式
ACCEPT:放行数据包
DROP:丢弃数据包
REJECT:拒绝数据包,给一个回复
LOG:记录日志信息,并传递给下一条规则处理  --》相当于抓包
用户自定义链名:传递给自定义链内的规则进行处理

SNAT:修改数据包的源地址信息
DNAT:修改数据包的目标地址信息
MASQUERADE 实现snat功能,不需要经常换公网ip地址
自定义链



[root@web-server ~]# iptables -t filter -N sanchuang 新建链
[root@web-server ~]# iptables -t filter -A sanchuang -p tcp --dport 22 -j ACCEPT  增加规则

[root@web-server ~]# iptables -A INPUT -p tcp  --dport 22 -j  sanchuang  通过INPUT链给sanchuang链导流,然后会根据sanchuang链里的规则进行匹配