在Linux系统中配置防火墙主要有两种方式,一种是使用传统的iptables,另一种是使用较新的firewalld。下面将分别介绍如何使用这两种工具来配置防火墙。
1、使用 iptables
iptables是较早的Linux内核防火墙工具,它直接操作内核中的netfilter框架来过滤流量。以下是一些基本的iptables命令:
查看当前的防火墙规则:
sudo iptables -L
清空所有规则:
sudo iptables -F
允许某个特定端口的流量(例如,允许TCP端口22,即SSH):
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
拒绝来自特定IP的流量:
sudo iptables -A INPUT -s 192.168.1.12 -j DROP
-
保存规则,这取决于你的Linux发行版,可能需要安装
iptables-persistent
或使用service iptables save
。
每次修改iptables
规则后,都需要重启iptables
服务或重载规则。
2、使用 firewalld
firewalld
是一个动态防火墙管理工具,其提供了区域(zone)的概念,可以更灵活地管理网络流量规则。以下是一些基本的
firewalld
操作:
-
启动
firewalld
:
sudo systemctl start firewalld
查看当前的默认区域及其规则:
sudo firewall-cmd --list-all
允许某个端口(例如,允许端口80,即HTTP):
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
移除某个端口:
sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent
允许服务(例如,允许http服务):
sudo firewall-cmd --zone=public --add-service=http --permanent
重新加载规则以使更改生效:
sudo firewall-cmd --reload
设置默认区域:
sudo firewall-cmd --set-default-zone=public
3、总结
在使用firewalld
时,--permanent
标志是很重要的,它表示规则会在防火墙重启后依然生效。如果不使用该标志,那么规则仅对当前会话有效。
选择iptables
还是firewalld
取决于你的具体需求和你使用的Linux发行版。较新的发行版可能默认使用firewalld
。