在Ubuntu服务器环境中,firewalld作为默认的防火墙管理工具,为系统提供了灵活的网络访问控制能力。本文将通过具体案例展示如何配置firewalld来实现安全的网络访问控制。
首先,确保firewalld服务已安装并启用:
sudo apt update
sudo apt install firewalld
sudo systemctl enable firewalld
sudo systemctl start firewalld
接下来,配置基础规则。假设服务器需要开放SSH(22端口)和HTTPS(443端口),同时限制其他所有入站连接:
# 设置默认区域为拒绝策略
sudo firewall-cmd --set-default-zone=drop
# 允许本地回环通信
sudo firewall-cmd --add-interface=lo --permanent
# 允许SSH访问
sudo firewall-cmd --add-service=ssh --permanent
# 允许HTTPS访问
sudo firewall-cmd --add-service=https --permanent
# 重新加载配置
sudo firewall-cmd --reload
更精细的控制可以通过源地址限制实现。例如,仅允许特定网段访问Web服务:
# 添加自定义端口规则
sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --add-port=443/tcp --permanent
# 仅允许192.168.1.0/24网段访问HTTP/HTTPS
sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT
sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -s 192.168.1.0/24 -p tcp --dport 443 -j ACCEPT
验证配置的有效性:
# 查看当前规则
sudo firewall-cmd --list-all
# 检查特定端口状态
sudo ss -tuln | grep :80
通过以上配置,服务器实现了最小化权限原则,仅开放必需的服务端口,有效降低了攻击面。建议定期审查防火墙规则,确保安全策略与业务需求相匹配。

讨论