一. SSH服務(wù)
1.1 SSH基礎(chǔ)
1.1.1什么是SSH服務(wù)器?
SSH(Secure Shell)是一種安全通道協(xié)議,主要用來實現(xiàn)字符界面的遠程登錄、遠程 復(fù)制等功能;
SSH 協(xié)議對通信雙方的數(shù)據(jù)傳輸進行了加密處理,其中包括用戶登錄時輸入的用戶口令;
SSH 為建立在應(yīng)用層和傳輸層基礎(chǔ)上的安全協(xié)議。對數(shù)據(jù)進行壓縮,加快傳輸速度。
SSH客戶端<--------------網(wǎng)絡(luò)---------------->SSH服務(wù)端
1.1.2SSH優(yōu)點
數(shù)據(jù)傳輸是加密的,可以防止信息泄漏
數(shù)據(jù)傳輸是壓縮的,可以提高傳輸速度
1.1.3常見的ssh協(xié)議
客戶端: Linux Client: ssh, scp, sftp,slogin Windows Client:xshell, MobaXterm,putty, securecrt, sshsecureshellclient
OpenSSH 是實現(xiàn)SSH協(xié)議的開源軟件項目,適用于各種UNIX、 Linux 操作系統(tǒng)。
Centos 7系統(tǒng)默認已安裝openssh相關(guān)軟件包,并將sshd 服務(wù)添加為開機自啟動。
執(zhí)行"systemctl start sshd"命令即可啟動sshd 服務(wù)
sshd 服務(wù)默認使用的是TCP的22端口,安全協(xié)議版本sshv2,出來2之外還有1(有漏洞)
sshd服務(wù)的默認配置文件是/etc/ssh/ssh_config和sshd_config都是ssh服務(wù)器的配置文件,二者區(qū)別在于前者是針對客戶端的配置文件,后者則是針對服務(wù)端的配置文件
。
服務(wù)名稱 : sshd
服務(wù)端主程序: /usr/sbin/sshd
服務(wù)端配置文件 : /etc/ssh/sshd_config
客戶端配置文件: /etc/ssh/ssh_config
二. 服務(wù)端配置文件常用選項
2.1設(shè)置白名單
AllowUsers zhangsan lisi@192.168.137.101 僅允許zhangsan,lisi在此用戶上登錄,且lisi只能在此主機下遠程登錄
2.2設(shè)置黑名單
DenyUsers zhangsan lisi@192.168.137.101禁止zhangsan和lisi在此主機上遠程登陸且lisi只禁止在101上登錄
三. SSH服務(wù)的兩種驗證方式
- 密碼驗證:對服務(wù)器中本地系統(tǒng)用戶登錄名稱,密碼進行驗證,簡單,但可能會被暴力破解
- 密鑰對驗證:要求提供相匹配的密鑰才能進行驗證通過,通常先在客戶端中創(chuàng)建一對密鑰文件(公鑰和私鑰),然后將公鑰文件放到服務(wù)器中指定位置,遠程登錄時,系統(tǒng)會使用公鑰和私鑰進行加密/解密關(guān)聯(lián)驗證,增加安全性,且可以免密交互登錄。
3.1 公鑰與私鑰的關(guān)系
- 公鑰和私鑰是成對生成的,這兩個密鑰互不相同,可以互相加密和解密
- 不能根據(jù)一個密鑰來推算另一個密鑰
- 公鑰對外公開,私鑰只有私鑰持有人才知道
當(dāng)密碼驗證和密鑰驗證同時開啟時,服務(wù)器會優(yōu)先使用密鑰對驗證
vim /etc/ssh/sshd_config 配置文件
PasswordAuthentication yes 啟用密碼驗證
PubkeyAuthentication yes 啟用密鑰對驗證
AuthorizedkeysFile .ssh/authorized_keys 指定公鑰庫文件
四. ssh客戶端程序
4.1ssh遠程登錄
ssh [選項] 用戶@ip
-p指定端口號
當(dāng)用戶第一次遠程登陸時,必須接受服務(wù)器發(fā)來的ECDSA密鑰驗證,接收的密鑰信息存放到~/.ssh/known_hosts文件中,驗證成功后,即登陸目標(biāo)服務(wù)器命令環(huán)境中了
4.2 scp 遠程復(fù)制
下行復(fù)制:
scp root@192.168.137.101:/etc/passwd /root/passwd.txt
將遠程主機中的/etc/passwd文件復(fù)制到本機中
上行復(fù)制:
scp -r /etc/ssh/ root@192.168.137.102:/opt
將本機中的/etc/ssh目錄復(fù)制到遠程主機中
此復(fù)制若對方主機有同名文件則會自動覆蓋
補充:
4.3 sftp 安全的ftp
由于使用了加密/ 解密技術(shù),所以傳輸效率比普通的FTP低,但是安全性更高
五. 配置密鑰對驗證
- 在客戶端創(chuàng)建密鑰對,在自己的家目錄中.ssh目錄中生成私鑰和公鑰
ssh -keygen -t rsa
- ssh -copy-id -p 端口號 -i id-rsa.pub 用戶@ip地址
注意生成的.ssh權(quán)限要700 authorized _keys 權(quán)限為600
5.1免交互驗證:
就是在創(chuàng)建密鑰對時不設(shè)置密鑰對密碼
5.2 在已有的密鑰密碼驗證下實現(xiàn)免交互
ssh - agent bash 設(shè)置一個代理(只在當(dāng)前環(huán)境中)
ssh - add 在輸入密鑰密碼
但此操作只能在當(dāng)前會話中有效,重啟則失效
六. TCP Wrappers 訪問控制 (TCP封套)
將tcp服務(wù)程序包裹起來,代為監(jiān)聽tcp服務(wù)程序的端口,增加了一個安全檢測過程,外來的連接請求必須通過這層安全檢測,獲得許可后才能進訪問真正的服務(wù)程序
6.1 TCP Wrappers保護機制的兩種實現(xiàn)方式
- 直接使用tcpd程序?qū)ζ渌姆?wù)進行保護,需要允許tcpd程序
- 其他網(wǎng)絡(luò)服務(wù)程序調(diào)用libwrap.so * 鏈接庫,不用運行tcpd程序,此方法更加有效
使用 lld 命令查看程序的libwrap.so 鏈接庫
lld $(which sshd)
6.2 TCP Wrappers 訪問策略
為各種網(wǎng)絡(luò)服務(wù)程序,針對訪問服務(wù)的客戶端地址進行訪問控制,對應(yīng)的策略文件為/etc/hosts.allow和/etc/hosts.deny分別來設(shè)置允許和拒絕訪問
格式:《服務(wù)程序列表》:《客戶端地址列表》
客戶端地址列表允許使用通配符 * ?
6.3 基本原則
先檢查/etc/hosts.allow 文件,密鑰則檢查/etc/hosts.deny 文件,若都沒有相匹配的策略,則全部允許訪問
例如:
如果我只希望從ip地址為12.0.0.1主機或位于192.168.137.101的主機訪問ssh服務(wù),其他的拒絕
vim /etc/hosts.allow
sshd:12.0.0.1,192.168.137.101
vim /etc/hosts.deny
sshd:ALL
在192.168.137.102中設(shè)置白名單和黑名單文章來源:http://www.zghlxwxcb.cn/news/detail-775428.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-775428.html
到了這里,關(guān)于Linux遠程訪問及控制SSH命令的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!