做外贸独立站这几年,我见过太多悲剧:一个辛辛苦苦跑了半年的站点,关键词刚上Google首页,结果一觉醒来,收录全变成了低俗广告、仿牌内容,GSC(Google Search Console)直接发红信警告“已检测到安全问题”。这时候你才到处找人救火,基本黄花菜都凉了。想要保住排名和询盘,Linux服务器安全加固与防挂马绝对不是装个免费安全插件就能应付的,这套底层逻辑必须在建站第一天就焊死在服务器里。
Array今天不扯虚头巴脑的安全协议,直接把我手里几十台海外生产机通用的硬核加固方案倒给你,照着抄作业就行。
海外公网IP每天要被全网扫描几千次,绝大部分攻击甚至不是针对你,而是脚本小子在扫盲。你把大门虚掩着,人家不黑你黑谁?
永远不要用默认的22端口,也别相信自己设置的“强密码”。把登录逻辑改成密钥登录 + 关停密码认证:
编辑 /etc/ssh/sshd_config:
Port 28479 # 改成一个高位端口,避开常用端口 PermitRootLogin no # 禁用root直接登录,用普通用户+sudo替代 PasswordAuthentication no # 彻底关闭密码认证,只认SSH密钥 PubkeyAuthentication yes # 开启公钥认证
改完先别急着退出当前终端,新开一个窗口测试能不能连上,能连上再 systemctl restart sshd。否则把自己锁在外面,只能去服务商后台跑VNC。
哪怕关了密码,扫描器狂刷SSH端口也会吃CPU。直接装个 Fail2ban,只要5次尝试失败,IP直接拉黑24小时:
sudo apt install fail2ban -y # Ubuntu/Debian # sudo yum install fail2ban -y # CentOS/AlmaLinux
把默认配置拷贝一份到 jail.local,开启 sshd 监控即可。配置极低,但能挡掉90%的盲扫。
做WordPress或者外贸独立站,黑客最喜欢干的事就是找你插件的漏洞,上传一个webshell,然后把你的全站JS文件或者PHP核心文件污染一遍。
能写的目录绝对不能执行PHP,能执行PHP的目录绝对不能给写权限。
很多站长图省事,直接 chmod -R 777 /var/www/html,这无异于门户大开。正确的做法是:
wp-content/uploads)需要给Web用户(www-data或nginx)写权限。# 所有者收回,权限严格锁死 chown -R www-data:www-data /var/www/html/wp-content/uploads find /var/www/html -type d -exec chmod 755 {} \; find /var/www/html -type f -exec chmod 644 {} \;
这一步能防住绝大多数文件上传漏洞。就算黑客设法传上去了 shell.php,只要执行不了,它就是个废文本。
在你的 Nginx 虚拟主机配置中加入:
location ~* ^/wp-content/uploads/.*\.php$ { deny all; return 403; }
存盘 reload Nginx。你可以自己在 uploads 目录下扔一个写着 的测试文件,访问如果报 403 Forbidden,这道防线就算成了。
很多时候黑客拿下的是Web执行权限,接下来他们就会尝试提权,或者直接往你的系统层注入定时任务。
外贸站跑正常业务,根本用不着底层系统命令函数。打开你的 php.ini,找到 disable_functions,狠狠地补上一串名单:
disable_functions = system, exec, passthru, shell_exec, proc_open, popen, dl, chroot, chgrp, chown, proc_nice, proc_terminate, proc_get_status
加上这几行,99%的大马(功能型webshell)瞬间残废,想在机器里下挖矿程序、跑反弹Shell基本没戏。
127.0.0.1,绝不要对外网开放3306端口。SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER 权限。把整机root权限分给网站程序的,被脱裤也是迟早的事。如果网站已经被黑了,流量断崖下跌,源码里全是暗链,别慌着用杀毒插件,插件自身可能早就被绕过了。直接SSH连上去打这几套组合拳:
黑客上传或污染文件一定有时间戳痕迹。排查最近3天内被改动过的PHP文件:
find /var/www/html/ -type f -name "*.php" -mtime -3
输出的文件列表逐一肉眼看一遍,基本就能抓到被暗度陈仓的后门。
挂马程序为了保活,绝对会在系统的 crontab 里留一手:
crontab -l cat /etc/crontab ls -al /etc/cron.*
重点看一下有没有指向 /tmp、/var/tmp 或 /dev/shm 的古怪脚本,这些目录权限通常比较松,是黑客藏身的首选窝点。如果发现可疑指令,先杀进程,再清文件,最后干掉计划任务。
当你把网站彻底清理干净后,有些核心文件(比如 WordPress 的 index.php、wp-config.php,或者 Nginx 配置文件),平时根本不会变动。直接给它上物理锁:
chattr +i /var/www/html/index.php chattr +i /var/www/html/wp-config.php
+i 属性加上后,就算黑客拿到root权限,在解除这个属性之前也无法修改、删除或重命名该文件。需要更新配置时,再用 chattr -i 解开即可。
海外做独立站,SEO争抢排名是一场持久战,而服务器安全就是你的地基。不要迷信任何全自动的“安全防护工具”,真正的安全是把权限控死、把端口收紧、把每一个不该执行代码的角落堵上。花上一小时把上面这些步骤逐个落实,省下的是未来无数个半夜救火、掉排名的失眠夜。