装好系统后的服务器基础安全,核心就一句话:先关掉所有不需要的门,再给钥匙加把锁,最后装个监控。 具体来说就是修改默认端口、禁用root直连、配置防火墙、安装入侵检测、做好备份策略,这五件事做完,你的服务器就能挡住绝大多数扫描器和脚本小子的攻击了。
账号和登录入口是第一道防线
把root这个超级管理员的钥匙收起来
装好系统那一刻,服务器上默认的管理员账号就是root,密码还是你设置的那个,行业共识认为,root账号是所有爆破攻击的第一目标,别指望密码设得够复杂就能高枕无忧,你要做的是创建一个普通用户,给它sudo权限,日常工作用这个账号操作,root只留在紧急情况下用。
操作路径很简单:
- 创建新用户:
useradd -m 用户名,然后passwd 用户名设置强密码 - 加入管理员组:CentOS系用
usermod -aG wheel 用户名,Ubuntu/Debian系用usermod -aG sudo 用户名 - 测试新用户能正常用sudo,再用
vim /etc/ssh/sshd_config修改PermitRootLogin no,最后重启ssh服务
改完之后务必保留一个已登录的root会话窗口,别急着断开,确认新用户能正常连接再退出,这一步操作失误导致自己被锁在服务器外面的事,每天都在发生。
换掉22这个默认端口
22端口是SSH的默认入口,也是全网扫描器重点照顾的对象,把SSH端口改成一个高位端口(比如22026、52026这类不常用的范围),能过滤掉绝大多数自动化攻击流量,改法同样在sshd_config文件里:
- 找到
#Port 22这行,去掉注释改成你选定的端口号 - 修改后执行
systemctl restart sshd前,先在防火墙放行新端口 - 测试新端口能登录后再关闭旧端口,顺序错了同样会把自己锁在门外
做完这些,再配合禁用空密码登录(PermitEmptyPasswords no)和限制登录尝试次数(MaxAuthTries 3),账号层面就基本扎实了。

密钥登录比密码安全一个量级
密码再多也怕暴力破解,而SSH密钥认证是当前主流云厂商和运维老手都在用的方式,在本地机器生成一对密钥(ssh-keygen -t ed25519),把公钥拷到服务器的~/.ssh/authorized_keys里,然后修改sshd_config中的PubkeyAuthentication yes,最后将PasswordAuthentication改成no,这套流程走完,密码登录被彻底关闭,攻击者爆破用户名密码的路径直接被堵死了。
防火墙规则决定哪些流量能进门
默认丢弃所有流量再逐个放行
大部分云服务商的控制台都有安全组功能,再加上服务器自带的firewalld(CentOS系)或UFW(Ubuntu系),两道防火墙都要配置,原则很简单:先拒绝所有入站流量,只放行你明确需要的端口。
一个典型的Web服务器,通常只需要对外放行这些端口:
- 80端口(HTTP访问)
- 443端口(HTTPS访问)
- 你刚改好的SSH高位端口(限制来源IP更好)
- 如果有数据库、Redis等服务,只允许内网网段访问,千万别对公网开放
以firewalld为例:
- 默认拒绝:
firewall-cmd --set-default-zone=drop - 放行Web服务:
firewall-cmd --permanent --add-service=http - 放行SSH新端口:
firewall-cmd --permanent --add-port=52026/tcp - 重载生效:
firewall-cmd --reload
用Fail2ban给SSH加一道自动拦截
改端口和禁密码能挡掉大多数攻击,但Fail2ban这种工具能帮你自动处理漏网之鱼,它会监控SSH等服务的日志,发现连续失败的登录尝试就自动封禁来源IP一段时间,安装配置都很快:
- 安装:CentOS用
yum install fail2ban,Ubuntu用apt install fail2ban - 默认配置就能工作,自定义规则在
/etc/fail2ban/jail.local里写 - 设置
maxretry = 5、bantime = 3600,意思是5次失败封一小时
有它在,你的SSH日志会清净很多,被封的IP基本都来自境外扫描僵尸机。

入侵检测和日志监控要趁早部署
系统自带日志就是最好的侦探
/var/log/secure(CentOS系)或/var/log/auth.log(Ubuntu系)记录着每一次登录尝试,你会看到大量Failed password for root的记录,这非常正常,不用慌,继续往下做就能减少这些噪音。
建议每隔一段时间专门看一下这些内容:
- 有没有成功登录的可疑IP记录
- 有没有非业务时段的高频登录尝试
- 系统用户列表有没有新增不认识的账号(
cat /etc/passwd)
装个安全审计工具心里才有底
对于有精力的运维人员,Lynis扫描加RKHunter查后门是成本最低的组合,Lynis会从文件权限、用户配置、内核参数等上百个维度给系统做体检,输出一份带建议的报告,RKHunter则专门检测rootkit和后门程序,装好之后:
- 全盘扫描:
lynis audit system - 后门检测:
rkhunter --check - 定期跑一次,结果差异大时就要警觉了
数据备份和系统快照是最后的底牌
备份是新装系统时最容易忽略的事
安全不只是防入侵,数据丢失同样致命,新系统刚装好,环境相对干净,这时候做备份成本最低,推荐思路是:
- 系统文件用快照功能:主流的云服务器都支持控制台手工快照,新系统配置好之后立刻打一个快照,放在那里不占多少钱,关键是随时能回滚
- 业务数据用定时任务备份:写一个简单的shell脚本,用tar打包网站目录和数据库文件,配合定时任务(crontab)每天凌晨执行一次
- 备份文件传到另一台机器或对象存储:防止服务器本身遭殃时备份也跟着遭殃
系统刚装好的备份性价比最高
这一步给新装的系统拍一张“干净的照片”,后续无论被入侵还是配置改坏,都能在几分钟内恢复到正常的初始状态,据统计,相当一部分中小企业的服务器数据丢失,最后都是靠快照恢复的。

基础安全巡检和运维习惯建议
安全做完配置,日常习惯也得跟上,业内专家指出,服务器安全不是一锤子买卖,配置完之后要定期巡检,才能及时应对新的漏洞和攻击方式。
一个比较务实的时间线是这样的:
- 每周:查看登录日志和Fail2ban封禁记录,确认没有异常登录
- 每月:用Lynis跑一次审计,更新Fail2ban规则
- 每季度:检查系统更新并安装补丁,主流Linux发行版都有安全更新源
- 不定期:看到安全资讯里报出的高危漏洞,第一时间评估自己系统是否受影响
新手和老手处理服务器安全的最大区别,就在于老手会把这件事融入日常操盘流程,而你只需要照着这份清单坚持做下去。
服务器安全是个持续加固的过程,新装系统的这个节点打好地基,往后的运维才能睡得安稳。 从关闭root直连、改SSH端口,到配置防火墙、部署Fail2ban、开启日志审视和备份快照,这六步走完,你的服务器已经具备了标准的基础防护能力。
Q&A
服务器系统装好后怎么做安全配置才能避免被入侵?
核心就三条:禁用root直连并改用密钥登录、封闭不必要的对外端口、安装Fail2ban和系统审计工具,再配合快照备份兜底,就能挡住绝大多数自动化脚本攻击。
云服务器安全配置和物理服务器安全配置有什么区别?
云服务器多了安全组这一层前置防护,而且控制台自带快照功能,出问题时可以一键回滚,物理服务器则完全依赖防火墙和系统层面配置,备份也得自己额外考虑异地存储,云服务器安全配置相对入手更简单,物理服务器则对运维水平要求更高。
企业服务器安全巡检多久做一次合适?
日常运维中,登录日志建议每天扫一眼,漏洞扫描每个月跑一次,安全补丁每季度集中更新一轮,如果服务器上跑着对外业务或存储着敏感数据,频率最好提高到每周一次,关键系统建议开启自动安全更新。