服务器安全加固清单:黑客最常攻击的10个入口和防护方案

服务器安全加固清单:黑客最常攻击的10个入口和防护方案

服务器被入侵的代价远超你的想象——数据被加密勒索、网站被挂马、用户信息泄露。大多数入侵不是因为攻击者有多高明,而是因为管理员忽略了基本的安全配置。本文列出10个最容易被攻击的入口和对应的加固方案。

1. SSH弱密码

攻击方式:黑客用字典暴破root用户的常见密码(admin123、password、123456等)。

加固方案

# 禁用root直接登录
sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
# 禁用密码登录,只用密钥
sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
# 修改默认22端口(降低自动化扫描命中率)
sed -i 's/^#Port 22/Port 2222/' /etc/ssh/sshd_config
systemctl reload sshd

额外防护:安装fail2ban,3次登录失败后自动封禁IP 10分钟。

2. 未更新的软件漏洞

攻击方式:利用已知CVE漏洞攻击过时的软件版本。Apache Struts、WordPress插件、旧版PHP都是重灾区。

加固方案

# Debian/Ubuntu自动安全更新
apt install unattended-upgrades
dpkg-reconfigure unattended-upgrades

# 定期手动检查
apt update && apt list --upgradable | grep -i security

对于WordPress/Typecho这类CMS,启用后台自动更新(小版本),大版本发布后一周内手动更新。

3. 开放的数据库端口

攻击方式:MySQL的3306、Redis的6379、MongoDB的27017直接暴露在公网,没有任何认证或使用默认密码。

加固方案

  • 数据库只监听127.0.0.1,不绑定公网IP
  • Redis设置requirepass强密码
  • MongoDB启用认证(security.authorization: enabled
  • 在云防火墙层禁止数据库端口的入站流量

4. 不安全的文件权限

攻击方式:网站目录权限设置为777(任何人可写),上传目录可执行PHP文件。

加固方案

# 目录一律755
find /var/www -type d -exec chmod 755 {} \;
# 文件一律644
find /var/www -type f -exec chmod 644 {} \;
# 上传目录禁止执行PHP
echo "php_flag engine off" > /var/www/usr/uploads/.htaccess

5. 未限制的管理后台

攻击方式:暴破WordPress的/wp-admin、Typecho的/admin登录页。

加固方案

# Nginx限制管理后台只能特定IP访问
location /admin/ {
    allow 你的IP;
    deny all;
}

# 或添加HTTP基础认证
location /admin/ {
    auth_basic "Admin Area";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

6. 信息泄露

攻击方式:phpinfo.php暴露在公网、.git目录可访问泄露源码、错误信息显示数据库路径。

加固方案

# 禁止访问敏感文件
location ~ /\.(git|env|htaccess) {
    deny all;
    return 404;
}

# 生产环境关闭错误显示
# php.ini: display_errors = Off

7. SQL注入和XSS

攻击方式:未过滤的用户输入直接拼接到SQL查询或输出到HTML页面。

加固方案:使用参数化查询(Prepared Statements)而非字符串拼接。Typecho和WordPress核心代码已经做了防护,但自定义插件和主题可能引入漏洞。审查所有第三方代码中的$_GET$_POST使用。

8. DDoS攻击

攻击方式:大量请求耗尽服务器带宽或CPU。

加固方案:套Cloudflare免费CDN,开启"Under Attack"模式。Nginx配置连接限流:

limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=addr:10m;

9. 备份文件泄露

攻击方式backup.zipdatabase.sql等备份文件放在网站目录下可被直接下载。

加固方案:备份文件绝对不要放在web根目录下。使用root用户crontab执行备份,存储在/root/backups/或远程服务器。

10. 缺乏入侵检测

攻击方式:已经被入侵但不知情,攻击者长期潜伏。

加固方案

  • 安装rkhunter扫描rootkit:rkhunter --check
  • 监控/var/log/auth.log中的异常登录
  • 定期检查crontab和启动项是否有未知条目
  • netstat -tlnp检查是否有不明监听端口

安全是一个持续的过程而非一次性配置。每月花10分钟做一遍安全检查,远比被入侵后花10天恢复数据划算。

Last modification:July 12th, 2026 at 04:00 pm

Leave a Comment