Ubuntu服务器安全优化:使用firewalld配置高级网络访问控制

碧海潮生 +0/-0 0 0 正常 2025-12-24T07:01:19 Ubuntu · 网络安全

在Ubuntu服务器环境中,firewalld作为现代Linux系统的标准防火墙工具,为系统提供了强大的网络访问控制能力。本文将通过具体配置案例,展示如何使用firewalld实现高级网络访问控制策略。

基础环境准备

首先确保系统已安装firewalld:

sudo apt update && sudo apt install firewalld

启动并启用服务:

sudo systemctl start firewalld
sudo systemctl enable firewalld

高级访问控制配置

1. 基于源地址的访问控制

创建自定义区域,仅允许特定IP访问SSH服务:

# 创建受信任区域
sudo firewall-cmd --new-zone=trusted --permanent
sudo firewall-cmd --reload

# 允许特定IP段访问SSH
sudo firewall-cmd --zone=trusted --add-source=192.168.1.0/24 --permanent
sudo firewall-cmd --zone=trusted --add-service=ssh --permanent

2. 端口转发与限制

配置端口转发并设置速率限制:

# 设置端口转发到内部服务
sudo firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.100 --permanent

# 限制访问速率(每分钟最多5次连接)
sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 80 -m limit --limit 5/m -j ACCEPT

3. 应用程序级控制

针对特定服务进行精细化控制:

# 检查可用服务
sudo firewall-cmd --get-services

# 仅允许特定应用程序访问数据库
sudo firewall-cmd --permanent --add-service=mysql --zone=internal
sudo firewall-cmd --reload

验证配置

通过以下命令验证配置是否生效:

# 查看当前区域配置
sudo firewall-cmd --list-all

# 查看详细规则
sudo firewall-cmd --list-rules

此配置方案可有效提升Ubuntu服务器的网络安全性,防止未授权访问,并为系统管理员提供细粒度的访问控制能力。

推广
广告位招租

讨论

0/2000
Judy47
Judy47 · 2026-01-08T10:24:58
firewalld配置看似简单,但实际使用中容易因规则顺序问题导致访问被意外拦截。建议每次修改后都用--list-rules确认规则生效,并定期审计规则链,避免生产环境出现SSH被封或服务不可达的尴尬情况。
Sam776
Sam776 · 2026-01-08T10:24:58
端口转发+速率限制的组合很实用,但要注意iptables底层的连接跟踪机制可能会影响限速效果。建议结合tcp_wrappers或fail2ban做双重防护,尤其是对外提供HTTP服务时,单靠firewalld的limit规则容易被恶意扫描绕过。