如何在Linux系统中配置和管理防火墙规则?

发布于 2024-01-13  1.05k 次阅读


本文于 2024年1月13日 9:40 更新,注意查看最新内容

在Linux系统中,配置和管理防火墙规则通常涉及使用防火墙管理工具。以下是针对不同Linux发行版的两个常用工具:iptables(用于传统的iptables防火墙)和firewalld(用于较新的firewalld防火墙)的详细解答。

使用 iptables(传统防火墙)
1. 查看当前规则

sudo iptables -L
2. 允许或拒绝特定端口

# 允许SSH连接
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 拒绝HTTP连接
sudo iptables -A INPUT -p tcp --dport 80 -j DROP

3. 保存规则

sudo service iptables save

4. 重启防火墙

sudo service iptables restart

使用 firewalld(动态防火墙)

1. 查看当前规则

sudo firewall-cmd --list-all
2. 允许或拒绝特定服务

# 允许SSH服务
sudo firewall-cmd --add-service=ssh --permanent

# 拒绝HTTP服务
sudo firewall-cmd --remove-service=http --permanent
3. 保存规则

sudo firewall-cmd --runtime-to-permanent
4. 重启防火墙

sudo systemctl restart firewalld

附加注意事项:
配置规则顺序: 规则按照添加的顺序进行匹配,所以确保规则的添加顺序是正确的。

永久性规则: 在iptables中,规则添加后需要手动保存,而在firewalld中,使用 --permanent 标志将规则永久性地保存。

服务和端口: 可以根据服务名或端口号来配置规则。在firewalld中,服务名是一个高级抽象,而iptables直接使用端口号。

备份和还原: 在进行大规模更改之前,建议备份防火墙规则,以防止配置错误。可以通过 iptables-save(iptables)或 firewall-cmd --get-active-zones 和 firewall-cmd --zone=<zone> --list-all(firewalld)来执行备份。

请注意,具体命令可能会因Linux发行版和版本而有所不同。在使用时,请参考相应Linux发行版的文档或手册。


这短短的一生,我们最终都会失去。