如何使用命令列來保護你的Linux伺服器
概述:
在當今數位化時代,伺服器的安全性尤其重要。身為伺服器管理員,我們需要採取一系列措施來保護我們的Linux伺服器。命令列是一種非常有效的工具,可以幫助我們實現這一目標。本文將介紹如何使用命令列來保護你的Linux伺服器,並提供一些程式碼範例。
一、更新系統
保持伺服器作業系統是最新的非常重要。我們可以使用以下指令來更新系統:
sudo apt update
sudo apt upgrade
二、使用防火牆
防火牆是保護伺服器的第一道防線。我們可以使用iptables命令來設定和管理防火牆規則。以下是一些常用的範例:
- 允許特定IP位址存取SSH連接埠(預設為22):
sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 - j ACCEPT
- 允許特定IP位址範圍存取HTTP連接埠(預設為80):
sudo iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 80 -j ACCEPT
- #拒絕所有其他入站連接:
sudo iptables -A INPUT -j DROP
三、使用Fail2Ban保護SSH
Fail2Ban是一個開源的入侵防禦工具,可以保護伺服器免受暴力破解攻擊。以下是如何使用Fail2Ban來保護SSH的範例:
- 安裝Fail2Ban:
sudo apt install fail2ban
- 編輯Fail2Ban設定檔:
sudo nano /etc/fail2ban /jail.local
- 將以下內容新增至檔案:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log /auth.log
maxretry = 3
bantime = 3600
- #重新啟動Fail2Ban服務:
sudo service fail2ban restart
#四、使用防禦性DNS設定
使用防禦性DNS設定可以幫助阻止伺服器上的惡意流量。以下是一個範例:
- 編輯resolv.conf檔:
sudo nano /etc/resolv.conf
- 新增以下內容到檔案中(Google Public DNS):
nameserver 8.8.8.8
nameserver 8.8.4.4
- 儲存並退出檔案。
五、使用安全的SSH設定
SSH是遠端存取伺服器的重要方式,但也容易受到攻擊。以下是一些設定檔/etc/ssh/sshd_config中的建議修改:
- 更改SSH預設連接埠(建議1024以上的連接埠):
Port 2222
- 停用root使用者登入:
PermitRootLogin no
- 限制可登入的使用者:
AllowUsers user1 user2
- 停用密碼登錄,使用金鑰登入:
PasswordAuthentication no
- #更改登入回應時間:
LoginGraceTime 60
- 停用空密碼:
PermitEmptyPasswords no
- 儲存並退出文件,重啟SSH服務:
sudo service ssh restart
六、使用密碼強度檢查
為了保護伺服器帳戶,我們可以使用passwdqc指令來檢查密碼強度。以下是一個範例:
- 安裝passwdqc:
sudo apt install libpam-passwdqc
- 編輯密碼原則設定檔:
sudo nano /etc/pam.d/ common-password
- 新增以下行(在password requisite行之後):
password requisite pam_passwdqc.so min=disabled,disabled,16,12,8
- #儲存並退出檔案。
總結:
透過使用命令列來保護Linux伺服器,我們可以增加伺服器的安全性,並防止惡意攻擊。本文介紹了一些常用的命令列操作和程式碼範例,供伺服器管理員參考和使用。同時,我們也應該經常關注伺服器安全方面的最新訊息,並及時更新系統和工具來應對新的安全威脅。保護伺服器的安全是一個不斷學習和持續改進的過程。
以上是如何使用命令列來保護你的Linux伺服器的詳細內容。更多資訊請關注PHP中文網其他相關文章!