遠程訪問及控制
- 一.SSH遠程管理
- 二.OpenSSH服務器
- ① SSH (Secure Shell)協議
- ② OpenSSH
- 三.配置OpenSSH服務器
- 舉例
- 四.sshd 服務支持兩種驗證方式
- 五.使用SSH客戶端程式
- ① ssh 遠程登錄
- ② scp遠程復制
- ③ sftp 安全FTP
- 舉例
- 六.配置密鑰對驗證
- 七.TCP Wrappers訪問控制
- 格式:
一.SSH遠程管理
? SSH(SecureShell)是一種安全通道協議,主要用來實作字符界面的遠程登錄、遠程復制等功能
? SSH協議對通信雙方的資料傳輸進行了加密處理,其中包括用戶登錄時輸入的用戶口令,因此SSH協議具有很好的安全性

? SSH客戶端: Putty、 Xshell、 CRT
? SSH服務端: OpenSSH
? OpenSSH 是實作SsH 協議的開源軟體專案,適用于各種UNIX、Linux 作業系統
? Centos 7系統默認已安裝openssh相關軟體包,并已將sshd 服務添加為開機自啟動
? 執行“systemctl start sshd" 命令即可啟動sshd 服務
? sshd服務默認使用的是TCP的22埠
? sshd服務的默認組態檔是/etc/ssh/sshd_config
ssh_config和sshd_config都是ssh服務器的組態檔,二者區別在于前者是針對客戶端的組態檔,后者則是針對服務端的組態檔
二.OpenSSH服務器
① SSH (Secure Shell)協議
? 是一種安全通道協議
? 對通信資料進行了加密處理,用于遠程管理
② OpenSSH
? 服務名稱: sshd
? 服務端主程式: /usr/sbin/sshd
? 服務端組態檔: /etc/ssh/sshd_ config
三.配置OpenSSH服務器
sshd_ config組態檔的常用選項設定
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.密鑰對驗證
要求提供相匹配的密鑰資訊才能通過驗證,通常先在客戶端中創建一對密鑰檔案(公鑰、私鑰),然后將公鑰檔案放到服
務器中的指定位置,遠程登錄時,系統將使用公鑰、私鑰進行加密/解密關聯驗證,能增強安全性,且可以免互動登錄
公鑰和私鑰的關系:
? 公鑰和私鑰是成對生成的,這兩個密鑰互不相同,可以互相加密和解密
? 不能根據一個密鑰來推算出另一一個密鑰
? 公鑰對外公開,私鑰只有私鑰的持有人才知道
當密碼驗證、密鑰對驗證都啟用時,服務器將優先使用密鑰對驗證,可根據實際情況設定驗證方式
vim /etc/ssh/sshd_config
PasswordAuthentication yes
#啟用密碼驗證
PubkeyAuthentication yes
#啟用密鑰對驗證
Authori zedKeysFile .ssh/ authorized_keys
#指定公鑰庫檔案.
五.使用SSH客戶端程式
① ssh 遠程登錄
ssh [選項] zhangsan@192.168.80.10
當用戶第一次登錄SSH服務器時,必須接受服務器發來的ECDSA密鑰(根據提示輸入"yes")后才能繼續驗證,接收的密鑰資訊將保存到~/.ssh/known_hosts檔案中,密碼驗證成功以后,即可登錄目標服務器的命令列環境中了
-p:指定非默認的埠號,預設時默認使用22埠
ssh -p 2345 zhangsan@192.168.80.10
② scp遠程復制
下行復制
scp root@192.168.80.11:/etc/passwd /root/passwd10. txt
#將遠程主機中的/etc/passwd檔案復制到本機
上行復制
scp -r /etc/ssh/root@192.168.80.10:/opt
#將本機的/etc/ssh目錄復制到遠程主機
③ sftp 安全FTP
由于使用了加密/解密技術,所以傳輸效率比普通的FTP要低,但安全性更高,操作語法sftp與ftp幾乎一樣
sftp zhangsan@192.168.80.10
Connecting to 192.168.80.10...
tsengyia@172.16.16.22's password:
#輸入密碼
sftp> ls
sftp> get檔案名
#下載檔案到ftp目錄
sftp> put檔案名.
#_上傳檔案到ftp目錄
sftp> quit
#退出.
舉例
ssh 遠程登錄:



注:防火墻關掉,增強性關掉
scp遠程復制:



sftp 安全FTP:



六.配置密鑰對驗證
1.在客戶端創建密鑰對
通過ssh-keygeni工具為當前用戶創建密鑰對檔案,可用的加密演算法為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:
#確認輸入
1s -1 ~/.ssh/id_ ecdsa*
#id_ ecdsa是私鑰檔案,權限默認為600; id_ ecdsa.pub是公鑰檔案,用來提供給SSH服務器
2.將公鑰檔案.上傳至服務器
sCp ~/.ssh/ id_ecdsa.pub root@192.168.80.10:/opt
或
#此方法可直接在服務器的/home/zhangsan/.ssh/目錄中匯入公鑰文本.
cd ~/.ssh/
ssh-copy-id -i id_ecdsa.pub zhangsan@192.168.80.10
3.在服務器中匯入公鑰文本
mkdir /home/zhangsan/. ssh/
cat /opt/id_ecdsa.pub >> /home/ zhangsan/. ssh/authorized_keys
cat /home/zhangsan/. ssh/authorized_keys
4.在客戶端使用密鑰對驗證
ssh zhangsan@192.168.80.10
Enter passphrase for key ' /home/admin/.ssh/id_ecdsa':
#輸入私鑰的密碼
5.在客戶機設定ssh代理功能,實作免互動登錄
ssh-agent bash
ssh-add
Enter passphrase for /home/admin/.ssh/id_ecdsa:
#輸入私鑰的密碼
ssh zhangsan@192.168.80.10
在客戶端創建密鑰對:


將公鑰檔案.上傳至服務器:


在客戶端使用密鑰對驗證:

在客戶機設定ssh代理功能,實作免互動登錄:

七.TCP Wrappers訪問控制
TCP Wrappers (TCP封套 )
? 將TCP服務程式“包裹”起來,代為監聽TCp服務程式的埠,增加了一個安全檢測程序,外來的連接請求必須先通過這層安全檢測,獲得許可后才能訪問真正的服務程式
? 大多數Linux 發行版,TCP Wrappers 是默認提供的功能,rpm -q tcp_wrappers
TCP Wrappers 保護機制的兩種實作方式:
1.直接使用tepd程式對其他服務程式進行保護,需要運行tcpd程式
2.由其他網路服務程式呼叫libwrap.so. *鏈接庫,不需要運行tcpd 程式,此方式的應用更加廣泛,也更有效率
使用ldd命令可以查看程式的libwrap.so. *鏈接庫
ldd $ (which ssh)
TCP Wrappers的訪問策略:
? TCPWrappers機制的保護物件為各種網路服務程式,針對訪問服務的客戶端地址進行訪問控制
? 對應的兩個策略檔案為/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"匹配benet.com 域中的所有主機
TCPWrappers機制的基本原則:
? 首先檢查/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/282416.html
標籤:其他
下一篇:Kali Linux基礎
