记一些iptables的常规操作
云服务器尝试务必先放开22&23端口在做其他操作
1、关闭firewall
systemctl stop firewalld
2、禁用firewall
systemctl disable firewalld.service
3、安装iptables
yum install -y iptables
yum install -y iptables-services
4、保存iptables规则
service iptables save
5、重启iptables
service iptables restart
systemctl restart iptables
6、清空iptables规则
iptables -F
7、清空指定表规则(如果不写默认filter)
iptables -t filter -F
8、配置规则
规则会按照顺序从上到下匹配,若匹配到则不会再继续走下面的规则
8.1、追加规则(在规则表最后面)
iptables -A INPUT -j DROP (丢弃所有经过INPUT链的流量,规则在最后面)
8.2、插入规则(在规则表最前面)
iptables -I INPUT -j DROP (丢弃所有经过INPUT链的流量,规则在最前面)
8.3、删除规则
iptables -D INPUT -j DROP
8.4、丢弃所有经过本机的tcp流量
iptables -A INPUT -p tcp -m tcp -j DROP
8.5、丢弃所有经过本机8080端口的tcp流量
iptables -A INPUT -p tcp -m tcp --dport 8080 -j DROP
8.6、丢弃所有经过本机192.168.113.104的8080端口的流量
iptables -A INPUT -p tcp -m tcp -d 192.168.113.104 --dport 8080 -j DROP
8.7、放行经过本机的流量
iptables -A INPUT -j ACCEPT
8.8、放行所有经过本机8080端口的tcp流量
iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
8.9、删除指定行规则
iptables -D INPUT 1
8.10、丢弃经过本机的eth0的tcp流量
iptables -I INPUT -p tcp -m tcp -i eth0 -j DROP
8.11、丢弃经过本机的8080端口的eth0的tcp流量
iptables -I INPUT -p tcp -m tcp -i eth0 --dport 8080 -j DROP
9、查看规则
9.1、默认查看INPUT
iptables -nL
9.2、查看指定表(如果不写默认filter)
iptables -t nat -nL
9.3、查看流量
iptables -vL
9.4、查看指定表流量
iptables -t nat -vL
9.5、查看流量加端口
iptables -nvL
9.6、查看规则line number
iptables -nvL --line-numbers
10、简单例子
需求:拦截全部请求,只允许访问8080、8081端口的tcp请求,允许通过xshell等软件远程连接,允许ping,放行所有内部流量。
iptables -F //清空规则 默认filter表
iptables -t nat -F //清空转发规则
iptables -I INPUT -i lo -j ACCEPT //允许内部访问
iptables -A INPUT -p tcp --dport 22 -j ACCEPT //允许访问22端口
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT //允许访问8080端口
iptables -A INPUT -p tcp --dport 8081 -j ACCEPT //允许访问8081端口
iptables -A INPUT -p icmp -j ACCEPT //允许ping
iptables -A INPUT -j DROP //丢弃其他全部流量
service iptables save //保存配置(不保存也会生效)
service iptables restart //重启防火墙(不重启也会生效)
11、例2 转发经过本机8080端口的TCP流量到192.168.113.104:7005
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to 192.168.113.104:7005
iptables -t nat -A POSTROUTING -p tcp -d 192.168.113.104 --dport 7005 -j SNAT --to 本机IP
12、例3 转发经过本机的192.168.113.105的8080端口的TCP流量到192.168.113.104:7005
iptables -t nat -A PREROUTING -p tcp -d 192.168.113.105 --dport 8080 -j DNAT --to 192.168.113.104:7005
iptables -t nat -A POSTROUTING -p tcp -d 192.168.113.104 --dport 7005 -j SNAT --to 本机IP
13、例4 转发经过本机的eht1网卡的8080端口的TCP流量到192.168.113.104:7005
iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 8080 -j DNAT --to 192.168.113.104:7005
iptables -t nat -A POSTROUTING -p tcp -d 192.168.113.104 --dport 7005 -j SNAT --to 本机IP
14、例5 允许本机内部可以访问外部
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
15、例6 允许使用telnet连接本机eth0口
iptables -I INPUT -i eth0 -p tcp -m tcp --dport 23 -j ACCEPT