遠程訪問及控制

前言:linux運維管理的時候,一般都是通過遠程方式管理,當需要從一個工作站管理數以百計的服務器主機時,遠程維護的方式將更佔優勢。

一:SSH遠程管理

SSH是一種安全通道協議,主要用來實現字符界面的遠程管理、遠程複製等功能。SSH協議對通信雙方的數據傳輸進行了加密處理,其中包括用戶登陸時輸入的用戶口令。

與早起的TELNET(遠程登錄)、RSH(Remote Shell,遠程執行)、RCP(Remote File Copy,遠程文件複製)等應用相比,SSH協議提供了更好的安全性。

OpenSSH軟件官網:http://www.openssh.com

1、服務監聽選項

[root@localhost ~]# vim /etc/ssh/sshd_config 
......//省略部分內容
Port 22                                   //監聽端口爲22
#AddressFamily any
ListenAddress 192.168.1.1                 //監聽地址爲192.168.1.1
 ......//省略部分內容
Protocol 2                                //使用SSH V2協議
......//省略部分內容
UseDNS no                                 //禁用DNS反向解析
......//省略部分內容
sshd服務器使用的默認端口是22,必要時建議修改次端口號,並指定監聽服務的具體IP地址,以提高在網絡中的隱蔽性。除此之外,SSH協議的版本選用V2比V1的安全
性更要好,禁用DNS反向解析可以提高服務器的響應速度。

[root@localhost ~]# service sshd restart           //重新加載服務才能生效
停止 sshd:                                                [確定]
正在啓動 sshd:                                            [確定]

2、用戶登陸控制

通常應禁止root用戶或密碼爲空的用戶登錄,另外,可以限制登錄驗證的時間(默認爲2分鐘)及最大重試次數,若超過限制後仍未登錄則斷開連接。

[root@localhost ~]# vim /etc/ssh/sshd_config
.....//省略部分內容
LoginGraceTime 2m                  //登陸驗證時間爲2分鐘
PermitRootLogin yes                //允許root用戶登陸
#StrictModes yes     
MaxAuthTries 6                     //最大重試次數爲6
#MaxSessions 10                    
.....//省略部分內容
PermitEmptyPasswords no            //禁止空密碼用戶登陸
.....//省略部分內容

PermitRootLogin yes是允許root登錄,如果不允許把yes改爲no

PermitEmptyPasswords no的意思是禁止空密碼用戶登錄,PasswordAuthentication yes是啓用密碼驗證。


3、登錄驗證方式

對於服務器的遠程管理,除了用戶賬號的安全控制以外,登陸驗證的方式也非常重要。sshd服務支持兩種驗證--密碼驗證、祕鑰對驗證,可以設置只使用其中的一種方式,

也可以兩種都啓用。

[root@localhost ~]# vim /etc/ssh/sshd_config 
.....//省略部分內容
#RSAAuthentication yes                           
PubkeyAuthentication yes                          //啓用祕鑰對驗證
AuthorizedKeysFile      .ssh/authorized_keys      //指定公鑰庫數據文件
#AuthorizedKeysCommand none
#AuthorizedKeysCommandRunAs nobody
.....//省略部分內容
PasswordAuthentication yes                        //啓用密碼驗證

4如果希望只允許或禁止某些用戶登錄時,可以使用AllowUsersDenyUsers,如果只允許某些用戶,如下:

[root@localhost ~]# vim /etc/ssh/sshd_config
....//省略部分內容
# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no
#       AllowTcpForwarding no
#       ForceCommand cvs server
AllowUsers root zhangsan lisi               //添加只允許的用戶

5、使用SSH客戶端程序

1).程登陸:ssh [email protected]                    
            whoami                                   //確定當前用戶
            /sbin/ifconfig eth0 | grep "inet addr"   //確認當前主機地址
如果使用了非默認端口號(如2345),則在登陸時必須登陸通過“-p"選項指定端口號。
默認是22,不安全,可以修改端口:vim etc/ssh/sshd_config
            ssh -p 2345 [email protected]

 

2).遠程連接到服務器之後,可以使用scp遠程複製的方法在服務器和客戶機之間傳遞文件。
例如:將遠程主機中的/etc/passwd文件複製到本機,並將本機的/etc/vsftpd目錄複製到遠程主機。
scp [email protected]:/etc/passwd /root/chen1.txt
scp -r /etc/vsftpd/ [email protected]:/opt
3).通過sftp命令可以利用SSH安全連接與遠程主機上傳,下載文件,採用了類似於ftp的方式。
登陸服務器:sftp [email protected]
上傳文件:put /boot/config-2.6.32-431.e6.x86
下載文件:get /boot/grub.conf
退出:bye
6、在windows客戶端上使用圖形工具xshell連接服務器
安裝後新建會話,輸入用戶名和密碼即可連接,如下圖:

圖片1.png


7、構建密鑰對驗證的SSH體系(這種驗證方法更安全)

實驗環境:一共兩臺linux,一臺ssh客戶機192.168.1.2,另一臺linux服務器192.168.1.1

1)在客戶端創建密鑰對

執行命令之後一路回車

圖片2.png

2)將公鑰上傳到服務器

圖片3.png

3)在服務器中導入公鑰文本

圖片4.png

4)在客戶端使用密鑰對驗證(驗證之前別忘記在sshd主配置文件中允許xiaohong

圖片5.png

驗證祕鑰對

圖片6.png

8、配置tcp wrappers訪問控制
tcp wrappers機制針對訪問服務的客戶機地址進行訪問控制,對應兩個策略文件/etc/hosts.allow和/etc/hosts.deny,分別用來設置允許和拒絕策略。
策略的應用順序:首先檢查/etc/hosts.allow文件,如果找到匹配策略,則允許訪問,否則繼續檢查/etc/hosts.deny文件,如果找到匹配,則拒絕,如果上述兩個文件都找不到匹配的策略,則允許訪問。
例如:允許192.168.1.2的主機或者192.168.2.0的網段訪問sshd,其他地址被拒絕,執行以下操作。
1)vim  /etc/hosts.allow

圖片7.png


2)vim /etc/hosts.deny

圖片8.png

3)在客戶端上修改ip192.168.1.200,測試連接失敗

圖片9.png

4)把客戶端的ip改回到192.168.1.2之後,成功連接。

圖片10.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章