iptables相关

iptables相关

四表:
fileter,net,mangle,raw
五链
PREROUTING(路由前) INPUT FOREARD OUTPUT POSTROUTING(路由后)

表和链的对应关系
filer:INPUT,FORWARD.OUTPUT
nat:PREROUTING OUTPUT POSTROUTING
magle:PREROUTING FORWARD POSTROUTING INPUT OUTPUT

规则:检查条件,处理机制,

通:白名单,默认为堵,只对能识别的进行放行
堵:黑名单,默认为通,只对能识别的进行阻截

检查条件:
IP:SIP,DIP
TCP:SPORT,DPORT,FLags
UDP:SPORT,DPORT
ICMP:ICMP-TYPE

扩展机制:
time string state(connection-tracking)

处理机制:
DROP(丢弃),
REJECT(拒绝,并返回)
ACCEPT(允许)
SNAT (原地址转换)
DNAT (目的地址转换)
RETURN(返回调用链)
REDIRECT(端口重定向)
LOG(记录日志)

MARK(做防火墙标记)

MASQUERADE: 地址伪装

 

-p tcp --tcp-flags LIST1 LIST2 : 检查LIST1所指明的所有标志位,LIST2所表示出的标志位必须为1, 其余的必须为0, 没有LIST1中指明的,不做检查

SYN ACK FIN  RET PSH URG

--tcp-flags SYN,ACK,FIN,RET  SYN  第一次握手

或者使用--sync

 

-p icmp

           --icmp-type 可用数字类型:

     0: echo-reply      回送应答

       8: echo-request  请求

可以ping通外面,不能回应。

iptables -I OUTPUT -s 192.168.20.12 -p icmp --icmp-type 8 -j ACCEPT

可以回应

iptables -I INPUT -d 192.168.20.12 -p icmp --icmp-type 0 -j ACCEPT

 

扩展

1. -m multiport --dports/--sports
2. -m iprange --src-range/--dst-range

iptable -I INPUT -d 192.168.20.12 -p tcp -m multiport --dport 22:25,80 -m iprange  --src-rang 192.168.20.1-192.168.20.19 -j ACCEPT

 

3.string扩展: 检查报文中出现的字符串。

--algo {bm|kmp}

[!] --string pattern

[!] --hex-string pattern

 iptables -A INPUT/OUTPUT -p tcp --dport 80 -m string --algo bm --string 'baidu' -j DROP

 iptables -p udp --dport 53 -m string --algo bm --from 40 --to 57 --hex-string '|03|www|09|netfilter|03|org|00|'

 

4.time

5.connlimit 连接限制

    --connlimit-above 超过的连接数,后面加拒绝

    --connlimit-mask prefix_length,指定掩码

    --connlimit-saddr  源地址

    --connlimit-daddr  目的组

 

iptables -A INPUT -p tcp --syn --dport 23 -m connlimit --connlimit-above 2 -j REJECT

同一个主机放过来的请求不能大于2,如果大于将拒绝。

 

6. limit 基于收发报文的速率做检查:

  --limit rate[/second|/minute|/hour|/day]

  --limit-burst number

 

7.state扩展  根据连接追踪机制,检查连接的状态。

调整连接追踪功能所能够容纳的最大连接数据

 

调整连接追踪功能所能容纳的最大链接数量

[root@python ~]# cat /proc/sys/net/nf_conntrack_max

已经追踪并记录下的连接

[root@python ~]# cat /proc/net/nf_conntrack

 

可追踪的连接状态:

NEW: 新发出的请求: 连接追踪模版中不存在此连接的相关信息条目。

ESTABLISHED: NEW状态之后,连接追踪模版中为其建立的条目失效之前期间内所进行的通信状态。

RELATED: 相关的连接:如ftp协议的命令连接与数据连接之间的关系

INVALIED: 无法识别的连接

 

 在INPUT链 放行NEW,ESTABLISHED

iptables -I INPUT -d 192.168.20.144 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

 

 在OUTPUT链 放行ESTABLISHED

iptables -I INPUT -s 192.168.20.144 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

 

posted @ 2017-03-28 13:45  fengjian1585  阅读(358)  评论(0编辑  收藏  举报