ssh密鑰驗證
- SSH遠程管理服務
- 1,定義
- 2,SSH支持的客戶端和服務端
- 3,組態檔
- SSHD服務驗證
- 兩種驗證方式
- 1.密碼驗證
- 2.密鑰對驗證
- 公鑰和私鑰的關系
- 1.開啟密鑰和密碼驗證
- 2.使用SSH客戶端程式
- 3.scp遠程復制
- sftp(安全ftp)
- 配置密鑰對驗證
- 1,在客戶端創建密鑰對
- 2.查看密鑰位置
- 3.查看公鑰文本
- 4.將公鑰檔案上傳至服務器并且匯入
- 5.最后進行密鑰驗證登錄
- TCP Wrapper(訪問控制)
- 定義
- TCP Wrapper保護機制的兩種實作方式
- TCP Wrapper的格式
- (1)服務程式串列
- (2)客戶端地址串列
- TCP wrappers 機制的基本原則:
- 示例
SSH遠程管理服務
1,定義
-
SSH是一種安全通道協議,是用來實作字符界面的遠程登陸,遠程復制等功能的,我們日常生活可以使用該功能來進行遠程操控,省去了很多麻煩,
-
SSH協議對通信雙方的資料進行了加密處理,其中包括用戶登陸時輸入的用戶口令,因此SSH協議具有很好的安全性,
2,SSH支持的客戶端和服務端
- SSH客戶端:Putty,Xshall,CRT
- SSH服務端:OpenSSH
3,組態檔
-
我們正在使用的centos7系統已經默認安裝openssh相關的軟體包,并且已經將sshd服務添加為開機自啟,
-
執行“systemctl start sshd”命令即可啟動sshd服務
-
sshd服務默認使用的是TCP的22埠
-
sshd服務的默認組態檔為/etc/ssh/sshd_config
注:ssh_config和sshd_config都是ssh服務器的組態檔前者是
針對客戶端的組態檔,后者則是針對服務器的組態檔下面是sshd_config的重要配置
Port 22 #監聽埠22
ListenAddress 0.0.0.0 #監聽地址為任意網段,也可以指定OpenSSH服務器的具體IP
LoginGraceTime 2m #登陸驗證時間為2分鐘
PermitRootLogin no #禁止root用戶登錄
MaxAuthTries 6 #最大重試次數為6
PermitEmptyPasswords no #禁止空密碼用戶登錄
UseDNS no #禁止DNS反向決議,以提高服務器的回應速度




示例
#只允許zhaohua,muzi,用戶登錄,且其中muzi用戶僅能夠從ip地址為192.168.199.30的主機遠程登陸
AllowUsers zhaohua muzi@192.168.199.30 #多個用戶以空格分離
#禁止某些用戶登錄,用法和Allowusers類似(不要同時使用)
Denyusers zhaohua
SSHD服務驗證
兩種驗證方式
1.密碼驗證
最基本的對服務器中本地系統用戶的登錄名稱,密碼進行驗證,非常簡單,但容易被破解,所以我們不推薦如此使用,
2.密鑰對驗證
要求提供相匹配的密鑰資訊才能通過驗證,通過先在客戶端中創建一對密鑰檔案(公鑰,私鑰),然后將公鑰檔案放到服務器中的之的指定位置,遠程登陸時,系統將公鑰,私鑰進行加密,解密關聯驗證,能增強安全性,并且還可以免互動登錄,
公鑰和私鑰的關系
- 公鑰和私鑰是成雙成對的,這兩個密鑰互不相同,可以互相加密和解密,
- 不能根據一個密鑰來推算出另一個密鑰
- 公鑰對外公開,私鑰只有私鑰的持有人才知道
當我們密碼驗證和密鑰對驗證都開啟時,優先使用密鑰對驗證,當然,我們也可以根據實際情況來進行設定驗證方式,
1.開啟密鑰和密碼驗證
PasswordAuthentication yes #啟用密碼驗證
PubkeyAuthentication yes #啟用密鑰對驗證
AuthorizedKeysFile .ssh/authorized_keys #指定公鑰庫檔案

2.使用SSH客戶端程式
1,ssh遠程登陸
當用戶第一次登陸SSH服務器時,必須接受服務器發來的的ECDSA密鑰(根據提示輸入“yes”)然后再輸入密碼,驗證成功就可以登錄了,
命令
ssh 用戶@IP地址
例: ssh root@192.168.199.20
-p :指定非默認的埠號,預設時默認使用22埠

3.scp遠程復制
- 下行復制
命令
scp root@192.168.199.20:/etc/locale.conf /root/sshfuzhi.txt
scp -r root@192.168.199.20:/etc/lvm /root/sshfuzhi.txt #復制目錄時需加-r,表示遞回復制



- 上行復制
命令
scp -r /etc/ssh/ root@192.168.199.20:/opt

sftp(安全ftp)
因為ssh使用了加密和解密技術,所以安全性比普通的FTP要高,但是傳輸速率要更低,
命令
sftp root@192.168.199.20 #登錄到root@192.168.199.20
sftp> get [-r] 檔案或目錄 檔案保存位置(可預設,預設時代表復制到當前目錄) #當要傳輸目錄時,需要加入-r代表遞回復制 ,將遠程主機的檔案下載到我們的主機上
sftp>put [-r] #將我們本機的檔案,上傳到遠程主機上
首先,我們先要登錄到遠程主機上面;

登陸后,我們可以利用ls查看對方的目錄,或者直接進行傳輸,將對方的an檔案傳輸到我們的opt目錄,

或者使用put指令,將我們主機上面的檔案傳輸到對方主機

上傳之后我們可以進行查詢,看看是否傳輸成功,

或者我們可以指定接收目錄,將我們的檔案傳輸到該目錄

配置密鑰對驗證
1,在客戶端創建密鑰對
- 通過ssh-keygen工具為當前用戶創建密鑰對檔案,可用的加密演算法為RSA,ECDSA或DSA等(ssh-keygen命令的“-t”選項用于指定演算法型別)
可以先建立一個admin用戶
useradd admin
echo "123123" | passwd --stdin admin
su -admin
然后再進行創建密鑰對
ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/admin/.ssh/id_ecdsa): #指定私鑰位置,可以直接回車代表使用默認位置
Created directory '/home/admin/.ssh'. #生成的私鑰,存放在宿主目錄中的隱藏目錄.ssh/下
Enter passphrase (empty for no passphrase): #設定私鑰的密碼
Enter same passphrase again: #確認輸入

2.查看密鑰位置
在配置完密鑰對之后,我們可以進行查看密鑰對來確認,密鑰對存放于.ssh中,通過以下命令可以進行查看
ls -l ~/.ssh/id_ecdsa*
-rw------- 1 admin admin 314 12月 9 15:10 /home/admin/.ssh/id_ecdsa
-rw-r--r-- 1 admin admin 189 12月 9 15:10 /home/admin/.ssh/id_ecdsa.pub

3.查看公鑰文本
cat authorized_keys #這時已經在.ssh/目錄下了,所以使用相對路徑

4.將公鑰檔案上傳至服務器并且匯入
后面我們就應該將公鑰匯入服務器中,讓服務器與客戶端進行配對
ssh-copy-id -i id_ecdsa.pub zhao@192.168.199.30 #可以直接在服務器的/home/zhao/.ssh/目錄中匯入公鑰文本

5.最后進行密鑰驗證登錄
ssh zhao@192.168.199.30 #使用密鑰對驗證
Enter passphrase for key '/home/admin/.ssh/id_ecdsa': #輸入私鑰的密碼


TCP Wrapper(訪問控制)
定義
- 將TCP服務程式“包裹”起來,代為監聽TCP服務程式的埠,增加了一個安全檢測的程序,外來的連接請求必須先通過這層安全檢測,獲得許可后才能真正訪問對應的服務程式,
- 對于大多是的Linux發行版來說,TCP Wrappers 是默認提供的共嗯那個,
TCP Wrapper保護機制的兩種實作方式
- 1,直接使用tcpd程式對其他服務程式進行保護,需要運行tcpd程式
- 2,由其他網路服務程式呼叫libwrap.so.*鏈接庫,不需要運行tcpd程式,此方式的應用更加廣泛,也更有效率,
TCP Wrapper的格式
<服務程式串列>:<客戶端地址串列>
(1)服務程式串列
ALL:代表所有的服務,
單個服務程式:如“vsftpd",
多個服務程式組成的串列:如"vsftpd,sshd",
(2)客戶端地址串列
ALL:代表任何客戶端地址,
LOCAL:代表本機地址,
多個地址以逗號分隔
允許使用通配符“*”和“?”,前者代表任意長度字符,后者僅代表一個字符
網段地址,如“192.168.199.”或者192.168.199.0/255.255.255.0
區域地址,如".benet.com”匹配benet.com域中的所有主機,
TCP wrappers 機制的基本原則:
基本策略
- 首先檢查/etc/hosts.allow檔案,如果找到相匹配的策略,則允許訪問;
- 否則繼續檢查/etc/hosts.deny檔案,如果找到相匹配的策略,則拒絕訪問;
- 如果檢查上述兩個檔案都找不到相匹配的策略,則允許訪問,
常用情況
- "允許所有,拒絕個別”
只需在/etc/ hosts.deny檔案中添加相應的拒絕策略 - ”允許個別,拒絕所有”
除了在/etc/hosts.allow中添加允許策略之外,還需要在/etc/hosts.deny檔案中設定""ALL:ALL"的拒絕策略,
示例
比如我們在192.168.199.0網段中,我們只想讓192.168.199.20訪問192.168.199.30,需要做如下設定
先在/etc/hosts.allow設定只允許20IP通過

然后再在/etc/ hosts.deny中不允許所有網段通過

之后我們就發現10IP已經無法進入了,但20IP還是可以進入,


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/233096.html
標籤:其他
