Linux 服务器安全加固基础笔记:从 SSH、端口到防火墙配置
在服务器日常运维中,安全加固是非常重要的一环。无论是云服务器、物理服务器,还是用于网站、数据库、游戏服、企业系统的主机,只要暴露在公网环境中,就会持续面临扫描、爆破、弱口令、漏洞利用等风险。
本文整理一套适用于 Linux 服务器的基础安全加固思路,适合新服务器上线前检查,也适合已有服务器做日常安全优化。
一、修改默认 SSH 端口
大多数 Linux 服务器默认使用 22 端口作为 SSH 登录端口。这个端口长期被扫描器重点关注,容易受到暴力破解攻击。
可以编辑 SSH 配置文件:
vim /etc/ssh/sshd_config
找到或新增:
Port 22222
这里的 22222 可以换成其他未被占用的高位端口。
修改后重启 SSH 服务:
systemctl restart sshd
注意:修改 SSH 端口前,一定要先在防火墙或安全组中放行新端口,避免把自己锁在服务器外面。
二、禁止 root 直接登录
root 用户权限最高,一旦被破解,服务器基本就完全失守。因此建议创建普通用户,通过普通用户登录后再使用 sudo 提权。
编辑 SSH 配置:
vim /etc/ssh/sshd_config
修改:
PermitRootLogin no
然后重启 SSH:
systemctl restart sshd
这样可以有效降低 root 用户被爆破带来的风险。
三、使用密钥登录,关闭密码登录
相比密码登录,SSH 密钥登录安全性更高,也更难被暴力破解。
生成密钥:
ssh-keygen -t ed25519
将公钥上传到服务器:
ssh-copy-id -p 22222 user@server_ip
确认密钥可以正常登录后,编辑 SSH 配置:
PasswordAuthentication no
PubkeyAuthentication yes
重启服务:
systemctl restart sshd
注意:关闭密码登录前,一定要确认密钥登录已经成功,否则可能无法再次进入服务器。
四、配置防火墙,只开放必要端口
服务器不应该暴露无关端口。常见需要开放的端口包括:
22/自定义端口:SSH
80:HTTP
443:HTTPS
3306:MySQL,不建议公网开放
6379:Redis,不建议公网开放
如果使用 ufw,可以这样配置:
ufw allow 22222/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
ufw status
如果使用 firewalld:
firewall-cmd --permanent --add-port=22222/tcp
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
原则是:能不开放公网的端口,就不要开放公网。
五、数据库和缓存服务不要暴露公网
很多服务器入侵事件都和数据库、Redis、Elasticsearch 等服务暴露公网有关。
例如 MySQL 建议只监听本地:
bind-address = 127.0.0.1
Redis 配置中也应限制监听地址:
bind 127.0.0.1
protected-mode yes
如果业务确实需要远程连接,建议使用内网、安全组白名单或 VPN,而不是直接开放到公网。
六、定期更新系统和软件
系统补丁和软件版本长期不更新,会增加被已知漏洞攻击的风险。
Debian/Ubuntu:
apt update
apt upgrade -y
CentOS/RHEL:
yum update -y
同时也要关注 Web 服务、数据库、中间件、面板程序、CMS 系统的安全更新,例如:
Nginx
Apache
PHP
MySQL
Redis
Docker
WordPress
宝塔/1Panel/各类云面板
七、安装基础防爆破工具
可以使用 fail2ban 来防止 SSH 暴力破解。
安装:
apt install fail2ban -y
启动并设置开机自启:
systemctl enable fail2ban
systemctl start fail2ban
查看状态:
systemctl status fail2ban
它可以根据登录失败记录自动封禁异常 IP,对公网服务器很有帮助。
八、检查异常进程和端口
日常运维中,可以定期检查当前监听端口:
ss -tunlp
查看系统进程:
ps aux
查看登录记录:
last
查看失败登录:
lastb
如果发现陌生端口、异常进程、未知用户、异常登录 IP,应及时排查。
九、做好数据备份
安全加固不能替代备份。服务器可能因为误操作、攻击、硬盘故障、程序异常等原因导致数据丢失。
建议至少准备:
本地备份
异地备份
定期自动备份
数据库单独备份
重要配置文件备份
常见需要备份的内容包括:
网站目录
数据库
Nginx/Apache 配置
SSL 证书
Docker Compose 文件
应用配置文件
备份不仅要存在,还要定期测试能否恢复。
十、上线前安全检查清单
服务器上线前,可以按下面清单快速检查:
是否修改 SSH 默认端口
是否禁止 root 直接登录
是否启用 SSH 密钥登录
是否关闭密码登录
是否只开放必要端口
数据库是否禁止公网访问
Redis 是否开启保护模式
系统是否更新到较新版本
是否安装防爆破工具
是否配置定期备份
是否检查异常进程和端口
是否配置安全组和防火墙
总结
服务器安全并不是一次性操作,而是一个持续维护的过程。基础加固的核心思路可以概括为:
减少暴露面
提高登录安全
限制端口访问
及时更新补丁
做好日志检查
建立可靠备份
对于个人站长、中小企业和普通开发者来说,做好这些基础安全措施,就能避免大量常见风险。服务器上线前多检查一次,往往比事后修复损失更划算。









暂无评论内容