Linux常用防火墙配置【iptables】与【firewalld】
iptables
- 显示当前的防火墙规则:
iptables -L
这个命令会列出当前生效的防火墙规则,包括过滤规则和网络地址转换规则。
- 清空当前的防火墙规则:
iptables -F
这个命令会清空当前的防火墙规则,即删除所有的过滤规则和网络地址转换规则。
- 允许特定端口的网络流量通过:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
这个命令会添加一条规则,允许 TCP 协议的流量通过指定的端口号 80
。
- 拒绝特定 IP 地址的网络流量:
iptables -A INPUT -s 127.0.0.1 -j DROP
这个命令会添加一条规则,拒绝来自特定源 IP 地址 127.0.0.1
的流量。
- 设置默认的防火墙策略:
iptables -P INPUT xxx
这个命令会设置默认的输入流量策略为 xxx
,可以是 ACCEPT
(允许)或 DROP
(拒绝)。
firewalld
需要先安装
检查firewalld服务是否正在运行:
systemctl status firewalld
使用以下命令启动:
systemctl start firewalld
检查防火墙规则和配置:确保已正确配置防火墙规则和策略。可以使用以下命令列出当前的防火墙规则:
firewall-cmd --list-all
确保所需的端口、服务或应用程序的规则已添加到防火墙中。如果需要添加规则,可以使用以下命令进行配置:
firewall-cmd --add-service=<service>
firewall-cmd --add-port=<port>/tcp
其中,<service>
是要允许的服务名称,<port>
是要允许的端口号。
检查Zone配置:确定系统的网络接口所属的Zone是否正确配置。可以使用以下命令查看当前活动的Zone:
firewall-cmd --get-active-zone
确保所需的网络接口属于正确的Zone。如果需要更改接口的Zone,可以使用以下命令进行配置:
firewall-cmd --zone=<zone> --change-interface=<interface>
其中,<zone>
是要设置的Zone名称,<interface>
是要更改的网络接口名称。
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="127.0.0.1" accept' --permanent
要禁止SSH流量通过防火墙,你可以使用以下命令:
firewall-cmd --zone=public --remove-service=ssh
开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
删除添加的ip
firewall-cmd --zone=public --remove-rich-rule 'rule family="ipv4" source address="127.0.0.1" accept' --permanent
重新加载配置
firewall-cmd --reload
停止防火墙
systemctl stop firewalld
以上只是一些 iptables和firewalld
命令的基本用法,iptables与firewalld
命令有更多的组合方式,来达到复杂的安全需求
注意:配置防火墙规则时,请务必谨慎操作,并确保你了解你正在设置的规则的影响。不正确的防火墙规则可能导致网络连接问题或安全漏洞。