Debian服务器在企业生产环境中要形成可执行的安全基线,不能只靠安装几个工具或开启防火墙。真正的问题在于默认安装后的Debian虽然稳定,但很多安全配置偏向通用性,并不适合直接承载核心业务。比如SSH允许密码登录、root远程访问未限制、系统审计默认不记录关键文件变更、自动更新策略缺失,这些都会让服务器在长期运行中暴露风险。企业级安全运维规范的核心,是把安全动作变成标准配置和可检查的流程,而不是依赖管理员的个人习惯。
最小化安装与软件源锁定
部署Debian服务器的第一步不是安装所有需要的软件,而是只安装业务运行必需的最小集合。每多一个软件包,就多一个潜在攻击面。在安装阶段建议选择standard system utilities,不要勾选桌面环境和打印服务。安装完成后用dpkg -l列出所有包,逐项确认用途,移除无关组件。软件源必须锁定到Debian官方镜像和内部私有源,禁止混用第三方未验证源。修改/etc/apt/sources.list时只保留stable或oldstable分支,明确不使用testing和unstable,避免引入未经过充分测试的包。
软件源锁定后还要配置APT安全策略。通过/etc/apt/apt.conf.d/50unattended-upgrades设置自动安全更新,只允许来自Debian安全公告的更新自动安装,普通更新走人工审核。这样既能及时修复已知漏洞,又不会因为功能更新导致业务异常。企业内部有自建镜像的,应该让所有服务器只从内网镜像拉取包,外网出口不开放给APT。
账户与认证基线
Debian默认会创建root账户,但企业规范应禁止root直接SSH登录。修改/etc/ssh/sshd_config,设置PermitRootLogin no和PasswordAuthentication no,只允许密钥认证。普通用户通过sudo提权,sudoers配置要遵循最小权限原则,按组分配命令白名单,不要直接给ALL=(ALL:ALL) ALL。每个运维人员使用独立账户,禁止共享账户,离职或转岗时统一在LDAP或本地账户体系中禁用。
密码策略方面,即使SSH禁用了密码登录,系统内其他服务仍可能用到密码。安装libpam-pwquality并配置/etc/pam.d/common-password,强制密码长度至少12位,包含大小写字母、数字和特殊字符,拒绝常见弱密码。同时配置/etc/login.defs中的PASS_MAX_DAYS为90天,PASS_MIN_DAYS为1天,PASS_WARN_AGE为7天。对于服务账户,一律设置为nologin shell,禁止交互登录。
SSH加固与访问控制
SSH是Debian服务器最核心的远程管理入口,必须做严格加固。除了禁止root登录和密码认证,还要限制SSH协议版本为2,设置MaxAuthTries为3,LoginGraceTime为30秒,ClientAliveInterval为300秒,ClientAliveCountMax为2。使用AllowUsers或AllowGroups明确允许哪些用户或组可以登录,而不是默认允许所有系统用户。如果服务器有多个网络接口,用ListenAddress绑定到管理网段IP,减少暴露面。
针对暴力破解和扫描,可以在/etc/ssh/sshd_config中启用PerSourceMaxStartups和PerSourcePenalties,限制单IP并发连接数。更有效的做法是配合fail2ban或sshguard,对多次失败尝试的IP自动封禁。企业环境建议在边界防火墙上做访问控制,只允许办公网或堡垒机IP访问22端口,服务器之间如果需要SSH互信,走独立的内部管理网络。
防火墙与网络隔离
Debian默认的iptables规则是空的,必须根据业务需求建立白名单策略。推荐使用nftables作为默认防火墙框架,Debian 10及以上版本已原生支持。基础策略设置为input链默认drop,output链默认allow,forward链默认drop,然后按需放行SSH、HTTP、HTTPS、监控端口等。每条放行规则都要限定源IP或源网段,不要开放0.0.0.0/0。对于数据库、缓存等内部服务,只允许应用服务器所在网段访问,禁止公网直接暴露。
防火墙规则要纳入配置管理,不能只在服务器上手动敲命令。可以把nftables规则写成/etc/nftables.conf,通过systemctl enable nftables开机自启。每次修改规则后先做语法检查nft -c -f /etc/nftables.conf,再加载生效。同时要定期审计规则,删除不再使用的临时放行。多网卡服务器还要注意反向路径过滤,在/etc/sysctl.conf中设置net.ipv4.conf.all.rp_filter=1,防止IP欺骗。
系统审计与日志集中
没有审计的安全配置等于没有配置。Debian需要启用auditd对关键文件和系统调用进行监控。安装auditd后,在/etc/audit/rules.d/中配置规则,重点监控/etc/passwd、/etc/shadow、/etc/sudoers、/etc/ssh/sshd_config等文件的写入和属性变更,监控所有用户对/bin、/sbin、/usr/bin下关键命令的执行。规则示例:
-w /etc/passwd -p wa -k identity_change -w /etc/shadow -p wa -k identity_change -w /etc/sudoers -p wa -k privilege_change -w /etc/ssh/sshd_config -p wa -k ssh_config_change -a always,exit -F arch=b64 -S execve -F path=/usr/bin/sudo -k sudo_exec
日志管理上,rsyslog默认只记录本地日志,企业环境必须把日志集中到中央日志服务器。在/etc/rsyslog.conf中配置远程转发,把auth、authpriv、kern、daemon等关键facility的日志通过TCP发送到日志平台。同时配置logrotate对本地日志做轮转压缩,保留至少30天。对于audit日志,单独设置max_log_file和num_logs,防止磁盘被占满。日志集中后要配置告警规则,对sudo提权、SSH登录失败、防火墙规则变更等事件实时通知安全团队。
文件完整性监控与漏洞扫描
企业级安全运维不能等入侵发生后才去查日志,要主动发现文件篡改和已知漏洞。Debian上可以部署AIDE做文件完整性监控,初始化数据库后定期比对,发现/bin、/sbin、/usr/bin、/etc等目录下文件变化时告警。AIDE数据库本身要存储在只读介质或独立的安全位置,防止被攻击者同时篡改。结合auditd的实时监控,可以形成事前预防和事后追溯的双层机制。
漏洞扫描方面,Debian自带的debsecan可以比对已安装包与Debian安全公告,快速找出存在已知漏洞的包。更全面的做法是定期用OpenSCAP或Lynis对系统做合规扫描,检查账户策略、文件权限、网络配置、服务基线等是否符合企业规范。扫描结果要形成报告并跟踪整改,不能扫完就放着。对于无法立即修复的漏洞,要有临时缓解措施和风险记录。
服务加固与权限最小化
Debian上运行的每个服务都要单独做加固。Web服务器如Nginx或Apache,要禁用目录浏览、限制请求体大小、配置超时参数、隐藏版本号。数据库如MySQL或PostgreSQL,只监听内网IP,禁止远程root登录,应用账户只授予业务所需的最小权限。缓存服务如Redis和Memcached,必须设置认证密码并绑定内网地址,禁止以root运行。所有服务都应该使用独立的系统账户运行,通过systemd的User和Group指令限制,不要用root跑业务进程。
文件权限方面,/etc、/boot、/usr、/bin等系统目录的属主和权限要保持默认,不要为了方便随意chmod 777。Web目录和日志目录要单独设置,只给运行服务的账户必要权限。定期用find命令检查系统中是否存在无主文件或权限异常的文件。对于SUID和SGID文件,只保留系统必需的,多余的用chmod u-s,g-s去掉特殊权限。
内核参数与系统资源限制
Debian默认内核参数偏保守,企业安全基线需要针对网络层和应用层做调整。在/etc/sysctl.d/99-security.conf中配置:启用TCP SYN Cookie防护、禁用ICMP重定向、忽略广播ping、启用源路由验证、限制core dump、开启地址空间随机化。这些参数能有效缓解DDoS攻击和本地提权。同时通过/etc/security/limits.conf限制用户进程数、打开文件数和内存使用,防止单个用户或服务耗尽系统资源。
对于容器化或虚拟化环境,还要注意内核命名空间和cgroup的隔离。Debian如果作为宿主机,要确保容器运行时版本最新,限制容器权限,禁止容器挂载宿主机敏感目录。KVM虚拟机则要配置好libvirt的安全策略,隔离虚拟机网络,定期更新QEMU和libvirt包。
备份与应急响应
安全规范的最后一道防线是备份和应急响应。Debian服务器的关键数据包括数据库、配置文件、日志、用户家目录等,要制定分级备份策略。数据库每天全量备份加增量备份,配置文件纳入版本控制,日志按合规要求保留。备份数据要加密存储,传输走内部专用网络,定期做恢复演练,验证备份可用性。备份服务器本身也要做同等安全加固,不能成为攻击者的突破口。
应急响应流程要提前制定并文档化。明确安全事件的上报路径、责任人、处置步骤和恢复方法。服务器被入侵后,第一动作是隔离网络,保留现场证据,不要直接重启或重装。通过audit日志、shell history、网络连接快照、进程列表等信息定位入侵路径和影响范围。修复漏洞后要做根因分析,更新安全基线,防止同类事件再次发生。Debian服务器作为企业基础设施的一部分,安全运维规范必须持续迭代,而不是一次配置就永远不变。
