sudo apt update && sudo apt upgrade
(Debian/Ubuntu) 或 sudo yum update
(RHEL/CentOS)/etc/ssh/sshd_config
设置 PermitRootLogin no
PasswordAuthentication no
# 启用UFW (Ubuntu)
sudo ufw enable
sudo ufw allow 22/tcp # SSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
# 或使用iptables (通用)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -j DROP
server {
listen 443 ssl;
server_name example.com;
# SSL配置
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
# 安全头
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options DENY;
add_header X-XSS-Protection "1; mode=block";
add_header Content-Security-Policy "default-src 'self'";
# 其他安全设置
server_tokens off;
client_max_body_size 1m;
location / {
# API特定配置
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
# 禁用服务器签名
ServerTokens Prod
ServerSignature Off
# 安全头
Header always set X-Content-Type-Options nosniff
Header always set X-Frame-Options DENY
Header always set X-XSS-Protection "1; mode=block"
# 限制HTTP方法
<LimitExcept GET POST>
Deny from all
</LimitExcept>
实施速率限制:防止暴力破解
limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;
location /api/ {
limit_req zone=api_limit burst=20 nodelay;
proxy_pass http://api_backend;
}
# 配置rsyslog发送日志到中央服务器
*.* @logserver.example.com:514
readonly
挂载通过实施这些最佳实践,您可以显著提高Linux服务器上Web接口的安全性,降低被攻击的风险。记住,安全是一个持续的过程,需要定期审查和更新措施以应对新的威胁。