无聊又玩了下linux系统,这里记录一下linux的防火墙配置
首先确保你开启了iptables服务,如果没有的话,通过以下命令开启:
# systemctl start iptables
清除现在的配置,使之回复到默认状态:
# iptables -F
# iptables -X
# iptables -t nat -F
# iptables -t nat -X
# iptables -t raw -F
# iptables -t raw -X
# iptables -t mangle -F
# iptables -t mangle -X
# iptables -t security -F
# iptables -t security -X
在filter表中添加TCP和UDP两条chian,分别用来处理tcp连接和udp连接:
# iptables -N TCP
# iptables -N UDP
修改filter表中几条默认chian的policy:
# iptables -P OUPUT ACCEPT
# iptables -P INPUT DROP
# iptables -P FORWARD DROP
接受状态为RELATED和ESTABLISHED的包:
# iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
接受来着本地回环lo的包:
# iptables -A INPUT -i lo -j ACCEPT
丢弃状态为INVALID的包:
# iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
接受来自ICMP协议的echo-request的第一个请求包:
# iptables -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
将第一个udp包或者连接请求tcp包分别交给UDPchian和TCPchain处理:
# iptables -A INPUT -p udp -m conntrack --ctstate NEW -j UDP
# iptables -A INPUT -p tcp --syn -m conntrack --ctstate NEW -j TCP
添加两条INPUT规则(rule),使得Linux系统默认分别使用icmp-port-unreachable和tcp-rst拒绝udp协议和tcp协议的包:
# iptables -A INPUT -p udp -m conntrack --ctstate NEW -j UDP
# iptables -A INPUT -p tcp --syn -m conntrack --ctstate NEW -j TCP
添加INPUTchian的最后一条规则,使得Linux拒绝所有的其他包:
# iptables -A INPUT -j REJECT --reject-with icmp-proto-unreachable
最后,将以上的iptables配置保存到配置文件,以便下一次启动iptables时可以自动生效以上配置:
# iptables-save > /etc/iptables/iptables.rules
这是示例配置文件:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:TCP - [0:0]
:UDP - [0:0]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p icmp -m icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -j REJECT --reject-with icmp-proto-unreachable
COMMIT
魔帆博客 , 版权所有丨如未注明 , 均为原创丨本网站均采用BY-NC-SA协议进行授权 , 转载请注明Linux下防火墙配置!