Iptables
Chain
- PREROUTING (路由前)
- INPUT (数据包流入口)
- FORWARD (转发)
- OUTPUT (数据包出口)
- POSTROUTING (路由后)
查看路由表
设置默认策略
iptables -P INPUT (DROP|ACCEPT) 默认是关的/默认是开的
清空规则链
新建一个链
iptables -N NEWCHAINNAME
-s:指定作为源地址匹配,这里不能指定主机名称,必须是IP
IP | IP/MASK | 0.0.0.0/0.0.0.0
而且地址可以取反,加一个“!”表示除了哪个IP之外
-d:表示匹配目标地址
-p:用于匹配协议的(这里的协议通常有3种,TCP/UDP/ICMP)
-i eth0:从这块网卡流入的数据
流入一般用在INPUT和PREROUTING上
-o eth0:从这块网卡流出的数据
流出一般在OUTPUT和POSTROUTING上
–dport 22 指定目的端口
–sport 22 指定源端口
-p tcp 指定协议
-j ACTION DROP/REJECT/ACCEPT/DNAT(目的地址转换)/SNAT(源地址转换)/MASQUERADE/REDIRECT
只允许192.168.6.1访问本机ssh服务iptables -t filter -A INPUT -s 192.168.6.1 -p tcp --dport 22 -j ACCEPT
除了192.168.6.1地址拒绝所有其他访问22端口iptables -A INPUT ! -s 192.168.6.1 -p tcp --dport 22 -j DROP
删除第4条(delete)iptables -D INPUT 4
删除FORWARDiptables -D FORWARD 1
比如进来的只允许状态为NEW和ESTABLISHED的进来,出去只允许ESTABLISHED的状态出去,这就可以将比较常见的反弹式木马有很好的控制机制。
nat功能iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
nat之后,将访问192.168.10.18 80端口定向到nat后的172.16.100.2iptables -t nat -A PREROUTING -d 192.168.10.18 -p tcp --dport 80 -j DNAT --to-destination 172.16.100.2
将访问80端口转发到本地端口iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port <sslstrip listenPort>
DNAT 端口映射iptables -t nat -A PREROUTING -d 公网IP -p TCP --dport 80 -j DNAT --to-destination 10.31.2.1
iptables -t nat -A PREROUTING -i eth1 -p udp --dport 53 -j DNAT --to 192.168.6.1
删除nat PREROUTINGiptables -t nat -D PREROUTING <num>
在INPUT第三条后面插入(insert)iptables -I INPUT 3 -p tcp --dport 21 -j ACCEPT
修改iptables -R INPUT 3 -j DROP
默认规则iptables -A INPUT -j ACCEPT
保存
恢复iptables-restore
每30s 5个连接(rcheck是接收到第1个数据包时开始计时,10s内仅限3次连接,后续的包丢弃)
控制单个IP的最大并发连接数 < 10iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j REJECT
控制单个IP在一定的时间内允许新建立的连接数 15/m
过滤ipiptables -I INPUT -s 121.69.131.144 -j DROP
CentOS