在服务器管理中,远程防火墙的设置是保障系统安全的核心环节,合理的防火墙配置能够有效阻止未经授权的访问、抵御网络攻击,同时确保合法流量正常通行,以下从基础知识到实操步骤,提供一套完整的远程防火墙设置指南。
cat /etc/os-release
确认操作系统类型(CentOS/Ubuntu等),不同发行版的防火墙工具存在差异。systemctl start firewalld # 启动服务 systemctl enable firewalld # 设置开机自启 firewall-cmd --state # 验证运行状态
# 允许默认SSH端口(临时生效) firewall-cmd --add-port=22/tcp # 永久开放Web服务端口 firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https # 拒绝所有入站流量(默认策略) firewall-cmd --set-default-zone=drop
# 添加可信IP段(例:203.0.113.0/24) firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.0/24" accept' # 封锁反面IP(自动生效至下次重启) firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'
firewall-cmd --reload # 重载配置 firewall-cmd --list-all # 查看完整规则集 ss -tuln | grep ':80' # 验证端口监听状态
firewall-cmd --add-rich-rule='rule protocol value="udp" limit value="5/m" accept'
sed -i 's/#Port 22/Port 59234/' /etc/ssh/sshd_config systemctl restart sshd
firewall-cmd --set-log-denied=all journalctl -u firewalld -f # 实时查看日志
问题现象 | 排查步骤 | 修复方法 |
---|---|---|
修改规则后服务不可用 | 检查firewall-cmd --list-all 验证服务端口监听状态 | 通过控制台添加临时放行规则 |
IP白名单未生效 | 使用tcpdump -nni eth0 host x.x.x.x 抓包分析 | 检查子网掩码格式是否正确 |
防火墙服务启动失败 | 执行systemctl status firewalld -l 查看错误详情 | 重装firewalld包或修复SELinux配置 |
firewall-cmd --runtime-to-permanent
备份当前配置crontab -e * 3 * * * firewall-cmd --list-all > /var/log/firewall-$(date +%F).log
引用说明
本文操作基于Firewalld 0.9.3官方文档,适用于主流的Linux发行版,部分高级功能需内核版本≥3.13支持,具体限制参见:Firewalld项目主页
安全策略设计参考NIST SP 800-123标准中的网络安全配置基线要求。