当前位置:网站首页 >  百科

从零搭建轻量型服务器智能防护系统 全步骤可直接复制落地

时间:2026年06月14日 05:53:32 来源:易频IT社区

一、前置准备

1.1 环境要求

支持系统:CentOS 7.9+/Ubuntu 20.04+,最低配置1核2G云服务器,已开放22(SSH)、80/443(Web服务)端口

操作前请先切换到root用户,所有命令均在root权限下执行

1.2 基础依赖安装

CentOS系统执行:

``` yum install epel-release git python3 python3-pip -y ```

Ubuntu系统执行:

``` apt update && apt install git python3 python3-pip -y ```

二、核心防护组件安装

2.1 暴力破解防护组件Fail2ban安装

CentOS执行:

``` yum install fail2ban -y ```

Ubuntu执行:

``` apt install fail2ban -y ```

启动并设置开机自启:

``` systemctl start fail2ban && systemctl enable fail2ban ```

2.2 病毒木马扫描组件ClamAV安装

CentOS执行:

``` yum install clamav clamav-update -y ```

Ubuntu执行:

``` apt install clamav clamav-daemon -y ```

更新病毒库(首次更新需要5-10分钟,耐心等待):

``` systemctl stop clamav-freshclam freshclam systemctl start clamav-freshclam && systemctl enable clamav-freshclam ```

2.3 Web攻击防护组件Nginx-WAF安装

直接拉取开源轻量规则库到本地:

``` git clone https://github.com/xsec-lab/x-waf.git /opt/x-waf ```

如果你的服务器已安装Nginx,在Nginx配置文件http块中添加如下内容:

``` lua_package_path "/opt/x-waf/lib/?.lua;;"; init_by_lua_file /opt/x-waf/init.lua; access_by_lua_file /opt/x-waf/waf.lua; ```

从零搭建轻量型服务器智能防护系统 全步骤可直接复制落地

重载Nginx生效:

``` nginx -t && nginx -s reload ```

三、智能防护规则配置(可直接复制使用)

3.1 Fail2ban规则配置

新建配置文件/etc/fail2ban/jail.local,完整内容如下:

``` [DEFAULT] bantime = 86400 findtime = 600 maxretry = 3 banaction = iptables-multiport destemail = your_email@example.com action = %(action_mwl)s [sshd] enabled = true port = ssh logpath = %(sshd_log)s backend = %(sshd_backend)s [nginx-cc] enabled = true port = http,https filter = nginx-cc logpath = /var/log/nginx/access.log maxretry = 20 findtime = 60 bantime = 3600 ```

重载Fail2ban生效:

``` fail2ban-client reload ```

3.2 WAF规则配置

编辑/opt/x-waf/config.lua,修改如下配置项:

``` -- 开启全量防护 waf_enable = "on" -- 开启CC防护 cc_enable = "on" -- 单个IP 60秒内最多请求100次 cc_rate = "100/60" -- 拦截后返回状态码 waf_redirect_status = 403 -- 开启SQL注入、XSS、文件包含攻击拦截 sql_injection_check = "on" xss_check = "on" file_inclusion_check = "on" ```

重载Nginx生效:

``` nginx -t && nginx -s reload ```

四、智能告警配置

新建告警脚本/opt/alert.py,完整内容如下,只需修改webhook地址为你的企业微信/飞书/钉钉机器人地址:

``` import requests import sys import json def send_alert(content): webhook_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的机器人key" headers = {"Content-Type": "application/json"} data = { "msgtype": "text", "text": { "content": f"【智能防护系统告警】\n{content}" } } requests.post(webhook_url, headers=headers, data=json.dumps(data)) if __name__ == "__main__": content = sys.argv[1] send_alert(content) ```

给脚本添加执行权限:

``` chmod +x /opt/alert.py && pip3 install requests ```

在Fail2ban的action配置中添加告警触发,编辑/etc/fail2ban/action.d/iptables-multiport.conf,在actionban块末尾添加:

``` actionban = iptables -I f2b- 1 -s -j python3 /opt/alert.py "IP 因触发防护规则被封禁,来源日志:" ```

重载Fail2ban生效:

``` fail2ban-client reload ```

五、功能验证

5.1 SSH暴力破解验证

用其他机器连续3次输错SSH密码,执行如下命令查看封禁记录:

``` fail2ban-client status sshd ```

正常返回结果中会显示被封禁的IP,同时收到告警通知

5.2 Web攻击验证

访问你的服务器地址`http://你的IP/?id=1' and 1=1--`,会直接返回403,代表SQL注入拦截生效

六、日常运维常用命令

  • 查看所有封禁IP:fail2ban-client status
  • 解封指定IP:fail2ban-client set <规则名> unbanip
  • 手动全量扫描服务器病毒:clamscan -r / --exclude-dir=/sys --exclude-dir=/proc -i -l /var/log/clamav_scan.log
  • 查看WAF拦截日志:tail -f /opt/x-waf/logs/waf.log

所有配置默认适配90%个人站长、中小企业业务场景,如有特殊需求可直接修改对应规则文件的参数,无需调整核心逻辑。

相关推荐

最新

热门

推荐

精选

标签

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

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图