服务器安全项目

生产环境(对外网站)

第一阶段:


① 关闭 MySQL 公网访问(最高优先级)

检查:

ss -lntp | grep 3306

如果显示:

0.0.0.0:3306

说明对公网开放 ❌

修改 MySQL 配置:

/etc/my.cnf
或
/etc/mysql/mysql.conf.d/mysqld.cnf

改成:

bind-address = 127.0.0.1

然后:

systemctl restart mysqld

✔ 数据库只允许本机访问
✔ 暴力破解直接失效


② 修改宝塔默认端口 8888

宝塔默认端口被全球扫描。

改端口:

宝塔 → 设置 → 面板端口

改成例如:

24739

然后:

✔ 防火墙只允许你自己的IP访问
✔ 或使用 Cloudflare Tunnel


③ SSH 安全配置(必须)

编辑:

vi /etc/ssh/sshd_config

修改:

PermitRootLogin no
PasswordAuthentication no
ClientAliveInterval 600
ClientAliveCountMax 0

然后:

systemctl restart sshd

说明:

  • 禁止root直登
  • 禁止密码登录(只允许密钥)
  • 10分钟无操作自动断开

⚠ 做之前确认你已经能用密钥登录!


④ 删除 rsh

yum remove rsh -y
# 或
apt remove rsh-client -y

rsh = 明文协议
没必要存在。


⑤ 修复 sudo NOPASSWD

检查:

cat /etc/sudoers.d/90-cloud-init-users

如果有:

NOPASSWD

改为:

ALL=(ALL) ALL

🟠 第二阶段:标准生产加固

这些是 Linux 安全基线。


① 启用 SYN Cookie(防 SYN Flood)

echo "net.ipv4.tcp_syncookies=1" >> /etc/sysctl.conf
sysctl -p

② 禁止 ICMP 重定向

echo "net.ipv4.conf.all.accept_redirects=0" >> /etc/sysctl.conf
echo "net.ipv4.conf.default.accept_redirects=0" >> /etc/sysctl.conf
sysctl -p

③ 禁止 Source Route

echo "net.ipv4.conf.all.accept_source_route=0" >> /etc/sysctl.conf
echo "net.ipv4.conf.default.accept_source_route=0" >> /etc/sysctl.conf
sysctl -p

④ /tmp 加 nosuid

编辑:

/etc/fstab

改为:

tmpfs /tmp tmpfs defaults,noexec,nosuid,nodev 0 0

然后:

mount -o remount /tmp

⑤ 开启 fail2ban(强烈建议)

yum install fail2ban -y
systemctl enable fail2ban
systemctl start fail2ban

防爆破神器。


🟢 第三阶段:企业级进阶(建议但不急)


auditd

yum install audit -y
systemctl enable auditd

AIDE 文件完整性检测

yum install aide -y
aide --init

改 GRUB 权限

chmod 600 /boot/grub/grub.cfg

🎯 宝塔生产环境最佳架构(建议你考虑)

你现在做网站,我建议:

公网
 ↓
Cloudflare
 ↓
Nginx
 ↓
PHP
 ↓
MySQL (127.0.0.1)

加上:

  • WAF(Cloudflare)
  • 只开放 80/443
  • 关闭 3306
  • SSH 只允许你IP

📊 真实风险排序(按被黑概率)

风险项实际危险
3306公网开放🔴🔴🔴
SSH密码登录🔴🔴
面板默认端口🔴🔴
未启用fail2ban🔴
sysctl未加固🟡
audit缺失🟢

⚠ 最重要一句话

生产环境服务器:

✔ 不要追求“扫描全绿”
✔ 重点是减少可攻击面
✔ 端口越少越安全
✔ 服务越少越安全

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部