1.
概述:为什么 CN2 主机也需严格防护
CN2 提供低延迟线路,但网络层与主机安全是独立的。
即便在台湾 CN2 环境,仍需本地防火墙、SSH 加固、登录限制与日志审计以防止未授权访问与流量滥用。
2.
选择防火墙方案与初始准备
常见方案:iptables/nftables(原生强大)、ufw(Ubuntu 友好)、CSF(面板集成)。
准备:确保有 root 权限或 sudo;备份当前规则:iptables-save > /root/iptables.backup 或 nft list ruleset > /root/nft.backup。
3.
基础防火墙规则(使用 iptables 示例)
步骤:先清理默认规则并建立默认拒绝策略:iptables -F; iptables -X; iptables -P INPUT DROP; iptables -P FORWARD DROP; iptables -P OUTPUT ACCEPT。
允许已建立会话与本地回环:iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT; iptables -A INPUT -i lo -j ACCEPT。
4.
开放必需端口并限制访问
举例:SSH 改端口并限制来源。允许新的 SSH 端口(以 2222 为例):iptables -A INPUT -p tcp --dport 2222 -m conntrack --ctstate NEW -j ACCEPT。
限制管理接口来源:若仅公司 IP 可用,使用 -s x.x.x.x/32 来限定来源。对 HTTP/HTTPS:iptables -A INPUT -p tcp --dport 80 -j ACCEPT; iptables -A INPUT -p tcp --dport 443 -j ACCEPT。
5.
持久化与测试规则
测试:不要立刻登出 root 的 SSH 会话;在新会话先测试能否连回(另开终端尝试)。
持久化:Debian/Ubuntu apt install iptables-persistent 并运行 netfilter-persistent save;CentOS 可写入 /etc/rc.d/iptables 或使用 firewall-cmd / nftables 服务。
6.
使用 ufw 或 nftables 的快速配置(替代 iptables)
ufw 快速命令:ufw default deny incoming; ufw default allow outgoing; ufw allow 2222/tcp; ufw allow http; ufw allow https; ufw enable。
nftables 示例:编写 /etc/nftables.conf,定义 table inet filter,chains input/forward/output,使用 ct state 和 tcp dport 规则,然后 systemctl enable --now nftables。
7.
SSH 强化与具体操作步骤
编辑 /etc/ssh/sshd_config:修改 Port 2222,PermitRootLogin no,PasswordAuthentication no(启用后需先配置公钥),AllowUsers youruser。
重启 sshd:systemctl restart sshd;测试私钥登录:ssh -i ~/.ssh/id_rsa -p 2222 youruser@ip。
8.
安装并配置 Fail2Ban 防暴力登录
安装:Debian/Ubuntu apt update && apt install fail2ban;CentOS yum install epel-release && yum install fail2ban。
配置:复制 /etc/fail2ban/jail.conf 到 jail.local,启用 sshd 部分并设置 bantime、findtime、maxretry;systemctl enable --now fail2ban。
9.
内核与网络层优化(sysctl)
编辑 /etc/sysctl.conf 增加:net.ipv4.tcp_syncookies=1;net.ipv4.tcp_fin_timeout=15;net.ipv4.ip_forward=0;net.ipv4.conf.all.rp_filter=1。
应用命令:sysctl -p。对高并发连接,调整 nf_conntrack_max 并监控 /proc/net/nf_conntrack。
10.
DDoS 缓解与流量限制策略
在 iptables 中加入速率限制:iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 100 -j REJECT;或使用 limit 模块:-m limit --limit 25/min。
在 nginx 层启用 limit_req_zone 与 limit_conn,若遇大流量建议联系机房做黑洞/流控或使用 CDN(如 Cloudflare)做前置防护。
11.
日志、监控与规则恢复流程
开启防火墙日志:iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "IPT INPUT: "。
定期备份规则与关键配置:/root/iptables.backup、/root/sysctl.conf.bak,并写入版本控制或自动化脚本;遇误封可用 iptables-restore < /root/iptables.backup 恢复。
12.
问:在台湾 CN2 主机上,如何最简单地阻止 SSH 暴力破解?
答:最简单的组合是:1) 修改 SSH 端口并禁用密码登录(编辑 /etc/ssh/sshd_config);2) 安装并启用 Fail2Ban(配置 sshd 规则);3) 在防火墙只允许必要管理 IP。按上述步骤修改后重启服务并测试即可。
13.
问:iptables 规则误操作导致无法登录怎么办?
答:不要关闭当前会话,先在另一终端尝试登录。若已断开,用机房控制台(VNC/Serial)登录并执行 iptables-restore < /root/iptables.backup 或临时设置 ACCEPT 策略:iptables -P INPUT ACCEPT; iptables -P FORWARD ACCEPT,然后修复规则后持久化。
14.
问:对于入门用户,推荐哪种防火墙组合最稳妥?
答:推荐使用 ufw(易用)+ Fail2Ban(防爆破)+ 基本 sysctl 硬化。进阶可换用 nftables 或 iptables 并结合 nginx 限流与 CDN。CN2 不影响这些工具的使用,按提供的命令逐步执行并备份即可。
来源:台湾cn2入门用户如何配置防火墙与提升主机安全性详解