简介
Linux防火墙是一种在Linux操作系统中用于网络安全和流量管理的工具,它可以控制进出系统的网络流量,基于一组规则来允许或阻止特定的数据包。
在Linux中,有几种不同的防火墙工具,但最常见的是 iptables
、UFW (Uncomplicated Firewall)
和 Firewalld
。
适用场景
(1)iptables
适用于需要精细控制网络流量的高级用户和系统管理员。
(2)UFW
面向那些希望以更简单方式管理防火墙的终端用户。
(3)Firewalld
适用于需要动态防火墙管理的环境,提供了更加直观的区域和服务管理方法。
具体选择使用哪个工具取决于我们的具体需求、所在环境的复杂性以及对Linux防火墙的熟悉程度。
1 UFW(Uncomplicated Firewall)
UFW是一个为了简化iptables配置而设计的用户友好型接口,它主要用于个人和小型企业环境,提供了易于理解的命令行界面。
1.1 启用/禁用防火墙
sudo ufw enable
sudo ufw disable
1.2 设置默认规则
拒绝所有进入连接
sudo ufw default deny incoming
允许所有出站连接
sudo ufw default allow outgoing
1.3 添加规则
允许特定端口
sudo ufw allow 22
允许特定服务
sudo ufw allow http
1.4 删除规则
删除特定规则
sudo ufw delete allow 22
查看状态和规则
sudo ufw status
sudo ufw status verbose
1.5 支持图形画界面
支持图形用户界面,提供了一个更易于使用的配置方法。
gufw
2 Firewalld
Firewalld是一种动态管理防火墙的工具,使用区域和服务的概念来管理网络流量,它主要用于需要频繁更改网络设置的环境,如服务器和复杂的网络结构。
2.1 查看防火墙状态
firewall-cmd --state
2.2 启动服务
sudo systemctl start firewalld
2.3 停止服务
sudo systemctl stop firewalld
2.4 启用开机自启
sudo systemctl enable firewalld
2.5 禁用开机自启
sudo systemctl disable firewalld
2.6 列出所有区域
firewall-cmd --list-all-zones
2.7 修改默认区域
firewall-cmd --set-default-zone=public
2.8 添加规则
允许特定服务,如ssh;永久添加规则,在命令末尾添加 --permanent
firewall-cmd --zone=public --add-service=ssh
2.9 删除规则
firewall-cmd --zone=public --remove-service=ssh
2.10 重新加载规则
firewall-cmd --reload
2.11 查询端口是否开放
firewall-cmd --query-port=8080/tcp
2.12 开放8080端口
firewall-cmd --permanent --add-port=8080/tcp
2.13 移除8080端口
firewall-cmd --permanent --remove-port=8080/tcp
3 iptables
3.1 查看所有规则
sudo iptables -L
3.2 添加规则
例如,允许TCP的22端口
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
3.3 删除规则
首先找到要删除的规则编号
sudo iptables -L --line-numbers
删除规则
sudo iptables -D INPUT 2
3.4 保存规则
某些发行版需要
sudo iptables-save
3.5 清空所有规则
sudo iptables -F
想要了解更多实用小干货
可关注我的【知乎】