新买的服务器(无论是物理服务器还是云服务器)一旦接入网络,就可能面临各种网络攻击,如暴力破解、漏洞利用、木马植入等。
为了防止服务器被“黑”,必须从系统、网络、应用和管理多个层面进行安全加固。以下是一些实用且高效的安全技巧,帮助你最大程度提升服务器安全性:
🔐 一、基础安全设置(必做!)
1. 修改默认 SSH 端口
-
默认 SSH 端口为 22,攻击者会重点扫描。 -
修改为非常用端口(如 2222、65001),可大幅减少暴力破解尝试。
# 编辑 SSH 配置文件
sudo nano /etc/ssh/sshd_config
# 修改 Port 22 为 Port 2222
# 重启服务
sudo systemctl restart sshd
⚠️ 修改后记得在防火墙中放行新端口。
2. 禁用 root 远程登录
-
避免直接使用 root 登录,降低风险。
# 在 /etc/ssh/sshd_config 中设置
PermitRootLogin no
-
创建普通用户 + sudo 权限登录。
3. 使用密钥登录(SSH Key),禁用密码登录
-
密钥比密码更安全,杜绝暴力破解。
# 客户端生成密钥对
ssh-keygen -t ed25519
# 上传公钥到服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip
# 禁用密码登录
PasswordAuthentication no
4. 更新系统和软件
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL
sudo yum update -y
-
及时修补已知漏洞。
🛡️ 二、防火墙与网络防护
1. 启用防火墙(UFW / firewalld)
-
只开放必要的端口(如 SSH、HTTP、HTTPS)。
# Ubuntu 示例
sudo ufw allow 2222 # SSH
sudo ufw allow 80 # HTTP
sudo ufw allow 443 # HTTPS
sudo ufw enable
2. 使用云服务商安全组
-
在阿里云、腾讯云等平台,配置安全组规则,限制 IP 访问(如只允许公司或家庭 IP 访问 SSH),如果不用SSH的话,可以在安全组中关闭22端口,需要的时候再开放。
3. 安装 Fail2Ban(防暴力破解)
-
自动封禁多次尝试登录失败的 IP。
sudo apt install fail2ban
sudo systemctl enable fail2ban
-
配置文件: /etc/fail2ban/jail.local
,可自定义规则。
🧩 三、系统与用户安全
1. 最小化安装原则
-
只安装必要的软件,减少攻击面。 -
删除无用服务(如 telnet、ftp、rpcbind 等)。
2. 定期检查用户和权限
# 查看所有用户
cut -d: -f1 /etc/passwd
# 查看 sudo 用户
grep 'sudo|wheel' /etc/group
-
删除或禁用不必要的账户。
3. 设置强密码策略
# 安装密码强度检查模块
sudo apt install libpam-pwquality
# 配置最小长度、复杂度等
4. 开启日志审计(auditd)
-
监控关键文件和命令执行。
sudo apt install auditd
sudo auditctl -w /etc/passwd -p wa -k passwd_change
🌐 四、Web 服务安全(如运行网站)
1. 使用 HTTPS(SSL/TLS)
-
使用 Let's Encrypt 免费证书:
sudo certbot --nginx -d yourdomain.com
2. 隐藏服务器信息
-
Nginx/Apache 关闭版本号显示:
server_tokens off;
3. 防 DDoS 和 CC 攻击
-
使用 Nginx 限流:
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
-
考虑使用 CDN隐藏真实 IP,提供 WAF 防护。
4. Web 应用安全
-
定期更新 CMS(如 WordPress)、插件、框架。 -
避免使用弱口令后台(如 admin/123456)。 -
设置登录失败锁定机制。
📦 五、数据与备份安全
1. 定期备份
-
备份系统配置、数据库、网站文件。 -
使用 rsync
、borg
或云备份工具。 -
备份要离线或异地存储,防止勒索病毒加密。
2. 加密敏感数据
-
数据库密码、API Key 等不要明文存储。 -
使用环境变量或密钥管理工具(如 Hashicorp Vault)。
🕵️ 六、监控与告警
1. 安装安全监控工具
-
Lynis:系统安全审计工具
git clone https://github.com/CISOfy/lynis
sudo ./lynis audit system
-
rkhunter / chkrootkit:检测后门和 rootkit
sudo apt install rkhunter
sudo rkhunter --check
2. 日志监控
-
使用 logwatch
或ELK
分析日志。 -
关注 /var/log/auth.log
(登录记录)、/var/log/nginx/access.log
等。
3. 设置告警
-
通过邮件或企业微信/钉钉 推送异常登录、CPU 异常、磁盘满等告警。 -
工具: healthcheck.io
、Zabbix
、Prometheus + Alertmanager
。
🧰 七、其他实用建议
|
|
---|---|
使用跳板机(堡垒机) |
|
定期安全扫描 |
nmap 扫描开放端口,nikto 扫描 Web 漏洞。 |
关闭 IPv6(如不用) |
|
禁用 USB 自动挂载 |
|
启用双因素认证(2FA) |
|
✅ 总结:服务器安全 Checklist
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
🔐 最后提醒:
安全不是一劳永逸的,而是持续的过程。建议每月进行一次安全自查,关注 CVE 漏洞公告,及时响应新威胁。
安全防护是一个长期的持续的过程,除了以上的这些,做好定期的数据备份,快照备份,即使被黑了,还有补救的空间。