当前位置:首页 >> 主机教程
简介 腾讯云服务器 免费 在公有云时代,一台新上线、暴露在公网的服务器,往往不到几分钟就会被全网扫描并遭遇SSH暴力破解、挖矿木马和后门尝试。很多事故并非黑客多高明,而是我们在基础配置上的一丝疏忽。安全不是一次性购买的产品,而是一套可持续的策略和习惯。为此,我整理了一套面向Linux服务器的五层联防实战方案

腾讯云服务器 免费

在公有云时代,一台新上线、暴露在公网的服务器,往往不到几分钟就会被全网扫描并遭遇SSH暴力破解、挖矿木马和后门尝试。很多事故并非黑客多高明,而是我们在基础配置上的一丝疏忽。安全不是一次性购买的产品,而是一套可持续的策略和习惯。为此,我整理了一套面向Linux服务器的五层联防实战方案,用最少的成本构建防护闭环,兼容常见的 Ubuntu/Debian/CentOS/RHEL,步骤清晰、可复制落地。

这五层分别是:

SSH安全加固:更改默认端口、禁用root直登、使用密钥认证,从入口处降低被撞库与扫段命中的概率。Fail2Ban防暴力:基于日志的动态封禁,自动挡住重复失败的来源IP。防火墙策略:UFW快速上手或iptables精细化控制,只放行业务所需端口,减少攻击面。入侵检测:通过OSSEC及简单脚本监控异常进程与端口,尽早发现异常行为。文件完整性:AIDE定期校验关键文件,及时识别被篡改风险。

谁适合阅读与实践:

个人开发者、小团队、初创企业的运维与后端同学刚接手或即将上线的公有云/IDC主机想用开源工具构建防守阵地的人

使用前的几点提醒:

改SSH配置务必先放行新端口并验证可登录后,再关闭旧端口与重启服务;确保有控制台/带外管理以防锁死。Fail2Ban的日志路径不同发行版略有差异(Debian/Ubuntu多为/var/log/auth.log,CentOS/RHEL多为/var/log/secure),按实际调整。防火墙生效前确认已放行当前会话所需端口;远程操作建议开第二个会话观测,避免误封断连。先在测试环境演练,再用于生产;上线后持续关注日志与告警,定期审计与更新。

接下来正文将给出可直接复制执行的命令与配置示例,并标注关键注意点,帮助你在最短时间内为服务器加上一套可解释、可维护的安全护城河。

五层联防策略

第一层:SSH安全加固

1. 修改默认端口

编辑SSH配置文件vim/etc/ssh/sshd_config修改端口(建议使用10000-65535范围)Port22022重启SSH服务systemctlrestart sshd

2. 禁用root直接登录

在sshd_config中设置PermitRootLoginno创建普通用户并加入sudo组useradd-m -s /bin/bash adminusermod-aG sudo admin

3. 配置密钥认证

生成SSH密钥对ssh-keygen -t ed25519 -C"your_email@example.com"在服务器上创建authorized_keysmkdir-p ~/.ssh chmod 700 ~/.ssh echo"your_public_key">> ~/.ssh/authorized_keyschmod600~/.ssh/authorized_keys禁用密码认证echo"PasswordAuthentication no">>/etc/ssh/sshd_config systemctl restart sshd

第二层:Fail2Ban防暴力破解

1.安装配置Fail2Ban

阿里云服务器 dns

Ubuntu/Debianaptupdate&& aptinstallfail2ban -yCentOS/RHELyuminstallepel-release-y && yuminstallfail2ban -y

2.自定义SSH防护规则

创建本地配置文件cat>/etc/fail2ban/jail.local<<EOF[DEFAULT]bantime=3600findtime=600maxretry=3ignoreip=127.0.0.1/8192.168.0.0/16[sshd]enabled=trueport=22022filter=sshdlogpath=/var/log/auth.logmaxretry=3bantime=86400EOF启动服务systemctlenablefail2ban&&systemctlstartfail2ban

3.查看封禁状态

查看被封IPfail2ban-clientstatussshd手动解封IPfail2ban-clientsetsshdunbanip192.168.1.100

第三层:防火墙配置

服务器和云服务器的区别

1.UFW简单防火墙

启用UFWufwenable设置默认策略ufwdefault deny incomingufwdefault allow outgoing允许SSH连接(使用自定义端口)ufwallow 22022/tcp允许Web服务ufwallow 80/tcpufwallow 443/tcp查看规则ufwstatus verbose

2.iptables高级配置

!/bin/bash清空现有规则iptables -F iptables -X iptables -Z设置默认策略iptables -P INPUTDROPiptables -P FORWARDDROPiptables -POUTPUTACCEPT允许本地回环iptables -AINPUT-i lo -jACCEPT允许已建立的连接iptables -AINPUT-m state--state ESTABLISHED,RELATED -j ACCEPTSSH限速(防暴力破解)iptables -AINPUT-p tcp--dport 22022 -m state --state NEW -m recent --set --name SSHiptables -AINPUT-p tcp--dport 22022 -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROPiptables -AINPUT-p tcp--dport 22022 -j ACCEPTWeb服务iptables -AINPUT-p tcp--dport 80 -j ACCEPTiptables -AINPUT-p tcp--dport 443 -j ACCEPT保存规则iptables-save> /etc/iptables/rules.v4

第四层:入侵检测系统

3.部署OSSEC-HIDS

下载安装OSSECwgethttps://github.com/ossec/ossec-hids/archive/3.6.0.tar.gztar-xzf 3.6.0.tar.gz && cd ossec-hids-3.6.0./install.sh配置监控规则vim/var/ossec/etc/ossec.conf

4.自定义监控脚本

!/bin/bash系统异常检测脚本LOG_FILE="/var/log/security_check.log"检查异常进程check_suspicious_processes() {echo"[$(date)] 检查可疑进程...">>$LOG_FILE检查CPU使用率异常的进程ps aux --sort=-%cpu | head -10 | whileread line;docpu=$(echo$line| awk{print $3})if(( $(echo"$cpu> 80"| bc -l) ));thenecho"警告:发现高CPU使用率进程:$line">>$LOG_FILEfidone}检查异常网络连接check_network_connections() {echo"[$(date)] 检查网络连接...">>$LOG_FILE检查异常端口监听netstat -tlnp | grep -E:(1234|4444|5555|8080)&& {echo"警告:发现可疑端口监听">>$LOG_FILE} }执行检查check_suspicious_processes check_network_connections

第五层:文件完整性监控

1.使用AIDE工具

安装AIDEapt install aide -yUbuntu/Debianyum install aide -yCentOS/RHEL初始化数据库aide --init mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db创建检查脚本cat > /usr/local/bin/aide_check.sh <<EOF!/bin/bashaide --check | tee /var/log/aide_check.logif[ $? -ne 0 ];thenecho"文件完整性检查发现异常,请查看日志文件"可以在这里添加邮件通知fiEOF chmod +x /usr/local/bin/aide_check.sh添加定时任务echo"0 2 * * * /usr/local/bin/aide_check.sh"| crontab -

阿里云服务器攻击