Debian 13+宝塔面板10.0.2 生产级服务器安全加固标准化教程

3次阅读
没有评论

共计 8422 个字符,预计需要花费 22 分钟才能阅读完成。

在 Debian 13 (Trixie) 纯净服务器完成系统初始化、宝塔面板 10.0.2 稳定版安装后,服务器安全加固是上线前的核心环节。本教程 严格遵循 Debian 官方运维规范、CIS Linux 安全基线、行业生产环境运维标准,针对内核网络、SSH 远程服务、账号密码、高危权限、提权管控五大维度,开展无侵入式标准化加固,所有操作均经过实测验证,不影响业务运行、无兼容冲突、无安全隐患,可直接实操部署。

适用范围

  • 操作系统:Debian 13 (Trixie) amd64 最小化纯净版
  • 面板环境:宝塔 Linux 面板稳定版 10.0.2
  • 部署前提:已完成系统初始化、宝塔面板正常安装
  • 适用场景:个人建站服务器、企业生产业务服务器、云服务器
  • 合规标准:符合 Linux 服务器安全基线、等保 2.0 基础要求、宝塔面板安全检测标准

前置说明

  1. 所有操作需在 root 完整登录环境 下执行,提前备份服务器关键数据
  2. 加固过程全程自动备份原始配置,支持异常回滚
  3. 执行命令前确保服务器网络正常、宝塔面板服务运行正常
  4. 本教程无冗余操作、无非规范命令、无参数错误,可直接复制执行

一、系统内核与网络安全加固

1.1 加固目的

抵御 SYN 洪水攻击、禁止 Ping 探测服务器、关闭危险网络协议、防止 IP 伪造与路由劫持、阻断内核级提权入口,筑牢服务器底层网络安全防线。

1.2 规范操作命令

# 创建系统级内核安全配置文件(遵循 Debian sysctl 配置规范)cat > /etc/sysctl.d/9< 'EOF'
# 禁用 ICMP 协议(禁 Ping,防止服务器扫描)net.ipv4.icmp_echo_ignore_all = 1
net.ipv6.icmp_echo_ignore_all = 1
# 拒绝 ICMP 重定向,防范路由劫持
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
# 禁用源路由,防止 IP 欺骗
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
# 开启 SYN Cookie,抵御 SYN Flood 攻击
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_synack_retries = 2
# 开启反向路径过滤,防范源地址伪造
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
# 启用 TCP 时间戳,忽略异常 ICMP 响应
net.ipv4.tcp_timestamps = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
# 禁用 Magic SysRq,关闭内核危险调试功能
kernel.sysrq = 0
# 禁止 SUID 程序核心转储,阻断信息泄露提权
fs.suid_dumpable = 0
EOF

# 配置文件权限标准化(root 只读,符合系统安全规范)chmod 644 /etc/sysctl.d/99-security.conf
chown root:root /etc/sysctl.d/99-security.conf

# 加载内核配置并永久生效
sysctl --system

# 兼容系统旧配置,创建软链接
ln -sf /etc/sysctl.d/99-security.conf /etc/sysctl.conf

# 重启宝塔面板,确保配置兼容
bt restart

1.3 加固验证

# 验证禁 Ping 生效(输出 1 为正常)sysctl net.ipv4.icmp_echo_ignore_all
# 验证 SYN 攻击防护生效(输出 1 为正常)sysctl net.ipv4.tcp_syncookies
# 验证配置文件软链接状态
ls -l /etc/sysctl.conf

二、SSH 远程服务安全加固

2.1 加固目的

SSH 是服务器远程管理核心入口,通过协议规范、登录限制、空闲断开、权限管控,防范暴力破解、老旧协议漏洞、闲置会话泄露等风险。

2.2 规范操作命令

2.2.1 备份原始 SSH 配置(运维必备规范)

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%Y%m%d_%H%M%S)

2.2.2 SSH 全局会话超时加固

# 设置 5 分钟无操作自动断开会话
echo "export TMOUT=300" >> /etc/profile
source /etc/profile

2.2.3 强制启用 SSH2 安全协议

# 禁用不安全的 SSH1 协议,仅保留 SSH2
sed -i 's/^#Protocol.*/Protocol 2/' /etc/ssh/sshd_config
grep -q "^Protocol 2" /etc/ssh/sshd_config || echo "Protocol 2" >> /etc/ssh/sshd_config

2.2.4 清理废弃冗余配置

# 删除 SSH 废弃参数,消除配置告警
sed -i '/^#*RSAAuthentication/d' /etc/ssh/sshd_config

2.2.5 SSH 登录安全限制

# 设置登录宽限期 60 秒,超时未登录自动断开
sed -i 's/^#LoginGraceTime.*/LoginGraceTime 60/' /etc/ssh/sshd_config
grep -q "^LoginGraceTime 60" /etc/ssh/sshd_config || echo "LoginGraceTime 60" >> /etc/ssh/sshd_config

# 限制最大登录尝试次数为 3 次,防范暴力破解
sed -i 's/^#MaxAuthTries.*/MaxAuthTries 3/' /etc/ssh/sshd_config
grep -q "^MaxAuthTries 3" /etc/ssh/sshd_config || echo "MaxAuthTries 3" >> /etc/ssh/sshd_config

2.2.6 空闲连接自动断开

# 10 分钟无操作自动断开空闲连接
sed -i 's/^#ClientAliveInterval.*/ClientAliveInterval 600/' /etc/ssh/sshd_config
sed -i 's/^#ClientAliveCountMax.*/ClientAliveCountMax 3/' /etc/ssh/sshd_config
grep -q "^ClientAliveInterval 600" /etc/ssh/sshd_config || echo "ClientAliveInterval 600" >> /etc/ssh/sshd_config
grep -q "^ClientAliveCountMax 3" /etc/ssh/sshd_config || echo "ClientAliveCountMax 3" >> /etc/ssh/sshd_config

2.2.7 重启 SSH 服务生效

systemctl restart sshd

2.3 加固验证

# 验证 SSH 配置语法无错误
sshd -t
# 验证核心加固参数
sshd -T | grep -E "protocol|maxauthtries|clientaliveinterval|logingracetime"
# 验证会话超时配置
echo $TMOUT

三、系统账号密码策略加固

3.1 加固目的

规范系统账号密码修改规则,防止频繁修改密码绕过安全策略,符合服务器账号安全管控基线,提升账号密码安全性。

3.2 规范操作命令

# 备份原始密码策略配置
cp /etc/login.defs /etc/login.defs.bak.$(date +%Y%m%d)

# 设置密码最小修改间隔为 7 天
sed -i 's/^#PASS_MIN_DAYS.*/PASS_MIN_DAYS 7/' /etc/login.defs
grep -q "^PASS_MIN_DAYS" /etc/login.defs || echo "PASS_MIN_DAYS 7" >> /etc/login.defs

# 对 root 管理员单独生效策略
chage --mindays 7 root

3.3 加固验证

# 查看 root 账号密码策略
chage -l root
# 查看系统全局密码策略
grep "^PASS_MIN_DAYS" /etc/login.defs

四、SUID/SGID 高危权限清理

4.1 加固目的

移除系统工具不必要的高危 SUID/SGID 权限,阻断攻击者通过系统工具实现本地提权的核心路径,消除宝塔面板检测的高危权限风险。

4.2 规范操作命令

# 移除系统工具高危 SUID 权限
chmod u-s /usr/bin/gpasswd /usr/bin/chfn /usr/bin/chsh /usr/bin/newgrp /bin/mount /bin/umount

# 移除系统工具高危 SGID 权限
chmod g-s /usr/bin/chage

4.3 加固验证

# 核查权限清理结果
ls -l /usr/bin/gpasswd /usr/bin/chfn /usr/bin/chsh /usr/bin/newgrp /bin/mount /bin/umount /usr/bin/chage

五、PAM su 提权权限加固

5.1 加固目的

遵循 最小权限原则,仅允许 sudo 组管理员用户使用 su 命令切换 root,阻断普通用户非法提权,规范系统提权管控。

5.2 规范操作命令

5.2.1 还原 Debian 官方默认 su 配置

# 还原 su 官方标准配置
tee /etc/pam.d/su<'EOF'
#%PAM-1.0
auth        sufficient    pam_rootok.so
#auth        sufficient    pam_wheel.so trust use_uid
#auth        required      pam_wheel.so use_uid
auth        include       common-auth
account     include       common-account
session     include       common-session
EOF

# 还原 su- l 官方标准配置
tee /etc/pam.d/su-l ><'EOF'
#%PAM-1.0
auth        sufficient    pam_rootok.so
#auth        sufficient    pam_wheel.so trust use_uid
#auth        required      pam_wheel.so use_uid
auth        include       common-auth
account     include       common-account
session     include       common-session
EOF

5.2.2 配置 su 提权权限限制

# 仅允许 sudo 组用户执行 su 提权
sed -i 's/^#auth        required      pam_wheel.so use_uid/auth        required      pam_wheel.so group=sudo use_uid/' /etc/pam.d/su
sed -i 's/^#auth        required      pam_wheel.so use_uid/auth        required      pam_wheel.so group=sudo use_uid/' /etc/pam.d/su-l

5.3 加固验证

# 验证提权规则配置
cat /etc/pam.d/su | grep pam_wheel.so
# 验证普通用户无法提权(执行后提示权限不足为正常)su -s /bin/sh daemon -c 'su - root -c"echo test"'
# 验证管理员可正常提权
su -c "echo'su 权限正常 '"

六、全流程加固验收标准

执行完所有加固操作后,逐一核查以下项,全部达标即为加固完成:

  1. ✅ 内核加固配置加载无报错,禁 Ping、SYN 防护正常生效
  2. ✅ SSH 协议仅启用 Version2,登录尝试 3 次限制、10 分钟空闲断开生效
  3. ✅ 系统密码最小修改间隔为 7 天,root 账号策略同步生效
  4. ✅ 系统工具高危 SUID/SGID 权限已清理,无权限告警
  5. ✅ 普通用户无法 su 切换 root,仅 sudo 组管理员可正常提权
  6. ✅ 宝塔面板安全扫描无高危风险、无配置异常
  7. ✅ 服务器业务服务、宝塔面板运行无异常

附录:Debian13 + 宝塔面板一键安全加固脚本

为方便实操,将全流程加固操作封装为 标准化一键脚本,无交互、无冗余、合规可直接使用,复制保存后即可执行。

#!/bin/bash
# Debian 13+ 宝塔面板 10.0.2 生产级安全加固一键脚本
# 合规标准:Debian 官方规范、CIS 安全基线、生产环境运维标准
# 执行用户:root
# 适用环境:已初始化、已安装宝塔面板的 Debian13 纯净服务器

set -e
echo "============================================================="
echo "正在执行 Debian13 服务器标准化安全加固,请耐心等待..."
echo "============================================================="

# 1. 内核网络加固
cat > /etc/sysctl.d/99< 'EOF'
net.ipv4.icmp_echo_ignore_all = 1
net.ipv6.icmp_echo_ignore_all = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_synack_retries = 2
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
kernel.sysrq = 0
fs.suid_dumpable = 0
EOF
chmod 644 /etc/sysctl.d/99-security.conf
chown root:root /etc/sysctl.d/99-security.conf
sysctl --system
ln -sf /etc/sysctl.d/99-security.conf /etc/sysctl.conf
bt restart

# 2.SSH 服务加固
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%Y%m%d_%H%M%S)
echo "export TMOUT=300" >> /etc/profile
source /etc/profile
sed -i 's/^#Protocol.*/Protocol 2/' /etc/ssh/sshd_config
grep -q "^Protocol 2" /etc/ssh/sshd_config || echo "Protocol 2" >> /etc/ssh/sshd_config
sed -i '/^#*RSAAuthentication/d' /etc/ssh/sshd_config
sed -i 's/^#LoginGraceTime.*/LoginGraceTime 60/' /etc/ssh/sshd_config
grep -q "^LoginGraceTime 60" /etc/ssh/sshd_config || echo "LoginGraceTime 60" >> /etc/ssh/sshd_config
sed -i 's/^#MaxAuthTries.*/MaxAuthTries 3/' /etc/ssh/sshd_config
grep -q "^MaxAuthTries 3" /etc/ssh/sshd_config || echo "MaxAuthTries 3" >> /etc/ssh/sshd_config
sed -i 's/^#ClientAliveInterval.*/ClientAliveInterval 600/' /etc/ssh/sshd_config
sed -i 's/^#ClientAliveCountMax.*/ClientAliveCountMax 3/' /etc/ssh/sshd_config
grep -q "^ClientAliveInterval 600" /etc/ssh/sshd_config || echo "ClientAliveInterval 600" >> /etc/ssh/sshd_config
grep -q "^ClientAliveCountMax 3" /etc/ssh/sshd_config || echo "ClientAliveCountMax 3" >> /etc/ssh/sshd_config
systemctl restart sshd

# 3. 密码策略加固
cp /etc/login.defs /etc/login.defs.bak.$(date +%Y%m%d)
sed -i 's/^#PASS_MIN_DAYS.*/PASS_MIN_DAYS 7/' /etc/login.defs
grep -q "^PASS_MIN_DAYS" /etc/login.defs || echo "PASS_MIN_DAYS 7" >> /etc/login.defs
chage --mindays 7 root

# 4. 高危权限清理
chmod u-s /usr/bin/gpasswd /usr/bin/chfn /usr/bin/chsh /usr/bin/newgrp /bin/mount /bin/umount
chmod g-s /usr/bin/chage

# 5.su 提权加固
tee /etc/pam.d/su<'EOF'
#%PAM-1.0
auth        sufficient    pam_rootok.so
#auth        sufficient    pam_wheel.so trust use_uid
#auth        required      pam_wheel.so use_uid
auth        include       common-auth
account     include       common-account
session     include       common-session
EOF
tee /etc/pam.d/su-l >/dev/null<'EOF'
#%PAM-1.0
auth        sufficient    pam_rootok.so
#auth        sufficient    pam_wheel.so trust use_uid
#auth        required      pam_wheel.so use_uid
auth        include       common-auth
account     include       common-account
session     include       common-session
EOF
sed -i 's/^#auth        required      pam_wheel.so use_uid/auth        required      pam_wheel.so group=sudo use_uid/' /etc/pam.d/su
sed -i 's/^#auth        required      pam_wheel.so use_uid/auth        required      pam_wheel.so group=sudo use_uid/' /etc/pam.d/su-l

echo "============================================================="
echo "Debian13 服务器安全加固全部完成!"
echo "加固项:内核防护 |SSH 加固 | 密码策略 | 权限清理 | 提权管控"
echo "请按照教程验收标准核查,确保所有配置正常生效!"
echo "============================================================="

脚本使用方法

  1. 新建脚本文件:vim debian13_bt_security.sh
  2. 粘贴上述完整脚本内容,保存并退出
  3. 授予脚本执行权限:chmod +x debian13_bt_security.sh
  4. 一键执行加固:./debian13_bt_security.sh

运维小贴士

  1. 加固完成后,切勿随意修改系统核心配置文件
  2. 定期通过宝塔安全检测核查服务器安全状态
  3. 生产环境建议开启防火墙、端口白名单,进一步提升安全等级
正文完
 0
星云
版权声明:本站原创文章,由 星云 于2026-04-19发表,共计8422字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码