一、安裝SSH
SSH(Secure Shell)是在Linux中常用的一種加密遠程連接協議,可以使系統管理員通過互聯網或區域網對遠程連接的Linux伺服器進行加密數據傳輸和遠程管理。
大多數的Linux發行版都自帶SSH,如果無法使用ssh,可以使用以下命令安裝ssh:
sudo apt-get install openssh-server
安裝後,可以使用以下命令檢查SSH是否安裝成功:
ssh localhost
如果出現以下提示,則表示SSH安裝成功:
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:AbR1nMnGr0uP/ageTjTXLGe6GKj3GCNQj6h5rdM0Ha4.
Are you sure you want to continue connecting (yes/no)?
二、修改SSH默認埠
默認情況下,SSH埠是22,這是所有攻擊者首先嘗試的埠。通過更改默認埠,可以增強系統的安全性。可以使用以下命令打開sshd_config文件進行修改:
sudo vi /etc/ssh/sshd_config
找到如下代碼行:
#Port 22
取消注釋並且修改埠號,比如將埠號修改為2020:
Port 2020
修改完成後,需要重啟SSH服務以使更改生效:
sudo systemctl restart sshd.service
在同一區域網中,可以通過以下命令測試新的SSH埠是否工作:
ssh -p 2020 user@hostname_ipaddress
三、限制SSH連接數
在使用SSH時可以為每個使用者設定獨立的連接數。這樣既可以保證每個用戶對設備的訪問到一定程度上的公平,也可以限制設備資源的使用,防止惡意攻擊。
在sshd_config文件中,找到如下代碼行:
#MaxSessions 10
取消注釋,並將其修改為所需連接數,比如設置為5:
MaxSessions 5
然後,在重啟SSH服務以更新更改之前,您需要必須編輯以下文件,將允許的最大打開文件描述符數量增加到更高值:
sudo vi /etc/security/limits.conf
將以下內容添加到文件的末尾:
* hard nofile 65535
* soft nofile 65535
在完成此操作後,您需要重新啟動SSH服務:
sudo systemctl restart sshd.service
四、SSH密鑰認證
SSH密鑰認證是一種使用密鑰與密碼相結合的方式,使用密鑰登錄可以增加本地客戶端與遠程SSH伺服器之間的安全連接性。
要使用密鑰進行身份驗證,您需要先生成一組密鑰:一個私鑰和一個公鑰。私鑰必須由您保留。
可以使用以下命令來生成公鑰和私鑰:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
會出現以下提示,可以直接回車:
Enter file in which to save the key (/home/you/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/you/.ssh/id_rsa.
Your public key has been saved in /home/you/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:1HbA6yc1B46LnsJtvy8XHswxE+YSLUX8lTJvEI5OyaU your_email@example.com
The key's randomart image is:
+---[RSA 4096]----+
| ..o. |
| . o . |
| + . |
| . o = |
| S * * . .|
| o * . |
| o . |
| .. . . |
| E. ..... |
+----[SHA256]-----+
現在將公鑰添加到遠程伺服器:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@hostname_ip
用戶可以登錄到遠程伺服器,將公鑰添加到自己的authorized_keys文件中。這個文件可以在 ~/.ssh/authorized_keys 目錄中找到。
現在就可以使用SSH密鑰認證登錄遠程伺服器了,使用以下命令進行SSH連接:
ssh -i ~/.ssh/id_rsa user@hostname_ip
五、SSH登錄日誌監控
日常Linux系統運維過程中,為了實時監控SSH登錄情況,可以通過SSH登錄日誌來查看當前設備的SSH登錄情況,發現並阻止非法登錄等異常情況。
我們可以打開 SSH日誌監控服務來獲取日誌:
sudo apt-get install auditd -y
編輯auditd配置文件:
sudo vi /etc/audit/audit.rules
在文件尾處添加以下語句:
-w /var/log/auth.log -p wa -k SSH_login
-w /var/log/faillog -p wa -k SSH_login
-w /var/log/lastlog -p wa -k SSH_login
運行此命令更新rules文件:
sudo auditctl -R /etc/audit/audit.rules
如果你在查看日誌時發現沒有auditd日誌,請嘗試重啟rsyslog和auditd:
sudo systemctl restart rsyslog.service
sudo systemctl restart auditd.service
現在,每當有人通過SSH連接到您的伺服器時,就會生成一條具有重要信息的日誌:
sudo grep "SSH_login" /var/log/audit/audit.log
結論
本文詳細介紹了Linux SSH的配置,包括安裝SSH,修改SSH默認埠,限制SSH連接數,SSH密鑰認證,SSH登錄日誌監控,這些措施能夠保障SSH連接的安全和保密,保護您的Linux伺服器。
原創文章,作者:BSQKA,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/370624.html