Linux安全加固新手实操指南:从登录保护到防火墙配置

很多刚接触Linux的朋友买了云服务器后,第一步就是安装软件,却忽略了最基础的安全加固。
这篇教程围绕 Linux安全加固 展开,我会从登录环节开始,一步步把服务器的漏洞补上。
整个过程不需要你懂太多原理,跟着命令敲就能完成。

准备工作:一台能连上的Linux机器

你需要一台已经安装好CentOS 7/8、Ubuntu 20.04/22.04或Debian的服务器。
如果你是使用云厂商(阿里云、腾讯云、华为云等)的实例,通常已经开启了root密码登录。
请确保你能通过终端工具(如Xshell、Putty或系统自带终端)用root账号和密码连上服务器。

重要提醒:在开始加固之前,请先检查系统是否已更新到最新的安全补丁。
执行以下命令:

# CentOS / RHEL
yum update -y

# Ubuntu / Debian
apt update && apt upgrade -y

更新完成后重启一次,让内核补丁生效。

第一步:禁用root直接登录,创建普通用户

root是Linux的最高权限账号,直接暴露给外网非常危险。
正确的做法是创建一个普通用户,赋予sudo权限,然后禁止root通过SSH登录。

  1. 用root登录服务器,创建新用户并设置密码:
   useradd -m -s /bin/bash admin
   passwd admin

*注意:把admin替换成你喜欢的用户名,密码要足够复杂。
*

  1. 将新用户加入sudo组(Ubuntu/Debian)或wheel组(CentOS/RHEL):
   # Ubuntu/Debian
   usermod -aG sudo admin
   # CentOS/RHEL
   usermod -aG wheel admin
  1. 测试新用户能否正常登录并用sudo执行命令:
   su - admin
   sudo whoami

如果返回root,说明sudo权限生效。

第二步:配置SSH密钥登录,修改默认端口

密码登录容易被暴力破解,密钥登录更安全。
同时修改SSH默认的22端口也能减少很多扫描。

生成并上传SSH密钥对

(如果你已经有一对密钥,可以跳过生成步骤,直接用ssh-copy-id上传)

  1. 在本地电脑上(Windows可以用PowerShell或Git Bash,Mac/Linux直接用终端)生成密钥:
   ssh-keygen -t ed25519 -C "your_email@example.com"

一路回车即可。

  1. 将公钥上传到服务器的普通用户家目录下:
   ssh-copy-id -i ~/.ssh/id_ed25519.pub admin@你的服务器IP

如果提示权限问题,先用root执行chown -R admin:admin /home/admin再试。

修改SSH配置

编辑SSH服务端配置文件:

sudo vim /etc/ssh/sshd_config

找到并修改以下几行:

Port 2222                 # 将22改成其他数字(如2222)
PasswordAuthentication no # 禁用密码登录
PubkeyAuthentication yes  # 确保启用密钥验证
PermitRootLogin no        # 禁止root直接登录

避坑提示:在修改前,建议先不退出当前SSH连接,另开一个终端测试新配置是否生效,避免把自己锁在外面。
如果要使用新端口(如2222),一定要记住先开放防火墙规则(下一步)。

保存后重启SSH服务:

sudo systemctl restart sshd

现在,用root直接连接会失败,只能通过普通用户+密钥登录。

第三步:配置防火墙,只开放必要端口

很多服务器默认没有启用防火墙,或者只是简单放行所有流量。
我们需要用UFW(Ubuntu)或firewalld(CentOS)来设置规则。

Ubuntu/Debian使用UFW

  1. 安装并启用UFW:
   sudo apt install ufw -y
   sudo ufw default deny incoming
   sudo ufw default allow outgoing
  1. 开放SSH新端口(比如2222)以及其他服务端口(如HTTP 80、HTTPS 443):
   sudo ufw allow 2222/tcp
   sudo ufw allow 80/tcp
   sudo ufw allow 443/tcp
  1. 启动防火墙:
   sudo ufw enable

输入y确认。
查看状态:sudo ufw status verbose

CentOS/RHEL使用firewalld

  1. 安装并启动firewalld(一般已预装):
   sudo systemctl start firewalld
   sudo systemctl enable firewalld
  1. 开放端口并重新加载:
   sudo firewall-cmd --permanent --add-port=2222/tcp
   sudo firewall-cmd --permanent --add-service=http
   sudo firewall-cmd --permanent --add-service=https
   sudo firewall-cmd --reload
  1. 查看已开放端口:sudo firewall-cmd --list-ports

避坑提醒:如果你在云厂商控制台也配置了安全组,记得同步放行新SSH端口(2222),否则防火墙规则再精确,流量也进不来。

第四步:安装Fail2ban,防御暴力破解

即使你用密钥登录,但其他服务(比如Web后台)可能暴露密码接口。
Fail2ban能自动识别异常登录并临时封禁IP。

  1. 安装Fail2ban:
   # Ubuntu/Debian
   sudo apt install fail2ban -y
   # CentOS/RHEL
   sudo yum install epel-release -y
   sudo yum install fail2ban -y
  1. 创建自定义配置,避免被更新覆盖:
   sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
   sudo vim /etc/fail2ban/jail.local

找到[sshd]部分,确保以下内容:

   [sshd]
   enabled = true
   port    = ssh               # 如果你的SSH端口是2222,这里改为2222
   filter  = sshd
   logpath = /var/log/auth.log  # Ubuntu路径;CentOS是/var/log/secure
   maxretry = 5                 # 5次失败就封禁
   bantime = 3600               # 封禁1小时
  1. 启动Fail2ban并设置开机自启:
   sudo systemctl start fail2ban
   sudo systemctl enable fail2ban
  1. 检查状态和封禁列表:
   sudo fail2ban-client status sshd

如果看到Banned IP list有IP,说明防护生效。

验证加固效果与高频问题

验证方法

  1. 用普通用户和密钥登录新端口:
   ssh -p 2222 admin@你的服务器IP

能成功登录则第一步到第三步正确。

  1. 尝试用密码登录root:系统应拒绝。
  2. 故意输错几次密码,然后查看Fail2ban是否封禁IP:
   sudo fail2ban-client status sshd | grep Banned

常见问题

  • Q:修改SSH端口后,不小心退出了无法连接怎么办? A:如果你在云厂商控制台还有“VNC”或“救援模式”,可以从那里登录将端口改回22。如果没有任何备用通道,下次一定先测试再重启sshd。
  • Q:UFW或firewalld开启后,SSH连接中断? A:大概率是防火墙没有放行你新设的SSH端口。通过云厂商的VNC登录,添加对应端口规则再重启网络。
  • Q:Fail2ban没生效/不记录日志? A:检查/etc/fail2ban/jail.local中的logpath是否正确,不同系统日志位置不同。

写在最后

到这里,你的Linux服务器已经完成了基础的安全加固:禁止root远程登录、使用密钥认证、修改SSH端口、防火墙白名单放行,以及Fail2ban防护。
这些都是Linux安全加固中性价比最高的操作,能挡住绝大多数自动化攻击。
后续可以进一步配置SELinux、定期审计日志、安装ClamAV杀毒等,但先把这几步做好,服务器就能安心跑服务了。
如果你在操作中遇到问题,欢迎在评论区留言,我会尽量回复。

分享到:
上一篇
零基础学会Linux性能优化:系统调优从这5步开始
下一篇
Linux漏洞修复教程:从零开始彻底更新系统
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意