Iptables常用命令
iptables有四张表:filter、nat、mangle、raw,如果不指定表名则filter为默认表。 nat较为常用。
- 查看服务状态
centos6: /etc/init.d/iptables stauts
centos7: systemctl status iptables
- 列出当前规则
iptables -t filter/nat -L -n --line-number(此–line-number会打印出规则序号,便于删除等操作)
Chain INPUT (policy DROP)
num target prot opt source destination
1 ACCEPT all — 116.228.89.2 0.0.0.0/0
- 清除filter当前规则,并设置默认规则(先设置默认策略为允许,防止把自己的ssh登录给锁外边)
iptables -P INPUT ACCEPT
iptables -F
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s administrator_ip -j ACCEPT
iptables -P INPUT DROP
- 给1.1.1.1开放访问80端口和22端口
iptables -A INPUT -p tcp --dport 80 -s 1.1.1.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s 1.1.1.1 -j ACCEPT
- 删除1.1.1.1的访问22端口权限
通过iptables -L -n --line-number拿到此条策略的num
iptables -D INPUT num
- 通过nat做源地址转换
iptables -t nat -A POSTROUTING -s 0.0.0.0 -j SNAT --to-source 103.47.137.73
- 保存规则
centos6: /etc/init.d/iptables save
centos7: iptables-save
iptables -t mangle -A PREROUTING -p icmp –icmp-type echo-reply -m ttl –ttl-eq 1 -j TTL –ttl-set 64 iptables -t mangle -A PREROUTING -m ttl –ttl-eq 1 -j TTL –ttl-set 64