08. 保護您的 Ubuntu 伺服器:強化與防護的實用步驟

保護 Ubuntu 伺服器對於保護您的資料、應用程式和基礎架構免受惡意攻擊至關重要。無論您託管的是網站、資料庫還是應用程式,實施強而有力的安全實務都能確保伺服器抵禦各種弱點。本文將介紹保護 Ubuntu 伺服器的實用步驟,包括設定防火牆、安全地設定 SSH、使用fail2ban等工具和其他強化技巧。


上一篇文章:

01. Ubuntu Server 簡介 – SysOSX: AI & Cloud

02. 如何設定您的第一台 Ubuntu 伺服器:初學者指南 – SysOSX: AI & Cloud

03. 掌握適用於 Ubuntu Server 的 Linux 命令列 – SysOSX: AI & Cloud

04. 管理 Ubuntu Server 上的使用者和權限:完整指南 – SysOSX: AI & Cloud

05. Ubuntu Server 網路基礎:完整指南 – SysOSX: AI & Cloud

06. 在 Ubuntu Server 上安裝和管理軟體:完整指南 – SysOSX: AI & Cloud

07.修補和更新 Ubuntu Server:完整指南 – SysOSX: AI & Cloud



為什麼伺服器安全很重要?

伺服器通常保存著敏感資料,並且對業務營運至關重要。如果沒有適當的安全措施,攻擊者可以利用弱點獲得未授權存取、破壞服務或竊取資訊。遵循這些實用步驟,您可以顯著降低遭受攻擊的風險,並確保伺服器保持安全。


1. 保持系統更新

定期更新對於修補安全弱點和保持伺服器安全至關重要。Ubuntu 會及時為其套件和核心提供更新。

更新伺服器的步驟:

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade

此外,請啟用unattended-upgrades以自動執行安全性更新:

sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

2. 使用 UFW 設定防火牆

防火牆是抵禦未授權存取的第一道防線。Ubuntu 包含UFW(Uncomplicated Firewall),它簡化了防火牆管理。

設定 UFW 的步驟:

  • 啟用 UFW:
sudo ufw enable
  • 允許 SSH 連線:
sudo ufw allow ssh
  • 允許特定連接埠(例如,Web 伺服器的 HTTP 和 HTTPS):
sudo ufw allow 80/tcp 
sudo ufw allow 443/tcp
  • 檢查防火牆狀態:
sudo ufw status

    預設情況下,UFW 會封鎖所有傳入連線,只允許明確放行的連線,從而確保伺服器受到保護。


    3. 保護 SSH 存取

    SSH 是遠端伺服器管理的主要方法,但它經常成為暴力破解攻擊的目標。保護 SSH 對於降低未授權存取的風險至關重要。

    保護 SSH 的技巧:

    • 變更預設 SSH 連接埠:
      • 編輯 SSH 設定檔:
    sudo nano /etc/ssh/sshd_config 
    
    • 變更預設連接埠(例如,從22變更為2222),然後重新啟動 SSH 服務:
    sudo systemctl restart ssh
    
    • 更新 UFW 規則,以允許存取新的連接埠:
    sudo ufw allow 2222/tcp
    
    • 停用 root 登入:
      在/etc/ssh/sshd_config中,設定:
    PermitRootLogin no
    
    • 使用 SSH 金鑰驗證:
      • 產生 SSH 金鑰組:
    ssh-keygen -t rsa -b 4096 
    
    • 將公開金鑰複製到伺服器:
    ssh-copy-id username@server-ip
    
    • 限制 SSH 存取:
      透過編輯/etc/hosts.allow和/etc/hosts.deny 檔案。

    4. 安裝和設定 Fail2Ban

    Fail2Ban是一款透過監控記錄檔並封鎖表現出可疑行為的 IP 位址來保護伺服器免受暴力破解攻擊的工具。

    設定 Fail2Ban 的步驟:

    • 安裝 Fail2Ban:
    sudo apt install fail2ban
    
    • 建立本機設定檔:
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    
    • 設定 SSH 保護:
      編輯/etc/fail2ban/jail.local並啟用 SSH jail:
    [sshd]
    enabled = true
    port = 2222
    maxretry = 5
    bantime = 3600
    
    
    • 重新啟動 Fail2Ban:
    sudo systemctl restart fail2ban
    

      Fail2Ban 現在將監控 SSH 記錄,並在多次登入失敗後封鎖相關 IP。


      5. 停用不必要的服務

      執行不必要的服務會增加伺服器的攻擊面。請找出並停用不需要的服務。

      停用服務的步驟:

      • 列出使用中的服務:
      sudo systemctl list-units --type=service
      
      • 停止並停用未使用的服務:
      sudo systemctl stop service-name 
      sudo systemctl disable service-name
      

        6. 使用高強度密碼和使用者帳戶

        弱密碼是一種常見弱點。請確保所有使用者帳戶都使用高強度且唯一的密碼。

        使用者帳戶安全技巧:

        • 使用密碼管理工具產生和儲存高強度密碼。
        • 定期稽核使用者帳戶並移除未使用的帳戶:
        sudo awk -F: '{ print $1}' /etc/passwd
        

          7. 啟用雙因素驗證 (2FA)

          雙因素驗證為 SSH 登入程序增加了一層額外的安全保護。您可以使用Google Authenticator.

          啟用 2FA 的步驟:

          • 安裝 Google Authenticator:
          sudo apt install libpam-google-authenticator
          
          • 為您的使用者設定 2FA:
            執行下列命令並依照提示操作:
           google-authenticator
          
          • 在 SSH 中啟用 2FA:
            編輯/etc/pam.d/sshd並新增:
           auth required pam_google_authenticator.so
          

            重新啟動 SSH 服務:

            sudo systemctl restart ssh
            
            

            8. 監控記錄和系統活動

            定期監控伺服器記錄有助於及早發現可疑活動。

            記錄監控工具:

            • Syslog:檢查一般系統記錄:
            sudo less /var/log/syslog
            
            • Auth 記錄:檢視驗證嘗試:
             sudo less /var/log/auth.log
            

              考慮使用Logwatch或OSSEC等工具進行自動記錄分析和警示。


              9. 定期執行備份

              即使採取了強而有力的安全措施,備份對於從攻擊或資料遺失中復原仍然至關重要。

              備份選項:

              • 使用rsync建立本機備份:
              rsync -av /data /backup/
              
              • 使用Duplicity等工具自動執行備份,或整合雲端式解決方案,例如AWS S3或Google Cloud Storage.

              10. 其他強化技巧

              • 安裝防毒軟體:使用ClamAV等工具掃描惡意軟體。
              sudo apt install clamav 
              sudo clamscan -r /path/to/scan
              
              • 保護 Web 應用程式:如果託管網站,請使用ModSecurity等工具防範常見的 Web 弱點。
              • 啟用 AppArmor:AppArmor 為應用程式提供強制存取控制。
              sudo apt install apparmor 
              sudo aa-status
              

              結論

              保護 Ubuntu 伺服器需要採取主動的方法,將系統更新、防火牆設定、SSH 強化以及 Fail2Ban 等工具結合起來。遵循這些步驟並定期監控伺服器,您可以建立針對潛在威脅的強大防禦。

              如需了解更多資訊,請參閱官方Ubuntu 安全指南.

              接下來:Ubuntu Server 上的稽核與記錄

              保護伺服器固然重要,但保持對其運作狀況的可見性同樣關鍵。稽核和記錄 使您能夠監控系統活動、識別異常並有效地疑難排解問題。

              在下一節中,我們將介紹:

              • 系統稽核和記錄的重要性。
              • 使用auditd追蹤和記錄系統事件。
              • 使用logrotate設定記錄輪替,以有效率地管理記錄檔。
              • 監控/var/log目錄中的關鍵事件。

              這些實務將協助您保持問責、發現潛在威脅並確保伺服器的可靠性。

              敬請期待,我們將深入介紹協助您有效稽核和監控 Ubuntu 伺服器的工具和技術。

              3 thoughts on “08. Securing Your Ubuntu Server: Practical Steps for Hardening and Protection”

              發表留言