sudo apt update && sudo apt upgrade
(Debian/Ubuntu) 或 sudo yum update
(RHEL/CentOS)/etc/ssh/sshd_config
中PermitRootLogin no
ufw
或firewalld
仅开放必要端口
bash
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
bash
chown -R webuser:webgroup /var/www/html
chmod -R 750 /var/www/html
Options -Indexes
ServerSignature Off
和ServerTokens Prod
<LimitExcept GET POST> deny from all </LimitExcept>
server_tokens off;
nginx
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 405;
}
bash
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com
nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
bash
sudo apt install libapache2-mod-security2 # Apache
sudo apt install nginx-module-security # Nginx
bash
git clone https://github.com/coreruleset/coreruleset /etc/modsecurity/crs/
nginx
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
location /api/ {
limit_req zone=api burst=20 nodelay;
}
bash
# 监控失败登录尝试
grep "Failed password" /var/log/auth.log | wc -l
bash
sudo apt install nikto # Web漏洞扫描
sudo apt install lynis # 系统安全审计
bash
# 简单备份脚本示例
tar -czvf /backups/webconfig_$(date +%F).tar.gz /etc/nginx /var/www/html
通过实施这些多层次的安全措施,可以显著提高Linux服务器上Web接口的安全性,降低被攻击的风险。安全是一个持续的过程,需要定期审查和更新策略以适应新的威胁形势。