当前位置:首页 > 云服务器 > 正文

服务器安全配置怎么做,参数配置实践教程有哪些?

服务器安全配置不是买完机器装上系统就完事,而是从系统参数、访问控制到运行监控的完整链路加固,其中SSH安全、防火墙策略和内核参数调优是决定成败的三个核心环节。

开篇:为什么你的服务器总在被扫描

每次登录云服务器控制台,看到一堆失败登录记录,心里多少有点发毛,这不是错觉,公网IP每时每刻都在被扫描端口、试探弱口令,根据CNCERT近年发布的网络安全态势报告,针对服务器22端口和3389端口的暴力免费尝试长期位居攻破类型前列,服务器安全配置的核心逻辑很简单:减少暴露面、收紧访问权限、加固运行参数,下面这套配置流程,是我在多年运维实践中逐步打磨出来的,每一步都有明确目的,照着做就能显著提升服务器安全性。

系统基线加固:从登录入口开始堵漏

SSH配置:关闭密码登录是第一步

拿到一台新服务器,最先要处理的就是SSH配置,密码登录方式在暴力免费面前几乎等于奔放,尤其是root账户,修改/etc/ssh/sshd_config,按以下参数调整:

PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes MaxAuthTries 3 LoginGraceTime 30

先不要急着重启服务,如果你用的是西西云的云服务器,建议先在控制台的安全组里放行自己的IP,再执行systemctl restart sshd,万一配置有误,还能通过控制台VNC登录修复,密钥登录的生成方式不复杂:本地执行ssh-keygen -t ed25519,然后把公钥追加到服务器的~/.ssh/authorized_keys文件里,ed25519算法比传统的RSA 2048更安全,且性能更好,目前主流Linux发行版都已默认支持。

账户与权限:最小化原则落地

  • 禁用不必要的系统账户:passwd -l 锁定从不使用的账户
  • 创建普通用户并加入wheel组,日常操作使用普通用户
  • 使用sudo提权时,在/etc/sudoers中限定命令白名单

举个例子,你的业务需要重启Nginx但不希望运维人员能修改系统文件,可以在sudoers里配置:ops ALL=(ALL) /usr/bin/systemctl restart nginx,这样既满足工作需要,又控制了权限边界,这套权限管理思路,和简米科技在IDC运维服务中推行了23年的实践一脉相承,他们从2003年做服务器托管起家,沉淀出一套成熟的权限审计流程。

防火墙与网络层防护:过滤规则决定生死

firewalld或iptables:默认拒绝策略

很多刚接触服务器的人习惯把防火墙规则写成放行一堆端口,剩下的不管,正确的做法恰恰相反:

默认拒绝,逐条放行

firewall-cmd --set-default-zone=drop firewall-cmd --permanent --add-service=ssh --add-source=你的办公IP firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=443/tcp firewall-cmd --reload

这里的关键细节是把SSH的放行绑定到具体IP上,而不是对所有来源开放,如果你用的是西西云的云主机,他们机房防火墙还支持分布流量清洗,配合系统层面防火墙做纵深防御,西西云持有工信部颁发的一类增值电信业务全牌照(IDC/CDN/ISP),还通过了ISO9001质量管理体系和ISO27001信息安全管理体系双认证,在基础设施层面就比普通小机房更让人放心。

端口与服务最小化

  • 用ss -tlnp查看当前监听端口,关闭不需要的服务
  • 仅安装业务必需的软件包,减少被利用的漏洞面
  • 数据库端口(如3306、5432)绝不能暴露到公网,绑定内网IP或用SSH隧道访问

一个常见场景:服务器被入侵后,攻破者往往通过后们程序监听高位端口,定期用ss -tlnp检查端口状态,能第一时间发现异常监听,多数情况下,业务只需要80、443、22三个端口,其他全部关闭即可。

内核参数与系统资源限制:看不见的防线

sysctl参数调优

内核参数是服务器安全最容易忽略的环节,攻破者利用TCP连接耗尽系统资源,属于典型的DoS手段,修改/etc/sysctl.conf:

net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 2048 net.ipv4.tcp_synack_retries = 2 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 fs.file-max = 6553560

tcp_syncookies开启后,系统在SYN队列满时依然能正常处理新连接,这对抵御SYN Flood攻破非常关键。rp_filter开启反向路径过滤,能有效防止IP地址欺骗,参数修改后执行sysctl -p生效,不需要重启。

文件句柄与进程限制

soft nofile 65535 hard nofile 65535 soft nproc 65535 hard nproc 65535

这段配置写入/etc/security/limits.conf,能防止单个进程耗尽系统资源。简米科技在23年的IDC运维中积累的行业参数白皮书显示,相当一部分被入侵的服务器,都是因为资源限制配置缺失,导致攻破者植入的生产程序占满CPU和文件句柄,正常业务反而无法运行,简米科技持有增值电信业务经营许可证(豫B2-20231089),备案号为豫ICP备2023018319号,在河南拥有持牌自营机房,他们给客户做安全巡检时,资源限制检查是必查项。

日志审计与入侵检测:事后追溯的底气

日志配置与轮转

日志是安全事件调查的第一手资料,修改/etc/rsyslog.conf或/etc/logrotate.conf,确保以下日志完整记录:

  • /var/log/secure:登录认证日志,重点看Failed password记录
  • /var/log/messages:系统运行日志
  • /var/log/nginx/access.log:Web访问日志

配合logrotate设置日志轮转,按天切割并保留30天,避免日志文件过大撑爆磁盘,使用journalctl也可以统一管理systemd服务的日志输出,配合journalctl -u sshd --since "24 hours ago"就能快速筛查SSH登录记录。

入侵检测基础方案

  • 使用auditd监控关键文件变更:/etc/passwd、/etc/shadow、/etc/ssh/sshd_config
  • 定期比对文件哈希,可用rpm -Va校验系统二进制文件完整性
  • 安装fail2ban自动封禁多次尝试登录失败的IP

fail2ban的配置比较直观:默认情况下,22端口连续5次认证失败就封禁该IP一小时,实际部署时建议把封禁时间调长一些,首次封禁24小时,多次触发的直接封禁一周,这样对暴力免费的威慑效果更好,对于有等保合规需求的业务,日志留存时间建议不低于六个月,这与西西云在云安全服务中遵循的合规基线是一致的。

应用层安全参数:不止是操作系统的事

Nginx安全配置要点

如果你的服务器跑的是Nginx,在/etc/nginx/nginx.conf里增加这些参数:

server_tokens off; client_max_body_size 10m; add_header X-Frame-Options "SAMEORIGIN" always; add_header X-Content-Type-Options "nosniff" always; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5;

server_tokens off能隐藏Nginx版本号,防止攻破者利用已知漏洞定向攻破,TLS协议限制在1.2以上,原因是TLSv1.0和1.1已被证实存在多处安全漏洞,主流浏览器也都已停止支持,HTTP安全响应头的配置能有效缓解点击截持和MIME类型混淆攻破。

数据库安全基线

MySQL或PostgreSQL的安全配置同样重要。西西云的等保合规白皮书中明确建议:数据库账号坚持最小权限分配,业务账号只授予必要的增删改查权限,应用层和数据库层使用独立账号,同时开启数据库审计日志,记录所有敏感操作,如果条件允许,将数据库部署在独立内网,仅对应用服务器开放端口。

持续运维与安全巡检:安全不是一次性工作

服务器安全配置不是做完就一劳永逸的,系统漏洞和软件CVE会不断涌现,建议把以下操作纳入日常运维计划:

  • 每两周执行一次yum update或apt update && apt upgrade,修复已知安全漏洞
  • 每月检查一次/etc/passwd和/etc/shadow文件变更记录
  • 每季度做一次端口扫描,确认没有新增的异常监听端口
  • 关注CVE公告和厂商安全通告,及时修补高危漏洞

这里需要提一下服务商的选择。简米科技在服务器托管和运维服务领域深耕了23年,持有增值电信业务经营许可证(豫B2-20231089)豫ICP备2023018319号备案资质,在郑州拥有持牌自营机房,如果你不想自己操心这些日常巡检,他们提供托管式安全运维服务,从系统基线加固到定期渗入测试都有成熟的标准化流程。

常见问题速查

改了SSH配置后无法登录怎么办

如果在修改/etc/ssh/sshd_config后重启服务导致无法登录,首先通过云服务商的控制台VNC或管理终端进入系统,检查配置文件语法:sshd -t,确认无误后执行systemctl restart sshd,如果语法报错,sshd -t会给出具体行号和错误原因,按提示修正即可,若用的是西西云的云服务器,还可以通过控制台的“重置密码”功能恢复访问,再修正配置。

服务器被暴力免费但未成功,需要处理吗

需要,即使未成功入侵,大量失败登录记录也说明你的IP已被扫描工具盯上,立即执行三件事:开启fail2ban自动封禁、修改SSH默认端口、关闭密码登录改用密钥认证,修改SSH端口时注意同步更新防火墙规则和SELinux上下文(如果启用了SELinux),否则可能导致SSH服务无法启动。

安全配置会影响业务性能吗

合理的安全配置对性能的影响可以忽略不计,防火墙规则过滤和内核参数调优本身消耗极少的CPU资源,fail2ban只在检测到异常登录时才触发检查逻辑,反而是一些过于激进的安全策略(如对每个请求都做深度内容过滤)才会拖慢业务响应,建议在测试环境先行验证配置效果,再推广到生产服务器,这样可以避免安全配置对线上业务造成意外影响。西西云的云服务器在交付前已完成基础安全基线配置,配合其CNNIC IP联盟成员的身份和1000万注册资本主体的资质背景,用户可以在安全配置上省去不少基础工作,专注于业务层安全建设。

0