1. 环境准备与基本策略
在开始前,确认操作系统(Ubuntu/CentOS/Debian/Windows Server)版本、管理员权限(root/Administrator)、以及可用端口清单。制定最小权限原则:只开放必要端口(例如SSH 22/自定义端口,HTTP 80/443),所有入站默认拒绝。备份现有防火墙配置和关键配置文件(/etc/iptables.rules、/etc/nftables.conf、/etc/ssh/sshd_config、Windows 防火墙策略)。
2. SSH安全与初始防护
修改SSH端口、禁止密码登录、启用公钥认证。步骤(以Linux为例):1) 编辑 /etc/ssh/sshd_config,设置 Port 2222、PermitRootLogin no、PasswordAuthentication no;2) 重启 sshd:sudo systemctl restart sshd;3) 在本地使用 ssh-copy-id -p 2222 user@server 上传公钥;4) 在防火墙允许新端口。
3. 使用ufw作为快速防火墙(Ubuntu)
适合快速上手的服务器:1) 安装并启用:sudo apt install ufw -y;sudo ufw default deny incoming; sudo ufw default allow outgoing;2) 允许服务:sudo ufw allow 2222/tcp;sudo ufw allow 80,443/tcp;3) 启用:sudo ufw enable;4) 查看状态:sudo ufw status verbose。记得在云控制台打开对应端口。
4. 使用iptables/nftables写细粒度规则(进阶)
iptables示例:sudo iptables -F; sudo iptables -P INPUT DROP; sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT; sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT; sudo iptables -A INPUT -i lo -j ACCEPT; 保存规则(Ubuntu:sudo apt install iptables-persistent 并保存)。nftables使用 nft add table ip filter 等命令,推荐转移到nftables以提高性能并用脚本管理规则。
5. 基于位置与速率限制的防护(Fail2ban)
安装与配置 Fail2ban:sudo apt install fail2ban;编辑 /etc/fail2ban/jail.local,示例:
[sshd] enabled = true port = 2222 filter = sshd maxretry = 5 bantime = 3600 findtime = 600
启用 nginx/other 服务的 jail,重启 fail2ban:sudo systemctl restart fail2ban。可结合 iptables 黑名单自动屏蔽暴力破解 IP。
6. 部署入侵检测系统(Suricata 或 Snort)
推荐 Suricata:1) 安装:Ubuntu: sudo apt install suricata;2) 下载规则(EmergingThreats 或 OISF rules),放入 /etc/suricata/rules;3) 编辑 /etc/suricata/suricata.yaml,配置 HOME_NET=服务器IP范围;4) 启动并开机自启:sudo systemctl enable --now suricata;5) 查看告警:/var/log/suricata/fast.log。规则可定制,注意调整性能参数(线程、运行模式)。
7. 主机型IDS/日志集中(Wazuh/OSSEC)
Wazuh 提供主机入侵检测、完整性校验与日志告警:1) 在管理端安装 Wazuh manager,在服务器上安装 Wazuh agent;2) 配置 agent 注册 manager,启用文件完整性监控、rootkit 检查、syslog 规则;3) 将告警接入 ELK/Elastic Stack 或 OpenSearch 以便可视化与告警通知。OSSEC 操作类似,资源占用更小。
8. 系统与内核加固(硬化配置)
修改 sysctl 提高网络安全(在 /etc/sysctl.conf 添加并应用 sudo sysctl -p):net.ipv4.ip_forward=0; net.ipv4.conf.all.rp_filter=1; net.ipv4.conf.default.rp_filter=1; net.ipv4.tcp_syncookies=1。禁用不必要的服务、使用 SELinux/AppArmor、定期打补丁并关闭IPv6或限制其访问(如不使用)。
9. 测试、排查与响应流程
测试:使用 nmap -Pn -p 1-65535 server_ip 检查开放端口;用 fail2ban-client status 查看封禁记录;用 suricata -T 测试规则;tcpdump -i eth0 过滤疑似攻击流量。建立应急流程:检测→隔离(调整防火墙)→取证(保存日志)→修补→恢复。定期审计与演练。
10. 常见问答——如何选择防火墙与IDS组合?
问:应该选 ufw+Fail2ban 还是 iptables+nftables+Suricata? 答:如果追求简便稳定且管理成本低,推荐 ufw+Fail2ban;若需要高性能、细粒度规则与网络层检测,选择 iptables/nftables 配合 Suricata/Wazuh 更合适,按流量和团队运维能力决定。
11. 常见问答——如何减少误报并优化规则?
问:Suricata 等 IDS 误报太多怎么办? 答:首先调整 HOME_NET 和准许 IP 列表,使用白名单排除已知流量;用阈值和速率限制减少噪声;逐条检查告警规则,禁用高误报的规则集;结合主机日志(Wazuh)做交叉验证。
12. 常见问答——在美国云商环境的特殊注意事项?
问:在美国wk服务器(云主机)有额外注意点吗? 答:注意云控制台安全组与主机防火墙双重规则不要冲突,开启云端的DDoS保护(如提供),遵守合规与地理策略,注意API密钥、账户MFA,定期查看云审计日志并将关键日志外发到安全的集中日志服务。
来源:安全加固美国wk服务器防火墙与入侵检测配置推荐