隨著網路威脅日漸複雜,確保我們的系統和資料安全是不可或缺的。本文將探討兩個對後端開發極為重要的安全概念:檔案權限管理和SSH(Secure Shell)。這些工具和技術不僅能幫助我們建立更安全的系統,還能在面對潛在威脅時提供有效的防禦機制。
檔案權限是Unix/Linux系統安全的關鍵。它們提供了一種機制,可以精確控制誰可以存取、修改或執行系統中的文件和目錄。正確的檔案權限設置可以:
在Unix/Linux系統中,每個文件和目錄都有三種基本權限:
這些權限分別應用於三類使用者:
chmod
(change mode)是用來修改文件或目錄權限的命令。以下是常見的使用方式:
使用三個數字來表示權限,每個數字分別代表擁有者、群組和其他使用者的權限。
透過數字相加來表示不同組合權限:
例如:
chmod 755 script.sh # 所有者可讀寫執行,群組和其他人可讀和執行
chmod 644 config.txt # 所有者可讀寫,群組和其他人只能讀取
chmod 400 id_rsa # 只有所有者可讀取,常用於保護私鑰文件
chmod 755 /home/user/scripts/backup.sh
chmod 644 /etc/ssh/sshd_config
chmod 700 /home/user/.ssh
chmod 600 /home/user/.ssh/id_rsa
chmod 400 /home/user/secrets/encryption_key.pem
SSH(Secure Shell)是一種加密的網路協定,用於在不安全的網路中安全地執行網路服務。它主要用於遠端登入和命令執行,但也支援通道、埠號轉發和文件傳輸等功能。
ssh username@hostname
ssh -p 2222 username@hostname
ssh -i /path/to/private_key username@hostname
ssh username@hostname 'ls -l /var/www'
scp local_file.txt username@hostname:/path/to/remote/directory/
~/.ssh/config
文件中新增常用連接設置,簡化連接過程。ssh -L 8080:localhost:80 username@hostname
將本地8080埠號轉發到遠端主機的80埠號。ssh-keygen -t rsa -b 4096
ssh-copy-id username@hostname
eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa
攻擊原理:駭客嘗試大量可能的使用者名稱和密碼組合,希望通過反覆嘗試來猜中正確的憑證。
防護措施:
ssh-keygen -t rsa -b 4096
ssh-copy-id user@host
sudo apt-get install fail2ban
sudo systemctl enable fail2ban
攻擊原理:駭客試圖在客戶端和伺服器之間攔截或修改通訊內容,例如修改購物網站。
防護措施:
~/.ssh/known_hosts
檔案更新,並在連線時驗證。
ssh -o "StrictHostKeyChecking=yes" user@host
攻擊原理:攻擊者獲得低權限帳戶後,嘗試利用系統漏洞或錯誤配置來獲得更高的權限,最終達到 root 權限。
防護措施:
作為後端工程師,正確管理文件權限及掌握SSH的使用是不可或缺的。以下統整一些安全要領:
通過認真實施這些安全措施,我們可以大幅提升系統的安全性,為使用者資料和服務提供更好的保護!