Ubuntu服务器安全加固完全指南
Ubuntu 服务器安全加固指南摘要 本文提供 Ubuntu 服务器安全加固的实用步骤,适合 Linux 新手操作: UID 检查:确保只有 root 用户拥有 UID 0,防止权限提升风险 SSH 安全: 设置超时自动断开(5分钟无操作) 添加登录警告信息 限制密码尝试次数(3次) 网络安全: 防御 ICMP 攻击(忽略广播 ping) 防止中间人攻击(禁用 ICMP 重定向) 抵御 SYN 洪
Ubuntu 服务器安全加固完全指南:从小白到入门
本文适合 Linux 新手,手把手教你完成服务器安全加固。每个步骤都有详细说明,包括命令、作用和预期结果。
写在前面
如果你刚买了一台云服务器,装上了宝塔面板或者其他管理工具,可能会收到一些安全警告。这些警告看起来很专业,但其实都是在提醒你:你的服务器有安全漏洞,需要修复。
本文会带你一步步解决这些问题。不需要深厚的 Linux 基础,只要会复制粘贴命令就行。
重要提醒:
- 修改配置前一定要备份
- 不要关闭当前 SSH 窗口,先开新窗口测试
- 如果出错,可以用备份恢复
目录
- 问题一:重复 UID(高危)
- 问题二:SSH 安全配置(高危)
- SSH 超时设置
- SSH 登录警告
- 禁用危险选项
- 问题三:网络安全参数配置(中危)
- ICMP 防护
- 路由和转发防护
- TCP 防护
- 系统安全加固(中危)
- 禁止空密码 sudo
- 限制核心转储
- Shell 超时退出
- /tmp 目录安全
- SUID/SGID 文件检查
- 总结与建议
- 常见问题解答
问题一:重复 UID(高危)
什么是 UID?
UID(User ID)是 Linux 系统中每个用户的唯一标识符。其中 UID 0 是 root 用户的专属 ID,拥有系统最高权限。
为什么重复 UID 0 很危险?
如果有其他用户(比如 apache2)也有 UID 0,那它就等同于 root,可以做任何事情。这就像给了小偷一把你家的钥匙。作者亲身经历服务器被植入了挖矿程序,攻击者就是通过apache2来操作的

检查和修复
步骤 1:检查哪些用户的 UID 为 0
grep ":0:" /etc/passwd
预期结果:正常情况下应该只有一行:
root:x:0:0:root:/root:/bin/bash
如果看到其他用户(如 apache2),说明有问题。
步骤 2:检查是否有进程在使用这个用户
ps aux | grep apache2 | head -n 5
如果没有输出,说明没有进程在使用,可以安全删除。
步骤 3:备份并删除异常用户
# 备份原文件(重要!)
sudo cp /etc/passwd /etc/passwd.backup
sudo cp /etc/shadow /etc/shadow.backup
# 删除 apache2 用户
sudo sed -i '/^apache2:/d' /etc/passwd
sudo sed -i '/^apache2:/d' /etc/shadow
解释:
sed -i表示直接修改文件/^apache2:/d表示删除以 apache2 开头的行
步骤 4:验证修复结果
grep ":0:" /etc/passwd
预期结果:应该只剩下 root 用户。
问题二:SSH 安全配置(高危)
SSH 是你远程登录服务器的通道,如果配置不当,就像给黑客留了一扇敞开的门。

2.1 SSH 超时设置
为什么要设置超时?
想象这样的场景:你 SSH 登录服务器后去喝咖啡,忘记退出。如果有人接触到你的电脑,就能直接操作你的服务器。设置超时可以自动断开空闲连接。
步骤 1:备份配置文件
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
作用:万一改错了,可以用这个备份恢复。
步骤 2:编辑 SSH 配置
sudo nano /etc/ssh/sshd_config
找到以下几行(大约在第 39 和 104 行附近),修改为:
# 原始内容(被注释掉的):
#LoginGraceTime 2m
#ClientAliveInterval 0
#ClientAliveCountMax 3
# 修改为:
LoginGraceTime 30
ClientAliveInterval 300
ClientAliveCountMax 2
MaxAuthTries 3
参数说明:
| 参数 | 含义 | 实际效果 |
|---|---|---|
LoginGraceTime 30 |
登录过程最多 30 秒 | 输入密码超过 30 秒自动断开 |
ClientAliveInterval 300 |
每 300 秒检查一次客户端 | 每 5 分钟发送一次"保活"消息 |
ClientAliveCountMax 2 |
客户端 2 次不响应就断开 | 10 分钟无操作自动断开(300×2) |
MaxAuthTries 3 |
密码最多尝试 3 次 | 防止暴力破解 |
保存退出(Ctrl+X → Y → Enter)。
步骤 3:测试配置语法
sudo sshd -t
预期结果:如果没有输出,说明配置正确。如果有错误提示,检查刚才的修改。
步骤 4:重启 SSH 服务
sudo systemctl restart sshd
重要:不要关闭当前窗口!先开一个新窗口测试能否正常登录。
步骤 5:验证服务状态
sudo systemctl status sshd
预期结果:应该看到 Active: active (running)。
2.2 设置 SSH 登录警告
为什么要设置登录警告?
登录警告有两个作用:
- 法律保护:明确告知这是私人系统,未授权访问违法
- 威慑作用:让潜在攻击者知道他们的行为会被记录
步骤 1:创建警告文件
sudo nano /etc/ssh/sshd_banner
粘贴以下内容(可根据需要修改):
***************************************************************************
警告 / WARNING
***************************************************************************
本系统仅供授权用户使用。未经授权的访问或使用将被记录并可能受到法律追究。
继续登录即表示您同意接受监控。
This system is for authorized users only. Unauthorized access or use
will be logged and may result in legal action. By continuing to log in,
you agree to be monitored.
***************************************************************************
保存退出。
步骤 2:配置 SSH 使用这个警告文件
sudo nano /etc/ssh/sshd_config
找到 #Banner none 这一行,修改为:
Banner /etc/ssh/sshd_banner
注意:如果文件中有多个 Banner 配置,删除或注释掉其他的,只保留这一行。
2.3 禁用危险选项
在同一个 sshd_config 文件中,找到 #PermitUserEnvironment,修改为:
PermitUserEnvironment no
作用:防止用户通过 SSH 设置环境变量,这可能被利用来提权。
保存退出。
步骤 3:重启 SSH 服务
sudo systemctl restart sshd
步骤 4:验证配置
grep -E "Banner|PermitUserEnvironment" /etc/ssh/sshd_config | grep -v "^#"
预期结果:
Banner /etc/ssh/sshd_banner
PermitUserEnvironment no
问题三:网络安全参数配置(中危)
什么是 sysctl?
sysctl 是 Linux 内核参数配置工具,可以控制网络、内存、文件系统等底层行为。我们要修改的是网络安全相关参数。

为什么要配置这些参数?
网络攻击有很多种,比如:
- Smurf 攻击:攻击者用你的 IP 广播 ping,让大量主机回复淹没你
- ICMP 重定向攻击:攻击者伪装成路由器,把你的流量导向恶意服务器
- SYN 洪水攻击:攻击者发送大量 SYN 包但不完成握手,耗尽服务器连接资源
这些参数就是用来防御这些攻击的。
配置步骤
步骤 1:创建安全配置文件
sudo nano /etc/sysctl.d/99-security.conf
步骤 2:添加配置内容
将以下内容复制粘贴到文件中:
#===== ICMP 防护配置 =====
# 忽略广播 ping 请求(防止 Smurf 攻击)
net.ipv4.icmp_echo_ignore_broadcasts = 1
# 拒绝 IPv4 ICMP 重定向消息(防止中间人攻击)
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
# 拒绝 IPv6 ICMP 重定向消息
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
# 拒绝安全 ICMP 重定向(即使来自网关也不接受)
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
# 忽略伪造的 ICMP 错误响应
net.ipv4.icmp_ignore_bogus_error_responses = 1
# 记录可疑的数据包到日志
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1
#===== 路由和转发防护 =====
# 禁用 IPv6 数据包转发
net.ipv6.conf.all.forwarding = 0
# 禁止发送 IPv4 重定向消息(防止你的服务器被用来攻击别人)
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
# 拒绝 IPv4 源路由数据包(防止攻击者指定数据包路径)
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
# 拒绝 IPv6 源路由数据包
net.ipv6.conf.all.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0
# 禁用 IPv6 路由器通告(防止伪造的路由器欺骗)
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.default.accept_ra = 0
#===== TCP 防护 =====
# 启用 TCP SYN Cookie 保护(防止 SYN 洪水攻击)
net.ipv4.tcp_syncookies = 1
# 启用反向路径过滤(防止 IP 欺骗)
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
保存退出。
关于 IPv4 转发的说明:
如果你的服务器没有安装 Docker 或不需要做路由器,可以添加这一行:
net.ipv4.ip_forward = 0
但如果你安装了 Docker,不要添加这一行,否则 Docker 容器无法联网。
步骤 3:应用配置
sudo sysctl -p /etc/sysctl.d/99-security.conf
预期结果:会输出所有配置项和它们的值,表示配置已生效。
配置项详解
为了帮助你理解这些配置的作用,这里列出几个重要的:
| 配置项 | 作用 | 防护什么 |
|---|---|---|
icmp_echo_ignore_broadcasts = 1 |
忽略广播 ping | 防止 Smurf 攻击(攻击者用你的 IP 广播 ping,让大量主机回复淹没你) |
accept_redirects = 0 |
拒绝 ICMP 重定向 | 防止攻击者伪装成路由器,把你的流量导向恶意服务器 |
tcp_syncookies = 1 |
启用 SYN Cookie | 防止 SYN 洪水攻击(攻击者发送大量 SYN 包但不完成握手,耗尽服务器连接资源) |
rp_filter = 1 |
反向路径过滤 | 检查数据包的源 IP 是否合法,防止攻击者伪造源 IP 地址 |
accept_source_route = 0 |
拒绝源路由包 | 源路由允许发送者指定数据包路径,攻击者可以用来绕过防火墙 |
系统安全加固(中危)
4.1 禁止空密码 sudo
为什么要检查这个?
如果系统允许用户不输入密码就能使用 sudo,那就等于给了他们免费的 root 权限。这是非常危险的。
步骤 1:检查当前配置
sudo grep -r "NOPASSWD" /etc/sudoers /etc/sudoers.d/
预期结果:
- 如果没有输出,说明配置安全 ✅
- 如果有输出,需要根据具体情况处理
特殊情况:如果看到类似这样的输出:
/etc/sudoers.d/90-cloud-init-users:root ALL=(ALL) NOPASSWD:ALL
这是 root 用户的配置,是安全的。因为 root 本身就是最高权限,不需要密码是合理的。
真正的风险是普通用户(如你的登录用户)能无密码 sudo。
步骤 2:如果发现普通用户有 NOPASSWD
sudo visudo
找到包含 NOPASSWD 的行,删除或注释掉(在行首加 #)。
保存退出(Ctrl+X → Y → Enter)。
4.2 限制核心转储
什么是核心转储?
当程序崩溃时,系统会把程序的内存内容保存到一个文件(core dump),方便开发者调试。
为什么要禁用?
核心转储文件可能包含敏感信息:
- 用户密码
- API 密钥
- 数据库连接字符串
- 用户的个人数据
如果攻击者获取到这些文件,就能分析出程序的内存内容,窃取敏感信息。
实际场景:
假设你的网站程序崩溃了,生成了一个 core dump 文件。如果这个文件被攻击者下载,他可能从中提取出数据库密码,然后直接访问你的数据库。
配置步骤
步骤 1:限制所有用户的核心转储大小为 0
echo "* hard core 0" | sudo tee -a /etc/security/limits.conf
解释:
* hard core 0:所有用户(*)的核心转储大小硬限制(hard)为 0tee -a:追加到文件末尾
步骤 2:禁用 SUID 程序的核心转储
echo "fs.suid_dumpable = 0" | sudo tee -a /etc/sysctl.d/99-security.conf
sudo sysctl -p /etc/sysctl.d/99-security.conf
解释:
- SUID 程序权限高,更危险,必须禁止它们生成核心转储
sysctl -p立即应用配置
步骤 3:验证配置
# 查看 limits.conf 中的配置
tail -5 /etc/security/limits.conf
# 查看 sysctl 配置
sysctl fs.suid_dumpable
预期结果:
- limits.conf 末尾应该有
* hard core 0 - sysctl 应该显示
fs.suid_dumpable = 0
4.3 Shell 无操作超时退出
为什么要设置这个?
想象这样的场景:你 SSH 登录服务器后去开会,忘记退出。如果有人接触到你的电脑(或者你在咖啡厅用公共 WiFi),他们就能直接操作你的服务器。
设置超时可以自动断开空闲会话,减少会话劫持风险。
配置步骤
方法一:使用单行命令(推荐)
echo -e "TMOUT=900\nreadonly TMOUT\nexport TMOUT" | sudo tee /etc/profile.d/timeout.sh > /dev/null && sudo chmod 644 /etc/profile.d/timeout.sh
方法二:手动创建文件
sudo nano /etc/profile.d/timeout.sh
粘贴以下内容:
TMOUT=900
readonly TMOUT
export TMOUT
保存退出,然后设置权限:
sudo chmod 644 /etc/profile.d/timeout.sh
参数说明:
| 参数 | 含义 |
|---|---|
TMOUT=900 |
设置超时时间为 900 秒(15 分钟) |
readonly TMOUT |
防止用户修改这个变量 |
export TMOUT |
使变量对所有子进程生效 |
验证配置
cat /etc/profile.d/timeout.sh
预期结果:应该显示刚才添加的三行内容。
注意:这个设置不会影响后台运行的程序(如 screen、tmux、systemd 服务)。
4.4 禁止在 /tmp 中创建 SUID 文件
什么是 SUID?
SUID(Set User ID)是一种特殊权限,允许普通用户以文件所有者的权限执行程序。
例如:/usr/bin/passwd 命令有 SUID 权限,普通用户执行时会以 root 权限运行,才能修改密码文件。
为什么要在 /tmp 禁用 SUID?
/tmp 是所有用户都可写的目录,攻击者可能在这里放置恶意的 SUID 程序。如果这个程序属于 root,执行时就能获得 root 权限。这是常见的提权攻击手段。
实际场景:
攻击者通过某个漏洞上传了一个恶意程序到 /tmp 目录,并设置了 SUID 权限。当你或其他用户执行这个程序时,它就能以 root 权限运行,窃取数据或植入后门。
配置步骤
步骤 1:检查当前 /tmp 的挂载状态
mount | grep /tmp
如果没有输出,说明 /tmp 没有单独挂载,需要配置。
步骤 2:创建 systemd 配置目录
sudo mkdir -p /etc/systemd/system/tmp.mount.d
步骤 3:创建安全选项配置
echo -e "[Mount]\nOptions=mode=1777,strictatime,nosuid,nodev" | sudo tee /etc/systemd/system/tmp.mount.d/options.conf
步骤 4:创建 tmp.mount 单元文件
sudo nano /etc/systemd/system/tmp.mount
粘贴以下内容:
[Unit]
Description=Temporary Directory /tmp
ConditionPathIsSymbolicLink=!/tmp
DefaultDependencies=no
Conflicts=umount.target
Before=local-fs.target umount.target
[Mount]
What=tmpfs
Where=/tmp
Type=tmpfs
Options=mode=1777,strictatime,nosuid,nodev
[Install]
WantedBy=local-fs.target
保存退出。
步骤 5:重新加载 systemd 配置
sudo systemctl daemon-reload
步骤 6:启用并启动 tmp.mount
sudo systemctl enable tmp.mount
sudo systemctl start tmp.mount
步骤 7:验证挂载状态
mount | grep /tmp
预期结果:应该看到类似这样的输出:
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,...)
选项说明:
| 选项 | 作用 |
|---|---|
nosuid |
忽略 SUID/SGID 权限(核心安全选项) |
nodev |
不允许设备文件 |
mode=1777 |
所有用户可读写,但只能删除自己的文件 |
4.5 检查系统中的 SUID/SGID 文件
什么是 SUID/SGID 文件?
- SUID:程序以文件所有者权限运行(通常是 root)
- SGID:程序以文件所属组权限运行
合法示例:/usr/bin/passwd、/usr/bin/sudo 等系统工具需要 SUID 权限才能正常工作。
为什么要定期检查?
攻击者可能在系统中植入恶意的 SUID 程序,用于提权攻击。定期检查可以发现异常文件。
检查步骤
sudo find / -type f \( -perm -4000 -o -perm -2000 \) -ls 2>/dev/null | head -20
参数说明:
-perm -4000:查找 SUID 文件-perm -2000:查找 SGID 文件2>/dev/null:忽略错误信息head -20:只显示前 20 个结果
如何判断是否正常?
正常的 SUID 工具(需要 root 权限才能工作):
/usr/bin/mount、/usr/bin/umount- 挂载/卸载文件系统/usr/bin/passwd、/usr/bin/chfn- 修改密码和用户信息/usr/bin/sudo- sudo 命令/usr/lib/openssh/ssh-keysign- SSH 密钥签名
正常的 SGID 工具(需要特定组权限):
/usr/bin/crontab- 定时任务管理/usr/sbin/unix_chkpwd- 密码验证
警惕这些情况:
- 不认识的文件:如果发现不熟悉的 SUID 文件,需要调查
- 不在标准路径:如果在
/tmp、/home等目录发现 SUID 文件,高度可疑 - 最近修改的文件:如果发现最近才创建的 SUID 文件,需要警惕
建议:每月运行一次这个检查命令,记录结果,对比是否有新增的可疑文件。
总结与建议
配置完成检查清单
完成上述所有配置后,你的服务器安全性已经大幅提升。让我们回顾一下都做了什么:
高危问题(已解决):
- ✅ 删除了重复的 UID 0 用户
- ✅ 配置了 SSH 超时机制(10 分钟无操作自动断开)
- ✅ 设置了 SSH 登录警告
- ✅ 禁用了 SSH 危险选项
中危问题(已解决):
- ✅ 配置了网络安全参数(防止 ICMP 攻击、SYN 洪水等)
- ✅ 禁止了空密码 sudo
- ✅ 限制了核心转储
- ✅ 设置了 Shell 超时退出(15 分钟)
- ✅ 禁止了 /tmp 中的 SUID 文件
- ✅ 检查了系统中的 SUID/SGID 文件
后续维护建议
1. 定期检查(每月一次)
# 检查 SUID/SGID 文件
sudo find / -type f \( -perm -4000 -o -perm -2000 \) -ls 2>/dev/null > /root/suid_check_$(date +%Y%m%d).txt
# 检查最近修改的系统文件
sudo find /etc /usr/bin /usr/sbin -type f -mtime -30 -ls 2>/dev/null
2. 查看系统日志
# 查看 SSH 登录日志
sudo tail -100 /var/log/auth.log | grep sshd
# 查看可疑的网络数据包日志
sudo dmesg | grep martian
3. 保持系统更新
# 更新软件包列表
sudo apt update
# 升级所有软件包
sudo apt upgrade -y
# 清理旧的软件包
sudo apt autoremove -y
4. 备份重要配置
建议定期备份以下文件:
/etc/ssh/sshd_config/etc/sysctl.d/99-security.conf/etc/security/limits.conf/etc/sudoers
安全加固的局限性
虽然我们做了很多配置,但需要明白:
- 这不是万能的:安全加固只是降低风险,不能完全消除风险
- 应用层安全同样重要:网站代码的漏洞(如 SQL 注入、XSS)需要单独处理
- 防火墙很重要:建议配置防火墙(如 ufw 或 iptables),只开放必要的端口
- 密码强度:使用强密码或密钥认证,禁用密码登录更安全
进一步提升安全性
如果你想进一步提升安全性,可以考虑:
1. 使用 SSH 密钥认证
# 在本地生成密钥对
ssh-keygen -t ed25519 -C "your_email@example.com"
# 将公钥复制到服务器
ssh-copy-id user@your_server_ip
# 然后在服务器上禁用密码登录
sudo nano /etc/ssh/sshd_config
# 设置:PasswordAuthentication no
2. 安装 Fail2Ban
Fail2Ban 可以自动封禁多次登录失败的 IP:
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
3. 配置防火墙
# 安装 ufw
sudo apt install ufw -y
# 允许 SSH
sudo ufw allow 22/tcp
# 允许 HTTP 和 HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 启用防火墙
sudo ufw enable
4. 定期审计
使用工具如 Lynis 进行安全审计:
sudo apt install lynis -y
sudo lynis audit system
常见问题解答
Q1: 修改配置后无法登录怎么办?
A: 这就是为什么我们强调"不要关闭当前 SSH 窗口"。
解决方法:
- 在原来的窗口中恢复备份:
sudo cp /etc/ssh/sshd_config.backup /etc/ssh/sshd_config
sudo systemctl restart sshd
- 如果完全无法登录,需要通过云服务商的控制台(VNC)登录,然后恢复配置。
Q2: Docker 容器无法联网了怎么办?
A: 这是因为禁用了 IPv4 转发。
解决方法:
# 编辑 sysctl 配置
sudo nano /etc/sysctl.d/99-security.conf
# 删除或注释掉这一行:
# net.ipv4.ip_forward = 0
# 或者改为:
net.ipv4.ip_forward = 1
# 应用配置
sudo sysctl -p /etc/sysctl.d/99-security.conf
# 重启 Docker
sudo systemctl restart docker
Q3: Shell 超时太短,经常被断开怎么办?
A: 可以调整超时时间。
解决方法:
sudo nano /etc/profile.d/timeout.sh
# 修改 TMOUT 的值(单位:秒)
# 例如改为 30 分钟:
TMOUT=1800
readonly TMOUT
export TMOUT
Q4: 如何查看哪些 IP 在尝试登录我的服务器?
A: 查看 SSH 登录日志。
# 查看所有登录尝试
sudo grep "Failed password" /var/log/auth.log | tail -20
# 统计失败次数最多的 IP
sudo grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -10
Q5: 配置完成后,宝塔面板还是显示警告怎么办?
A: 可能需要重启服务器或重新扫描。
解决方法:
- 在宝塔面板中点击"重新检测"
- 如果还是显示警告,尝试重启服务器:
sudo reboot
Q6: 这些配置会影响网站性能吗?
A: 几乎不会。
这些配置主要是:
- 限制超时时间(不影响正常使用)
- 禁用不安全的功能(本来就不应该用)
- 记录可疑行为(日志开销很小)
对网站性能的影响可以忽略不计。
Q7: 我需要定期重复这些配置吗?
A: 不需要。
这些配置是一次性的,配置完成后会一直生效。你只需要:
- 定期检查 SUID 文件(每月一次)
- 保持系统更新
- 查看日志,发现异常及时处理
Q8: 如何验证配置是否真的生效了?
A: 可以用以下命令验证:
# 验证 SSH 配置
grep -E "ClientAliveInterval|ClientAliveCountMax|LoginGraceTime" /etc/ssh/sshd_config | grep -v "^#"
# 验证网络安全参数
sysctl net.ipv4.tcp_syncookies
sysctl net.ipv4.icmp_echo_ignore_broadcasts
# 验证核心转储限制
sysctl fs.suid_dumpable
tail -5 /etc/security/limits.conf
# 验证 Shell 超时
cat /etc/profile.d/timeout.sh
# 验证 /tmp 挂载选项
mount | grep /tmp
Q9: 我的服务器被攻击了,这些配置能防住吗?
A: 这些配置可以降低风险,但不能保证 100% 安全。
如果发现被攻击:
- 立即断开网络连接
- 检查系统日志,找出入侵途径
- 修改所有密码
- 检查是否有后门程序
- 必要时重装系统
预防措施:
- 使用强密码或密钥认证
- 安装 Fail2Ban
- 配置防火墙
- 定期备份数据
Q10: 我可以在生产环境直接使用这些配置吗?
A: 可以,但建议先在测试环境验证。
注意事项:
- 如果有 Docker,不要禁用 IPv4 转发
- 如果有特殊需求(如需要 ICMP),相应调整配置
- 修改前做好备份
- 分步骤执行,每一步都验证
结语
服务器安全是一个持续的过程,不是一劳永逸的。完成这些配置后,你的服务器已经比默认配置安全很多了。
但记住:
- 定期更新系统
- 关注安全公告
- 定期检查日志
- 做好数据备份
安全无小事,希望这篇文章能帮到你!
参考资料:
最后更新:2026-01-31
如果觉得有帮助,欢迎点赞收藏!
更多推荐



所有评论(0)