覆盖暴力破解、默认端口等核心基础风险,所有步骤可直接复制执行。
1. 编辑SSH配置文件:
``` sudo nano /etc/ssh/sshd_config ```2. 找到`Port 22`,保留该行并在下方添加`Port 2200`(测试旧端口正常后可删除原22端口配置)。
必须先开防火墙再重启SSH,否则会锁死无法连接,执行对应系统的防火墙命令:
``` Debian/Ubuntu 防火墙配置 sudo ufw allow 2200/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable CentOS 防火墙配置 sudo firewall-cmd --add-port=2200/tcp --permanent sudo firewall-cmd --reload ```3. 重启SSH生效:
``` sudo systemctl restart sshd ```1. 安装对应包:
``` Debian/Ubuntu sudo apt install fail2ban -y CentOS sudo yum install fail2ban -y ```2. 生成自定义配置文件:
``` sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local ```3. 编辑jail.local的[sshd]模块,替换为你的SSH端口:
``` [sshd] enabled = true port = 2200 filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 3600 ```4. 启动并设置开机自启:
``` sudo systemctl enable --now fail2ban ```
直接替换对应域名、证书路径即可使用,无冗余配置。
编辑站点配置文件(路径一般为/etc/nginx/sites-available/你的域名),替换server块为:
``` server { listen 80; server_name example.com; 替换为你的域名 return 301 https://$host$request_uri; 强制跳转HTTPS } server { listen 443 ssl http2; server_name example.com; 替换为你的域名 ssl_certificate /etc/ssl/example.com.crt; 替换为你的证书路径 ssl_certificate_key /etc/ssl/example.com.key; 替换为你的密钥路径 server_tokens off; 隐藏Nginx版本号 autoindex off; 禁止目录列表浏览 if ($request_method !~ ^(GET|HEAD|POST)$) { 禁用非必要HTTP方法 return 405; } 上传目录权限隔离(防止木马执行) location /uploads { deny all; } location ~ \.(php|jsp|asp)$ { 拦截所有脚本访问 deny all; } } ```配置测试并重启Nginx:
``` sudo nginx -t && sudo systemctl reload nginx ```100行内脚本完成核心巡检,无需复杂工具,设置定时运行即可。
创建security_check.sh文件,替换脚本路径后执行:
``` !/bin/bash 安全巡检脚本 LOG_PATH="/var/log/security_check.log" echo "=== 安全巡检报告:$(date '+%Y-%m-%d %H:%M:%S') ===" > $LOG_PATH 1. 检查24小时未修改的网站文件(异常篡改/新增) echo "【1】24小时未修改的网站文件:" >> $LOG_PATH find /var/www/html -type f -mtime +1 -size +1c >> $LOG_PATH 2. 检查非内网的SSH登录IP(异常爆破) echo "【2】最近登录的非内网IP:" >> $LOG_PATH last -i | grep -vE "(192\.168|127\.0\.0\.1)" | head -10 >> $LOG_PATH 3. 检查fail2ban封禁的IP echo "【3】fail2ban已封禁的IP:" >> $LOG_PATH fail2ban-client status sshd | grep "Banned IP list" >> $LOG_PATH ```添加执行权限:
``` sudo chmod +x /path/to/security_check.sh 替换为你的脚本路径 ```编辑crontab,设置每天凌晨2点执行巡检:
``` sudo crontab -e ```在最后添加一行后保存:
``` 0 2 /path/to/security_check.sh >> /var/log/security_check_cron.log 2>&1 ```按以下步骤操作,最小化损失,无需复杂工具:
下一篇: 别等被黑了才后悔,网站安全防线的终极复盘












易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图