在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服务器的网络安全性,防止未授权访问,并为系统管理员提供细粒度的访问控制能力。

讨论