服务器安全配置是防止网络攻击和数据泄露的关键防线,下面是一套多层次的安全规则最佳实践,涵盖网络、系统、服务、账户等多个层面:

网络层安全
-
防火墙策略 (iptables/firewalld/nftables)
- 默认拒绝所有:
默认策略设为 DROP,仅放行必要端口。 - 最小化开放端口:
- SSH (建议修改默认端口,如
2222) - HTTP/HTTPS (80, 443)
- 特定服务端口 (如数据库端口不应直接暴露给公网)
- SSH (建议修改默认端口,如
- 限制来源IP:仅允许管理IP访问SSH等管理端口。
- 示例 (iptables):
iptables -P INPUT DROP iptables -A INPUT -p tcp --dport 2222 -s 192.168.1.0/24 -j ACCEPT # 仅允许内网访问SSH iptables -A INPUT -p tcp --dport 80,443 -j ACCEPT # 开放Web iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 允许已建立连接
- 默认拒绝所有:
-
云平台安全组
在AWS/Azure/GCP等平台配置安全组规则,原理与防火墙相同,优先级更高。
-
关闭IPv6(如未使用)
sysctl -w net.ipv6.conf.all.disable_ipv6=1 sysctl -w net.ipv6.conf.default.disable_ipv6=1
系统层加固
-
及时更新系统
# Ubuntu/Debian sudo apt update && sudo apt upgrade -y # CentOS/RHEL sudo yum update -y
-
禁用无用服务
systemctl list-unit-files --type=service | grep enabled # 查看已启动服务 systemctl disable <service_name> # 禁用非必要服务(如蓝牙、打印服务)
-
内核参数调优 (
/etc/sysctl.conf)# 禁止ICMP重定向 net.ipv4.conf.all.accept_redirects = 0 net.ipv6.conf.all.accept_redirects = 0 # 开启SYN Cookie防洪水攻击 net.ipv4.tcp_syncookies = 1 # 禁用IP转发(非路由器) net.ipv4.ip_forward = 0
生效:
sysctl -p -
文件系统权限

- 关键目录权限:
/etc/:755(root:root)/etc/shadow:600(root:root)- Web根目录:避免
777,推荐755(用户):644(文件)
- 关键目录权限:
账户与认证安全
-
禁用Root直接登录 & 使用SSH密钥
# /etc/ssh/sshd_config PermitRootLogin no # 禁止root登录 PasswordAuthentication no # 禁用密码登录 PubkeyAuthentication yes # 启用密钥登录
重启SSH:
systemctl restart sshd -
创建低权限管理账户
adduser adminuser usermod -aG sudo adminuser # 赋予sudo权限
-
配置sudo日志审计
# /etc/sudoers 或 /etc/sudoers.d/audit Defaults logfile="/var/log/sudo.log"
-
强密码策略 (
/etc/login.defs&pam)# /etc/login.defs PASS_MAX_DAYS 90 PASS_MIN_LEN 10
服务专项安全
Web服务器 (Nginx/Apache)
-
隐藏版本信息:
# Nginx server_tokens off;
# Apache ServerTokens Prod ServerSignature Off
-
禁用不必要HTTP方法:
location / { limit_except GET POST { deny all; } } -
HTTPS强制跳转 & HSTS
server { listen 80; return 301 https://$host$request_uri; }
数据库安全 (MySQL/PostgreSQL)
- 禁止远程root登录:
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost'); FLUSH PRIVILEGES; - 删除测试数据库:
DROP DATABASE test; - 绑定本地地址:
bind-address = 127.0.0.1
入侵检测与监控
-
日志集中管理 (Rsyslog/Syslog-ng)

- 将
/var/log/auth.log、/var/log/syslog等发送至远程日志服务器。
- 将
-
文件完整性监控 (AIDE/Tripwire)
sudo aideinit # 初始化数据库 sudo aide --check # 扫描变更
-
入侵检测系统 (Fail2ban)
- 自动屏蔽暴力破解IP:
# /etc/fail2ban/jail.local [sshd] enabled = true port = 2222 # 修改为你的SSH端口 maxretry = 3
- 自动屏蔽暴力破解IP:
备份与灾难恢复
-
定期备份策略:
- 数据库:
mysqldump或pg_dump - 配置文件:备份
/etc/和关键应用配置 - 使用
rsync或rclone同步至异地存储(如S3、OSS)
- 数据库:
-
测试恢复流程:定期验证备份文件可恢复性。
进阶防护建议
- SELinux/AppArmor:启用强制访问控制(MAC)。
- 文件系统挂载选项:
/tmp使用noexec,nosuid。 - 容器安全:如果使用Docker,启用用户命名空间隔离,限制容器能力。
- WAF(Web应用防火墙):部署Cloudflare/Naxsi/ModSecurity防御SQL注入/XSS。
安全配置检查工具
- Lynis:开源安全审计工具
lynis audit system
- OpenSCAP:自动化合规扫描
- Cloud Provider 工具:
- AWS Trusted Advisor
- Azure Security Center
- GCP Security Command Center
重要原则:遵循最小权限原则,定期审计规则,保持“零信任”心态,新的漏洞不断出现,安全是一个持续的过程而非一次性任务。
根据你的具体服务(如WordPress、数据库服务器、API服务器),还需定制细化规则,如果需要某部分的详细配置示例,请告诉我你的具体场景!
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/288789.html

