< 返回新闻公共列表

防止LinuxVPS被入侵的20个加固方法

发布时间:2026-06-25 16:56:48

Linux的安全模型(LSM)在设计上比Windows严谨,但这不意味着可以放任不管。大多数VPS被入侵的原因不是什么零日漏洞,而是默认配置没改、补丁没打、权限没收。下面这20条,覆盖了LinuxVPS安全加固的核心操作,按从基础到进阶的顺序排列。

一、账户与认证

1.禁用root直接登录

每台Linux服务器默认都有`root`用户,自动化暴力破解工具也默认先打这个账户。禁用rootSSH登录,改用普通用户+`sudo`执行特权命令,是最基本的访问控制手段。

操作:编辑`/etc/ssh/sshd_config`,将`PermitRootLogin`改为`no`,重启SSH服务。注意先创建好有sudo权限的普通用户,再禁用root登录,避免把自己锁在外面。

2.使用SSH密钥认证,禁用密码登录

密码登录无论多复杂,都面临暴力破解和泄露风险。SSH密钥认证从根本上杜绝了密码猜测攻击——没有私钥,连试的机会都没有。

操作:生成密钥对,将公钥添加到服务器的`~/.ssh/authorized_keys`,然后在`sshd_config`中设置`PasswordAuthenticationno`。密钥文件权限要严格:`~/.ssh`目录700,`authorized_keys`文件600。

3.制定严格的密码策略

即使主要用密钥登录,服务器上其他账户的密码管理也不能忽视。通过PAM(`/etc/pam.d/common-password`)或`pam_pwquality`模块配置:

最小长度12位,要求大小写、数字、特殊字符混合

启用密码有效期(`/etc/login.defs`中的`PASS_MAX_DAYS`)

禁止重复使用近期密码

使用`faillog`或`pam_tally2`设置登录失败锁定策略(建议连续失败5次锁定15分钟)

4.遵守最小权限原则

每个用户和服务账户只赋予完成其工作所需的最低权限。不需要sudo的账户不给sudo。需要访问特定目录的服务,用`chown`/`chmod`精确控制,不要图省事直接给777。

定期用`getentpasswd`审查账户列表,删除或锁定不再使用的账户(`usermod-Lusername`)。

二、SSH加固

5.修改SSH默认端口

SSH从默认的22端口改到高位非标准端口(建议10000–65535范围),可以过滤掉绝大多数自动化扫描和脚本攻击。这不是真正意义上的安全措施,但能大幅降低日志噪音,让真正需要关注的事件更容易被发现。

操作:修改`sshd_config`中的`Port`参数,同步更新防火墙规则放行新端口,确认能用新端口登录后再关闭旧端口。

6.限制SSH访问来源

如果服务器的管理操作来自固定IP,通过防火墙规则将SSH限制为只接受白名单IP的连接。这一条比修改端口号安全得多——即使知道端口,没在白名单里也连不上。

操作(iptables示例):

```bash

iptables-AINPUT-ptcp--dport<ssh_port>-s<your_ip>-jACCEPT

iptables-AINPUT-ptcp--dport<ssh_port>-jDROP

```

7.配置Fail2ban

Fail2ban监控SSH登录日志,自动将多次尝试失败的IP加入iptables封禁名单,是防暴力破解的标准配置。

安装后默认已包含SSH的jail规则,根据实际情况调整`maxretry`(最大失败次数)和`bantime`(封禁时长)。除SSH外,Fail2ban也支持保护Nginx、Apache、FTP等服务。

三、网络与防火墙

8.用iptables或firewalld配置防火墙

防火墙是流量过滤的第一道闸门。基本原则:默认拒绝所有入站连接,只显式放行业务需要的端口。

常用工具:

-iptables:灵活、底层,适合有经验的用户手动管理规则

-firewalld:CentOS/RHEL系的前端,支持动态规则,操作更友好

-UFW:Ubuntu/Debian系的简化前端,语法接近自然语言,适合快速上手

-CSF(ConfigServerSecurity&Firewall):功能更全的第三方防火墙,与cPanel/Plesk深度集成,支持自动规则管理

仅仅安装防火墙不够,规则配置正确才有意义。定期用`iptables-L-n-v`审查规则,确认没有多余的放行条目。

9.关闭不必要的网络端口和服务

`ss-tlnp`或`netstat-tlnp`查看当前所有监听的端口和对应服务。对照实际需求逐一核查:用不到的服务停掉(`systemctldisable--now<service>`),开着但不对外暴露的端口用防火墙收紧。

蓝牙、Avahi(mDNS)、cups(打印服务)这类在服务器场景下几乎不需要的服务,是常见的被忽略点。

10.禁用IPv6(按需)

如果业务不依赖IPv6,关掉它可以减少一个潜在的攻击面。攻击者有时会通过IPv6绕过只针对IPv4配置的防火墙规则。

操作:在`/etc/sysctl.conf`中添加:

```

net.ipv6.conf.all.disable_ipv6=1

net.ipv6.conf.default.disable_ipv6=1

```

然后执行`sysctl-p`使配置生效。

四、系统与软件

11.保持系统和软件包及时更新

绝大多数成功的入侵利用的是已有公开补丁的已知漏洞——攻击者只是在等你不更新。

-Debian/Ubuntu:`aptupdate&&aptupgrade`,可用`unattended-upgrades`自动应用安全补丁

-CentOS/RHEL:`yumupdate`或`dnfupdate`,可配置`dnf-automatic`自动更新安全包

-使用控制面板的话(cPanel、Plesk),面板本身和PHP/Python等运行时也要同步更新

12.最小化安装,移除不必要的软件包

安装的软件越多,需要维护的攻击面越大。用`rpm-qa`或`dpkg-l`列出已安装的软件包,找出不需要的,直接卸载。

选择Linux发行版时,优先考虑Server最小化安装镜像,而不是包含大量预装软件的桌面版或完整版。

13.将/boot目录设为只读

`/boot`目录存放内核文件和引导加载程序,默认读写权限允许被篡改。将其挂载为只读,可以防止恶意软件或误操作破坏启动文件。

操作:编辑`/etc/fstab`,在`/boot`的挂载选项中添加`ro`:

```

LABEL=/boot/bootext4defaults,ro12

```

需要更新内核时,临时重新挂载为读写(`mount-oremount,rw/boot`),完成后改回只读。

14.磁盘分区隔离

将操作系统文件、用户数据、临时文件(`/tmp`)分放在不同分区,可以限制攻击的横向扩散。对`/tmp`分区启用`noexec`(禁止执行二进制)、`nosuid`(禁止SUID位生效)挂载选项,能防止利用临时目录执行恶意代码的攻击手法。

五、数据传输与加密

15.用SFTP替代FTP

FTP在传输过程中数据明文,凭证和文件都可以被中间人嗅探。FTPS(FTPoverTLS)只加密控制连接,数据传输仍然存在风险。

SFTP(SSHFileTransferProtocol)基于SSH隧道,对所有数据完全加密,是文件传输的正确选择。在SSH配置中启用SFTP子系统,彻底关闭FTP服务(`vsftpd`、`proftpd`等),同时关闭匿名上传。

16.使用GnuPG加密敏感数据

对于需要在服务器间传输或存储的敏感数据(配置文件、密钥、数据库备份),用GnuPG进行加密。GnuPG基于非对称加密:公钥加密,只有持有对应私钥的接收方才能解密。

实际使用中,GnuPG常见于加密备份文件和自动化脚本中的敏感参数,避免明文存储。

六、威胁检测

17.安装恶意软件扫描工具

防火墙拦截已知恶意来源,但无法检测已经渗入的恶意文件。定期扫描是补充手段。

推荐组合:

-ClamAV:开源防病毒,支持定时扫描,适合扫描上传文件和邮件附件

-Maldet(LinuxMalwareDetect):专为共享主机环境设计,对WebShell和PHP恶意代码检出率高,与ClamAV配合使用效果更好

18.安装Rootkit扫描器

Rootkit工作在操作系统层之下,能绕过普通安全软件的检测,是最难发现的入侵形式之一。

常用工具:

-chkrootkit:检查系统二进制文件是否被篡改

-rkhunter(RootkitHunter):比chkrootkit检测范围更广,同时检查系统配置异常和可疑的网络监听

建议两者都装,定期运行(可设为cron任务),并将结果通过邮件发送给管理员。发现rootkit后,最可靠的处理方式是重装操作系统,而不是试图在受感染的系统上清除它。

19.开启系统审计日志

`auditd`是Linux内核级别的审计框架,可以记录文件访问、系统调用、权限变更等关键操作。配合日志分析工具(如`ausearch`、`aureport`),可以在事后还原攻击路径,也可以实时发现异常行为。

基础配置:安装`auditd`,设置对`/etc/passwd`、`/etc/shadow`、`/etc/sudoers`等敏感文件的写操作监控规则。

七、CMS与备份

20.CMS保持更新,定期备份

如果服务器上运行WordPress、Drupal、Joomla等CMS,它们是攻击者最常针对的目标——插件和主题漏洞是Web入侵的最主要来源之一。开启CMS的自动安全更新(WordPress默认开启小版本自动更新),定期检查插件是否有待更新版本。

无论安全措施做得多好,备份都是最后的防线。备份建议:

遵循3-2-1原则:3份副本,2种介质,1份异地存储

不要只依赖服务商的快照——快照和源数据在同一基础设施上,数据中心级故障时一并消失

定期测试备份恢复流程,确认备份文件确实可用

把这些变成日常流程

加固不是一次性的工作。建议建立一个定期维护节奏:

每周:检查系统日志和Fail2ban封禁记录,确认有无异常登录尝试;检查`/var/run/reboot-required`(Debian/Ubuntu)或待重启提示。

每月:运行`aptupgrade`或`yumupdate`确认补丁状态;用`ss-tlnp`检查监听端口有无新增;审查用户账户列表。

每季度:运行rkhunter/chkrootkit完整扫描;测试备份恢复;审查防火墙规则是否有冗余放行。

恒讯科技的VPS在基础设施层提供DDoS防护和T3+数据中心的物理安全保障,但系统层的安全加固需要用户自行负责。上面这20条是任何生产LinuxVPS的安全基线——不管用哪家服务商,这些配置都应该在上线前完成。如果团队没有专职运维,托管型VPS服务能代为处理系统加固和安全监控,值得作为一个选项评估。



/template/Home/Zkeys724/PC/Static