悠悠楠杉
Linux网站服务器安全加固全方案:从基础到深度防护
一、用户与权限管理:安全的第一道防线
1. 超级用户权限管控
禁用root远程登录
修改/etc/ssh/sshd_config
:bash PermitRootLogin no
重启SSH服务后,攻击者即使破解密码也无法直接获取最高权限。sudo权限精细化
使用visudo
命令限制普通用户权限,例如仅允许运维组成员重启服务:%ops-team ALL=(root) /bin/systemctl restart nginx
2. 密码策略强化
bash
修改密码复杂度策略
vim /etc/pam.d/common-password
添加规则:最少12位,包含大小写和特殊字符
password requisite pam_pwquality.so minlen=12 dcredit=-1 ucredit=-1 ocredit=-1
设置90天密码有效期
vim /etc/login.defs
PASSMAXDAYS 90
二、网络层防护:构建铜墙铁壁
1. 防火墙双保险配置
UFW基础规则:
bash
ufw default deny incoming
ufw allow 22/tcp # 建议修改为非标准端口
ufw allow 80,443/tcp
ufw enable
IPTables深度防护(应对CC攻击):
bash
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP
iptables -N ANTIDDOS
iptables -A INPUT -p tcp --syn -j ANTIDDOS
iptables -A ANTIDDOS -m limit --limit 5/s -j RETURN
2. SSH服务深度加固
bash
启用证书登录
PubkeyAuthentication yes
PasswordAuthentication no
防暴力破解配置
vim /etc/ssh/sshd_config
MaxAuthTries 3
LoginGraceTime 1m
AllowUsers admin01 admin02 # 白名单机制
三、Web服务安全:关键防护点
1. Nginx/Apache加固示例
nginx
禁用敏感信息暴露
servertokens off; addheader X-Content-Type-Options "nosniff";
限制HTTP方法
limit_except GET POST { deny all; }
文件目录权限控制
location /uploads/ {
deny all;
return 403;
}
2. PHP安全配置(php.ini)
ini
disable_functions = exec,passthru,shell_exec,system
expose_php = Off
open_basedir = /var/www/:/tmp/
四、主动防御与监控
1. 入侵检测系统部署
bash
安装OSSEC HIDS
wget https://github.com/ossec/ossec-hids/archive/3.7.0.tar.gz
tar -xzvf 3.7.0.tar.gz
cd ossec-hids-3.7.0
./install.sh
2. 实时日志分析方案
bash
使用Fail2Ban防御SSH爆破
apt install fail2ban
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
修改配置:maxretry=3, bantime=1h
五、应急响应准备
备份策略:
- 数据库每日全量备份+binlog
- 网站文件采用rsync增量同步
bash rsync -az --delete /var/www/ backup-server:/web_backups/
漏洞扫描计划:bash
使用OpenVAS定期扫描
gvm-setup
gvm-start
持续优化建议:安全防护需要动态调整,建议每月进行:
- 端口与服务审计(netstat -tulnp
)
- 用户权限复核(awk -F: '($3 == 0) {print}' /etc/passwd
)
- 关键文件完整性校验(rpm -Va
或debsums
)
通过以上分层防护策略,可将服务器安全等级提升至行业基准线以上。实际部署时需根据业务需求调整,建议配合漏洞扫描平台形成闭环管理。