MorFans Dev
折腾 - 开发 - 分享

Linux下防火墙配置

Linux下防火墙配置

无聊又玩了下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

接受状态为RELATEDESTABLISHED的包:

# 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-unreachabletcp-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-ND 协议 (署名-非商业性使用-禁止演绎) 进行授权。
转载请注明来自本站文章:Linux下防火墙配置(https://www.morfans.cn/archives/1874)

野小新

文章作者

野小新很野~

发表回复

textsms
account_circle
email

Linux下防火墙配置
无聊又玩了下linux系统,这里记录一下linux的防火墙配置 首先确保你开启了iptables服务,如果没有的话,通过以下命令开启: # systemctl start iptables 清除现在的配置,使之回复…
扫描二维码继续阅读
2016-08-22