远程访问及控制(详解)——SSH远程管理及TCP Wrappers 访问控制
遠程訪問及控制(詳解)——SSH遠程管理及TCP Wrappers 訪問控制
- 一、SSH遠程管理
- 1、定義
- 2、優點
- 3、客戶端與服務端
- 4、SSH服務的開啟、端口號和配置文件
- 二、配置 OpenSSH 服務端
- 1、配置文件常用設置選項
- 2、AllowUsers和DenyUsers
- 三、使用SSH客戶端程序
- 1、SSH遠程登錄
- 2、SCP遠程復制
- ①、下行復制
- ②、上行復制
- 3、sftp 安全 FTP
- 四、sshd服務支持兩種驗證方式
- 1、密碼驗證
- 2、秘鑰對驗證
- ①、在客戶機創建秘鑰對
- ②、將公鑰文件上傳至服務器
- ③、在服務器中導入公鑰文本
- ④、在客戶端使用秘鑰對驗證
- ⑤、在客戶機設置ssh代理功能,實現免交互登錄
- 五、TCP Wrappers 訪問控制
- 1、保護機制的兩種實現方式
- ①、查看程序的 libwrap.so.* 鏈接庫——ldd命令
- 2、TCP Wrappers 的訪問策略
- 3、TCP Wrappers 機制的基本原則
- 4、示例
一、SSH遠程管理
1、定義
SSH(Secure Shell )是一種安全通道協議,主要用來實現字符界面的遠程的登錄、遠程復制等功能。
SSH協議對通信雙方的數據傳輸進行了加密處理,其中包括用戶登錄時輸入的用戶口令。因此SSH協議具有很好的安全性。
2、優點
3、客戶端與服務端
- 客戶端:Putty、Xshell、CRT
- 服務端:OpenSSH
- OpenSSH 是實現 SSH 協議的開源軟件項目,適用于各種 UNIX、Linux 操作系統。
- CentOS 7系統默認已安裝openssh相關軟件包,并已將 sshd 服務添加為開機自啟動。
4、SSH服務的開啟、端口號和配置文件
- SSH服務的開啟
- 執行 “systemctl start sshd” 命令即可啟動 sshd 服務 - SSH服務的端口號
- sshd 服務使用的默認端口號為 22 - SSH服務的配置文件
- sshd_config 是針對服務端的配置文件
- ssh_config 是針對客戶端的配置文件
二、配置 OpenSSH 服務端
1、配置文件常用設置選項
2、AllowUsers和DenyUsers
三、使用SSH客戶端程序
1、SSH遠程登錄
當用戶第一次登錄SSH服務器時,必須接受服務器發來的ECDSA秘鑰(根據提示輸入"yes")后才能繼續驗證。接收的秘鑰信息將保存到 ~/.ssh/known_hosts 文件中,密碼驗證成功后,即可登錄目標服務器的命令環境中了。
| -1 | 強制使用ssh協議版本1 |
| -2 | 強制使用ssh協議版本2 |
| -4 | 強制使用IPv4地址 |
| -6 | 強制使用IPv6地址 |
| -A | 開啟認證代理連接轉發功能 |
| -a | 關閉認證代理連接轉發功能 |
| -b | 使用本機指定的地址作為對位連接的源IP地址 |
| -C | 請求壓縮所有數據 |
| -F | 指定ssh指令的配置文件,默認的配置文件為“/etc/ssh/ssh_config” |
| -f | 后臺執行ssh指令 |
| -g | 允許遠程主機連接本機的轉發端口 |
| -i | 指定身份文件(即私鑰文件) |
| -l | 指定連接遠程服務器的登錄用戶名 |
| -N | 不執行遠程指令 |
| -o | 指定配置選項 |
| -p | 指定遠程服務器上的端口 |
| -q | 靜默模式,所有的警告和診斷信息被禁止輸出 |
| -X | 開啟X11轉發功能 |
| -x | 關閉X11轉發功能 |
| -y | 開啟信任X11轉發功能 |
2、SCP遠程復制
①、下行復制
②、上行復制
3、sftp 安全 FTP
由于使用了加密/解密技術,所以傳輸效率比普通的FTP要低,但安全性更高。
sftp root@192.168.184.40 root@192.168.184.40's password: Connected to 192.168.184.40. sftp> ls sftp> get 文件名 #下載文件 sftp> put 文件名 #上傳文件 sftp> exit #退出
四、sshd服務支持兩種驗證方式
1、密碼驗證
- 對服務器中本地系統用戶的登錄名稱、密碼進行驗證。簡便,但可能會被暴力破解
2、秘鑰對驗證
- 要求提供相匹配的密鑰信息才能通過驗證。通常先在客戶端中創建一對密鑰文件(公鑰、私鑰),然后將公鑰文件放到服務器中的指定位置。遠程登錄時,系統將使用公鑰、私鑰進行加密/解密關聯驗證。能增強安全性,且可以免交互登錄。
- 當密碼驗證、密鑰對驗證都啟用時,服務器將優先使用密鑰對驗證。可根據實際情況設置驗證方式。
①、在客戶機創建秘鑰對
通過ssh-keygen工具為當前用戶創建密鑰對文件。可用的加密算法為RSA、ECDSA或DSA等(ssh-keygen命令的“-t”選項用于指定算法類型)。
useradd ljm echo "123456" | passwd --stdin ljm su - ljmssh-keygen -t ecdsa Generating public/private ecdsa key pair. Enter file in which to save the key (/home/ljm/.ssh/id_ecdsa): #指定私鑰位置,直接回車使用默認位置 Created directory '/home/ljm/.ssh'. #生成的私鑰、公鑰文件默認存放在宿主目錄中的隱藏目錄.ssh/下 Enter passphrase (empty for no passphrase): #設置私鑰的密碼 Enter same passphrase again: #確認輸入ls -l .ssh/id_ecdsa* #id_ecdsa是私鑰文件,權限默認為600;id_ecdsa.pub是公鑰文件,用來提供給 SSH 服務器②、將公鑰文件上傳至服務器
scp ~/.ssh/id_ecdsa.pub root@192.168.184.20:/opt 或 #此方法可直接在服務器的/home/ljm/.ssh/目錄中導入公鑰文本 cd ~/.ssh/ ssh-copy-id -i id_ecdsa.pub zhangsan@192.168.184.20③、在服務器中導入公鑰文本
mkdir /home/zhangsan/.ssh/ cat /tmp/id_ecdsa.pub >> /home/zhangsan/.ssh/authorized_keyscat /home/zhangsan/.ssh/authorized_keys④、在客戶端使用秘鑰對驗證
ssh zhangsan@192.168.184.20 lucien@192.168.184.20's password: #輸入私鑰的密碼⑤、在客戶機設置ssh代理功能,實現免交互登錄
ssh-agent bash ssh-add Enter passphrass for /home/zhangsan/.ssh/id_ecdsa: #輸入私鑰的密碼ssh zhangsan@192.168.184.20五、TCP Wrappers 訪問控制
- TCP Wrappers 將TCP服務程序“包裹”起來,代為監聽TCP服務程序的端口,增加了一個安全檢測過程,外來的連接請求必須先通過這層安全檢測,獲得許可后才能訪問真正的服務程序。
- 大多數 Linux 發行版,TCP Wrappers 是默認提供的功能。
1、保護機制的兩種實現方式
- 直接使用 tcpd 程序對其他服務程序進行保護,需要運行 tcpd程序。
- 由其他網絡服務程序調用 libwrap.so.* 鏈接庫,不需要運行 tcpd 程序。此方式的應用更加廣泛,也更有效率。
①、查看程序的 libwrap.so.* 鏈接庫——ldd命令
| -v | 詳細信息模式,打印所有相關信息 |
| -u | 打印未使用的直接依賴 |
| -d | 執行重定位和報告任何丟失的對象 |
| -r | 執行數據對象和函數的重定位,并且報告任何丟失的對象和函數 |
| – -help | 顯示幫助信息 |
- 文件需要寫上絕對路徑
- 我們不是很清楚文件的絕對路徑時,可以使用which命令查詢
- 也可以兩條命令一起使用:ldd $(which sshd)
2、TCP Wrappers 的訪問策略
- TCP Wrappers 機制的保護對象為各種網絡服務程序,針對訪問服務的客戶端地址進行訪問控制。
- 對應的兩個策略文件為 /etc/hosts.allow 和 /etc/hosts.deny,分別用來設置允許和拒絕的策略。
| ALL | 代表所有的服務 |
| 單個服務程序 | 如“vsftpd” |
| 多個服務程序組成的列表 | 如“vsftpd,sshd” |
| ALL | 代表任何客戶端地址 |
| LOCAL | 代表本機地址 |
| 多個地址以逗號分隔 | |
| * | 代表任意長度字符 |
| ? | 僅代表一個字符 |
3、TCP Wrappers 機制的基本原則
-
首先檢查/etc/hosts.allow文件,如果找到相匹配的策略,則允許訪問;
-
否則繼續檢查/etc/hosts.deny文件,如果找到相匹配的策略,則拒絕訪問;
-
如果檢查上述兩個文件都找不到相匹配的策略,則允許訪問。
-
允許所有,拒絕個別
只需在/etc/hosts.deny文件中添加相應的拒絕策略 -
允許個別,拒絕所有
除了在/etc/hosts.allow中添加允許策略之外,還需要在/etc/hosts.deny文件中設置“ALL:ALL”的拒絕策略。
4、示例
只希望從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總結
以上是生活随笔為你收集整理的远程访问及控制(详解)——SSH远程管理及TCP Wrappers 访问控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内存选择攻略:8GB够用吗?看看如何平衡
- 下一篇: PXE高效批量安装和Kickstart无