前言: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若是但願只容許或禁止某些用戶登陸時,可使用AllowUsers或DenyUsers,若是隻容許某些用戶,以下:
[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鏈接服務器 安裝後新建會話,輸入用戶名和密碼便可鏈接,以下圖:
七、構建密鑰對驗證的SSH體系(這種驗證方法更安全)
實驗環境:一共兩臺linux,一臺ssh客戶機192.168.1.2,另外一臺linux服務器192.168.1.1
1)在客戶端建立密鑰對
執行命令以後一路回車
2)將公鑰上傳到服務器
3)在服務器中導入公鑰文本
4)在客戶端使用密鑰對驗證(驗證以前別忘記在sshd主配置文件中容許xiaohong)
驗證祕鑰對
八、配置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
2)vim /etc/hosts.deny
3)在客戶端上修改ip爲192.168.1.200,測試鏈接失敗
4)把客戶端的ip改回到192.168.1.2以後,成功鏈接。