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