firewalld
是现代Linux系统中一种常用的防火墙管理工具,提供了动态管理网络流量的能力。下面是关于firewalld
的详细部署和命令使用指南。
1. 安装firewalld
在大多数Linux发行版中,firewalld
可以通过包管理器进行安装。
Debian/Ubuntu:
sudo apt update sudo apt install firewalld
CentOS/RHEL:
sudo yum install firewalld
2. 启动和启用firewalld
安装完成后,使用以下命令启动firewalld
并设置为开机自启:
sudo systemctl start firewalld sudo systemctl enable firewalld
3. 检查firewalld状态
查看firewalld
的运行状态:
sudo systemctl status firewalld
若服务正在运行,输出应包含“active (running)”。
4. firewalld基本概念
- 区域(Zones):
firewalld
使用区域来定义网络连接的信任级别。每个区域有自己的规则,可以根据接口或源地址分配区域。 - 服务(Services): 预定义的服务,包含一组端口和协议,简化了规则配置。
- 端口(Ports): 可以直接通过端口号进行控制。
5. 查看区域和服务
- 查看所有可用区域:
sudo firewall-cmd --get-zones
- 查看当前区域及其配置:
sudo firewall-cmd --get-active-zones
- 查看某个区域的详细信息(例如
public
区域):
sudo firewall-cmd --zone=public --list-all
6. 配置firewalld
6.1. 设置默认区域
设置默认区域为public
(如果你希望使用其他区域,请相应替换):
sudo firewall-cmd --set-default-zone=public
6.2. 添加服务
- 允许SSH服务:
sudo firewall-cmd --zone=public --add-service=ssh --permanent
- 允许HTTP服务:
sudo firewall-cmd --zone=public --add-service=http --permanent
- 允许HTTPS服务:
sudo firewall-cmd --zone=public --add-service=https --permanent
6.3. 添加自定义端口
- 允许TCP端口8080:
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
- 允许UDP端口12345:
sudo firewall-cmd --zone=public --add-port=12345/udp --permanent
7. 移除服务和端口
7.1. 移除服务
- 移除HTTP服务:
sudo firewall-cmd --zone=public --remove-service=http --permanent
7.2. 移除端口
- 移除TCP端口8080:
sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent
8. 重新加载配置
在修改规则后,必须重新加载firewalld
以使更改生效:
sudo firewall-cmd --reload
9. 查看和测试规则
- 查看所有当前规则:
sudo firewall-cmd --list-all
- 测试端口是否开放(例如,测试8080端口):
可以使用telnet
或curl
进行测试:
telnet localhost 8080
或
curl -I http://localhost:8080
10. 日志管理
firewalld
可以记录拒绝的流量。要启用日志:
sudo firewall-cmd --set-log-denied=all
查看日志时,可以通过/var/log/messages
或/var/log/firewalld
来访问。
结论
firewalld
是一个强大且易于管理的Linux防火墙工具,通过简单的命令就可以实现复杂的网络安全策略。定期检查和更新防火墙规则是确保系统安全的重要步骤。希望本文提供的详细指南能够帮助你更好地配置和管理Linux防火墙。