作為系統管理員,我們的重要職責之一就是管理並監控生產服務器和企業服務器,更新服務器內核,安裝最新的軟件包和補丁,以及每天執行其他服務器常規任務,同時遠程訪問服務器。
其實有兩大協議可用於訪問服務器:
•Telnet
•SSH
不妨逐個討論這兩大協議:
Telnet
1. Telnet是電信(Telecommunications)和網絡(Networks)的聯合縮寫,這是一種在UNIX平台上最為人所熟知的網絡協議。
2. Telnet使用端口23,它是專門為局域網設計的。
3. Telnet不是一種安全通信協議,因為它並不使用任何安全機制,通過網絡/互聯網傳輸明文格式的數據,包括密碼,所以誰都能嗅探數據包,獲得這個重要信息。
4. Telnet中沒有使用任何驗證策略及數據加密方法,因而帶來了巨大的安全威脅,這就是為什麼telnet不再用於通過公共網絡訪問網絡設備和服務器。
5. 在Linux系統上,telnet很容易使用yum來安裝:
[root@pbx2 ~]# yum install telnet
telnet的最佳用途就是檢查遠程主機上任何特定服務的狀態。比如說,如果我們想要檢查在本地服務器上通過端口80運行的Apache Web服務的狀態,可以這麼做:
[root@pbx2 ~]# telnet localhost 80
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
[root@pbx2 ~]#
現在,我們可以看到,該Web服務已被停止,telnet也無法連接,所以我們不得不在服務器上重啟服務,如下所示:
[root@pbx2 ~]# service httpd restart
Stopping httpd: [FAILED]
Starting httpd: [ OK]
現在再次檢查:
[root@pbx2 ~]# telnet localhost 80
Trying ::1...
Connected to localhost.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
所以apache服務現已運行,以同樣方式檢查服務器上通過端口運行的SSH守護程序的狀態:
[root@pbx2 ~]# telnet localhost 22
Trying ::1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.3
^]
telnet> quit
Connection closed.
SSH
1. SSH代表安全外殼(Secure Shell),它現在是通過互聯網訪問網絡設備和服務器的唯一的主要協議。
2. SSH默認情況下通過端口22運行;不過,很容易更改這個端口。
3. SSH是一種非常安全的協議,因為它共享並發送經過加密的信息,從而為通過互聯網等不安全的網絡訪問的數據提供了機密性和安全性。
4. 一旦通訊的數據使用SSH經過加密,就極難解壓和讀取該數據,所以我們的密碼在公共網絡上傳輸也變得很安全。
5. SSH還使用公鑰用於對訪問服務器的用戶驗證身份,這是一種很好的做法,為我們提供了極高的安全性。
6.SSH主要用在所有流行的操作系統上,比如Unix、Solaris、Red-Hat Linux、CentOS和Ubuntu等。
7. 我們可以更改服務器的SSH端口,具體如下所示:
[root@pbx2 ssh]# vim /etc/ssh/sshd_config
打開該配置文件後,尋找Port,其在默認情況下應該會采用如下所示的注釋:
#Port 22
去掉注釋,更改端口,比如我就將它改成了端口10089。
Port 10089
保存文件後退出,使用下面這個命令,對SSH守護程序進行重置:
service sshd restart
我們還可以禁用服務器的根訪問權,只要在同一個文件中稍微改動一下,搜索下面這個參數:
#PermitRootLogin yes
去掉注釋,把“yes”換成“no”
PermitRootLogin no
結束語
以上這些是針對Linux服務器的非常基本的安全技巧,我們會在下一篇文章中著重介紹重要的Linux安全加固技巧。通過Telnet或SSH訪問服務器的知名工具則有Putty、MTPutty和Secure CRT。到目前為止,SSH是最主要的訪問協議,它還用於訪問思科設備。