Linux远程访问及控制(SSH、TCP Wrappers 访问控制)
Linux遠程訪問及控制
- 一、SSH遠程管理
- 1.SSH定義
- 2.SSH數據傳輸優點
- 3.SSH客戶端和服務端
- 二、OpenSSH
- 1.配置OpenSSH 服務端配置
- 2.scp遠程復制
- 3.sftp安全FTP
- 三、sshd 服務的兩種驗證方式
- 1.密碼驗證
- 2.密鑰對驗證
- 在客戶端創建密鑰對
- 將公鑰文件上傳服務器
- 在客戶端使用密鑰對驗證
- 在客戶機設置ssh代理功能,實現免交互登錄
- 四、TCP Wrappers 訪問控制
- 1.TCP Wrappers
- 2.TCP wrapper 保護機制的兩種實現方式
- 3.使用ldd命令可以查看程序的libwrap.so.*鏈接庫
- 4.TCP wrappers 的訪問策略
- 5.TCP Wrappers 機制的基本原則
一、SSH遠程管理
1.SSH定義
- SSH(Secure Shell)是一種安全通道協議,主要用來實現字符界面的遠程登錄、遠程復制等功能。
- SSH協議對通信雙方的數據傳輸進行了加密處理,其中包括用戶登錄時輸入的用戶口令。因此SSH協議具有很好的安全性。
2.SSH數據傳輸優點
- 數據傳輸是加密的,可以防止信息泄漏
- 數據傳輸是壓縮的,可以提高傳輸速度)
3.SSH客戶端和服務端
- SSH客戶端:Putty、Xshell、CRT
- SSH服務端:OpenSSH
二、OpenSSH
- OpenSSH 是實現 SSH 協議的開源軟件項目,適用于各種 UNIX、Linux 操作系統。
- CentOS 7系統默認已安裝openssh相關軟件包,并已將 sshd 服務添加為開機自啟。(openssh的服務名稱為sshd)
- 執行“systemctl start sshd”命令即可啟動 sshd 服務
- sshd 服務默認使用的是TCP的 22端口
- sshd 服務的默認配置文件是 /etc/ssh/sshd_config
- ssh_config和sshd_config都是ssh服務器的配置文件,二者區別在于前者是針對客戶端的配置文件,后者則是針對服務端的配置文件。
1.配置OpenSSH 服務端配置
sshd_config配置文件的常用選項設置 vim /etc/ssh/sshd_config Port 22 #監聽端口為 22 ListenAddress 0.0.0.0 #監聽地址為任意網段,也可以指定OpenSSH服務器的具體IPLoginGraceTime 2m #登錄驗證時間為 2 分鐘 PermitRootLogin no #禁止 root 用戶登錄 MaxAuthTries 6 #最大重試次數為 6PermitEmptyPasswords no #禁止空密碼用戶登錄 UseDNS no #禁用 DNS 反向解析,以提高服務器的響應速度
2.scp遠程復制
下行復制:將遠程主機的/etc/passwd文件復制到本機 scp root@192.168.172.20:/etc/passwd /root/passwd10.txt上行復制:將本機的/etc/ssh目錄復制到遠程主機 scp -r /etc/passwd/ root@192.168.172.20:/opt
3.sftp安全FTP
由于使用了加密/解密技術,所以傳輸效率比普通的FTP要低,但安全性更高。操作語法sftp與ftp幾乎一樣。
sftp root@192.168.184.20 sftp> ls sftp> get 文件名 #下載文件到ftp目錄 sftp> put 文件名 #上傳文件到ftp目錄 sftp> quit #退出下載實驗
上傳實驗
三、sshd 服務的兩種驗證方式
1.密碼驗證
對服務器中本地系統用戶的登錄名稱、密碼進行驗證。簡便,但可能會被暴力破解
2.密鑰對驗證
要求提供相匹配的密鑰信息才能通過驗證。通常先在客戶端中創建一對密鑰文件(公鑰、私鑰),然后將公鑰文件放到服務器中的指定位置。遠程登錄時,系統將使用公鑰、私鑰進行加密/解密關聯驗證。能增強安全性,且可以免交互登錄。
當密碼驗證、密鑰對驗證都啟用時,服務器將優先使用密鑰對驗證。可根據實際情況設置驗證方式。
vim /etc/ssh/sshd_config PasswordAuthentication yes #啟用密碼驗證 PubkeyAuthentication yes #啟用密鑰對驗證 AuthorizedKeysFile .ssh/authorized_keys #指定公鑰庫文件在客戶端創建密鑰對
通過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 服務器
將公鑰文件上傳服務器
#此方法可直接在服務器的/home/zhangsan/.ssh/目錄中導入公鑰文本
cd ~/.ssh/ ssh-copy-id -i id_ecdsa.pub zhangsan@192.168.80.10在客戶端使用密鑰對驗證
在客戶機設置ssh代理功能,實現免交互登錄
ssh-agent bash ssh-add Enter passphrase for /home/admin/.ssh/id_ecdsa: #輸入私鑰的密碼ssh zhangsan@192.168.80.10四、TCP Wrappers 訪問控制
1.TCP Wrappers
將TCP服務程序"包裹"起來,代為監聽TCP服務程序的端口,增加了一個安全檢測過程,外來的連接請求必須先通過這層安全檢測,獲得許可后才能訪問真正的服務程序。
大多數 Linux發行版,TCP wrappers是默認提供的功能。rpm -q tcp_wrappers
2.TCP wrapper 保護機制的兩種實現方式
- 1.直接使用tcpd程序對其他服務程序進行保護,需要運行tcpd程序。
- ⒉.由其他網絡服務程序調用libwrap.so.*鏈接庫,不需要運行tcpd程序。此方式的應用更加廣泛,也更有效率。
3.使用ldd命令可以查看程序的libwrap.so.*鏈接庫
ldd $ (which ssh vsftpd)4.TCP wrappers 的訪問策略
- TCP wrappers機制的保護對象為各種網絡服務程序,針對訪問服務的客戶端地址進行訪問控制。
- 對應的兩個策略文件為/etc/hosts.allow和/etc/hosts. deny,分別用來設置允許和拒絕的策略。
(1)服務程序列表
ALL:代表所有的服務。
單個服務程序:如“vsftpd”。
多個服務程序組成的列表:如“vsftpd,sshd”。
(2)客戶端地址列表
ALL:代表任何客戶端地址。
LOCAL:代表本機地址。
多個地址以逗號分隔
允許使用通配符 “?” 和 “*”
“ * ”代表任意長度字符 “?”僅代表一個字符
網段地址,如 192.168.163. 或者 192.168.163.0/255.255.255.0
區域地址,如 “.benet.com”匹配 bdqn.com 域中的所有主機。
5.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服務,其他地址被拒絕。
總結
以上是生活随笔為你收集整理的Linux远程访问及控制(SSH、TCP Wrappers 访问控制)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内存界的战斗机,威刚8g内存条性能揭秘
- 下一篇: Linux YUM扩展NFS共享存储服