溫馨提示×

Apache2 Ubuntu版如何防止攻擊

小樊
50
2025-09-30 03:23:44
欄目: 網絡安全

1. 定期更新系統與Apache2
保持系統和Apache2為最新版本是防范已知漏洞的基礎。運行以下命令更新軟件包列表并升級已安裝的包:

sudo apt update && sudo apt upgrade

2. 配置防火墻(UFW)
使用UFW限制對Apache服務的訪問,僅允許必要的端口(HTTP 80、HTTPS 443)。若使用Certbot自動配置SSL,可直接允許“Apache Full”規則:

sudo ufw allow 'Apache Full'  # 允許HTTP和HTTPS
sudo ufw enable               # 啟用防火墻

3. 禁用不必要的Apache模塊
關閉未使用的模塊以減少攻擊面。例如,禁用mod_php(若使用PHP-FPM替代)或其他不需要的模塊:

sudo a2dismod module_name     # 如mod_php7.4
sudo systemctl restart apache2

4. 啟用SSL/TLS加密
使用Let’s Encrypt免費獲取SSL證書,強制HTTPS傳輸以加密數據。安裝Certbot并自動配置:

sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com

5. 隱藏Apache版本與敏感信息
修改Apache配置文件,隱藏版本號和服務器簽名,防止攻擊者利用已知版本漏洞:

sudo nano /etc/apache2/conf-enabled/security.conf
# 添加或修改以下行
ServerTokens Prod             # 不顯示版本信息
ServerSignature Off           # 關閉錯誤頁面的服務器簽名

6. 配置訪問控制

  • 目錄權限控制:限制對敏感目錄(如/admin)的訪問,僅允許授權用戶或IP。例如,為/var/www/html/admin啟用基本認證:
    sudo htpasswd -c /etc/apache2/.htpasswd username  # 創建用戶
    sudo nano /etc/apache2/sites-available/yourdomain.conf
    # 添加以下配置
    <Directory /var/www/html/admin>
        AuthType Basic
        AuthName "Restricted Area"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
    </Directory>
    
  • IP白名單:僅允許特定IP訪問敏感區域:
    <Directory /var/www/html>
        Require ip 192.168.1.100  # 替換為你的IP
    </Directory>
    

7. 啟用安全HTTP頭
通過mod_headers模塊添加安全頭,防范XSS、點擊劫持等攻擊:

sudo a2enmod headers          # 啟用headers模塊
sudo nano /etc/apache2/conf-available/security.conf
# 添加以下內容
<IfModule mod_headers.c>
    Header always set X-Content-Type-Options "nosniff"  # 防止MIME類型嗅探
    Header always set X-Frame-Options "SAMEORIGIN"      # 防止點擊劫持
    Header always set X-XSS-Protection "1; mode=block"  # 啟用XSS防護
    Header always set Referrer-Policy "no-referrer-when-downgrade"  # 控制Referer信息
</IfModule>
sudo a2enconf security        # 啟用security配置
sudo systemctl restart apache2

8. 安裝Web應用防火墻(WAF)
使用mod_security模塊過濾惡意請求(如SQL注入、XSS),增強應用層安全:

sudo apt install libapache2-mod-security2
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
# 修改配置文件(可選):SecRuleEngine On(嚴格模式)
sudo a2enmod security2
sudo systemctl restart apache2

9. 監控與日志分析
定期檢查Apache日志(error.logaccess.log),及時發現異?;顒???墒褂?code>fail2ban自動封禁惡意IP:

sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.local /etc/fail2ban/jail.local.bak  # 備份默認配置
sudo systemctl start fail2ban
sudo systemctl enable fail2ban

10. 強化SSH安全(間接保護Apache服務器)
若通過SSH管理服務器,需強化SSH配置以降低被入侵風險:

sudo nano /etc/ssh/sshd_config
# 修改以下參數
Port 2222                     # 修改默認端口(避免掃描攻擊)
PermitRootLogin no            # 禁止root遠程登錄
PasswordAuthentication no     # 禁用密碼認證(僅允許密鑰)
sudo systemctl restart sshd

11. 限制文件上傳與執行
若網站允許文件上傳,需在php.ini中限制文件大小和類型,防止上傳惡意腳本:

upload_max_filesize = 2M      # 限制上傳文件大小
post_max_size = 8M            # 限制POST數據大小
file_uploads = On             # 開啟文件上傳(根據需求調整)

同時在Apache配置中禁止上傳目錄執行腳本:

<Directory /var/www/html/uploads>
    php_flag engine off       # 關閉PHP執行
    RemoveHandler .php .phtml .php3 .php4 .php5 .php7
</Directory>

12. 定期備份數據
定期備份Apache配置文件和網站數據,確保在遭受攻擊后可快速恢復:

sudo tar -czvf /backup/apache_backup_$(date +%Y%m%d).tar.gz /etc/apache2 /var/www/html

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女