遠程訪問及控制

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

一:SSH遠程管理shell

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

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

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

一、服務監聽選項安全

[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:                                            [肯定]

二、用戶登錄控制bash

一般應禁止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是啓用密碼驗證。app


三、登陸驗證方式

對於服務器的遠程管理,除了用戶帳號的安全控制之外,登錄驗證的方式也很是重要。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               //添加只容許的用戶

五、使用SSH客戶端程序

1).程登錄:ssh zhangsan@192.168.1.1                    
            whoami                                   //肯定當前用戶
            /sbin/ifconfig eth0 | grep "inet addr"   //確認當前主機地址
若是使用了非默認端口號(如2345),則在登錄時必須登錄經過「-p"選項指定端口號。
默認是22,不安全,能夠修改端口:vim etc/ssh/sshd_config
            ssh -p 2345 zhangsan@192.168.1.1

 

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

圖片1.png


七、構建密鑰對驗證的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

八、配置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

相關文章
相關標籤/搜索