Linux管理員 - 遠端管理



當以管理員身份討論CentOS中的遠端管理時,我們將探討兩種方法:

  • 控制檯管理
  • GUI管理

遠端控制檯管理

遠端控制檯管理意味著透過ssh等服務從命令列執行管理任務。為了有效地使用CentOS Linux,作為管理員,您需要熟練掌握命令列。Linux的核心設計就是從控制檯使用。即使在今天,一些系統管理員也更喜歡命令列帶來的強大功能,並透過執行沒有物理終端和未安裝GUI的精簡版Linux系統來節省硬體成本。

遠端GUI管理

遠端GUI管理通常透過兩種方式完成:遠端X會話或VNC之類的GUI應用程式層協議。每種方法都有其優缺點。但是,在大多數情況下,VNC是最好的管理選擇。它允許從其他作業系統(例如Windows或OS X)進行圖形控制,這些作業系統本身不支援X Window協議。

使用遠端X會話是執行在X上的X-Window視窗管理器和桌面管理器的原生功能。但是,整個X會話架構主要用於Linux。並非每個系統管理員都會隨身攜帶Linux筆記型電腦來建立遠端X會話。因此,最常見的方法是使用VNC伺服器的適配版本。

VNC最大的缺點是:VNC本身不支援多使用者環境,例如遠端X會話。因此,對於終端使用者的GUI訪問,遠端X會話將是最佳選擇。但是,我們主要關注的是遠端管理CentOS伺服器。

我們將討論為多個管理員配置VNC與為數百個終端使用者配置遠端X會話。

為遠端控制檯訪問使用SSH奠定安全基礎

ssh安全外殼現在是遠端管理任何Linux伺服器的標準。與telnet不同,SSH使用TLS進行身份驗證和端到端加密通訊。如果配置正確,管理員可以相當確定他們的密碼和伺服器都是遠端受信任的。

在配置SSH之前,讓我們談談基本的安全性和最小訪問許可權。當SSH在其預設埠22上執行時;遲早你會遇到針對常用使用者名稱和密碼的暴力破解字典攻擊。這只是家常便飯。無論您在拒絕檔案(deny files)中新增多少主機,它們每天都會從不同的IP地址進入。

透過一些常用規則,您可以簡單地採取一些積極主動的措施,讓壞人浪費時間。以下是使用SSH進行生產伺服器遠端管理時應遵循的一些安全規則:

  • 切勿使用常用的使用者名稱或密碼。系統上的使用者名稱不應為系統預設使用者名稱,也不應與公司電子郵件地址相關聯,例如:systemadmin@yourcompany.com

  • 不應允許透過SSH進行root訪問或管理訪問。使用唯一的使用者名稱,並在透過SSH進行身份驗證後使用su切換到root或管理帳戶。

  • 密碼策略是必須的:複雜的SSH使用者密碼,例如:“This&IS&a&GUD&P@ssW0rd&24&me”。每隔幾個月更改一次密碼,以消除對增量暴力破解攻擊的敏感性。

  • 停用已放棄或長時間未使用的帳戶。例如,如果招聘經理的語音信箱說明他們一個月內不會進行面試;這可能會導致技術嫻熟且時間充裕的人員。

  • 每天檢視日誌。作為系統管理員,每天早上至少花30-40分鐘審查系統和安全日誌。如果被問到,讓每個人都知道你沒有時間不積極主動。這種做法將有助於在問題出現在終端使用者和公司利潤之前隔離警告訊號。

關於Linux安全的說明:任何對Linux管理感興趣的人都應該積極關注當前的網路安全新聞和技術。雖然我們大多聽到的是其他作業系統被入侵,但對於網路罪犯來說,不安全的Linux系統是一個令人垂涎的寶藏。憑藉高速網際網路連線上的Linux強大功能,熟練的網路罪犯可以使用Linux來利用對其他作業系統的攻擊。

安裝和配置SSH以進行遠端訪問

步驟1:安裝SSH伺服器和所有依賴包。

[root@localhost]# yum -y install openssh-server 
'Loaded plugins: fastestmirror, langpacks 
Loading mirror speeds from cached hostfile 
* base: repos.centos.net 
* extras: repos.dfw.centos.com 
* updates: centos.centos.com 
Resolving Dependencies 
   --> Running transaction check 
   ---> Package openssh-server.x86_64 0:6.6.1p1-33.el7_3 will be installed 
   --> Finished Dependency Resolution 
Dependencies Resolved

步驟2:建立一個安全的普通使用者以新增shell訪問許可權。

[root@localhost ~]# useradd choozer 
[root@localhost ~]# usermod -c "Remote Access" -d /home/choozer -g users -G 
wheel -a choozer

注意:我們將新使用者新增到wheel組,以便在SSH訪問已透過身份驗證後能夠su到root。我們還使用了在常用詞表中找不到的使用者名稱。這樣,當SSH受到攻擊時,我們的帳戶就不會被鎖定。

儲存sshd伺服器配置設定的檔案是/etc/ssh/sshd_config

我們最初想要編輯的部分是:

LoginGraceTime 60m
PermitRootLogin no

步驟3:重新載入SSH守護程序sshd

[root@localhost]# systemctl reload sshd

最好將登出寬限期設定為60分鐘。一些複雜的管理任務可能會超過預設的2分鐘。沒有什麼比在配置或研究更改時SSH會話超時更令人沮喪的了。

步驟4:讓我們嘗試使用root憑據登入。

bash-3.2# ssh centos.vmnet.local 
root@centos.vmnet.local's password:   
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

步驟5:我們現在無法再透過ssh使用root憑據遠端登入。因此,讓我們登入到我們的非特權使用者帳戶並suroot帳戶。

bash-3.2# ssh chooser@centos.vmnet.local
choozer@centos.vmnet.local's password:
[choozer@localhost ~]$ su root
Password:

[root@localhost choozer]#

步驟6:最後,讓我們確保SSHD服務在啟動時載入,並且firewalld允許外部SSH連線。

[root@localhost]# systemctl enable sshd

[root@localhost]# firewall-cmd --permanent --add-service=ssh 
success

[root@localhost]# firewall-cmd --reload 
success
 
[root@localhost]#
 

SSH現已設定完畢,可以進行遠端管理。根據您的企業邊界,可能需要配置資料包過濾邊界裝置以允許在公司區域網外部進行SSH遠端管理。

配置VNC以進行遠端CentOS管理

在CentOS 6-7上透過VNC啟用遠端CentOS管理有幾種方法。最簡單但最受限制的方法是簡單地使用名為vino的軟體包。Vino是為Linux設計的基於Gnome桌面平臺的虛擬網路桌面連線應用程式。因此,假設安裝已完成Gnome桌面。如果尚未安裝Gnome桌面,請在繼續之前安裝。Vino將預設情況下與Gnome GUI安裝一起安裝。

要在Gnome下使用Vino配置螢幕共享,我們需要進入CentOS系統首選項以進行螢幕共享。

Applications->System Tools->Settings->Sharing

Sharing

Screen Sharing

Screen Sharing Authentication

配置VNC桌面共享的說明:

  • 停用新連線必須請求訪問:此選項需要物理訪問才能確定每個連線。此選項將阻止遠端管理,除非有人在物理桌面前。

  • 啟用需要密碼:這與使用者密碼是分開的。它將控制對虛擬桌面的訪問,並且仍然需要使用者密碼才能訪問鎖定的桌面(這對安全性有利)。

  • 轉發UP&P埠:如果可用,請保持停用:轉發UP&P埠將傳送對3層裝置的通用即插即用請求,以自動允許VNC連線到主機。我們不想要這個。

確保vino正在VNC埠5900上監聽。

[root@localhost]# netstat -antup | grep vino 
tcp        0        0 0.0.0.0:5900        0.0.0.0:*        LISTEN        4873/vino-server
tcp6       0        0 :::5900                :::*          LISTEN        4873/vino-server
   
[root@localhost]#

現在讓我們配置防火牆以允許傳入的VNC連線。

[root@localhost]# firewall-cmd --permanent --add-port=5900/tcp 
success

[root@localhost]# firewall-cmd --reload 
success

[root@localhost rdc]#

最後,正如您所看到的,我們能夠連線我們的CentOS系統,並使用Windows或OS X上的VNC客戶端對其進行管理。

VNC client

遵守與我們為SSH制定的相同規則對於VNC同樣重要。與SSH一樣,VNC會不斷掃描IP範圍並測試弱密碼。還值得注意的是,保留啟用的預設CentOS登入名以及控制檯超時確實有助於遠端VNC安全性。由於攻擊者需要VNC和使用者密碼,因此請確保您的螢幕共享密碼不同,並且與使用者密碼一樣難以猜測。

輸入VNC螢幕共享密碼後,我們還必須輸入使用者密碼才能訪問鎖定的桌面。

VNC Screen Sharing Password

安全說明:預設情況下,VNC不是加密協議。因此,VNC連線應透過SSH進行隧道傳輸以進行加密。

透過VNC設定SSH隧道

設定SSH隧道將提供一層SSH加密來透過隧道傳輸VNC連線。另一個很棒的功能是它使用SSH壓縮為VNC GUI螢幕更新新增另一層壓縮。在處理CentOS伺服器管理時,更安全、更快速總是件好事!

因此,從將啟動VNC連線的客戶端開始,讓我們設定一個遠端SSH隧道。在此演示中,我們使用的是OS X。首先,我們需要sudo -sroot

bash-3.2# sudo -s 
password:

輸入使用者密碼,我們現在應該擁有帶有#提示符的root shell

bash-3.2#

現在,讓我們建立我們的SSH隧道

ssh -f rdc@192.168.1.143 -L 2200:192.168.1.143:5900 -N

讓我們分解一下這個命令:

  • ssh:執行本地ssh實用程式

  • -f:任務完全執行後,ssh應在後臺執行

  • rdc@192.168.1.143:託管VNC服務的CentOS伺服器上的遠端ssh使用者

  • -L 2200:192.168.1.143:5900:建立我們的隧道[本地埠]:[遠端主機]:[VNC服務的遠端埠]

  • -N告訴ssh我們不希望在遠端系統上執行命令

bash-3.2# ssh -f rdc@192.168.1.143 -L 2200:192.168.1.143:5900 -N
rdc@192.168.1.143's password:

成功輸入遠端ssh使用者的密碼後,我們的ssh隧道就建立好了。現在是精彩的部分!要連線,我們將VNC客戶端指向隧道的本地主機上的埠,在本例中為埠2200。以下是Mac筆記型電腦的VNC客戶端上的配置:

SSH Tunnel

最後,我們的遠端VNC桌面連線!

VNC Desktop Connection

SSH隧道的好處在於它幾乎可以用於任何協議。SSH隧道通常用於繞過ISP的出站和入站埠過濾,以及在逃避其他會話層監控的同時欺騙應用程式層IDS/IPS。

  • 您的ISP可能會為非商業帳戶過濾埠5900,但允許SSH在埠22上執行(如果埠22被過濾,則可以在任何埠上執行SSH)。

  • 應用程式級IPS和IDS檢視有效負載。例如,常見的緩衝區溢位或SQL注入。端到端SSH加密將加密應用程式層資料。

SSH隧道是Linux管理員工具箱中完成任務的好工具。但是,作為管理員,我們希望探索鎖定較低許可權的使用者訪問SSH隧道的可用性。

管理安全說明:限制SSH隧道是管理員需要考慮的事情。評估使用者首先為什麼需要SSH隧道;哪些使用者需要隧道;以及實際的風險機率和最壞情況的影響。

這是一個高階主題,超出了中級入門教程的範圍。建議希望達到 CentOS Linux 管理高階水平的使用者對此主題進行研究。

使用 SSH 隧道進行遠端 X 視窗訪問

與 Windows 相比,Linux 中 X 視窗的設計非常巧妙。如果我們想從另一臺 Linux 機器控制遠端 Linux 機器,我們可以利用 X 中內建的機制。

X 視窗(通常簡稱為“X”)提供了一種機制,可以將源自一臺 Linux 機器上的應用程式視窗顯示到另一臺 Linux 機器上 X 的顯示部分。因此,透過 SSH,我們可以請求將 X 視窗應用程式轉發到世界各地的另一臺 Linux 機器的顯示器上!

要透過 ssh 隧道遠端執行 X 應用程式,我們只需要執行一條命令:

[root@localhost]# ssh -X rdc@192.168.1.105

語法是:ssh -X [使用者名稱]@[主機名],並且主機必須執行 ssh 且具有有效的使用者名稱。

以下是透過遠端 X 視窗 ssh 隧道在 Ubuntu 工作站上執行 GIMP 的螢幕截圖。(此處應插入截圖)

Use SSH Tunnel for Remote X-Windows

從另一臺 Linux 伺服器或工作站遠端執行應用程式非常簡單。也可以通過幾種方法啟動整個 X 會話並遠端訪問整個桌面環境。

  • XDMCP

  • 無頭軟體包,例如 NX

  • 在 X 和桌面管理器(如 Gnome 或 KDE)中配置備用顯示器和桌面

此方法最常用於沒有物理顯示器的無頭伺服器,並且確實超出了中級入門教程的範圍。但是,瞭解可用的選項總是有好處的。

廣告