蓝易云CDN:阿里云服务器天天被攻击,如何解决?
蓝易云CDN:阿里云服务器天天被攻击,如何彻底解决?
服务器偶尔被打一次还能忍,天天被攻击就说明你已经被"盯上"了。攻击者手里存着你的IP,反复用脚本或僵尸网络自动发起攻击。这种情况靠临时封IP根本解决不了问题,必须从根源上切断攻击路径。下面给出一套经过实战验证的完整方案。🛡️

一、先搞清楚为什么你会被反复攻击
天天被打不是随机事件,一定有原因。先排查服务器是否已经被渗透:
last -i | head -30
last命令读取系统登录日志文件/var/log/wtmp,显示所有用户的历史登录记录。-i参数强制以IP地址格式显示远端地址(而非主机名),head -30只看最近30条。仔细核对每一条登录记录,如果出现你不认识的IP或者非正常时段的登录,说明服务器可能已经被入侵。🔍
再检查是否有异常的对外连接:
ss -tnp | awk '$4 !~ /127\.0\.0\.1/ && $4 !~ /::1/' | grep ESTAB
ss -tnp列出所有TCP连接及关联进程,中间的awk过滤掉本地回环地址的连接,grep ESTAB只保留已建立的连接。如果发现服务器主动连接到某些陌生的境外IP,很可能已经被植入了木马或反弹Shell程序,攻击者正是通过这个通道持续控制你的服务器并将其作为跳板,同时引来更多攻击。
检查有没有隐藏的恶意进程:
ps aux --sort=-%cpu | head -20
ps aux列出系统中所有进程的详细信息,--sort=-%cpu按CPU使用率降序排列,head -20取前20条。重点关注进程名称看不懂、路径在/tmp或/dev/shm等临时目录下的进程,这些是典型的挖矿木马或DDoS僵尸进程的藏身之处。⚠️
二、切断攻击者的"记忆"——更换公网IP
被天天攻击的核心原因就一个:你的服务器IP已经暴露了。攻击脚本里写死了你的IP地址,只要IP不变,攻击就不会停。
操作步骤很明确:在阿里云控制台将当前ECS实例的弹性公网IP解绑,重新申请一个全新的EIP绑定上去。但换IP只是第一步,更关键的是确保新IP不再泄露。以下几个泄露源必须逐一堵住:
第一,域名DNS解析不要直接指向源站IP,而是通过CDN回源。第二,检查服务器上是否配置了发信功能:
grep -r "smtp" /etc/ --include="*.conf" 2>/dev/null
grep -r递归搜索/etc/目录下所有.conf配置文件中包含"smtp"的行。邮件服务是最容易泄露源站IP的渠道,因为邮件头中会携带发送服务器的真实IP。如果有邮件服务,必须改用第三方邮件API发送,避免源站IP写入邮件头。
第三,排查所有子域名:
dig +short @8.8.8.8 你的子域名
dig是DNS查询工具,+short简化输出只显示结果IP,@8.8.8.8指定使用Google的DNS服务器查询(避免本地缓存干扰)。逐一检查所有子域名(如mail、ftp、test、api等),确保没有任何一个子域名直接解析到源站IP。攻击者最常用的手段就是扫描子域名来反查真实IP。📡
三、系统级安全加固
换了新IP后,要把服务器的安全等级拉满,防止再次被渗透。
修改SSH端口并禁用密码登录:
sed -i 's/^#Port 22/Port 58923/' /etc/ssh/sshd_config
sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart sshd
第一行用sed将SSH配置文件中的默认端口22改为58923(可以换成任何你喜欢的高位端口)。第二行关闭密码登录,只允许密钥认证,这样即使端口被扫到,没有私钥也无法登录。第三行重启SSH服务使配置生效。改完之后记得在阿里云安全组中放行新端口、关闭22端口。🔒
部署自动封禁工具fail2ban:
yum install -y fail2ban
# 创建配置文件 /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 58923
maxretry = 3
findtime = 300
bantime = 86400
这段配置的含义是:监控SSH服务(端口改为58923对应上面的修改),如果某个IP在300秒(5分钟)内登录失败超过3次,就自动封禁该IP 86400秒(24小时)。fail2ban会自动操作iptables写入封禁规则,不需要手动干预。
启动服务:
systemctl enable fail2ban --now
enable设置开机自启,--now同时立即启动服务。这样服务器就具备了自动对抗暴力破解的能力。✅
四、内核参数优化——提升抗攻击韧性
调整TCP内核参数,让系统面对SYN Flood时更加从容:
cat >> /etc/sysctl.conf << 'EOF'
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_tw_reuse = 1
EOF
sysctl -p
逐行解释:tcp_syncookies = 1开启SYN Cookie机制,在SYN队列溢出时不再直接丢弃新连接,而是通过加密Cookie验证客户端真实性,这是对抗SYN Flood的核心参数。tcp_max_syn_backlog = 65535将半连接队列扩大到65535,提高系统在突发SYN洪水下的容纳能力。tcp_synack_retries = 2将SYN-ACK重传次数从默认5次降为2次,减少每个半连接占用系统资源的时间。tcp_fin_timeout = 15缩短FIN-WAIT-2状态的超时时间,加快端口回收。tcp_tw_reuse = 1允许复用TIME-WAIT状态的端口,避免端口耗尽。最后sysctl -p立即加载所有新参数。💪
五、接入蓝易云CDN——从根源终结反复攻击
以上所有措施解决的是"挨打后怎么扛"的问题,而接入蓝易云CDN解决的是"怎么不再挨打"。域名流量全部经过CDN节点,源站IP彻底隐藏。攻击者面对的是CDN的高防节点,DDoS流量清洗和CC智能识别在边缘层就完成过滤,干净流量才回源到你的阿里云服务器。
配合之前更换的新IP,只要做到新IP仅在CDN回源配置中使用、不出现在任何DNS记录和公开服务中,攻击者就失去了攻击目标。没有IP可打,天天攻击的问题自然消失。🎯
总结
天天被攻击的本质是IP暴露加安全基线低。解决思路是:排查入侵痕迹 → 更换公网IP → 堵住IP泄露源 → 系统安全加固 → 接入CDN隐藏源站。五步走完,攻击者既找不到你,也打不进来,反复被攻击的噩梦就此终结。🚀