歡迎您光臨本站 註冊首頁

使用OpenSSH 建立更有效的安全性能

←手機掃碼閱讀     火星人 @ 2014-03-29 , reply:0

  老Linux管理員們都知道SSH(安全shell協議),這是他們軟體工具箱中最便利最有用的工具。在工作站X Windows環境下使用多端競爭或者通過Screen utility,Linux伺服器管理員或者其它基於Unix操作系統的伺服器管理員,能輕鬆地同時管理幾個系統。網路管理shell或者Perl腳本,能利用SSH在多個伺服器上簡單安全地自動執行工作。

  網路shell效應RSH比SSh要長。但是SSH在其功能中添加了強大的加密功能和數據壓縮功能,並且大多數現代SSH實現在同一包內提供SFTP和SCP,它們用於網路中的安全文件傳輸。

  最流行最普遍的SSH實現以OpenSSH的形式出現,它是由OpenBSD社團構思和維護的項目。OpenSSH被導入每一個操作系統平台,包括微軟的Windows,雖然在Window環境中它最廣泛的應用是:做為基於Unix系統上的OpenSSH伺服器的客戶端。這些基於Unix系統包括:Linux、Solaris和OpenBSD。

  SSH的職責

  SSH 使用強大的加密功能保護遠程會議不被懷有惡意的黑客攻擊。從始至終都提供端到端的安全保障,包括客戶機與主機進行聯繫,以及在電腦之間傳輸用戶名和口令之前建立會議專用的密碼鍵交換。它可以使用多種不同的密碼方案:AES、3DES、Blowfish以及其它方案。受信任的主機鑒定方案和系統之間鍵值交換提高安全性,OpenSSH不需要安全證書或優先鍵交換即可創建安全加密的遠程會議。

  另外,使用SSH可以解決某些類型的網路擁塞,明顯加速網路,因為它在傳輸數據前先對數據進行了壓縮。它通過SFTP加密,能提供類似於FTP的互動式文件傳輸能力,所以,甚至口令和用戶名在網路上傳輸都沒有阻礙。對於文件傳輸操作,SCP也類似地提供安全而方便的途徑完成此項工作——加密的文件拷貝命令,此命令操作網路連接,它是SSH實現的一部份。

  SSH是加密交流中眾所周知的網路協議。開發它是為了取代RSH效用,RSH也加了密,但是不夠安全。SSH不僅繼承了RSH的功能,而且擴展加強了其功能,特別是安全性方面。

  Linux的OpenSSH

  Linux上安裝OpenSSH是很容易的。例如,在Debian GNU/Linux系統上,安裝OpenSSH時,做為根用戶登錄,然後輸入命令apt-get install ssh即可。類似地,在Fedora Core Linux系統上,安裝OpenSSH時,做為根用戶登錄,然後輸入命令yum install ssh即可。你甚至不需要做這些事情,因為在Debian 和Fedora Core中,它們默認安裝配置中已經包含了OpenSSH。對於Linux系統來說,如果要確定系統是是否已經安裝了OoenSSH,只需要輸入命令: ssh。如果系統中安裝了OpenSSH,則會給出簡單的使用指南信息(Listing A):
CODE:
Listing A

$ ssh

usage: ssh [-1246AaCfgkMNnqsTtVvXxY] [-b bind_address] [-c cipher_spec]

[-D port] [-e escape_char] [-F configfile]

[-iidentity_file] [-L [bind_address:]port:host:hostport]

[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]

[-R [bind_address:]port:host:hostport] [-S ctl_path]

[user@]hostname [command]

  在OpenSSH說明書上有更完整的使用信息。這個說明書是傳統UNIX文件手冊系統的一部分,並且在命令行模式下輸入man ssh命令,即可訪問OpenSSH說明書。說明書提供了OpenSSH客戶端命令行選項的信息,關聯的配置文件信息、當前版本已知的Bug信息,影響其操作的shell環境變數信息,以及相關說明列表。正如列表所示,上面有sshd的說明書,有ssh-agent的說明書,以及OpenSSH工具集里其他應用的說明書。

  配置並使用Linux 客戶端

  在OpenSSH客戶端上,從命令行訪問OpenSSH伺服器上的其他系統時,僅僅只需要輸入ssh host命令,這裡「host」是目標系統的主機名。有時候這個主機名不能被解析成IP地址,因為你沒有那個系統的DNS,並且它沒有在本地系統的/etc/hosts文件中列出來。此時有必要指定目標系統的IP地址而不是主機名,例如:輸入ssh 192.168.0.1命令,連接此IP表示的系統。更多的SSH命令如下:

  SSH一般使用埠22。如果SSH伺服器偵聽一個不標準埠,使用下面命令,示例埠號為1234:
CODE:
ssh -p 1234 host

  除非指定了用戶名,否則它將試圖登錄到一個遠程系統,此時用戶名與本地系統上的用戶名相同。可以使用命令選項指定不同的用戶名。下面給出了一般格式,「user」表示用戶名。
CODE:
ssh -l user host

  一個更普遍的指定用戶名的方法是使用下面的格式:
CODE:
ssh user@host

  通過SSH而不需要打開shell界面即可以在目標系統上執行命令。下面例子中的「command」表示想要執行的命令:
CODE:
ssh host command

  可以在目標系統上指定當前工作路徑。在下面的示例中,指定了/home/user為當前工作路徑:
CODE:
ssh host:/home/user

  可以將上面的多個選項組合到一塊,形成更複雜的定製操作:
CODE:
ssh -p 1234 user@host:/home/user

ssh -l user host command

  OpenSSH配置文件位於路徑/etc/ssh下。OpenSSH客戶端主要的配置文件在/etc/ssh/ssh_config路徑下,大多數版本都包含足夠的解釋信息,告訴你怎麼使用配置文件。對於有廣泛而複雜的說明書系統的版本,例如Debian,可以使用man ssh_config命令,獲得足夠多的OpenSSH客戶端配置信息。

  對於安全性而言,一個普遍而重要的配置選項是ForwardX11,它應該被設置成「NO」,從而阻止SSH客戶端向網路自動發送X Windows系統信息,甚至在通過SSH連接而沒有使用X Windows時,也是一樣。使用這個設置,可以指定特定的SSH連接,通過使用- X命令選項,傳送X Windows系統信息。在etc/ssh/ssh_config文件中其它配置選項也能執行和服從安全政策,並且可以服務於特殊的安全需要。

  基Windows的SSH客戶端

  微軟的Window系統有很多SSH客戶端程序,有些是私人的、商業的應用程序,有些是免費軟體或共享軟體,還有一些是開源軟體,例如:OpenSSH。存在命令行客戶端程序時,它們之中有些程序被安裝成為類似UNIX shell的一部分,現在最常用SSH的圖形用戶界面程序。它們之中,WinSCP用於SCP和SFTP性能,PuTTY用於SSHshell性能。通過閱讀上述的關於Linux的OpenSSH使用信息,則很容易了解WinSCP和PuTTY的用戶界面和它們的配置。還可以獲得稱為OpenSSH for Windows微軟Windows OpenSSH的實際埠。

  配置並使用Linux伺服器

  一般地,OpenSSH伺服器運行Liunx系統。它可以在Debian GNU/Linux系統中通過/etc/init.d/ssh命令進行重啟。相似地,在啟動和停止時,只需要將「restart」置換成「start」「stop」即可。Fedora Core Linux系統使用相同的命令格式,但是需要將/etc/init.d/ssh中的「ssh」置換成「sshd」。

  與OpenSSH客戶端配置文件相似,OpenSSH伺服器配置可以通過/etc/ssh/sshd_config文件完成。它的格式與/etc/ssh/ssh_config非常相似,但是其選項有很多不同。配置細節可以通過輸入man sshd_config命令查看。

  一般將UsePrivilegeSeparation和IgnoreRhosts選項設置成「YES」,而將PermitRootLogin和PermitEmptyPasswords選項設置成「NO」。與OpenSSH客戶端一樣,使用SSH傳輸X Windows系統信息的風險非常低,如果沒有必要,對任何系統它都應該是不活動的。這樣,通常將X11Forwarding設置成「NO」。

  在Linux上,它們通常有相當具有安全意識的人進行維護,這些配置選項應該進行恰當配置。一般應該包括PermitRootLogin和X11Forwarding配置選項。

  使用OpenSSH

  OpenSSH還有另外功能。例如:其他網路協議可以在OpenSSH協議上「打隧道」,從而提供更高的安全性,這已在本文中有所提示。ssh-agent工具可以簡化OpenSSH客戶端的管理和使用。還有一些不相關的工具,包括SSH隧道支持,例如:Subversion版本控制系統。它的潛能是無窮盡的,不可能找到它們的終點。

  使用多台電腦的Linux新用戶,可能不會一下子了解SSH的價值。他們都習慣於微軟的Windows操作, Windows上的界面已經優化好了,在某種程度上,反而不易於進行遠程管理。即算有伺服器管理和遠程技術支持,使用諸如Windows Remote Desktop和Terminal Services for Windows等遠程管理工具,其有效性也相當有限,並且不鼓勵通過網路直接使用Windows資源。

  相反,Linux用戶在單個系統上運行他們的日常程序,並且在電腦上經過簡單安裝就能通過SSH訪問這些程序。很多 Linux管理員將坐在一台電腦前面,完成不在同一個地方的多台電腦上的工作,包括email、寫作、編程,這不是一兩個網路應用程序。對SSH的性能越熟悉,則其用處越大,同時也越信任它。但是從Windows中走出來的Linux用戶還不能立即感受到SSH推動生產力的能力。

  OpenSSH的配置和使用是值得學習的,即使你現在不能立即看出其作用,假以時日,你會離不開它的。

[火星人 ] 使用OpenSSH 建立更有效的安全性能已經有420次圍觀

http://coctec.com/docs/linux/show-post-204039.html