查询
iptables -L 默认 filter表
iptables -L -t filter
iptables -L -t nat
iptables -L -t mangle
Filter表
service iptables start
service iptables stop
iptables -t filter -A INPUT -j DROP
Centos6
service iptables save 保存规则
保存规则的路径:/etc/sysconfig/iptables
Centos7
iptables-save > /tmp/iptables.rules 保存
iptables-restore /tmp/iptables.rules 恢复
iptables -t filter -F 清除filter表所有规则
iptables -t filter -F INPUT 清除filter表INPUT链所有规则
iptables -t filter -A INPUT -j DROP 添加规则
iptables -t filter -A INPUT -j ACCEPT
iptables -t filter -I INPUT 1 -j ACCEPT 指定位置插入规则
iptables -t filter -I INPUT 2 -j ACCEPT
iptables -t filter -R INPUT 3 -j ACCEPT 修改规则
iptables -t filter -D INPUT -j ACCEPT 删除规则
iptables -t filter -D INPUT 3 指定删除规则的行号
iptables -L --line-numbers 查询规则行号
iptables -t filter -P INPUT DROP 修改默认值
根据IP地址
270/557
iptables -t filter -A INPUT -s 172.16.110.92 -j DROP
iptables -t filter -A INPUT -d 172.16.110.1 -j DROP
iptables -t filter -A INPUT ! -s 172.16.110.92 -j DROP
iptables -t filter -A INPUT -s 172.16.110.0/24 -j DROP
eg:
禁止你的同桌对你的访问(在INPUT和OUTPUT各写出规则) 几条?
iptables -A INPUT -s 172.16.110.92 -j DROP
iptables -A OUTPUT -d 172.16.110.92 -j DROP
根据协议
iptables -A INPUT -s 172.16.110.92 -p icmp -j DROP
iptables -A INPUT -s 172.16.110.92 -p tcp -j DROP
iptables -A INPUT -s 172.16.110.92 ! -p tcp -j DROP
根据端口
iptables -A INPUT -s 172.16.110.92 -p tcp --dport 22 -j DROP
iptables -A INPUT -s 172.16.110.92 -p tcp ! --dport 22 -j DROP
iptables -A INPUT -s 172.16.110.92 -p tcp --dport 22:80 -j DROP
iptables -A INPUT -s 172.16.110.92 -p tcp --dport 22: -j DROP 22号端口到最后端口
iptables -A INPUT -s 172.16.110.92 -p tcp --dport :80 -j DROP 0到80端口
eg:
禁止同桌访问你的80端口在(INPUT 和 OUTPUT)
iptables -A INPUT -s 172.16.110.92 -p tcp --dport 80 -j DROP
iptables -A OUTPUT -d 172.16.110.92 -p tcp --sport 80 -j DROP
eg
1.只允许别人访问你的80端口
iptables -A INPUT -p tcp ! --dport 80 -j DROP
2.拒绝所有人登录你的sshd服务
iptables -A INPUT -p tcp --dport 22 -j DROP
3.只允许别人访问的ftp服务
端口模式(主动)
iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -A INPUT -j DROP
被动
vim /etc/vsftpd/vsftpd.conf
pasv_min_port=10000
pasv_max_port=11000
service vsftpd restart
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 10000:11000 -j ACCEPT
iptables -A INPUT -j DROP
根据网卡
iptables -A INPUT -i eth0 -j DROP
iptables -A OUTPUT -o eth0 -j DROP
自定义链
iptables -N lian1 创建
iptables -A INPUT -j lian1 添加链接
iptables -A lian1 -j DROP 自定义链动作
iptables -E lian1 newlian 修改链名
删除自已定义链
iptables -D INPUT 1 清除链接
iptables -F newlian 删除自定义链内规则
iptables -X newlian 删除自定义链
动作 -j
DROP
ACCEPT
自定以链
REJECT
271/557
LOG
iptables -A INPUT -j LOG
端口模块multiport(最多匹配15个端口)
目标端口匹配
iptables -A INPUT -p tcp -m multiport --dport 20,21,23,25,80 -j DROP
源端口匹配
iptables -A OUTPUT -p tcp -m multiport --sport 20,21,23,25,80 -j DROP
端口匹配
iptables -A OUTPUT -p tcp -m multiport --port 20,21,23,25,80 -j DROP
iptables模块 状态防火墙
SNAT表(地址装换表)
172.16.110.2----------->172.16.110.1
10.10.10.1---------------------------10.10.10.200
1.客户端:网关
route add default gw 172.16.110.1
2.SNAT开转发
echo 1 > /proc/sys/net/ipv4/ip_forward
写防火墙规则
iptables -t nat -A POSTROUTING -s 172.16.110.0/24 -j SNAT --to 10.10.10.1
iptables -t nat -A POSTROUTING -s 172.16.110.0/24 -j MASQUERADE
172.16.110.2-----------------172.16.110.1
客户端 10.10.10.1<----------------10.10.10.200
测试:
elinks --dump 10.10.10.200
DNAT
1.服务器:网关
route add default gw 10.10.10.1
2.DNAT开转发
echo 1 > /proc/sys/net/ipv4/ip_forward
防火墙规则
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 10.10.10.200
测试
elinsk --dump 172.16.110.1