网站被黑挂马不知道怎么办?服务器安全免费工具帮你搞定
网站被黑挂马不知道怎么办?你可能已经发现网站访问异常,甚至被搜索引擎降权,或者收到用户投诉。这种情况下,服务器安全就成了救命稻草。别慌,这篇文章教你用免费工具快速排查并解决服务器被黑问题,尤其是针对福建地区的建站小伙伴,手把手带你上手。
需求分析:为什么服务器安全是建站的第一道防线
建站过程中,很多人只关注网站功能是否实现、页面是否美观,却忽略了最基础的服务器安全。特别是在福建,许多企业通过官网或电商平台开展业务,一旦服务器被黑,轻则数据泄露,重则业务中断,甚至面临法律风险。
服务器安全不是可有可无的选项,而是建站的必备流程。常见的服务器安全问题包括:网站被挂马、SQL注入、XSS攻击、DDoS攻击等,这些问题一旦发生,修复起来成本高、难度大。
为什么会被黑?
服务器被黑的原因多种多样,比如:
- 使用了默认密码,未做修改;
- 未定期更新系统和软件补丁;
- 未配置防火墙或安全组规则;
- 部署了漏洞较多的第三方插件;
- 没有启用HTTPS,数据传输不安全。
服务器安全的重要性
在福建,许多企业官网和电商网站使用的是Linux系统,比如Ubuntu、CentOS等。而这些系统如果配置不当,就会成为黑客攻击的目标。比如,某家福建外贸公司官网,由于未及时更新WordPress插件,被攻击者植入了恶意代码,导致网站被搜索引擎降权,损失了大量潜在客户。
环境准备:服务器安全需要的工具和条件
在进行服务器安全加固之前,你需要准备以下内容:
1. 服务器操作系统
常见的服务器操作系统有:
- Ubuntu:适合新手,社区支持好;
- CentOS:适合企业级应用,稳定性强;
- Debian:适合对系统有较高要求的开发人员。
福建本地建站团队中,CentOS使用较多,因为它在服务器环境部署中更常见。
2. 基础工具准备
为了确保服务器安全,你需要以下几个免费工具:
| 工具名称 | 用途 |
|---|---|
| Fail2Ban | 自动封禁恶意IP |
| Nginx | 防止恶意请求,支持WAF |
| Firewalld | 管理服务器防火墙规则 |
| Fail2Ban | 防止暴力破解 |
| OpenVAS | 漏洞扫描工具(需安装) |
| AIDE | 文件完整性检测工具 |
| ClamAV | 病毒扫描工具(免费) |
| Unattended Upgrades | 自动更新系统补丁 |
3. 服务器权限配置
服务器安全的第一步是配置用户权限。建议:
- 禁用root登录:使用普通用户登录,再通过
sudo执行高权限命令; - 设置SSH密钥登录:避免使用密码登录,防止暴力破解;
- 修改SSH默认端口:比如从22改为2222,降低被扫描概率。
4. SSL证书配置
福建的很多网站已经普及了SSL证书,这是服务器安全的基础配置之一。MDN Web Docs建议,所有网站都应该启用HTTPS,因为这不仅能提升安全性,还能提升SEO排名。
核心步骤:从排查到加固的全流程
1. 检查服务器是否有被挂马
如果发现网站访问异常,比如打开时跳转到钓鱼页面,第一步就是检查服务器是否被挂马。
使用find命令查找异常文件
find /var/www -type f -name "*.php" -exec grep -l "eval(" {} \;
这条命令会在/var/www目录下查找所有.php文件,并筛选出包含eval(关键字的文件,这些文件可能是恶意代码。
检查文件完整性
使用AIDE工具检测文件是否被篡改。安装方式如下:
sudo apt update
sudo apt install aide
sudo aide --init
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
sudo aide --check
如果出现异常文件,系统会提示你。这是福建很多建站团队常用的文件监控方式。
2. 设置防火墙与SSH安全
配置防火墙规则
使用Firewalld配置防火墙:
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
以上命令添加了HTTP、HTTPS和自定义SSH端口,防止被非法访问。
设置SSH安全策略
修改SSH配置文件 /etc/ssh/sshd_config:
# 修改SSH端口
Port 2222# 禁用root登录
PermitRootLogin no# 禁止密码登录
PasswordAuthentication no
修改后重启SSH服务:
sudo systemctl restart sshd
3. 安装和配置Fail2Ban防止暴力破解
Fail2Ban是一个自动封禁IP的工具,适用于防止SSH暴力破解、登录失败等攻击。
安装命令如下:
sudo apt update
sudo apt install fail2ban
配置文件位于/etc/fail2ban/jail.local,你可以添加如下内容:
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 600
findtime = 600
配置完成后,重启服务:
sudo systemctl restart fail2ban
4. 使用OpenVAS扫描漏洞
虽然OpenVAS不是免费工具,但它提供了一个开源版本,可以用于服务器漏洞扫描。以下是安装步骤:
sudo apt update
sudo apt install openvas
运行扫描:
sudo openvas-setup
扫描结束后,你会收到一个漏洞报告,根据报告修复问题。
代码/配置示例:加固Nginx与PHP
1. Nginx配置防止恶意请求
在Nginx的配置文件中,添加以下内容防止恶意请求:
# 防止SQL注入
if ($request_uri ~* "(\.php|\.asp|\.aspx|\.jsp|\.cgi|\.pl|\.py|\.rb|\.html|\.htm|\.shtml|\.shtm|\.phtml|\.php3|\.php4|\.php5|\.php6|\.php7|\.php8)$") {return 403;
}# 防止目录遍历攻击
if ($request_uri ~* "\.\.") {return 403;
}
将这段代码添加到/etc/nginx/sites-available/default中,然后重启Nginx服务:
sudo systemctl restart nginx
2. 配置PHP的php.ini防止代码注入
修改php.ini配置文件:
# 禁用危险函数
disable_functions = exec,passthru,shell_exec,system# 设置上传文件大小限制
post_max_size = 20M
upload_max_filesize = 20M# 禁用远程代码执行
allow_url_include = Off
保存后重启PHP服务:
sudo systemctl restart php7.4-fpm
常见报错与解决办法
1. Permission denied错误
如果你在执行sudo命令时遇到Permission denied,可能是因为你没有配置sudoers权限,或者使用了错误的用户。
解决方法:
- 使用
visudo命令编辑/etc/sudoers文件,添加你的用户权限; - 确保用户使用的是
sudo而非直接su切换root。
2. Connection refused错误
当你尝试访问SSH端口时出现Connection refused,可能是:
- SSH服务未启动;
- 端口被防火墙屏蔽;
- 服务器IP或端口配置错误。
解决方法:
- 检查SSH服务状态:
sudo systemctl status sshd; - 检查防火墙规则;
- 确保端口配置正确。
3. AIDE: File system is not clean错误
当运行aide --check时提示文件系统不干净,可能是:
- 文件系统存在损坏;
- AIDE数据库未更新;
- 检测到文件被篡改。
解决方法:
- 运行
aide --init重新初始化数据库; - 使用
fsck检查磁盘错误。
小结:服务器安全不是选择题,而是必答题
服务器安全不是一件可有可无的事情,而是建站过程中的基础配置,尤其是在福建这样电商、外贸企业众多的地区。通过配置SSH安全、使用免费工具扫描漏洞、设置防火墙规则、加固Nginx和PHP配置,你可以大大降低服务器被黑的风险。
你踩过哪些建站的坑?评论区交流,分享你的经验,也许能帮别人少走弯路。