文章目录
针对RAKsmart服务器安装LNMP环境后的 安全加固与监控详细操作指南,分步骤实现安全防护与资源监控,rak部落小编为您整理发布RAKsmart服务器安装LNMP一键包的系列教程:安全加固与监控。
一、服务器安全防护
1. 配置Fail2ban防御SSH暴力破解
bash
# 安装Fail2ban yum install fail2ban -y # CentOS apt install fail2ban -y # Ubuntu # 配置SSH防护规则 nano /etc/fail2ban/jail.local
ini
[sshd] enabled = true port = 22 # 若修改了SSH端口,需同步此处 filter = sshd maxretry = 3 # 允许失败次数 findtime = 600 # 10分钟内触发 bantime = 3600 # 封禁1小时 action = %(action_mwl)s # 邮件通知(需配置邮件服务)
bash
# 重启服务生效 systemctl restart fail2ban systemctl enable fail2ban # 查看封禁IP列表 fail2ban-client status sshd
2. 使用Cloudflare防火墙保护Web服务
- 接入Cloudflare
- 域名DNS解析指向Cloudflare,开启代理状态(橙色云图标)。
- 配置WAF规则
- 控制台 > 安全性 > WAF > 创建规则:
- 拦截SQL注入:
Expression: (http.request.uri.query contains "select%20")
- 封禁高频访问IP:
Expression: (cf.threat_score gt 10)
- 拦截SQL注入:
- 控制台 > 安全性 > WAF > 创建规则:
- 启用DDoS防护
- 控制台 > 安全性 > DDoS > 启用“Under Attack”模式(遭遇攻击时临时启用)。
3. 禁用不必要的服务与端口
bash
# 查看当前监听端口 netstat -tulpn | grep LISTEN # 关闭无用服务(示例) systemctl stop vsftpd # 关闭FTP systemctl disable vsftpd systemctl mask telnet.socket # 彻底禁用Telnet # 防火墙仅放行必要端口(HTTP/HTTPS/SSH) firewall-cmd --permanent --add-port={80/tcp,443/tcp,22/tcp} # CentOS ufw allow {80,443,22} # Ubuntu firewall-cmd --reload # CentOS ufw reload # Ubuntu
4. LNMP组件漏洞修复
- 自动更新策略bash复制下载# CentOS配置yum-cron yum install yum-cron -y systemctl enable yum-cron systemctl start yum-cron # Ubuntu配置unattended-upgrades apt install unattended-upgrades -y dpkg-reconfigure unattended-upgrades # 选择自动更新安全补丁
- 手动升级LNMP脚本bash复制下载cd ~/lnmp1.X # 进入原LNMP安装目录 wget http://soft.vpser.net/lnmp/lnmp1.X.tar.gz # 替换为最新版链接 tar zxf lnmp1.X.tar.gz ./upgrade.sh # 选择需要升级的组件(Nginx/PHP/MySQL)
5. 定期扫描Web目录(ClamAV防病毒)
bash
# 安装ClamAV yum install clamav clamav-update -y # CentOS apt install clamav clamav-daemon -y # Ubuntu # 更新病毒库 freshclam # 手动扫描Web目录 clamscan -r --remove /var/www/html # -r递归扫描,--remove删除感染文件 # 配置每日自动扫描 crontab -e
cron
0 3 * * * /usr/bin/clamscan -r /var/www/html --log=/var/log/clamav_scan.log && mail -s "ClamAV Scan Report" [email protected] < /var/log/clamav_scan.log
二、资源监控与告警
1. 安装配置Netdata实时监控面板
bash
# 一键安装Netdata bash <(curl -Ss https://my-netdata.io/kickstart.sh) # 配置Nginx反向代理(可选) nano /usr/local/nginx/conf/vhost/netdata.conf
nginx
server { listen 80; server_name status.example.com; location / { proxy_pass http://127.0.0.1:19999; proxy_set_header Host $host; } access_log off; }
2. 设置邮件/Telegram服务器负载告警
- 邮件告警(通过Netdata)
- 修改Netdata配置启用邮件:bash复制下载nano /etc/netdata/health_alarm_notify.conf设置SMTP参数:conf复制下载DEFAULT_SEND_EMAIL=”YES” EMAIL_SENDER=”[email protected]” EMAIL_RECIPIENT=”[email protected]”
- Telegram告警脚本bash复制下载# 创建脚本/root/telegram_alert.sh #!/bin/bash TOKEN=”YOUR_BOT_TOKEN” CHAT_ID=”YOUR_CHAT_ID” MESSAGE=”⚠️ 服务器负载过高!当前负载:$(uptime | awk -F ‘load average:’ ‘{print $2}’)” curl -s -X POST “https://api.telegram.org/bot${TOKEN}/sendMessage” -d “chat_id=${CHAT_ID}&text=${MESSAGE}”bash复制下载# 设置Netdata调用此脚本 nano /etc/netdata/health.d/load.confconf复制下载alarm: load_average on: system.load lookup: average -1m foreach load warn: $this > (($status >= CRITICAL) ? 3 : 2) crit: $this > 4 exec: /root/telegram_alert.sh
3. 日志分析工具(GoAccess生成访问报表)
bash
# 安装GoAccess yum install goaccess -y # CentOS apt install goaccess -y # Ubuntu # 生成实时HTML报表(分析Nginx日志) goaccess /usr/local/nginx/logs/access.log -o /var/www/html/report.html --log-format=COMBINED # 配置每日自动生成报表 crontab -e
cron
0 0 * * * /usr/bin/goaccess /usr/local/nginx/logs/access.log -o /var/www/html/daily_report.html --log-format=COMBINED
三、关键安全检查清单
- SSH安全
- 确认已修改默认端口:
grep Port /etc/ssh/sshd_config
- 确认禁用密码登录:
grep PasswordAuthentication /etc/ssh/sshd_config
(应为no
)
- 确认已修改默认端口:
- 防火墙状态
- CentOS:
firewall-cmd --list-all
- Ubuntu:
ufw status verbose
- CentOS:
- LNMP组件版本
- 检查版本:
nginx -v
、php -v
、mysql -V
- 检查版本:
操作提示:
- 执行命令前备份配置文件(如
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
)。 - 修改关键服务后务必重启生效(如
systemctl restart nginx
)。
rak部落小编温馨提示:以上是小编为您整理发布的RAKsmart服务器安装LNMP一键包的系列教程:安全加固与监控。,更多知识分享可持续关注我们,raksmart机房更有多款云产品免费体验,助您开启全球上云之旅。