引言:拿到一台Linux服务器,我们首先要做什么?
💡 推荐阅读:从零玩转 Docker:这几个高星开源项目,直接让你的服务器效率翻倍
很多朋友在购买云服务器后,面对黑乎乎的终端窗口常常感到手足无措。网上教程虽多,但大多零散且老旧。笔者(站长)在日常运维中接触了大量服务器实例,今天决定将“基础配置”与“安全加固”这两大核心模块串联起来,整理成一份从零到一、可直接落地的操作指南。这篇文章不堆砌理论,只讲实操,确保你跟着敲完命令,服务器就能处于一个相对健壮的状态。
第一步:初始化系统与账户体系(告别Root直连)
💡 延伸阅读:WordPress慢到让人抓狂?别急着换主机,这10个提速技巧90%的人只做对了一半
无论是阿里云、腾讯云还是海外VPS,新装的CentOS或Ubuntu系统默认都允许Root登录。这是最大的安全隐患。我们的首要任务就是创建低权限用户,并配置sudo提权。
1. 创建普通用户并加入轮组
# 以Root身份登录后执行
useradd -m -G wheel adminuser # CentOS/RHEL系
passwd adminuser # 设置强密码
# Ubuntu/Debian系请使用:
useradd -m -G sudo adminuser
passwd adminuser
注意:wheel或sudo组决定了该用户能否执行提权操作。完成这一步后,先不要退出Root,继续配置SSH。
2. 配置SSH密钥登录并禁用密码
密码登录极易被暴力破解,密钥登录则是目前最稳妥的方式。我们在本地电脑生成密钥对,然后将公钥上传至服务器。
# 在本地终端(非服务器)执行:
ssh-keygen -t ed25519 -C "your_email@example.com"
# 一路回车,然后使用ssh-copy-id将公钥传上去
ssh-copy-id adminuser@你的服务器IP
测试密钥登录成功后,我们再来修改SSH服务端配置:
sudo vim /etc/ssh/sshd_config
# 修改或添加以下三项:
Port 2222 # 修改默认端口,避开22端口的扫描
PermitRootLogin no # 禁止Root直接登录
PasswordAuthentication no # 关闭密码认证
# 保存后重启服务
sudo systemctl restart sshd
这里特别提醒:修改端口后,务必在云控制台的安全组/防火墙中放行新端口(如2222),否则你会把自己锁在门外。笔者曾见过太多因忘记放行端口而导致服务器失联的案例。
第二步:基础环境配置与性能调优
安全只是底线,稳定高效运行才是目标。我们需要对系统做一些“顺手”的优化。
1. 更新软件源与系统补丁
# CentOS/RHEL系
sudo yum update -y && sudo yum install -y vim wget curl bash-completion
# Ubuntu/Debian系
sudo apt update && sudo apt upgrade -y && sudo apt install -y vim wget curl
2. 设置主机名与时间同步
杂乱的主机名会让运维排查变得困难,时间不同步则会导致日志错乱甚至证书验证失败。
sudo hostnamectl set-hostname web-server-01
# 时间同步(以CentOS为例)
sudo yum install -y chrony
sudo systemctl enable --now chronyd
sudo timedatectl set-timezone Asia/Shanghai
3. 调整文件描述符限制
高并发场景下,默认的1024文件描述符往往不够用。我们可以适当调高:
sudo vim /etc/security/limits.conf
# 文件末尾追加:
* soft nofile 65535
* hard nofile 65535
第三步:核心安全加固策略(防火墙与SELinux)
很多教程为了省事直接建议关闭防火墙和SELinux,这绝对是“饮鸩止渴”。正确做法是学会如何合理配置它们。
1. 配置Firewalld(以CentOS为例)
sudo systemctl start firewalld
sudo systemctl enable firewalld
# 仅放行必要端口,注意这里放行的是刚才修改的SSH端口
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
2. 开启SELinux(安全增强型Linux)
SELinux虽然上手门槛高,但对于生产环境至关重要。我们可以先将其设置为宽松模式观察日志,再逐步切换为强制模式。
sudo setenforce 1 # 临时开启强制模式
sudo vim /etc/selinux/config
# 确保以下配置:
SELINUX=enforcing
如果某些服务(如Nginx)在SELinux下无法正常工作,不要急着关闭它。使用grep denied /var/log/audit/audit.log查看具体拦截项,然后通过audit2allow -M mypol生成对应的放行策略即可。
第四步:Fail2ban与系统级入侵防范
即便关闭了密码登录,我们依然需要对SSH和Web服务进行动态防护。Fail2ban是一款轻量级入侵防御工具,能自动封禁恶意IP。
sudo yum install -y epel-release && sudo yum install -y fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo vim /etc/fail2ban/jail.local
在[sshd]段落中修改或确认以下配置:
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 3600
启动并设置开机自启:
sudo systemctl enable --now fail2ban
第五步:日志审计与定期巡检
日志是服务器运行状态的晴雨表。我们需要确保关键日志被完整记录且不易被篡改。
1. 配置Rsyslog远程日志
将日志实时传输到远程日志服务器,能有效防止攻击者在入侵后清除本地痕迹。在/etc/rsyslog.conf中添加:
*.* @@log-server.example.com:514
2. 使用Logwatch做每日摘要
sudo yum install -y logwatch
sudo vim /etc/logwatch/conf/logwatch.conf
# 设置邮件接收地址
MailTo = your_email@example.com
| 检查项目 | 建议频率 | 常用命令 |
|---|---|---|
| 登录失败记录 | 每日 | lastb | head -20 |
| 系统更新检查 | 每周 | yum check-update |
| 磁盘空间使用 | 每周 | df -h |
写在最后:安全是动态过程,不是一次性任务
完成以上配置,你的Linux服务器已经具备了一套相对完善的基础防御体系。但这仅仅是开始,随着业务运行,我们需要持续关注安全公告、及时更新软件包,并定期审查用户权限与审计日志。
如果你正准备购买第一台云服务器来练手或部署业务,笔者的建议是:不要贪图便宜选择无售后的廉价VPS。一个靠谱的云服务商(比如站长)不仅能提供稳定的网络环境,其自带的安全组策略和快照功能也能为你的数据安全多上一道保险。毕竟,配置再完美的系统,也敌不过物理硬件的突然“罢工”。
希望这份手册能帮你少走一些弯路。如果你在配置过程中遇到任何报错,欢迎在评论区留言,我们下期见。
延伸阅读
- 从零玩转 Docker:这几个高星开源项目,直接让你的服务器效率翻倍
- WordPress慢到让人抓狂?别急着换主机,这10个提速技巧90%的人只做对了一半
- 从源码视角拆解Docker:InfoQ高赞文章没讲透的那些底层细节
- Nginx反向代理配置参数全解:从入门到生产环境调优,看这一篇就够了
🎁 全套实操配置文件与 AI 提效资料包免费下载
本文涉及的全套 Docker Compose 配置文件、服务器运维避坑手册及 AI 提效指令库已完整打包上传至夸克网盘,可直接免费极速转存:
💡 提示:推荐使用手机【夸克网盘 App】打开保存,新用户首月免费赠送 1TB 超大空间与免流量极速下载特权。