-
用以下指令将iptables已经设置的防火墙规则和所有表格的方针(policy)清空
sudo iptables -P INPUT ACCEPT && sudo iptables -P FORWARD ACCEPT && sudo iptables -P OUTPUT ACCEPT && sudo iptables -F && sudo iptables -t nat -F && sudo iptables -t mangle -F
-
查看目前的iptables防火墙过滤规则(filter表)
sudo iptables -L
-
将指令做成一个Bash文件来运行。也要留意一下指令的运行顺序,避免远程主机从此连不上
#!/bin/bash sudo iptables -A INPUT -i lo -j ACCEPT #允许所有来自本机的封包 sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #允许已经创建连接或是有与其它连接相关连的封包。 sudo iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT #允许TCP连接端口22的创建连接封包。 sudo iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT #允许TCP连接端口80的创建连接封包。 sudo iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT #允许TCP连接端口443的创建连接封包。 sudo iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT #允许ICMP封包(允许「ping」指令)。 sudo iptables -P INPUT DROP #过滤所有不在规则中的连入封包。 sudo iptables -P FORWARD DROP #过滤所有不在规则中的转递封包。
-
保存规则
sudo iptables-save > /etc/iptables/rules.v4
-
恢复规则
sudo iptables-restore < /etc/iptables/rules.v4
-
iptables-persistent
-
安装
sudo apt install iptables-persistent
-
iptables-persistent套件在安装时,就会跳出是否要保存目前iptables和ipv6tables的画面
- 选择Yes的话,就可以把iptables或ip6tables的设置,分别通过iptables-save和ip6tables-save指令,保存到/etc/iptables/rules.v4和/etc/iptables/rules.v6文件中。如此一来,Ubuntu Server在开机时,就会自动使用iptables-restore和ip6tables-restore指令来套用/etc/iptables/rules.v4和/etc/iptables/rules.v6中保存的设置。
-
修改后直接激活规则
sudo iptables-restore < /etc/iptables/rules.v4 && sudo ip6tables-restore < /etc/iptables/rules.v6
或
sudo dpkg-reconfigure iptables-persistent
-
-
防火墙的配置文件
/etc/sysconfig/iptables
-
重启防火墙
service iptables restart
-
对某个ip开放3306
-A INPUT -s 101.201.73.130 -p tcp -m tcp --dport 3306 -j ACCEPT
-
直接开放3306
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-
规则顺序,需要把ACCEPT放到DROP之前,才能生效
# cat /etc/sysconfig/iptables # Generated by iptables-save v1.4.7 on Mon Jul 2 22:10:19 2018 *filter :INPUT ACCEPT [9:4936] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [49:8299] -A INPUT -i lo -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -s 192.168.2.163 -j ACCEPT -A INPUT -p tcp -m tcp --dport 3306 -j DROP -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT COMMIT # Completed on Mon Jul 2 22:10:19 2018