作为IT工程师,确保Linux服务器上Web接口的安全至关重要。以下是提升Web接口安全性的关键实践:
sudo apt update && sudo apt upgrade
(Debian/Ubuntu) 或 sudo yum update
(RHEL/CentOS)/etc/ssh/sshd_config
中PermitRootLogin no
# 使用UFW (Ubuntu)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
# 或使用iptables (通用)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -P INPUT DROP
server {
# 禁用不必要的HTTP方法
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 405;
}
# 安全头部
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
add_header Content-Security-Policy "default-src 'self'";
# 禁用服务器信息泄露
server_tokens off;
# SSL配置 (使用现代加密套件)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
}
# 禁用服务器签名
ServerSignature Off
ServerTokens Prod
# 安全头部
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-XSS-Protection "1; mode=block"
Header always set X-Content-Type-Options "nosniff"
Header always set Content-Security-Policy "default-src 'self'"
# 限制HTTP方法
<LimitExcept GET POST HEAD>
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;
# 其他配置...
}
nginx
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
# 安装并配置fail2ban
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
--read-only
--memory
, --cpus
通过实施这些关键实践,您可以显著提高Linux服务器上Web接口的安全性,减少潜在的攻击面,并建立更健壮的防御机制。