一,、關(guān)閉并卸載RedHat9.0自帶的Openssh
1.1 停止服務(wù) #service sshd stop 1.2 卸載Openssh #rpm -e openssh --nodeps #rpm -e openssh-server --nodeps
#rpm -e openssh-clients --nodeps #rpm -e openssh-askpass-gnome #rpm -e openssh-askpass 二、下載安裝最新的openssl和openssh 2.1 下載相關(guān)軟件包至/usr/local/src目錄 http://www./source/openssl-0.9.8e.tar.gz 2.2 安裝openssl #cd /usr/local/src #tar zxvf openssl-0.9.8e.tar.gz #cd openssl-0.9.8e #./config shared zlib #make #make test #make install mv /usr/bin/openssl /usr/bin/openssl.OFF mv /usr/include/openssl /usr/include/openssl.OFF ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl ln -s /usr/local/ssl/include/openssl /usr/include/openssl 2.3 配置庫文件搜索路徑 #echo "/usr/local/ssl/lib" >> /etc/ld.so.conf #ldconfig -v 2.4 查看openssl的版本號(hào),,以驗(yàn)正是否安裝正確 #openssl version -a OpenSSL 0.9.8e 11 Apr 2007 built on: Sat Mar 24 21:24:41 CST 2007 platform: linux-elf options: bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) idea (int) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -
D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -fomit- frame-pointer -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 - DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM
OPENSSLDIR: "/usr/local/ssl" 三,、下載安裝最新的openssh 3.1 下載相關(guān)軟件包至/usr/local/src目錄 ftp://openbsd.nsysu.edu.tw/BSD/OpenBSD/OpenSSH/portable/openssh- 4.6p1.tar.gz
3.2 安裝 #cd /usr/local/src #tar zxvf openssh-4.6p1.tar.gz #cd openssh-4.6p1 #./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with- zlib --with-ssl-dir=/usr/local/ssl --with-md5-passwords --
mandir=/usr/share/man
#make #make install 3.3 查看openssh版本號(hào),驗(yàn)正安裝結(jié)果 # ssh -v OpenSSH_4.6p1, OpenSSL 0.9.8e 11 Apr 2007 usage: ssh [-1246AaCfgkMNnqsTtVvXxY] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-e escape_char] [-F configfile] [-i identity_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] [-w local_tun[:remote_tun]] [user@]hostname [command] 四,、啟動(dòng)并驗(yàn)正服務(wù)的開啟狀況 4.1 調(diào)試啟動(dòng),,如果以下顯示均正常,就可以正常啟動(dòng)sshd了,。 #/usr/sbin/sshd -d debug1: sshd version OpenSSH_4.6p1 debug1: private host key: #0 type 0 RSA1 debug1: read PEM private key done: type RSA debug1: private host key: #1 type 1 RSA debug1: read PEM private key done: type DSA debug1: private host key: #2 type 2 DSA debug1: rexec_argv[0]=‘/usr/sbin/sshd‘ debug1: rexec_argv[1]=‘-d‘ socket: Address family not supported by protocol debug1: Bind to port 22 on 0.0.0.0. Server listening on 0.0.0.0 port 22. Generating 768 bit RSA key. RSA key generation complete. 4.2 啟動(dòng)服務(wù) #/usr/sbin/sshd 4.3 查看監(jiān)聽端口中是否有22
#netstat -tnlp | grep :22 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 21018/sshd 4.4 嘗試從本機(jī)通過ssh登錄
# ssh root@localhost The authenticity of host ‘localhost (127.0.0.1)‘ can‘t be established. RSA key fingerprint is 03:eb:80:fe:07:d9:9d:00:1c:15:37:93:d1:d3:8e:6d. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added ‘localhost‘ (RSA) to the list of known hosts. root@localhost‘s password: Last login: Wed Apr 11 11:29:04 2007 from localhost.localdomain 五,、sshd進(jìn)程及其相關(guān)參數(shù)詳細(xì)說明 sshd服務(wù)是OpenSSH的守護(hù)進(jìn)程。此服務(wù)附帶的工具程序可以取代rlogin和rsh,,在兩臺(tái)會(huì)話的主機(jī)間通過非安全的Internet建立起安全的加密連接,。sshd監(jiān)聽來自客戶端的連接請(qǐng)求,,并在接收到請(qǐng)求時(shí)fork一個(gè)子進(jìn)程;此子進(jìn)程將負(fù)責(zé)處理密鑰交換,、加密,、認(rèn)證、命令執(zhí)行及數(shù)據(jù)傳輸?shù)?。可以使用命令行選項(xiàng)或者配置文件來配置啟動(dòng)sshd,,但命令行中指定的選項(xiàng)將優(yōu)先于配置文件中的相同選項(xiàng),。 -4 強(qiáng)制sshd僅接收來自IPv4格式地址的請(qǐng)求; -6 強(qiáng)制sshd僅接收來自IPv6格式地址的請(qǐng)求,; -b 指定ssh v1中服務(wù)器密鑰的長度位數(shù),; -D 此選項(xiàng)只是用來監(jiān)視sshd的啟動(dòng)狀態(tài),在附加此選項(xiàng)時(shí),,sshd不會(huì)作為一個(gè)守 護(hù)進(jìn)程啟動(dòng),;
-d 此選項(xiàng)將啟動(dòng)調(diào)試模式;sshd服務(wù)的啟動(dòng)狀態(tài)會(huì)在前臺(tái)顯示,,并把詳細(xì)的調(diào)試 信息輸出至日志文件,;此時(shí), sshd不會(huì)fork新的子進(jìn)程,,因此僅僅能接受一
個(gè)連接請(qǐng)求,。此先項(xiàng)主要用來調(diào)試sshd;
-e 輸出錯(cuò)誤信息到日志文件,,不包括正常的調(diào)試信息,; -f 此選項(xiàng)后接指定的配置文件;默認(rèn)為/etc/ssh/sshd_config; -g 此選項(xiàng)后跟一個(gè)時(shí)間期限,,默認(rèn)單位是秒,,用來為客戶端認(rèn)證期間提供一個(gè)可 以等待的期限;如果客戶端在此指定期限內(nèi)認(rèn)證錯(cuò)誤,,sshd將斷開連接并退
出;0表示無時(shí)間限制;
-h 此選項(xiàng)后跟一個(gè)主機(jī)密鑰文件,,用來指定一個(gè)sshd啟動(dòng)時(shí)讀取的主機(jī)密鑰文件;在以非root身份啟動(dòng)sshd時(shí)必須指定此選項(xiàng)(因?yàn)槟J(rèn)的key文件只有root具有讀權(quán)限);ssh v1默認(rèn)的key文件為/etc/ssh/ssh_host_key,sshd v2默認(rèn)的key文件為/etc/ssh/ssh_host_rsa_key以 及/etc/ssh/ssh_host_dsa_key;可以為不同版本的協(xié)議及不同的密鑰算法指定不同的key文件,; -i 此選項(xiàng)用來指定通過inetd守護(hù)進(jìn)程啟動(dòng)sshd,;sshd需要生成服務(wù)端密鑰才能接受客戶端的請(qǐng)求,這將需要大約10秒鐘的時(shí)間,,如果每個(gè)請(qǐng)求都重新生成一次密鑰的話,,客戶端將不得不等待較長的時(shí)間,因此,,默認(rèn)情況下是不使用inet方式啟動(dòng)sshd的,;如果使用較短長度的密鑰,此選項(xiàng)將是一個(gè)頗富彈性的選擇; -k 此選項(xiàng)后跟一個(gè)時(shí)間期限,,用來為ssh v1指定一個(gè)重新生成服務(wù)端key的時(shí)間間隔(默認(rèn)為一個(gè)小時(shí)),;如此頻繁的生成密鑰的目的在于不必存儲(chǔ)密鑰,因此,,超過了一個(gè)小時(shí)后恢復(fù)通訊期間加密的數(shù)據(jù)幾乎是不可能的,,哪怕機(jī)器被攻入亦或被占據(jù),這將在很大程度上提高了安全性,;0表示不重新生成密鑰,; -o 用來為配置文件指定一個(gè)新的可用選項(xiàng); -p 指定sshd服務(wù)監(jiān)聽的端口(默認(rèn)是22),,可以同時(shí)指定多個(gè)端口,;如果使用此選項(xiàng),則會(huì)忽略配置文件中指定的端口,; -q 安靜模式,,此種情況下將不會(huì)產(chǎn)生任何系統(tǒng)日志;正常情況下,,服務(wù)啟動(dòng),、認(rèn)證以及每一次終端登錄都會(huì)被記錄; -t 測(cè)試模式,,僅用來檢查配置文件的正確性及密鑰是否健壯,;此選項(xiàng)多用在配置文件改動(dòng)時(shí); 六,、sshd相關(guān)的文件詳細(xì)說明 ~/.hushlogin 如果配置文件中分別啟用了PrintLastLog和PrintMotd選項(xiàng),,則此文件可以用來在屏幕顯示前一次的登錄時(shí)間以及/etc/motd的內(nèi)容。但不會(huì)顯示Banner選項(xiàng)指定的banner,。 ~/.rhosts 此文件主要用來實(shí)現(xiàn)主機(jī)間的認(rèn)證,。如果你的主機(jī)上有些用戶的主目錄位于NFS文件系統(tǒng)上,則必需把這個(gè)文件的權(quán)限置為全局可讀,,因?yàn)閟shd進(jìn)程將以root的身份讀取此文件,。此外,此文件屬主必須為相關(guān)用戶,,且其他任何用戶均不能具有寫權(quán)限,。一般推薦的權(quán)限為600。 ~/.ssh/authorized_keys 此文件存儲(chǔ)的是用戶的公鑰,,當(dāng)其遠(yuǎn)程登錄時(shí)可以用此公鑰為其進(jìn)行認(rèn)證,。公鑰信息并非要求高度安全性的文件,但仍推薦將其權(quán)限置為700,。如果此文件,、~/.ssh目錄或者此用戶的主目錄能被其他用戶讀取,,則此文件將可能被其他非授權(quán)用戶修改或置換。此種情況下,,除非在主配置文件中把StrictModes的值置為"no",,否則sshd將不允許使用此文件。 ~/.ssh/environment 如果此文件存在,,將會(huì)在用戶登錄時(shí)讀入用戶的環(huán)境,。它只能包含空行、以"#"開頭的注釋行以及形如“name=value”賦值行,,推薦權(quán)限為600,。默認(rèn)情況下此功能是禁止的,可以通過PermitUserEnviroment選項(xiàng)開啟,。 ~/.ssh/known_hosts 用戶曾成功登入過的主機(jī)的host key都將存放于此文件,但不包括系統(tǒng)間已經(jīng)互相成功認(rèn)證的主機(jī)host key,,只能讓root和屬主具有讀寫權(quán)限,。 ~/.ssh/rc 此文件用來在用戶的主目錄不能正常訪問前初始化用戶的登錄環(huán)境,其權(quán)限應(yīng)該為600,。 /etc/host.equiv 用于主機(jī)間的認(rèn)證,,只能讓root用戶可寫。 /etc/nologin 如果這個(gè)文件存在,,sshd將拒絕除root用戶外的任何其他用戶登錄,。在任何用戶在嘗試登錄時(shí),此文件都將被顯示,,但所有非root用戶將被拒絕,。此文件應(yīng)該是全局可讀的。 /etc/ssh/ssh_known_hosts 存入系統(tǒng)級(jí)別的互相認(rèn)證時(shí)已知主機(jī)的host key,。這個(gè)文件需要管理員手動(dòng)配置,,可以將已知主機(jī)的公鑰存入于此文件。此文件只能為root或?qū)僦髯x寫,,但應(yīng)該是全局可讀的,。 /etc/ssh/ssh_host_key /etc/ssh/ssh_host_dsa_key /etc/ssh/ssh_host_rsa_key 以上三個(gè)文件用來存放主機(jī)密鑰的私鑰部分,它們的屬主只能為root用戶,,只能被root用戶讀取,,不能為其他任何用戶訪問。如果其他用戶可以讀取此文件,,則sshd將不能啟動(dòng),。 /etc/ssh/ssh_host_key.pub /etc/ssh/ssh_host_dsa_key.pub /etc/ssh/ssh_host_rsa_key.pub 以上三個(gè)文件用來存放主機(jī)密鑰的公鑰部分,它們應(yīng)該是全局可讀的,,但只有root用戶可寫,。它們分別對(duì)應(yīng)相應(yīng)的私鑰文件,。這些文件并沒有什么實(shí)際用途,僅僅是用來為用戶認(rèn)證登錄提供便利,,因此常被copy至其它可信的主機(jī)中,。可以使用ssh-keygen來生成這些文件,。 /etc/ssh/sshd_config sshd的主配置文件,; |
|