Linux服务器上线前,这几条安全底线你必须守住

很多朋友在拿到一台崭新的Linux服务器时,第一反应是赶紧把环境配好、把业务跑起来。但笔者(站长)见过太多因为前期忽视安全策略,导致上线一周就被“挖矿”程序盯上,或者数据库被勒索的案例。今天我们不谈那些晦涩的网络安全法,就从一个运维老兵的角度,聊聊那些真正实用、能救命的安全底线操作。

一、账号与登录:把好第一道门

💡 推荐阅读:别再只会用宝塔点点了:手把手教你用 Nginx 实现反向代理,从入门到上线其实就这么简单

默认的root账号和密码登录是最大的风险敞口。暴力破解工具无时无刻不在扫描公网IP,如果你还开着22端口用密码登录,那基本等于把家门钥匙挂在锁上。

1. 禁用root直接登录,创建普通用户提权

我们首先要创建一个具有sudo权限的普通用户,日常操作都用这个账号,避免root密码被暴力破解后直接获得最高权限。

# 创建用户并设置密码
useradd -m -s /bin/bash admin
passwd admin

# 将admin加入wheel组(CentOS/RHEL)或sudo组(Debian/Ubuntu)
usermod -aG wheel admin   # CentOS
# usermod -aG sudo admin  # Ubuntu

# 修改SSH配置文件
vim /etc/ssh/sshd_config

2. 修改SSH关键参数

sshd_config中,务必确认以下几项配置,这是阻断暴力破解的核心手段:

配置项 推荐值 说明
Port 高位端口(如22999) 避免默认22端口被批量扫描
PermitRootLogin no 禁止root直接SSH登录
PasswordAuthentication no 关闭密码登录,只允许密钥
PubkeyAuthentication yes 开启密钥认证

修改完成后记得重启服务:systemctl restart sshd。这里提醒一下,在关闭密码登录前,请务必确认你的公钥已经写入~/.ssh/authorized_keys,否则你会把自己锁在门外。

二、防火墙与端口管控:别让服务裸奔

💡 延伸阅读:Docker 开源仓库到底怎么用?从镜像拉取到自建私有仓库的完整实操笔记

很多云厂商的安全组和服务器内部的iptables/firewalld是两层概念。建议两者都做限制,做到“白名单”式访问。

1. 使用firewalld或ufw管理端口

对于CentOS 7+,我们使用firewalld;对于Ubuntu,使用ufw。原则是:只放行业务需要的端口,其余一律DROP。

# CentOS 7+ 示例
systemctl start firewalld
systemctl enable firewalld
firewall-cmd --permanent --remove-service=ssh
firewall-cmd --permanent --add-port=22999/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload

2. 利用Fail2ban拦截恶意IP

即便用了密钥登录,也不能掉以轻心。Fail2ban能通过扫描日志,将多次尝试失败的IP拉黑。这是一道非常有效的保险丝。

# 安装Fail2ban
yum install fail2ban -y   # CentOS
apt install fail2ban -y   # Ubuntu

# 配置本地保护
cat > /etc/fail2ban/jail.local <<EOF
[sshd]
enabled = true
port = 22999
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 86400
EOF

systemctl restart fail2ban

三、系统与软件更新:修补已知漏洞

💡 深度技术指南:还在被502折磨?Nginx反向代理配置,看这一篇就够了

不要觉得“稳定压倒一切”就长期不更新内核和软件包。很多入侵事件都是利用了已知的CVE漏洞。建议设置每周自动更新安全补丁,但内核更新需谨慎,建议在业务低峰期手动操作。

# CentOS 安装自动更新
yum install yum-cron -y
vim /etc/yum/yum-cron.conf
# 将 apply_updates 设置为 yes

# Ubuntu 安装自动更新
apt install unattended-upgrades -y
dpkg-reconfigure unattended-upgrades

四、文件权限与敏感信息保护

服务器上最值钱的除了数据就是配置文件。尤其是.envwp-config.php这类包含数据库密码和密钥的文件。

1. 关键文件权限设置

确保敏感文件只有属主可读,其他用户不可访问。

chmod 600 /path/to/.env
chmod 600 /path/to/backup.sql
# 目录权限建议设置为 700 或 750

2. 查找并清理异常SUID文件

SUID权限如果被恶意利用,可能导致提权。定期排查系统中的SUID文件,看看有没有异常。

find / -perm -4000 -type f 2>/dev/null

看到不认识的SUID文件要格外小心,尤其是/tmp/var/tmp目录下的。

五、日志监控与审计:让入侵无处遁形

配置好日志轮转和远程日志备份,关键时刻能救命。同时,建议开启bash历史记录的时间戳,方便事后溯源。

# 开启历史记录时间戳
echo 'export HISTTIMEFORMAT="%F %T "' >> /etc/profile
source /etc/profile

# 使用auditd监控关键文件
auditctl -w /etc/passwd -p wa -k passwd_changes
auditctl -w /etc/shadow -p wa -k shadow_changes

六、安全加固的额外建议

  • 使用密钥登录时,建议为私钥设置口令(passphrase),即使私钥泄露,攻击者也无法直接使用。
  • 定期检查系统用户列表,删除不使用的账号,特别是UID为0的非root账号。
  • 如果业务不需要出站连接,可以在防火墙层面限制出站流量,这能有效防止服务器被入侵后向外发起DDoS攻击或下载恶意程序。
  • 数据库服务(如MySQL/Redis)务必绑定内网IP,不要使用0.0.0.0监听所有接口。Redis的未授权访问漏洞是重灾区。

结语

安全是一个持续的过程,不是一劳永逸的配置。上面这些操作,是每一台Linux服务器上线前的“最低消费”。把这些基础打牢,能挡住90%以上的自动化攻击。当然,如果你使用的是靠谱的云服务商(比如笔者所在的站长),在选购时尽量选择带默认安全组和DDoS基础防护的套餐,这能让你在起步阶段就轻松很多。记住,安全无小事,别等被黑了才追悔莫及。

相关技术专题与延伸阅读

💡 【高性价比独享云服务器限时 1 折起】

新手搭建网站或部署容器,推荐选择高性价比独享云服务器。点击下方通道可享受限时折扣与专属优惠券:

👉 点此前往领取云服务器限时优惠券

🎁 全套实操配置文件与 AI 提效资料包免费下载

本文涉及的全套 Docker Compose 配置文件、服务器运维避坑手册及 AI 提效指令库已完整打包上传至夸克网盘,可直接免费极速转存:

👉 点击前往夸克网盘免费极速转存获取

💡 提示:推荐使用手机【夸克网盘 App】打开保存,新用户首月免费赠送 1TB 超大空间与免流量极速下载特权。

滚动至顶部