您好,登錄后才能下訂單哦!
SSH 為 secure shell 的縮寫,由 IETF 的網絡小組(Network Working Group)所制定;SSH 為建立在應用層基礎上的安全協議。SSH 是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。SSH最初是UNIX系統上的一個程序,后來又迅速擴展到其他操作平臺。SSH在正確使用時可彌補網絡中的漏洞。SSH客戶端適用于多種平臺。幾乎所有UNIX平臺—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平臺,都可運行SSH。
1.首先我們開啟兩臺Linux系統,一臺作為服務端,一臺作為客戶端。我們先用vim編輯器對ssh服務端配置文件“/etc/ssh/sshd_config”進行編輯。
Port 22 監聽端口,默認監聽22端口
#AddressFamily any IPV4和IPV6協議家族用哪個,any表示二者均有
#ListenAddress 0.0.0.0 指明監控的地址,0.0.0.0表示本機的所有地址
#ListenAddress :: 指明監聽的IPV6的所有地址格式
#LoginGraceTime 2m 會話時間,默認2分鐘則自動斷開連接
#PermitRootLogin yes 是否允許管理員直接登錄,'yes'表示允許
#StrictModes yes 是否讓sshd去檢查用戶主目錄或相關文件的權限數據
MaxAuthTries 6 最大認證嘗試次數,最多可以嘗試6次輸入密碼。
#MaxSessions 10 允許的最大會話數
(將“#”刪除即可開啟相應功能)
2.配置完畢記得重啟服務才會生效,我們用客戶端嘗試連接一下服務端。
我們直接輸入用來的登錄的用戶root(注意是服務端用戶)和服務端IP地址即可,然后輸入用戶密碼即可登錄。我之前登陸過,如果沒有登陸過,系統會問你是否想連接,你只需輸入“yes”即可。
如果客戶端的用戶名和服務端的用戶名相同,登錄時可以省略用戶名。
SSH服務的默認端口是22,如果你不設置端口的話,登錄請求會自動送到遠程主機的22端口。如果我們在配置文件里修改了端口號,我們可以使用 -p 選項來指定端口號。例如端口改為了123:
3.我們知道root用戶是系統的管理員,如果別人能夠隨意登錄肯定是不安全的。所以我們可以通過修改配置文件,不讓別人通過root用戶登錄。修改完記得重啟服務。
我們再次用root用戶登錄,輸入密碼后顯示權限拒絕,而換成zhangsan用戶又可以登錄了。
4.雖然我們限制了使用root用戶登錄,但是當我們用zhangsan用戶登錄了,用“su”命令任然可以切換到root用戶。
所以我們可以開啟“su”命令的PAM安全認證功能,我們只要將允許用“su”命令的用戶添加到“wheel”組即可。
可以看到用戶“jiang”在“wheel”組中,用戶“zhangsan”不在。我們再用“zhangsan”用戶切換root用戶已經顯示權限拒絕,而在“wheel”組用戶“jiang”任然可以切換root用戶。
5.前面我將最大認證嘗試次數6次數開啟了,我們可以測試一下是否成功。
可以看到當我們嘗試了6次,就自動被斷開連接了。但是我們得用“-o NumberOfPasswordPrompts=8”選項才能測試成功,如果直接輸入,還是默認3次就會斷開連接。
6.我們還可以通過在服務端配置文件里添加黑白名單來限制登錄的用戶和IP地址。
黑白名單不能同時存在,一般企業中多用白名單,下面以白名單為例演示。
首先我們在配置文件中添加白名單,限制zhangsan用戶只能在ip為192.168.52.132的主機上進行登錄,lisi用戶可以在任意主機上進行登錄。配置完成要重啟服務。
我們在ip為192.168.52.132的主機上登錄時,可以看到由于設置了白名單,用戶“jiang”不在名單里所有已經不能登錄了,而zhangsan與lisi用戶任然可以登錄。
我們在ip為192.168.52.128的主機上登錄時,只有lisi用戶可以登錄,zhangsan用戶不能登錄,因為我們限制了zhangsan用戶只能在ip為192.168.52.132的主機上進行登錄。
1.我們將之前設置的白名單刪除,允許root用戶登錄改為“yes”,并重啟服務。
2.首先在client主機的“/opt/”目錄,新建一個文件“ssh_client.txt”和一個目錄“ssh”,然后用scp命令將它們都復制到server主機的“/opt/”目錄下。
3.再在client主機的“/opt/”目錄下,創建一個文件“test01”,然后在“server”主機用scp命令將文件復制過來。
4.我們將之前在兩臺主機“/opt/”目錄下新建的目錄和文件刪除,分別在server與client的“/opt/”目錄下創建兩個文件demo01、demo02。
5.我們在client主機用sftp命令也可以登錄server主機進行文件的上傳和下載。上傳用“put”命令,下載用“get”命令,同時我們還可以用cd命令進行目錄的切換。
6.可以看到我們可以用cd命令隨意切換目錄,這樣很不安全,所以我們可以通過對ssh服務端配置文件進行修改,將sftp命令連接后限制在我們指定的目錄里。
首先用vim編輯器對文件“/etc/ssh/sshd_config”進行編輯,將“Subsystem sftp /usr/libexec/openssh/sftp-server”注釋掉。然后添加下面的命令:
Subsystem sftp internal-sftp
Match User zhangsan
ChrootDirectory /home/zhangsan
X11Forwarding no
ForceCommand internal-sftp
AllowTcpForwarding no
(配置完別忘了重啟服務)
然后我們進入“/home/”目錄,將我們指定的目錄“zhangsan”的權限設為“755”,屬主、屬組均改為root。
我們再“/home/zhangsan/”目錄下,新建5個空文件。
我們再次用client主機,通過sftp連接server主機,可以看到我們直接就登錄到“zhangsan/目”錄中了。當我們想切換到別的目錄時,都不能成功。
1.將之前的限制sftp登錄切換目錄的配置修改回來,開啟密鑰對登錄功能(刪除#即可),并重啟服務。
2.首先用“ssh-keygen -t ecdsa”命令生成密鑰對,將密鑰文件存在“/home/zhangsan/.ssh/”目錄中。
3.用命令“ssh-copy-id -i id_ecdsa.pub zhangsan@192.168.52.131”將目錄“/home/zhangsan/.ssh/”下的公鑰文件“id_ecdsa.pub”導入到server主機。
4.當我們再次用ssh命令登錄時,這是只要輸入之前的密鑰即可。
5.但是我們每次登錄都得輸入密鑰會很麻煩,此時我們只要用bash代理,添加密鑰即可,我們下次登錄就不用輸入密鑰了。
控制策略的配置文件:
- /etc/hosts.allow(白名單文件)
- /etc/hosts.deny(黑名單文件)
策略的應用順序:
- 先檢查hosts.allow文件,找到匹配則直接允許訪問,不再檢查hosts.deny文件;
- 若hosts.allow文件中沒有,再檢測hosts.deny文件,找到則拒絕訪問;
- 若兩個文件中均無匹配策略,則默認允許訪問。
1.先用vim編輯器對文件“/etc/hosts.allow”進行編輯,添加一個白名單ip192.168.52.132。
2.再用vim編輯器對文件“/etc/hosts.deny”進行編輯,將所有ip設為黑名單。
3.下面我們用ip為192.168.52.132的主機client和ip為192.168.52.128的主機client02分別進行登錄,只有白名單里的client主機可以登錄。
4.將白名單中的client主機ip刪除,加入到黑名單中,再用client主機去登錄,結果不能登錄。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。