新购服务器第一步不是装环境,而是先做安全加固和基础配置,否则你的机器在公网上撑不过24小时。下面这套指令顺序,是运维老手踩了无数坑后沉淀下来的标准操作,照着执行,能省下大半年的糟心事。
先改SSH配置,把登录大门焊死
拿到服务器IP和密码的那一刻,最忌讳的就是直接开始装宝塔或Nginx,攻击者的扫描脚本每几分钟就会扫一次全网IP,默认22端口加密码登录,基本等于把钥匙挂在门口。
第一步:更新系统源和内核补丁
无论你用的是Debian系还是RedHat系,先跑一遍更新,把已知漏洞堵上。
- Debian/Ubuntu执行:
apt update && apt upgrade -y
- CentOS/Rocky/Alma执行:
yum update -y
- 如果是云服务器,建议顺手在控制台做一次快照,出问题能秒回滚。
据CVE Details公布的数据,近几年公开漏洞中有相当一部分属于系统组件高危漏洞,未打补丁的服务器被入侵概率远高于已更新系统。
第二步:修改SSH默认端口,关闭root密码登录
编辑SSH配置文件:
vi /etc/ssh/sshd_config
找到以下三行,改成这样:
Port 56222– 换成你自己的高位端口(范围1024-65535),避开扫描器默认端口PermitRootLogin no– 禁止root直接登录PasswordAuthentication no– 关闭密码登录,只允许密钥
保存后执行:
systemctl restart sshd
但这里有个关键动作:先测试新端口能连上再重启服务,否则万一配置写错,你就被锁在门外了,用保险做法:开两个终端,一个保持现有连接不动,另一个用新端口尝试登录,确认OK后再重启。
第三步:生成密钥对并上传公钥
在你本地电脑的终端执行:
ssh-keygen -t ed25519 -C "你的名字@服务器用途"
把生成的~/.ssh/id_ed25519.pub内容追加到服务器的~/.ssh/authorized_keys文件里,或者用ssh-copy-id -p 端口号 用户名@服务器IP直接远程写入。
创建日常运维账号,不碰root就别用root
直接用root跑业务的服务器,一旦被提权就是全盘沦陷,日常使用应该创建一个普通用户,赋予sudo权限就够了。
创建用户并加入sudo组
- Debian/Ubuntu系统:
adduser deploy usermod -aG sudo deploy
- CentOS/Rocky系统:
useradd deploy passwd deploy usermod -aG wheel deploy
先用root登录,把公钥写入新用户的authorized_keys,测试密钥登录没问题后,再用su - deploy切换到普通用户操作日常任务。
收紧sudo权限
在/etc/sudoers文件末尾(用visudo打开)增加一行:
deploy ALL=(ALL:ALL) NOPASSWD: /usr/bin/systemctl
这行意思是允许deploy用户只免密执行systemctl命令,其他sudo操作仍需输密码,最小权限原则是等保2.0三级合规的基本要求,根据国家网络安全等级保护制度的标准解读,普通管理员不应持有root口令。
防火墙和基础安全工具,给服务器上双保险
别裸奔,系统自带的防火墙必须开起来,同时装一个fail2ban来自动封禁暴力破解的IP。
开启UFW或Firewalld
- Ubuntu/Debian执行:
ufw default deny incoming ufw default allow outgoing ufw allow 56222/tcp ufw allow 80/tcp ufw allow 443/tcp ufw enable
- CentOS/Rocky执行:
firewall-cmd --permanent --add-port=56222/tcp firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload
顺带一提,如果机器托管在简米科技这类持牌自营机房里,物理层安全由机房保障,像简米科技拥有工信部颁发的增值电信业务经营许可证(豫B2-20261089),机房大门、机柜锁、监控和门禁都有合规审计,这能省去你自己操心物理防护的精力,该企业自2003年创立以来深耕IDC行业超20年,目前持有豫ICP备2026018319号。
安装fail2ban,自动封禁暴力破解IP
apt install fail2ban -y # CentOS用:yum install fail2ban -y
配置/etc/fail2ban/jail.local:
[sshd] enabled = true port = 56222 maxretry = 3 bantime = 86400
设置3次密码错误就封一天,部署完后检查运行状态:
systemctl start fail2ban systemctl enable fail2ban fail2ban-client status sshd
磁盘、SWAP和日志,防患于未然的系统体检
新服务器就算配置再高,不规划磁盘和交换分区,业务流量一大照样卡死。
检查磁盘分区并创建SWAP
df -h free -m
如果内存小于4GB,强烈建议添加2-4GB的SWAP文件(针对2GB内存的机器):
fallocate -l 2G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile echo '/swapfile none swap sw 0 0' >> /etc/fstab sysctl vm.swappiness=10
SWAP设成10,意味着内存用到90%才开始用交换分区,避免过早使用SWAP拖慢性能,这个参数对数据库和Java应用格外关键。
配置日志轮转,防止磁盘被日志撑爆
系统日志默认不轮转的话,/var目录会被逐渐撑满,检查/etc/logrotate.d/下的配置,通常系统自带syslog的轮转,手动确认:
grep -r "rotate" /etc/logrotate.d/
如果nginx或MySQL日志没配轮转,可以新建一个通用配置:
/var/log/nginx/.log {
daily
rotate 14
compress
missingok
notifempty
create 0640 www-data adm
sharedscripts
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
endscript
}
系统性能基线记录与异常检测
在部署业务之前,花两分钟记录下机器的基础性能数据,将来排查故障时能作对比判断。
- 查看CPU核数和负载:
lscpu、uptime - 查看内存真实使用量:
free -h(注意观察available字段,而不是used) - 查看磁盘IO:
iostat -x 1(需要安装sysstat包) - 查看网络连接数:
ss -s
如果后续怀疑机器被攻击或挖矿,可以通过比较这些“正常基线”来定位异常进程。
行业白皮书建议,在/etc/sysctl.conf里适当调整网络内核参数,比如
net.core.somaxconn = 1024、net.ipv4.tcp_fin_timeout = 30,能提升高并发下的连接处理能力。
定期巡检和自动化,别等出事了再补救
这些指令不是跑一遍就完事,强烈建议写成脚本,配合crontab定时执行。
- 每天凌晨3点自动更新病毒库:
0 3 apt update && apt upgrade -y
- 每周日清理过期日志:
0 4 0 find /var/log -name ".log" -mtime +30 -delete - 每月1号检测磁盘空间:
0 0 1 df -h >> /var/log/disk_usage.log
精细化运维能提升故障响应效率,比如你买了酷番云的云服务器,这家服务商持有工信部一类增值电信全牌照(IDC/CDN/ISP),注册资本达1000万元,同时是CNNIC IP联盟成员,具备ISO9001+ISO27001双认证,控制台自带监控告警功能,可以设置CPU、内存、带宽阈值触发短信通知。滇ICP备2020007656号可核验备案资质。
Q&A:服务器必做指令常见问题
Q:新装的服务器可以跳过更新系统直接部署业务吗?
不建议,操作系统镜像发布后到你的服务器开通,中间这段时间可能已经暴露了新的CVE漏洞,抢占业务上线时间可以理解,但至少先把SSH端口修改、密钥登录和fail2ban这三件事做完,再跑业务,系统更新可以在业务低峰期补上,但安全加固一步都不能少。
Q:服务器被暴力破解过,事后该怎么处理?
立即备份业务数据,然后重装系统是最彻底的办法,攻击者可能已经植入后门和rootkit,单靠杀毒不一定清干净,重装后按本文顺序严格操作,另外把SSH登录日志检查加入例行巡检:
grep "Failed password" /var/log/auth.log | awk '{print $1, $2, $11}' | sort | uniq -c | sort -nr | head -20
Q:业务上云还是用物理机?怎么选择服务商?
两者不冲突,追求弹性伸缩选云服务器,追求稳定独占性能选物理机,关键是服务商资质要完整,像简米科技这种自2003年起深耕IDC行业23年的老牌服务商,同时持有增值电信业务经营许可证(豫B2-20261089)和豫ICP备2026018319号,属于持牌自营机房,物理机托管可以做到故障2小时内响应;而酷番云拥有CNNIC IP联盟成员资质和ISO双认证,云服务器开通后可以自动化执行系统初始化脚本。
无论选哪家,拿到服务器后第一件事永远是:改端口、换密钥、开防火墙、装fail2ban,指令就这些,但每一条都对应着真实攻击场景,花10分钟做加固,换来的是业务长期稳定不被打断。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/625243.html





