目 錄
- 一、SSH遠程管理
- 1、SSH定義
- 2、SSH優點
- 3、SSH組態檔
- 3.客戶端與服務端
- 二、配置OpenSSH服務端
- (三)SSHD服務支持兩種驗證方式
- 1、==密碼驗證==
- 2、==密鑰對驗證==
- 3、?公鑰和私鑰是成對生成的,這兩個密鑰互不相同,可以互相加密和解密,
- (四)使用SSH客戶端程式
- 1、ssh遠程登錄
- 2、scp遠程復制
- 3、sftp安全FTP
- (五)配置密鑰對驗證
- 1、在客戶端創建密鑰對
- 2、將公鑰檔案上傳至服務器
- 3、在服務器中匯入公鑰文本
- 4、在客戶端使用密鑰驗證
- 5、在客戶機設定ssh代理功能,實作互動登錄
- 二、TCP Wrappers訪問控制
- (一)TCP Wrappers概述
- (二)TCP Wrapper 保護機制的兩種實作方式
- (三)TCP Wrappers訪問策略
- (四)格式
- (五)TCP Wrappers 機制的基本原則
- (六)實體
一、SSH遠程管理
1、SSH定義
- SSH(Secure Shell)是一種安全通道協議,主要用來實作字符界面的遠程登錄、遠程復制等功能,
- SSH協議對通信雙方的資料傳輸進行了加密處理,其中包括用戶登錄時輸入的用戶口令,因此SSH協議具有很好的安全性,
2、SSH優點
- 資料傳輸是加密的,可以防止資訊泄漏
- 資料傳輸是壓縮的,可以提高傳輸速度
3、SSH組態檔
- sshd服務的默認組態檔是==/etc/ssh/sshd_config==
- ssh_config和sshd_config都是ssh服務器的組態檔,
- ssh_config是針對客戶端的組態檔;
- sshd_config是針對服務端的組態檔,
3.客戶端與服務端
- SSH客戶端:Putty,Xshell,CRT
- SSH服務端:OpenSSH
- OpenSSH 是實作SSH 協議的開源軟體專案,適用于各種UNIX、 Linux作業系統,
- CentOs 7系統默認已安裝openssh相關軟體包, 并已將sshd服務添加為開機自啟動,
- 執行“systemctl start sshd"命令即可啟動sshd服務,
- sshd服務默認使用的是TCP的22埠,
二、配置OpenSSH服務端
vim /etc/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 反向決議,以提高服務器的回應速度
#只允許zhangsan、lisi、wangwu用戶登錄,且其中wangwu用戶僅能夠從IP地址為61.23.24.25 的主機遠程登錄
AllowUsers zhangsan lisi wangwu@61.23.24.25 #多個用戶以空格分隔
#禁止某些用戶登錄,用法于AllowUsers 類似(注意不要同時使用)
DenyUsers zhangsan





(三)SSHD服務支持兩種驗證方式
1、密碼驗證
對服務器中本地系統用戶的登錄名稱、密碼進行驗證,簡便,但可能會被暴力破解,暴力破解可看之前博客有詳細描述系統弱口令檢測
2、密鑰對驗證
要求提供相匹配的密鑰資訊才能通過驗證,通常先在客戶端中創建一對密鑰檔案(公鑰、私鑰),然后將公鑰檔案放到服務器中的指定位置,遠程登錄時,系統將使用公鑰、私鑰進行加密/解密關聯驗證,能增強安全性,且可以免互動登錄,
3、?公鑰和私鑰是成對生成的,這兩個密鑰互不相同,可以互相加密和解密,
- 不能根據一一個密鑰來推算出另一個密鑰,
- 公鑰對外公開,私鑰只有私鑰的持有人才知道,
當密碼驗證、密鑰對驗證都啟用時,服務器將優先使用密鑰對驗證,可根據實際情況設定驗證方式,
vim /etc/ssh/sshd_config #編輯服務端主組態檔
PasswordAuthentication yes #啟用密碼驗證
PubkeyAuthentication yes #啟用密鑰對驗證
AuthorizedKeysFile .ssh/authorized_keys #指定公鑰庫檔案

(四)使用SSH客戶端程式
1、ssh遠程登錄
ssh [選項] lisi@192.168.121.151
當用戶第一次登錄SSH服務器時,必須接受服務器發來的ECDSA密鑰(根據提示輸入"yes")后才能繼續驗證,接收的密鑰
資訊將保存到~/.ssh/known_hosts檔案中,密碼驗證成功以后,即可登錄目標服務器的命令列環境中了,
-p: 指定非默認的埠號,預設時默認使用22埠

2、scp遠程復制
下行復制
scp root@192.168.121.151:/etc/passwd / root/passwd1. txt 將遠程主機中的/etc/passwd檔案復制到本機




上行復制
scp -r /etc/ssh/ root@192.168.121.151:/opt 將本機的/etc/ssh目錄復制到遠程主機
上行復制:將本機的/etc/ssh目錄復制到遠程主機

3、sftp安全FTP
由于使用了加密/解密技術,所以傳輸效率比普通的FTP要低,但安全性更高,操作語法sftp與ftp幾乎一樣,
sftp root@192.168.184.20
sftp> ls
sftp> get 檔案名 #下載檔案到ftp目錄
sftp> put 檔案名 #上傳檔案到ftp目錄
sftp> quit #退出


(五)配置密鑰對驗證
1、在客戶端創建密鑰對
通過ssh-keygen工具為當前用戶創建密鑰對檔案,可用的加密演算法為RSA、ECDSA或DSA等(ssh-keygen命令的“-t”選項用于指定演算法型別)
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: #確認輸入
ls -l .ssh/id_ecdsa*#id_ecdsa是私鑰檔案,權限默認為600;id_ecdsa.pub是公鑰檔案,用來提供給 SSH 服務器


2、將公鑰檔案上傳至服務器
此方法可直接在服務器的/home/zhangsan/.ssh/目錄中匯入公鑰文本
cd ~/.ssh/
ssh-copy-id -i id_ecdsa.pub zhangsan@192.168.110.10
或
scp ~/.ssh/ id_ecdsa.pub zhangsan@192.168.110.10:/opt

3、在服務器中匯入公鑰文本
scp ~/.ssh/id_ecdsa.pub root@192.168.80.10:/opt #將本機~/.ssh目錄下的公鑰上傳到服務器的/opt目錄里
mkdir /home/zhangsan/.ssh/ #在服務器/home/zhangsan/目錄下創建一個.ssh目錄
cat /opt/id_ecdsa.pub >> /home/zhangsan/.ssh/authorized_keys #在服務器將/opt目錄下的公鑰檔案追加到/home/zhangsan/.ssh/目錄中的authorzed_keys檔案中
cat /home/zhangsan/.ssh/authorized_keys #在服務器查看/home/zhangsan/.ssh/authorized_keys檔案
4、在客戶端使用密鑰驗證
ssh zhangsan@192.168.110.10
lisi@192.168.110.10's password: #輸入私鑰的密碼


5、在客戶機設定ssh代理功能,實作互動登錄
ssh-agent bash
ssh-add
Enter passphrase for /home/admin/.ssh/id_ecdsa: #輸入私鑰的密碼
ssh zhangsan@192.168.110.10

二、TCP Wrappers訪問控制
(一)TCP Wrappers概述
TCP Wrappers 將TCP服務程式“包裹”起來,代為監聽TCP服務程式的埠,增加了一個安全檢測程序,外來的連接請求必須先通過這層安全檢測,獲得許可后才能訪問真正的服務程式,
大多數 Linux 發行版,TCP Wrappers 是默認提供的功能,rpm -q tcp_wrappers
使用 ldd 命令可以查看程式的 libwrap.so.*鏈接庫
ldd $(which ssh vsftpd)
(二)TCP Wrapper 保護機制的兩種實作方式
1、直接使用 tcpd 程式對其他服務程式進行保護,需要運行 tcpd程式,
2、由其他網路服務程式呼叫 libwrap.so.鏈接庫,不需要運行 tcpd 程式,此方式的應用更加廣泛,也更有效率,
(三)TCP Wrappers訪問策略
1、TCP Wrappers 機制的保護物件為各種網路服務程式,針對訪問服務的客戶端地址進行訪問控制,
2、對應的兩個策略檔案為/etc/hosts.allow 和/etc/hosts.deny,分別用來設定允許和拒絕的策略,
(四)格式
格式
<服務程式串列>:<客戶端地址串列>
(1)服務程式串列
ALL:代表所有的服務,
單個服務程式:如“vsftpd”,
多個服務程式組成的串列:如“vsftpd,sshd”,
(2)客戶端地址串列
ALL:代表任何客戶端地址,
LOCAL:代表本機地址,
多個地址以逗號分隔
允許使用通配符 “*” 和 “?” ,前者代表任意長度字符,后者僅代表一個字符
網段地址,如 192.168.80. 或者 192.168.80.0/255.255.255.0
區域地址,如 “.benet.com”匹配 bdqn.com 域中的所有主機,
(五)TCP Wrappers 機制的基本原則
首先檢查/etc/hosts.allow檔案,如果找到相匹配的策略,則允許訪問;
否則繼續檢查/etc/hosts.deny檔案,如果找到相匹配的策略,則拒絕訪問;
如果檢查上述兩個檔案都找不到相匹配的策略,則允許訪問,
“允許所有,拒絕個別”
只需在/etc/hosts.deny檔案中添加相應的拒絕策略
“允許個別,拒絕所有”
除了在/etc/hosts.allow中添加允許策略之外,還需要在/etc/hosts.deny檔案中設定“ALL:ALL”的拒絕策略
(六)實體
若只希望從IP地址為12.0.0.1的主機或者位于192.168.80.0/24網段的主機訪問sshd服務,其他地址被拒絕
vi /etc/hosts.allow
sshd:12.0.0.1,192.168.80.*
vi /etc/hosts.deny
sshd:ALL
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/282409.html
標籤:其他
上一篇:最常用的Linux指令匯總詳解
