Linux 服务器安全加固基础笔记:从 SSH、端口到防火墙配置

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 是否开启保护模式
系统是否更新到较新版本
是否安装防爆破工具
是否配置定期备份
是否检查异常进程和端口
是否配置安全组和防火墙

总结

服务器安全并不是一次性操作,而是一个持续维护的过程。基础加固的核心思路可以概括为:

减少暴露面
提高登录安全
限制端口访问
及时更新补丁
做好日志检查
建立可靠备份

对于个人站长、中小企业和普通开发者来说,做好这些基础安全措施,就能避免大量常见风险。服务器上线前多检查一次,往往比事后修复损失更划算。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容