Linux 防火墙是一种系统级别的安全工具,用于控制进出系统的网络流量,通过过滤规则集对数据包进行检查、允许或阻止。常见的 Linux 防火墙包括:
iptables
iptables
是 Linux 中最常用的防火墙工具,它基于内核级别运行,并通过修改 IP 转发表(通常在 /proc/sys/net/ipv4/ip_forward
设置为 0
来关闭 IP 转发功能)来控制网络流量。
主要特点:
- 配置复杂:
iptables
的规则链非常丰富,可以针对各种协议和端口进行细粒度的控制。 - 模块化设计:通过不同的表和链来管理不同的网络流量方向和目的,如 INPUT 表用于接收的数据包、OUTPUT 表用于发送的数据包等。
- 安全性高:运行于内核级,对于操作系统的整体安全性有重要影响。
使用示例:
# 允许所有从外部网络到 localhost 的流量 iptables -A INPUT -s 0/0 -d 127.0.0.1 -p tcp --dport 80 -j ACCEPT
ufw (Uncomplicated Firewall)
ufw
是用户友好的命令行界面防火墙工具,相比 iptables
更易于使用,提供直观的命令格式来进行基本的防火墙设置。
主要特点:
- 图形化界面:虽然核心是基于命令行的,但是提供了 GUI 工具(如
ufw web
),便于用户更直观地管理规则。 - 简单易用:通过简单的命令即可添加、删除或启用防火墙规则,比如
ufw allow http
可以开放 HTTP 端口。 - 默认拒绝:默认情况下,所有的连接都被阻止,只接受特定的允许规则,这提高了系统的安全性。
使用示例:
# 打开 SSH 连接端口 22 sudo ufw allow ssh
2. 基本使用方法
ufw的基本使用方法如下:
启用ufw:sudo ufw enable
禁用ufw:sudo ufw disable
显示ufw状态:sudo ufw status
允许某个端口:sudo ufw allow <port>
禁止某个端口:sudo ufw deny <port>
3. 可用选项
ufw命令有许多可用的选项,下面是它的完整选项列表及其用法:
enable:启用ufw防火墙。用法:sudo ufw enable
disable:禁用ufw防火墙。用法:sudo ufw disable
status:显示ufw防火墙状态。用法:sudo ufw status
status numbered:显示ufw防火墙状态,包括每个规则的编号。用法:sudo ufw status numbered
default:设置默认策略(允许或拒绝)。用法:sudo ufw default <allow|deny>
allow:允许某个端口通过ufw防火墙。用法:sudo ufw allow <port>
allow from:允许特定IP地址通过ufw防火墙。用法:sudo ufw allow from <IP>
allow from to:允许特定IP地址通过ufw防火墙到特定端口。用法:sudo ufw allow from <IP> to <port>
deny:拒绝某个端口通过ufw防火墙。用法:sudo ufw deny <port>
delete:删除指定编码的规则。用法:sudo ufw delete <rule number>
insert:在指定编码之前插入规则。用法:sudo ufw insert <rule number> <rule>
limit:限制特定端口的连接速率。用法:sudo ufw limit <port>
default deny incoming:设置默认拒绝所有入站连接。用法:sudo ufw default deny incoming
default allow outgoing:设置默认允许所有出站连接。用法:sudo ufw default allow outgoing
firewalld
firewalld
是一种动态防火墙系统,支持服务基线配置和高级路由选项。它提供了一个现代的、面向服务的防火墙框架,支持多种服务和网络区域的概念。
主要特点:
- 服务为中心:专注于服务而不是端口,例如允许整个服务而不仅仅是服务所使用的端口号。
- 动态更新:能够实时调整防火墙规则以适应不断变化的服务需求。
- 区域管理:支持多区域概念,可以根据地理位置、网络用途等因素划分不同的防火墙策略。
使用示例:
# 启动 firewalld 并列出已启用的服务 sudo systemctl start firewalld sudo firewall-cmd --list-services
常用命令:
#查看防火墙状态
systemctl status firewalld
#关闭防火墙
systemctl stop firewalld
#3、开启防火墙
systemctl start firewalld
#4、禁止防火墙开机自启动
systemctl disable firewalld
#5、设置防火墙开机自启动
systemctl enable firewalld
Linux——Firewall防火墙(firewalld与iptables两种管理方式)_firewalld 旁路由 透明代理_linux关闭防火墙命令firewalld-优快云博客