最近在整理自己的项目部署环境时,刚好需要把一台新买的云服务器从裸奔状态拉到能扛住基础扫描的水平。借着这个机会,我把整个“linux服务器安全与配置实验报告”的完整过程记录下来。这篇文章不是干巴巴的理论堆砌,而是笔者(站长)在真实操作中一步步敲过的命令、踩过的坑,以及最终沉淀下来的加固清单。
如果你手头也有一台刚装好系统的Linux服务器,或者正在准备相关的实验课程,这篇文章应该能帮你省下不少查资料的时间。
一、实验环境与初始状态确认
💡 推荐阅读:别再只会用宝塔了!手把手教你从零搞定Nginx反向代理部署,这才是真正的服务器进阶玩法
在开始任何操作之前,我们需要先搞清楚自己面对的是什么。本次实验使用的系统是 CentOS 7.9(内核版本3.10),云厂商为阿里云(新购的抢占式实例)。拿到机器的第一件事,不是急着装环境,而是做一次“健康体检”。
# 查看系统版本与内核
cat /etc/redhat-release
uname -a
# 检查当前登录用户与最近登录记录
who
last -10
# 查看开放端口与服务
ss -tunlp
检查结果发现,系统默认只开放了22端口(SSH),并且root用户可以直接通过密码登录。这显然是不安全的。我们需要在后续步骤中逐一修复。
二、账户安全加固:从源头堵住漏洞
2.1 创建普通用户并赋予sudo权限
日常运维中,我们绝不应该直接使用root账户进行远程操作。创建一个具有sudo权限的普通用户,是所有安全配置的第一步。
# 创建用户 yueke,并设置强密码
useradd yueke
passwd yueke
# 将用户加入wheel组(CentOS中wheel组默认拥有sudo权限)
usermod -aG wheel yueke
# 验证sudo权限
su - yueke
sudo whoami
2.2 禁用root远程登录
编辑SSH配置文件,将PermitRootLogin参数修改为no。这一步能有效阻止暴力破解工具针对root账户的无限尝试。
sudo vim /etc/ssh/sshd_config
# 修改或添加以下内容
PermitRootLogin no
MaxAuthTries 3
# 重启SSH服务使配置生效
sudo systemctl restart sshd
注意:在修改SSH配置前,请务必确保新用户已经能正常登录。否则一旦断开连接,你可能就要去机房或者通过云厂商的控制台VNC来救急了。
三、SSH安全策略:让暴力破解无处下手
仅仅禁用root是不够的,SSH服务本身还暴露在公网中。我们需要通过密钥认证和修改默认端口来进一步加固。
3.1 配置SSH密钥认证
在本地客户端(比如你的Mac或Windows的PowerShell)生成一对密钥,然后将公钥上传至服务器。
# 在本地生成密钥(无需密码短语)
ssh-keygen -t rsa -b 4096
# 将公钥拷贝到服务器(需要输入用户密码)
ssh-copy-id yueke@你的服务器IP
上传完成后,在服务器上修改SSH配置,禁用密码登录:
sudo vim /etc/ssh/sshd_config
# 修改为
PasswordAuthentication no
PubkeyAuthentication yes
sudo systemctl restart sshd
3.2 修改SSH默认端口
将22端口改为高位端口(如22999),可以极大减少被扫描器盯上的概率。修改配置文件中的Port字段即可。
sudo vim /etc/ssh/sshd_config
# 将 #Port 22 修改为
Port 22999
# 如果配置了防火墙,需要放行新端口
sudo firewall-cmd --permanent --add-port=22999/tcp
sudo firewall-cmd --reload
# 重启SSH
sudo systemctl restart sshd
此时,再通过ssh -p 22999 yueke@IP连接试试。如果成功,说明配置无误。
四、防火墙与SELinux:构建第一道网络防线
4.1 配置firewalld规则
CentOS 7自带firewalld,我们需要确保它处于开启状态,并只放行必要的端口。
# 启动并设置开机自启
sudo systemctl enable firewalld
sudo systemctl start firewalld
# 移除默认的22端口放行(如果之前存在)
sudo firewall-cmd --permanent --remove-service=ssh
# 放行新的SSH端口和Web服务端口(以80和443为例)
sudo firewall-cmd --permanent --add-port=22999/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
# 重新加载配置
sudo firewall-cmd --reload
# 查看当前规则
sudo firewall-cmd --list-all
4.2 SELinux状态检查与调整
SELinux是Linux系统安全的重要机制。虽然很多运维同学嫌它麻烦直接关闭,但在实验报告中,我们应当展示如何正确配置它。
# 查看当前状态
getenforce
# 临时设置(实验环境可设为Permissive)
sudo setenforce 1
# 永久修改配置文件
sudo vim /etc/selinux/config
# 将 SELINUX=disabled 修改为
SELINUX=enforcing
注意:如果修改了SSH端口,需要更新SELinux的端口上下文,否则SELinux会阻止SSH连接。
sudo semanage port -a -t ssh_port_t -p tcp 22999
五、系统更新与基础防护组件安装
5.1 更新系统补丁
保持系统最新是安全运维的基本功。这一步能修复已知的内核漏洞和软件包漏洞。
sudo yum update -y
5.2 安装Fail2ban防暴力破解
Fail2ban能通过监控日志,自动将多次尝试登录失败的IP加入黑名单。
# 安装EPEL源和fail2ban
sudo yum install -y epel-release
sudo yum install -y fail2ban
# 创建本地配置文件
sudo vim /etc/fail2ban/jail.local
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 3
[sshd]
enabled = true
port = 22999
logpath = /var/log/secure
# 启动并设置开机自启
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# 查看被ban的IP
sudo fail2ban-client status sshd
六、日志审计与入侵检测
6.1 配置日志轮转与集中管理
日志是安全事件溯源的关键。确保/var/log/secure、/var/log/messages等关键日志有足够的保留时间。
# 查看当前日志轮转配置
sudo cat /etc/logrotate.d/syslog
6.2 使用auditd进行文件监控
对关键系统文件(如/etc/passwd、/etc/shadow)实施监控,一旦被修改立即记录。
# 安装auditd
sudo yum install -y audit
# 添加监控规则
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
sudo auditctl -w /etc/shadow -p wa -k shadow_changes
# 查看规则
sudo auditctl -l
七、实验结论与安全基线检查清单
经过以上一系列操作,我们最终形成了一份可靠的加固清单。为了方便后续维护与实验报告总结,笔者整理了一个简单的对照表:
| 配置项 | 加固前状态 | 加固后状态 | 风险等级 |
|---|---|---|---|
| SSH端口 | 22 | 22999 | 中危 |
| root远程登录 | 允许 | 禁止 | 高危 |
| 密码认证 | 允许 | 仅密钥 | 高危 |
| 防火墙 | 未配置 | 仅放行必要端口 | 高危 |
| 暴力破解防护 | 无 | Fail2ban | 中危 |
| 系统补丁 | 旧版本 | 最新 | 中危 |
这份“linux服务器安全与配置实验报告”到这里就接近尾声了。通过这次实操,我们不仅加固了服务器本身,更重要的是建立了一套“最小权限”的运维思维。最后提醒一下,购买云服务器时尽量选择靠谱的大厂(比如阿里云、腾讯云),并且在初始化时直接选择密钥登录,这样能从源头省去很多麻烦。另外,如果服务器上要跑业务,记得定期备份数据,安全永远是动态的过程,而不是一次性的配置。
希望这份记录能对你的实验或实际部署有所帮助。如果你在操作中遇到了其他问题,欢迎在评论区留言交流。
延伸阅读
- 别再只会用宝塔了!手把手教你从零搞定Nginx反向代理部署,这才是真正的服务器进阶玩法
- Docker 容器之间怎么互通?几个常用网络模式与实操演示,一次讲透
- Linux服务器安全设置,这几招从入门到进阶,让你的服务器像铁桶一样稳
- Linux服务器裸奔?这份防护清单,帮你把系统焊成铁桶
🎁 全套实操配置文件与 AI 提效资料包免费下载
本文涉及的全套 Docker Compose 配置文件、服务器运维避坑手册及 AI 提效指令库已完整打包上传至夸克网盘,可直接免费极速转存:
💡 提示:推荐使用手机【夸克网盘 App】打开保存,新用户首月免费赠送 1TB 超大空间与免流量极速下载特权。