• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            elva

            ssh配置權(quán)威指南

            第一章 SSH簡(jiǎn)介
            ssh(secure shell)是一種通用,功能強(qiáng)大的基于軟件的網(wǎng)絡(luò)安全解決方案,計(jì)算機(jī)每次向網(wǎng)絡(luò)
            發(fā)送數(shù)據(jù)時(shí),SSH都會(huì)自動(dòng)對(duì)其進(jìn)行加密。數(shù)據(jù)到達(dá)目的地時(shí),SSH自動(dòng)對(duì)加密數(shù)據(jù)進(jìn)行
            解密。整個(gè)過(guò)程都是透明的。它使用了現(xiàn)代的安全加密算法,足以勝任大型公司的任務(wù)繁重
            的應(yīng)用程序的要求。

            SSH協(xié)議內(nèi)容涉及認(rèn)證AUTHENTICATION,加密ENCRYPTION,和網(wǎng)絡(luò)上傳輸數(shù)據(jù)的完整
            性INTEGRITY。

            SSH特性概述
            1、遠(yuǎn)程登錄
            $ ssh -l root host.example.com
            2、安全文件傳輸
            $ scp myfile metoo@secondacount.com
            3、安全執(zhí)行遠(yuǎn)程命令,能確保傳輸?shù)臄?shù)據(jù)安全。
            4、密鑰和代理
            基于密鑰的認(rèn)證方法不用記住多個(gè)帳號(hào)密碼。
            5、訪問控制,能授權(quán)別人訪問自已帳號(hào)。
            6、端口轉(zhuǎn)發(fā)
            $ ssh -L 3002:localhost:119 xxx.xxx.com

            相關(guān)安全技術(shù)
            rsh命令族,rsh,rlogin and rcp。連接不加密,認(rèn)證模型十分脆弱。
            PGP加密程序。它是基于文件的。
            Kerberos認(rèn)證系統(tǒng),用于網(wǎng)絡(luò)可能被監(jiān)視,而且計(jì)算機(jī)不是中心控制的環(huán)境。基于麻省理工
            學(xué)院的Athena項(xiàng)目。它SSH不是,SSH是輕量級(jí)的,容易部署。Kerberos使用前必須構(gòu)建
            一些重要基礎(chǔ)。
            IPSEC,Internet安全協(xié)議。
            SRP,安全遠(yuǎn)程密碼協(xié)議,是Stanford大學(xué)開發(fā)的。是一種專用的認(rèn)證協(xié)議。
            SSL,安全套接字。
            stunnel,是一種SSL工具,它為UNIX環(huán)境現(xiàn)有的基于TCP的服務(wù)(POP,IMAP等)增加
            SSL保護(hù),而不用修改服務(wù)器源程序。

            第二章 SSH客戶端的基本用法
            最常用功能,1、經(jīng)由安全連接登錄到遠(yuǎn)程計(jì)算機(jī)。2、通過(guò)安全連接在計(jì)算機(jī)間拷貝文件。

            當(dāng)你第一次連接SSH服務(wù)器時(shí),出現(xiàn)問答時(shí)要回答“yes”,把已知名主機(jī)的密鑰的公共部
            分拷貝一份存在本地。之后你每次連接這臺(tái)服務(wù)器,就用這個(gè)公鑰來(lái)驗(yàn)證遠(yuǎn)程主機(jī)。最好是
            能在首次連接前就能獲得這個(gè)公鑰,否則第一次連接服務(wù)器時(shí)你可能已受到中間人攻擊。

            使用密鑰進(jìn)行認(rèn)證,SSH支持公鑰認(rèn)證,可以使用加密密鑰,密鑰比密碼更安全。
            SSH證書使用一對(duì)密鑰,一個(gè)私鑰,一個(gè)公鑰,私鑰只保存你獨(dú)有的一些秘密信息。SSH
            用其向服務(wù)器證明自已的身份。公鑰是公開的,可以隨便將其放入SSH服務(wù)器上自已的帳
            號(hào)中,在認(rèn)證時(shí),進(jìn)行私鑰和公鑰協(xié)商,如果匹配,那么身份就得以證明,認(rèn)證就成功。

            在使用公鑰認(rèn)證以前,首先要進(jìn)行一些設(shè)置:
            1、需要一對(duì)密鑰,還需要使用一個(gè)口令來(lái)保護(hù)自已的私鑰。
            使用ssh-keygen程序生成一對(duì)密鑰。如果不存在SSH目錄,程序?yàn)樽詣?dòng)創(chuàng)建本地SSH目錄
            ~/.ssh,并將所生成的密鑰分成兩個(gè)文件存儲(chǔ),公有部份identity.pub,私有部分identity,或
            id_dsa_1024_a,id_dsa_1024_a.pub(ssh2)。
            2、需要在SSH服務(wù)器上安裝自已的公鑰。
            通過(guò)配置SSH目錄中的一個(gè)文件實(shí)現(xiàn),對(duì)于SSH1 AND OPENSSH來(lái)說(shuō)該文件是
            ~/.ssh/authorized_keys。對(duì)SSH2來(lái)說(shuō)是~/.ssh2/authorization。OPENSSH中的SSH-2連接自
            3.0版本起也一同使用authorized_keys文件。3.0版本前的使用authorized_keys2。把用戶本
            地機(jī)器生成identity.pub文件內(nèi)容加入其中。對(duì)SSH2來(lái)說(shuō),用戶需編輯兩個(gè)文件,一個(gè)客
            戶端一個(gè)在服務(wù)器端,
            在客戶端,要?jiǎng)?chuàng)建或編輯文件~/.ssh2/identification并在其中插入一行,說(shuō)明自已的私鑰文件
            名: IdKey id_dsa_1024_a.
            在服務(wù)器端,要?jiǎng)?chuàng)建或編輯文件~/.ssh2/authorization,該文件包含有公鑰信息,每行一個(gè),
            但和SSH1的authorized_keys文件不同(authorized_keys中包含有公鑰的拷貝),authorization
            中只給出公鑰文件名:Key id_dsa_1024_a.pub。最后,把這個(gè)文件從本地機(jī)器上拷貝到服務(wù)
            器~/.ssh2中。為安全起見,要確保ssh目錄的安全,只有所有者才有權(quán)寫入。如果遠(yuǎn)程用戶
            的SSH配置文件的權(quán)限設(shè)置不當(dāng),服務(wù)器可能會(huì)拒絕進(jìn)行認(rèn)證。

            公鑰認(rèn)證比密碼認(rèn)證更安全,因?yàn)椋?br>1、 公鑰認(rèn)證需要兩個(gè)加密部份(磁盤上的identify文件和用戶頭腦中的口令),入侵都必須
            2、 具備兩種條件才行。密碼認(rèn)證只需要一個(gè)部份,那就是密碼,它可能更容易被竊取。
            3、 在公鑰認(rèn)證中,口令和密鑰都不用發(fā)給遠(yuǎn)程主機(jī),只要把前面討論的認(rèn)證者發(fā)給遠(yuǎn)程主
            4、 機(jī)就可以了,因此,并沒有秘密信息傳出客戶端。
            3、機(jī)器生成的密鑰是不可能猜測(cè)出來(lái)的,而人生成的密碼容易受到字典攻擊。
            通過(guò)禁用密碼認(rèn)證并只允許使用密鑰認(rèn)證能極大提高主機(jī)的安全性。

            如果要修改密鑰
            如果已經(jīng)生成一個(gè)密鑰對(duì),并把公鑰拷貝到多個(gè)SSH服務(wù)器上了,用戶有一天決定修改自
            已的身份,因?yàn)樵龠\(yùn)行ssh-keygen。這樣,就會(huì)覆蓋identify and identify.pub文件,用戶之
            前的公鑰就沒用了,必須把新公鑰再次拷貝到各個(gè)服務(wù)器上。這是很頭疼的,所以建議:
            1、 不能局限于僅僅使用一個(gè)密鑰對(duì),可隨意生一此密鑰對(duì),將其保存在不同的文件中,并
            2、 將其用作不同的用途。
            3、 如果只是想修改口令,就不必重新生成一個(gè)密鑰對(duì),ssh-keygen有一個(gè)命令行選項(xiàng)可以
            4、 替換現(xiàn)有的密鑰口令。ssh1 and openssh是-p,對(duì)于ssh2是-e。這樣,因?yàn)樗借€沒變,所以
            5、 公鑰依然不效,中需使用新口令對(duì)私鑰進(jìn)行解密就可以了。

            ssh代理
            它可以把私鑰保存在內(nèi)存中,為認(rèn)證提供服務(wù),不用重復(fù)輸入密碼。直到用戶退出為止。代
            理程序是ssh-agent。可手工運(yùn)行也可編輯~/.login 或~/.xsession來(lái)自動(dòng)運(yùn)行。
            $ ssh-agent $SHELL 其中SHELL是用戶登錄shell的環(huán)境變量。運(yùn)行該命令后,打開另外
            一個(gè)shell,在這個(gè)shell中可以訪問代理。
            接著用ssh-add命令裝入私鑰。這樣,使用ssh and scp命令就不用再提醒輸入口令了。口令
            裝入內(nèi)存中。如果用戶正運(yùn)行x window系統(tǒng),并設(shè)置了DISPLAY環(huán)境變量,而標(biāo)準(zhǔn)輸入
            不是終端,那么ssh-add就使用一個(gè)圖形化X程序ssh-askpass來(lái)讀取口令。要強(qiáng)制ssh-add
            使用X來(lái)讀取口令,請(qǐng)?jiān)诿钚兄休斎雜sh-add < /dev/null。
            -l 參數(shù)顯示內(nèi)存中的密鑰
            -d 參數(shù)從代理中刪除密鑰 $ ssh-add -d ~/.ssh/id_xxx.pub
            -D 是刪除所有密鑰
            -t 對(duì)加載的密鑰設(shè)置超時(shí)時(shí)間,超時(shí)代理將自動(dòng)卸載密鑰。
            -L -U 對(duì)代理進(jìn)行加鎖和解鎖,當(dāng)你離開計(jì)算機(jī)而不想退出登錄時(shí)有用。


            代理轉(zhuǎn)發(fā)
            可能通過(guò)代理轉(zhuǎn)發(fā)功能,可以用SCP把文件從遠(yuǎn)程SSH服務(wù)器上拷貝到第三方SSH主機(jī)上。
            條件是你在第三方SSH主機(jī)上必須有一個(gè)帳號(hào)。具體操作是這樣的:
            1、 在本地主機(jī)上運(yùn)行命令:# scp pat@shell.isp.com:print-me
            2、 psmith@other.host.net:other-print-me
            2、這個(gè)scp進(jìn)程與本地代理進(jìn)行聯(lián)系,并讓用戶和shell.isp.com進(jìn)行認(rèn)證。
            3、自動(dòng)在shell.isp.com上執(zhí)行第二個(gè)scp,用來(lái)把文件拷貝到other.host.net主機(jī)上。
            3、 由于啟用了代理轉(zhuǎn)發(fā)(SSH1 AND SSH2默認(rèn)是打開的,openssh默認(rèn)是關(guān)閉的),因此
            4、 shell.isp.com上的SSH服務(wù)器就充當(dāng)一個(gè)代理。
            5、第二個(gè)scp進(jìn)程通過(guò)聯(lián)系shell.isp.com上的代理試圖讓用戶和other.host.net進(jìn)行認(rèn)證。
            5、 shell.isp.net上ssh服務(wù)器秘密與用戶的本地代理進(jìn)行通信,從而構(gòu)建出一個(gè)認(rèn)證者來(lái)提
            6、 供用戶的證書并將其傳回服務(wù)器。
            7、服務(wù)器為第二個(gè)scp進(jìn)程驗(yàn)證用戶的身份,other.host.net上的認(rèn)證獲得成功。
            8、開始拷貝文件。
            由于代理轉(zhuǎn)發(fā)不會(huì)把私鑰發(fā)送到遠(yuǎn)程主機(jī)上,而是把認(rèn)證返回第一臺(tái)機(jī)進(jìn)行處理,因此密鑰
            是安全的。

            不用密碼或口令進(jìn)行連接方式
            1、使用代理的公鑰認(rèn)證。
            2、可信主機(jī)認(rèn)證。
            3、Kerberos認(rèn)證。
            在后文中將會(huì)討論這些方式的優(yōu)缺點(diǎn)。

            sftp
            它是在SSH上的一個(gè)獨(dú)立文件傳輸工具,操作與ftp類似,可以在一個(gè)會(huì)話中調(diào)用多個(gè)命令
            進(jìn)行文件拷貝和處理,而scp每次調(diào)用時(shí)都要打開一個(gè)會(huì)話。sftp不區(qū)分ascii and binary傳
            輸模式,只使用二進(jìn)制模式,因此,如果使用它在windows and unix之間拷貝ascii文件,
            那么就不能正確轉(zhuǎn)換行結(jié)束符。

            第三章 SSH內(nèi)幕
            SSH協(xié)議的主要特性和優(yōu)點(diǎn):
            1、 使用強(qiáng)加密技術(shù)來(lái)保證數(shù)據(jù)的私密性。端到端通信用隨機(jī)密鑰進(jìn)行加密,隨機(jī)密鑰為會(huì)
            話進(jìn)行安全協(xié)商,會(huì)話結(jié)束后被丟棄。支持的算法有ARCFOUR,Blowfish,DES,IDEA,3DES等。
            2、通信完整性,確保通信不會(huì)被修改。SSH-2基于MD5 AND SHA-1的加密hash算法。
            3、認(rèn)證,即發(fā)送者和接收者的身份證明。客戶機(jī)和服務(wù)器雙向認(rèn)證。
            4、授權(quán),即對(duì)賬號(hào)進(jìn)行訪問控制。
            5、使用轉(zhuǎn)發(fā)或隧道技術(shù)對(duì)其它基于tcp/ip的會(huì)話進(jìn)行加密。支持三種轉(zhuǎn)發(fā),tcp端口轉(zhuǎn)發(fā),
            X轉(zhuǎn)發(fā),代理轉(zhuǎn)發(fā)。

            SSH可以防止的攻擊
            1、網(wǎng)絡(luò)竊聽,SSH通信是加密的,即使截獲會(huì)話內(nèi)容,也不能將其解密。
            2、名字服務(wù)和IP偽裝,SSH通過(guò)加密驗(yàn)證服務(wù)器主機(jī)身份可避免這類風(fēng)險(xiǎn)。
            3、連接劫持,SSH的完整性檢測(cè)負(fù)責(zé)確定會(huì)話在傳輸過(guò)程是否被修改,如果被修改過(guò),就
            關(guān)閉連接。
            4、 中間人攻擊,SSH利用兩種方法防止這種攻擊,第一種是服務(wù)器主機(jī)認(rèn)證。除非攻擊者
            已經(jīng)成功攻擊了服務(wù)器主機(jī),獲得服務(wù)器的私有主機(jī)密鑰。第二種是限制使用容易受到
            這種攻擊的認(rèn)證方法,密碼認(rèn)證容易受到中間人攻擊,而公鑰和基于主機(jī)的/RhostsRSA
            則對(duì)中間人攻擊可以免疫。
            5、插入攻擊,這種攻擊可以客戶和服務(wù)器之間發(fā)送的正文數(shù)據(jù)流之間插入任意數(shù)據(jù)。ssh1
            1.2.25后和openssh的所有版本都專門進(jìn)行了設(shè)計(jì),來(lái)檢測(cè)并防止這種攻擊。這種檢測(cè)程序
            增大了插入攻擊的難度,但是并不能完全防止。ssh2使用強(qiáng)加密完整性檢測(cè)手段來(lái)防止這個(gè)
            問題。可以用3DES算法來(lái)防止這種攻擊。

            SSH不能防止的攻擊
            1、 密碼崩潰,密碼認(rèn)證是一種脆弱的認(rèn)證形式,盡量使用公鑰認(rèn)證方式。如果必須要密碼
            認(rèn)證,可考慮使用S/Key之類的一次性密碼機(jī)制。
            2、 IP AND TCP攻擊,由于SSH是在TCP之上進(jìn)行操作的,因此容易受到針對(duì)TCP和IP
            缺陷而發(fā)起的攻擊。SYN flood,TCP不同步和TCP劫持等。只能通過(guò)更低層的防護(hù)措施
            來(lái)保護(hù)。
            3、流量分析。
            4、隱秘通道。
            5、粗心大意。安全是一個(gè)過(guò)程,而不是一個(gè)產(chǎn)品,不要認(rèn)為裝上SSH就安全了。

            第四章 SSH的安裝和編譯時(shí)配置

            第五章 服務(wù)器范圍的配置
            sshd可以在三個(gè)層次上進(jìn)行配置,第一層次是上面的安裝和編譯時(shí)配置;第二層次是本章的
            服務(wù)器范圍配置;第三層次是每賬號(hào)配置(第八章),前者是服務(wù)器編譯時(shí)就指定了包含哪
            些特定功能,不包含哪些功能,后者則是由終端用戶來(lái)修改自已賬號(hào)所使用的服務(wù)器的行為。

            以普通用戶身份運(yùn)行SSH服務(wù)器
            1、得到管理員許可。
            2、生成一個(gè)主機(jī)密鑰。
            $ ssh-keygen -N '' -b 1024 -f ~/myserver/hostkey 生成hostkey and hostkey.pub兩個(gè)文件
            3、選擇端口號(hào)。 要選擇大于或等1024的端口,因?yàn)橹挥谐?jí)用戶才有權(quán)使用小于
            1024的端口 。
            4、創(chuàng)建服務(wù)器配置文件(可選) 可創(chuàng)建自已的配置文件,否則,服務(wù)就使用內(nèi)建的特性或使
            用服務(wù)器范圍的配置文件。
            啟動(dòng)服務(wù)器方式:$ sshd -h ~/myserver/hostkey -p 2345 -f ~/myserver/config
            由普通用戶運(yùn)行的服務(wù)器有一些缺點(diǎn):
            1、由于不是由root的uid下運(yùn)行,因此只能連接到用戶自已的賬號(hào)上。
            2、它需手工調(diào)用,不能自啟動(dòng)。
            3、 日志用戶沒權(quán)看到,因?yàn)榉?wù)器把它寫到syslog日志系統(tǒng)中,但可用調(diào)試模式運(yùn)行服務(wù)
            4、 器,這樣信息就顯示在終端機(jī)上。

            服務(wù)器配置文件
            SSH1 AND OPENSSH的配置文件通常是/etc/sshd_config,而SSH2的配置文件通常是
            /etc/ssh2/sshd2_config。

            以非缺省的配置文件來(lái)調(diào)用sshd,可以使用命令 -f 選項(xiàng)。$ sshd -f /usr/local/ssh/my_config。

            以*號(hào)作為標(biāo)號(hào)的語(yǔ)名都會(huì)被sshd忽略。

            修改完配置后,修改不會(huì)馬上影響到服務(wù)器,可重啟服務(wù)器或發(fā)送SIGHUP信號(hào)。$ kill -HUP
            `cat /etc/sshd.pid`

            如果在命令行改動(dòng)了配置,用SIGHUP信號(hào)重啟服務(wù)器不能覆蓋命令行的配置,它的優(yōu)先
            級(jí)高。

            主機(jī)密鑰,sshd主機(jī)密鑰向SSH客戶端唯一地標(biāo)識(shí)SSH服務(wù)器。主機(jī)密鑰保存在一對(duì)文件
            中,一個(gè)文件包含私鑰,一個(gè)文件包含公鑰。對(duì)于SSH1 AND OPENSSH,它是
            /etc/ssh_host_key。文件位置可用HostKey關(guān)鍵字修改 HostKey /usr/local/ssh/key。服務(wù)器的
            公鑰保存在.pub文件中。
            OPENSSH服務(wù)器有一個(gè)SSH-2的主機(jī)密鑰,缺省是在/etc/ssh_host_dsa_key。其位置可用
            HostDsaKey /usr/local/openssh/key2修改。

            對(duì)于SSH2,如果服務(wù)器是由超級(jí)用戶運(yùn)行,缺省私鑰文件是/etc/ssh2/hostkey。如果是其它
            用戶運(yùn)行,則在~/.ssh2/hostkey。可用HostKeyFile /etc/local/ssh/key修改。公鑰是hostkey.pub
            文件,可用publicHostKeyFile關(guān)鍵字修改。

            可以用命令行選項(xiàng)指定私鑰文件:$ sshd -h /usr/local/ssh/key。

            隨機(jī)數(shù)種子文件
            如果用戶的系統(tǒng)中有一個(gè)隨機(jī)位源,如/dev/urandom,那么OPENSSH就不能創(chuàng)建隨機(jī)數(shù)種
            子文件。

            服務(wù)器配置文件
            通常是/etc/sshd_config /etc/ssh2/ssh2_config,可以用-f 選項(xiàng)重新指定其配置文件。可用于一
            臺(tái)機(jī)器運(yùn)行多個(gè)sshd的情況。

            每賬號(hào)認(rèn)證文件。~/.ssh/authorized_keys 。


            文件權(quán)限
            由于配置文件的權(quán)限設(shè)置錯(cuò)誤,會(huì)降低系統(tǒng)的安全性,所以可以設(shè)置StrictModes YES/NO
            關(guān)鍵字,對(duì)sshd的重要文件和目錄的權(quán)限進(jìn)行檢查,如果檢查失敗,服務(wù)器就拒絕對(duì)該用
            戶的SSH連接。

            在多宿主主機(jī)上,使用ListenAddress xxx.xxx.xxx.xxx來(lái)限制SSH只監(jiān)聽一個(gè)網(wǎng)絡(luò)接口。

            空閑連接時(shí)間,IdleTimeout xx 如果是0代表什么都不做,保持連接。否則,超時(shí)就斷開連
            接,可以用s,m,h,d,w表示。

            KeepAlive YES/NO 可以斷開失效的連接,比如客戶端崩潰。

            失敗的登錄
            LogingGraceTime 60 限定用戶必須在60秒內(nèi)成功進(jìn)行認(rèn)證。 0值表禁用。命令行選項(xiàng)用
            -g

            PasswordGuesses 5 如果連接請(qǐng)求使用密碼認(rèn)證,那么sshd2就只允許客戶端嘗試五次。
            (SSH2)

            限制并發(fā)連接
            MaxConnections 32 最大32個(gè)連接(SSH2)

            逆向IP映射
            SSH2服務(wù)器可以根據(jù)客戶端地址進(jìn)行逆向DNS查詢,以確保客戶端的地址就是這個(gè)地址。
            如果檢查失敗,連接拒絕。
            RequireReverseMapping yes (ssh2)

            轉(zhuǎn)發(fā)
            AllowTcp-Forwarding yes
            X11Forwarding yes

            服務(wù)器密鑰生成
            該密鑰用來(lái)對(duì)客戶端/服務(wù)器之間的通信進(jìn)行保護(hù)。是臨時(shí)的,永遠(yuǎn)不會(huì)保存在磁盤上。服
            務(wù)器在啟動(dòng)時(shí)生成這個(gè)密鑰。并以固定的周期重新生成。缺省長(zhǎng)度是768位,最小為512,
            可以ServerKeyBits 2048 指定長(zhǎng)度。用KeyRegenerationInterval 1200指定周期。 命令行選
            項(xiàng):-k

            加密算法
            Ciphers any 允許所有支持算法。其它算法包括
            3des-cbc,blowfish-cbc,twofish-cbc,arcfour,none

            mac算法
            MAC關(guān)鍵字可以讓用戶選擇sshd2進(jìn)行完整性檢測(cè)所使用的算法,稱為消息認(rèn)證代碼。用
            于sshd2的有hmac-sha1,hmac-md5,hmac-md5-96。

            在OPENSSH中,用戶可以用Protocol關(guān)鍵字選擇支持SSH-1 AND SSH-2,1 代表SSH-1,2 代
            表SSH-2, 1,2 代表都支持。

            允許用戶登錄:認(rèn)證和訪問控制
            1、認(rèn)證負(fù)責(zé)對(duì)發(fā)起連接請(qǐng)求的用戶的身份進(jìn)行驗(yàn)證。
            密碼認(rèn)證
            PasswordAuthentication yes AllowedAuthentications password (ssh2)
            公鑰認(rèn)證
            RSAAuthentication yes (ssh1,openssh/1)
            AllowedAuthentications publickey (ssh2)
            DEAAuthentication yes (openssh/2)
            Rhosts認(rèn)證,可信主機(jī)認(rèn)證通過(guò)檢查遠(yuǎn)程主機(jī)名和相關(guān)用戶名來(lái)實(shí)現(xiàn)對(duì)客戶端的身份認(rèn)證。
            RhostsAuthentication yes (ssh1,openssh)
            IgnoreRhosts yes (ssh1,ssh2,openssh)不使用系統(tǒng)的hosts.equiv and ~/.rhosts,使用SSH專用
            的/etc/shosts.equiv and ~/.shosts
            強(qiáng)可信主機(jī)認(rèn)證。
            RhostsRSAAuthentication yes ssh1,openssh
            AllowedAuthentications hostbased ssh2
            提取已知名主機(jī)的公鑰
            UserKnownHosts no ssh2
            IgnoreUserKnownHosts yes openssh
            PGP認(rèn)證
            Kerberos認(rèn)證
            S/key認(rèn)證
            SecurID認(rèn)證
            PAM認(rèn)證

            2、訪問控制負(fù)責(zé)允許或禁止來(lái)自特定用戶、機(jī)器在或INTERNET域的SSH連接到服務(wù)器
            上。
            通常,只要設(shè)置正確,任何賬號(hào)都可以接收SSH連接,這種訪問權(quán)限可以使用服務(wù)器關(guān)鍵
            字AllowUsers and DenyUsers覆蓋。
            AllowUsers smith
            如果配置文件中單獨(dú)出現(xiàn)一個(gè)AllowUsers,后面沒有任何內(nèi)容,就表示禁止所有沒提到的用
            戶連接,如果沒有AllowUsers這個(gè)關(guān)鍵字,則所有用戶都可連接。DenyUsers表示禁止連接。
            可用通配符,

            可以用組訪問控制AllowGroups DenyGroups

            主機(jī)名訪問控制
            AllowHosts hostname
            DenyHosts hostname

            超級(jí)用戶的訪問控制
            sshd對(duì)超級(jí)用戶專門使用一種特殊的訪問機(jī)制,PermiRootLogin來(lái)允許或禁止使用SSH來(lái)
            訪問root賬號(hào)。

            顯示用戶的歡迎信息
            PrintMotd yes/no default is yes

            顯示郵件信息
            CheckMail yes/no default is yes

            空密碼
            PermitEmptyPasswords yes/no 如果使用密碼認(rèn)證,并且有個(gè)賬號(hào)沒有設(shè)定密碼,那么服務(wù)
            器就可以拒絕訪問這個(gè)賬號(hào)

            如果系統(tǒng)中存在/etc/nologin,那么sshd就只允許root用戶登錄,其它都不能登錄。因此,touch
            /etc/nologin是把訪問權(quán)只授給系統(tǒng)管理員的一種快速方法。這樣并不需要重新配置ssh。也
            不需要重啟ssh。

            子系統(tǒng)
            定義和調(diào)用遠(yuǎn)程命令的一個(gè)抽象層,用戶可以通過(guò)在客戶端命令行中給出命令來(lái)調(diào)用遠(yuǎn)程命
            令,如:ssh server.examply.com /bin/tar c /home 這個(gè)命令調(diào)用tar,遠(yuǎn)程把/home拷貝到磁帶上。
            子系統(tǒng)是服務(wù)器機(jī)器上預(yù)定義的一組遠(yuǎn)程命令,這樣就可以方便地執(zhí)行。在服務(wù)器配置文檔
            中定義:subsystem backups /bin/tar c /home,要在服務(wù)器上運(yùn)行該命令,可以使用 -s 選項(xiàng)。
            ssh -s backups server.example.com。缺省情況下,sshd_config中定義了一個(gè)子系統(tǒng),subsystem
            sftp 。不要?jiǎng)h除這個(gè)子系統(tǒng),這是scp2和sftp必須的。

            日志
            Fascisl Logging mode 把調(diào)試信息打印到系統(tǒng)日志文件中,可以使用FascistLogging關(guān)鍵字
            啟用。
            調(diào)試模式 可以使用-d命令選項(xiàng)啟用
            安靜模式 只能輸出嚴(yán)重錯(cuò)誤,而不能輸出 普通日志,可以使用QuietMode關(guān)鍵字或-q
            命令行啟用。
            openssh中的日志配置關(guān)鍵字是SyslogFacility and LogLevel。SyslogFacility設(shè)置syslog的
            facility(KERN,DAEMON,USER,AUTH,MAIL等),LogLevel記錄日志提供的詳細(xì)程度,該
            值從低到高順序是:QUIET,FATAL,ERROR,INFO,VERBOSE,DEBUG,使用DEBUG會(huì)侵犯用
            戶的隱私權(quán),這個(gè)級(jí)別只能用于診斷,而不能用于普通操作。


            第六章 密鑰管理與代理
            一個(gè)身份標(biāo)識(shí)由兩部份組成,分別稱為私鑰(Private Key)和公鑰(Public Key),合稱一個(gè)
            密鑰對(duì)。

            SSH1,SSH2 AND OPENSSH身份標(biāo)識(shí)文件的格式各不相同。
            SSH1缺省設(shè)置中,私鑰存儲(chǔ)在文件identity中,公鑰存儲(chǔ)在文件identity.pub中。這個(gè)密鑰
            對(duì)存放在~/.ssh目錄下,在使用前,把公鑰拷貝到服務(wù)器上的一個(gè)認(rèn)證文件里,如SSH1 AND
            OPENSSH中的~/.ssh/authorized_keys,此后,當(dāng)客戶請(qǐng)求連接到你的服務(wù)器上的帳號(hào)時(shí),就
            會(huì)用一個(gè)私鑰作為證明身份的標(biāo)識(shí),服務(wù)器則在authorized_keys文件中尋找與之匹配的公
            鑰。

            SSH2密鑰對(duì)文件的命名通常是根據(jù)該密鑰使用的加密算法的性質(zhì)來(lái)起的,例如一個(gè)用DSA
            加密的1024位密鑰生成時(shí)其缺省文件名是id_dsa_1024_a and id_dsa_1024_a.pub。用戶必須
            把私鑰放在identification文件中,缺省是~/.ssh2/目錄,一個(gè)私鑰在這個(gè)文件中占一行,在公
            鑰認(rèn)證中,每一行的開頭都有一個(gè)關(guān)鍵字IdKey,后跟一個(gè)私鑰文件名。如:
            IdKey id_dsa_1024_a
            IdKey my-other-ssh2-key
            在服務(wù)器端的認(rèn)證文件~/.ssh2/authorization中,SSH2不包含公鑰的實(shí)際拷貝,只是把公鑰
            文件列出來(lái),前面用關(guān)鍵字kEY標(biāo)識(shí)。如:
            Key id_dsa_1024_a.pub
            Key something-else.pub
            這樣維護(hù)起來(lái)更容易,更方便。

            OPENSSH對(duì)SSH-1連接使用的標(biāo)識(shí)和授權(quán)文件與SSH1完全相同,對(duì)于SSH-2連接,缺省
            的密鑰則存儲(chǔ)在~/.ssh/id_dsa(private key)和~/.ssh/id_dsa.pub(public key)中,服務(wù)器上的授權(quán)
            文件是~/.ssh/authorized_keys。

            創(chuàng)建身份標(biāo)識(shí)用ssh-keygen命令。

            OPENSSH的ssh-keygen可以支持SSH1中相應(yīng)程序的所有功能和選項(xiàng),它還新增了為SSH-2
            連接生成DSA密鑰的能力。
            $ ssh-keygen -t dsa -b 1024
            -e -x 選項(xiàng)可把OPENSSH格式的密鑰存儲(chǔ)格式轉(zhuǎn)換成SSH2格式 (直接回車,按提示輸入轉(zhuǎn)
            換文件名)
            -i -X 選項(xiàng)把SSH2格式的密鑰轉(zhuǎn)換成OPENSSH格式。這樣可用SSH2客戶端連接
            OPENSSH服務(wù)器。(直接回車,按提示輸入轉(zhuǎn)換文件名)
            -y 如果不小心刪掉了OPENSSH的公鑰,可用-y恢復(fù)。
            -l 可計(jì)算出公鑰的指紋,指紋是鑒別位置不同的兩個(gè)密鑰是否相同的常用的一種密碼學(xué)技
            術(shù)。這項(xiàng)技術(shù)用于不可能逐位對(duì)比兩個(gè)密鑰的情況。OPENSSH AND SSH2都能計(jì)算指紋。
            它是根據(jù)密鑰計(jì)算出來(lái)一個(gè)長(zhǎng)度較短的值,它是原理與校驗(yàn)和類似,用于驗(yàn)證一串信息(在
            我們的例子中是密鑰)的不可替換性。

            啟動(dòng)代理
            1、單shell方式,使用當(dāng)前登錄的shell. $ eval `ssh-agent`
            2、子shell方式,派生出一個(gè)子shell,并繼承父shell的某些環(huán)境變量。 $ ssh-agent $SHELL
            不要想當(dāng)然運(yùn)行 $ ssh-agent,這樣客戶端是無(wú)法有代理聯(lián)系的。刪除代理用kill命令就可以
            了。

            SSH-1 與 SSH-2代理的兼容性
            SSH-1的代理不能處理SSH-2的代理,SSH-2的代理卻可以處理SSH-1的代理請(qǐng)求。

            第七章 客戶端的高級(jí)用法
            $ ssh -a -p 220 -c blowfish -l sally -i myself server.example.com 可通過(guò)配置文件簡(jiǎn)化命令
            輸入

            Host myserver
            ForwardAgent no
            Port 220
            Cipher blowfish
            User sally
            IdentifyFile myself
            HostName server.example.com
            配置了該文件后,就可以在客戶端簡(jiǎn)單地輸入
            $ ssh myserver

            全局文件和本地文件
            全局文件通常是由管理員創(chuàng)建的,用來(lái)維護(hù)整臺(tái)計(jì)算機(jī)上的客戶行為。該文件通常位于
            /etc/ssh_config or /etc/ssh2/ssh2_config。每個(gè)客戶也可以在自已賬號(hào)中創(chuàng)建本地客戶配置文
            件,通常是~/.ssh/config or ~/.ssh2/ssh2_config。本地配置文件優(yōu)先級(jí)高于全局配置文件。命
            令行選項(xiàng)的優(yōu)先級(jí)又高于本地配置文件。

            scp有關(guān)命令參數(shù)
            -r 遞歸拷貝目錄
            -p 保持文件權(quán)限和時(shí)間戳
            -u 拷貝完成后刪除源文件
            -d 防止覆蓋文件
            -n 描述操作
            -q 不顯示統(tǒng)計(jì)信息


            第八章 每賬號(hào)服務(wù)器配置
            這種配置可以讓SSH服務(wù)器區(qū)分每個(gè)服務(wù)器上的各個(gè)用戶。利用服務(wù)器目標(biāo)賬號(hào)的認(rèn)證文
            件(authorized_keys)配置。局限有兩點(diǎn),它不能覆蓋編譯時(shí)配置和服務(wù)器范圍配置所采用
            的安全措施,第二,如果使用公鑰認(rèn)證,每賬號(hào)配置是十分靈活的,如果采用可信主機(jī)和密
            碼認(rèn)證,提供的選擇范圍就很小。

            基于公鑰的配置
            1、認(rèn)證文件的完全格式 依次包含三項(xiàng)內(nèi)容,一些選項(xiàng),公鑰和注釋。多個(gè)選項(xiàng)用逗號(hào)分
            開。
            2、用于限制客戶端可以在服務(wù)器上調(diào)用的程序的強(qiáng)制命令。如客戶端請(qǐng)求執(zhí)行/bin/ls命令,
            而服務(wù)器端強(qiáng)制命令卻運(yùn)行/bin/who命令,它十分有用,可用于加強(qiáng)安全性,了為授權(quán)提供
            方便。如要讓你的助手每次連接上來(lái)都運(yùn)行email命令程序pine,則可以這樣:
            command= "/usr/local/bin/pine" ...key...。最多可給每個(gè)密鑰關(guān)聯(lián)一個(gè)強(qiáng)制命令,要關(guān)聯(lián)多個(gè)命
            令可把這些命令放入遠(yuǎn)程主機(jī)的一個(gè)腳本中,并將該腳本作為強(qiáng)制命令運(yùn)行。如果強(qiáng)制命令
            有shell出口,那會(huì)存在安全問題,等于沒有強(qiáng)制,客戶可以運(yùn)行任何程序。以下規(guī)則可以
            用來(lái)判斷一個(gè)程序是否適合用作強(qiáng)制命令。
            a、 避免使用具有shell出口的程序(如:文件編輯器vi,Emacs; 分頁(yè)程序 more,less;調(diào)用分
            b、 頁(yè)的man,新聞閱讀程序rn,郵件閱讀程序pine以及調(diào)試程序adb,非交互的程序find,xargs
            c、 等)。
            b、避免使用編譯器,解釋器或其它可以讓用戶生成并運(yùn)行任意執(zhí)行代碼的程序。
            c、可創(chuàng)建或刪除文件的程序,如cp,mv,rm,scp,ftp等。
            d、避免使用setuid or setgid的程序,特別是setuid 是root的程序。
            d、 如果使用腳本作為強(qiáng)制命令,就要遵循編寫安全腳本的傳統(tǒng)規(guī)則,在一個(gè)腳本之內(nèi),要
            限制使用相對(duì)路徑作為搜索路徑,應(yīng)該使用絕對(duì)路徑來(lái)調(diào)用所有的程序;不要盲目地把
            用戶提供的字符串作為命令來(lái)執(zhí)行;不要讓腳本執(zhí)行任何setuid的工作。不要調(diào)用具有
            shell出口的程序。
            e、考慮使用受限shell。
            f. 為一個(gè)單獨(dú)的、專用的SSH密鑰(不要用你登錄的那個(gè)密鑰)關(guān)聯(lián)一個(gè)強(qiáng)制命令。這樣
            不會(huì)影響你的登錄能力就可以方便地禁用該密鑰。
            g、禁用不必要的SSH特性。如no-port-forwarding,no-agent-forwarding,no-pty(禁用tty分配)。
            幾個(gè)常用的強(qiáng)制命令介紹:
            使用定制消息拒絕連接:command="/bin/echo Sorry,buddy,but you've terminated!" ...key... 千萬(wàn)
            不要用more and less之類的分頁(yè)程序
            顯示命令菜單:利用腳本
            檢查客戶端的原始程序:command="/bin/echo you tried to invoke
            $SSH_ORIGINAL_COMMAND" ...key... $SSH_ORIGINAL_COMMAND環(huán)境變量保存著
            客戶連接時(shí)運(yùn)行的原始命令。
            限制客戶端的原始命令,創(chuàng)建一個(gè)腳本,該腳本根據(jù)$SSH_ORIGINAL_COMMAND內(nèi)容選
            擇不同的操作。
            把客戶端的原始命令記錄在日志中:也是根據(jù)$SSH_ORIGINAL_COMMAND變量來(lái)做的一
            個(gè)腳本。腳本內(nèi)容如一:
            #!/bin/sh
            if [ -n "$SSH_ORIGINAL_COMMAND" ]
            then
            echo "`/bin/date`: $SSH_ORIGINAL_COMMAND" >> $HOME/ssh-command-log
            exec $SSH_ORIGINAL_COMMAND
            fi

            3、限制來(lái)自特定主機(jī)的連接。由from選項(xiàng)完成。from="client.example.com" ...key...。強(qiáng)制
            連接必須來(lái)自client.example.com。否則斷開。from="!client.example.com" ...key...表示拒絕該
            地址的連接。支持通配符。SSH2不支持該功能。但可以通過(guò)$SSH2_CLIENT變量提取客戶
            ip,編寫強(qiáng)制命令腳本達(dá)到同樣效果。
            4、為遠(yuǎn)程程序設(shè)置環(huán)境變量。environment="EDITOR=emacs" ...key...,為每個(gè)連接修改默認(rèn)的
            環(huán)境變量。
            5、設(shè)置空閑超時(shí)時(shí)間,這樣如果客戶端用戶不再發(fā)送數(shù)據(jù)就強(qiáng)制將其斷開。idle-timeout=5m,
            該選項(xiàng)會(huì)覆蓋服務(wù)器范圍配置。
            6、對(duì)到達(dá)的SSH連接禁用某些特性,例如端口轉(zhuǎn)發(fā)和tty分配。禁用tty分配會(huì)使客戶端沒
            有交互會(huì)話的能力。$SSH_TTY變量可顯示tty情況。

            用戶的rc文件
            ssh服務(wù)器會(huì)在每個(gè)連接到達(dá)時(shí)調(diào)用shell腳本/etc/sshrc,用戶可把一些登錄后想運(yùn)行的腳本
            寫到這個(gè)文件中。用戶可以在自已的目錄下定義類似的腳本,如果有自定義的~/.ssh/rc則
            /etc/sshrc則不會(huì)執(zhí)行。

            第九章 端口轉(zhuǎn)發(fā)與X轉(zhuǎn)發(fā)
            使用SSH對(duì)其它應(yīng)用程序在別的TCP端口上建立的TCP/IP傳輸進(jìn)行加密和解密,這一過(guò)
            程稱為端口轉(zhuǎn)發(fā),其絕大多數(shù)操作都是透明的,功能非常強(qiáng)大。TELNET,SMTP,NNTP,IMAP
            和一些基于TCP的不安全協(xié)議都可變得安全,只要將其連接通過(guò)SSH轉(zhuǎn)發(fā)即可。端口轉(zhuǎn)發(fā)
            有時(shí)又叫做隧道傳輸。
            例子:一個(gè)運(yùn)行IMAP的服務(wù)器S,在家里的主機(jī)H上運(yùn)行一個(gè)email程序,現(xiàn)在想用ssh
            保護(hù)IMAP連接。
            $ ssh -L2001:localhost:143 S
            -L 表明是本地轉(zhuǎn)發(fā),,上面這命令可完成登錄到S的功能,現(xiàn)在的這個(gè)SSH會(huì)話同時(shí)將H
            的2001端口轉(zhuǎn)發(fā)到S的143端口,在退出會(huì)話之前一直有效。并告知email程序使用被轉(zhuǎn)
            發(fā)的端口,通常郵件程序連接服務(wù)器的143端口,即套接字 (S,143)。現(xiàn)在要令其連接
            本地主機(jī)H自已的2001端口,也就是套接字(localhost,2001)。創(chuàng)建本地轉(zhuǎn)發(fā)時(shí)可以不用-L
            選項(xiàng),而在客戶端配置文件中用LocalForward關(guān)鍵字。
            LocalForward 2001 localhost:143 ssh1 openssh
            LocalForward "2001:localhost:143" ssh2

            -g 選項(xiàng)和GatewayPorts yes/no關(guān)鍵字可以配置除本地主機(jī)外的機(jī)器是否能使用本地的端口
            轉(zhuǎn)發(fā)功能。出于安全問題,該禁止這個(gè)功能。

            遠(yuǎn)程轉(zhuǎn)發(fā)端口與本地轉(zhuǎn)發(fā)幾乎完全相同,只是方向相反。此時(shí)服務(wù)器在本地,轉(zhuǎn)發(fā)連接由遠(yuǎn)
            程主機(jī)發(fā)起。假設(shè)你已登錄進(jìn)服務(wù)器S。則
            $ ssh -R2001:localhost:143 H
            -R代表遠(yuǎn)程轉(zhuǎn)發(fā)。命令執(zhí)行后,一條從遠(yuǎn)程主機(jī)H的2001端口到服務(wù)器S的143端口的安
            全隧道就建立起來(lái)了。H上的任何程序都可以通過(guò)連接(localhost,2001)來(lái)使用此安全隧道。
            而在客戶端配置文件中用RemoteForward關(guān)鍵字.
            RemoteForward 2001 S:143 ssh openssh
            RemoteForward "2001:S:143" ssh2

            $ ssh -o ClearAllForwardings=yes server.example.com 阻止第二條命令建立隧道

            本地轉(zhuǎn)發(fā)與遠(yuǎn)程轉(zhuǎn)發(fā)
            在本地轉(zhuǎn)發(fā)中,應(yīng)用程序客戶端與監(jiān)聽端同SSH客戶端在一起,應(yīng)用程序服務(wù)器與連接端
            同SSH服務(wù)器在一起。
            在遠(yuǎn)程轉(zhuǎn)發(fā)中,應(yīng)用程序客戶端與監(jiān)聽端同SSH服務(wù)器在一起,應(yīng)用程序服務(wù)器與連接端
            同SSH客戶端在一起。

            無(wú)遠(yuǎn)程登錄的端口轉(zhuǎn)發(fā),連接時(shí)帶-f參數(shù)。一次性轉(zhuǎn)發(fā)用-fo,ssh1與openssh不支持這個(gè)功
            能,但可用以下語(yǔ)句實(shí)現(xiàn):
            $ ssh -f -L2001:localhost:143 server sleep 10

            終止
            如果一個(gè)SSH會(huì)話現(xiàn)在還在活動(dòng)當(dāng)中,終止會(huì)出錯(cuò)。在SSH2中,如果退出有活動(dòng)轉(zhuǎn)發(fā)連
            接的會(huì)話,該會(huì)話會(huì)依然打開,但會(huì)轉(zhuǎn)到后臺(tái)運(yùn)行。直到轉(zhuǎn)發(fā)連接終止。ssh1 and openssh
            與此相反,如果要斷開還在活動(dòng)的會(huì)話,會(huì)出現(xiàn)警告,仍然在前臺(tái)運(yùn)行。

            TIME_WAIT問題。在某些情況下,TCP連接斷連時(shí),其一端的套接字在很短一段時(shí)間內(nèi)變
            得不可用,所以在斷連過(guò)程結(jié)束前不能把該端口用于TCP轉(zhuǎn)發(fā)。






            第十章 推薦配置
            服務(wù)器范圍配置
            1、禁用其它訪問方式。
            關(guān)掉r-命令,方法如下:刪除/etc/hosts.equiv文件,或改為只讀空文件。禁用rshd,rlogind and
            rexecd,通過(guò)修改inetd.conf文件。
            2、/etc/sshd_config配置
            HostKey /etc/ssh_host_key
            PidFile /etc/sshd.pid
            RandomSeed /etc/ssh_random_seed

            StrictModes yes 要求用戶保護(hù)其與SSH有關(guān)的文件及目錄
            Umask 0077 保證所有SSHD1創(chuàng)建是文件和目錄都只能由其所有者(SSHD 運(yùn)行的
            UID)讀取

            port 22
            ListenAddress 0.0.0.0
            IdleTimeout 15m 15分鐘空閑超時(shí)
            KeepAlive yes 客戶機(jī)死機(jī)時(shí)連接將會(huì)終止,而不會(huì)長(zhǎng)期掛起。

            LoginGraceTime 30 登錄時(shí)成功認(rèn)證的時(shí)限為30秒。

            ServerKeyBits 768 服務(wù)器密鑰長(zhǎng)度
            KeyRegenerationInterval 3600 服務(wù)器密鑰一小時(shí)重新生成一次

            PasswordAuthentication no 禁用密碼認(rèn)證
            RhostsAuthentication no 禁用可信主機(jī)認(rèn)證
            RhostsRSAAuthentication no 禁用增強(qiáng)可信主機(jī)認(rèn)證
            RSAAuthentication yes 啟用公鑰認(rèn)證

            IgnoreRhosts yes 完全禁止SSHD使用.rhosts文件
            IgnoreRootRhosts yes

            UseLogin no 禁用UseLogin,防止萬(wàn)一使用了其它登錄程序

            AllowHosts xxx 根據(jù)需要設(shè)置
            SilentDeny yes 任何被DenyHosts拒絕的連接都不會(huì)向用戶返回消息,不必告訴攻擊
            者發(fā)生了什么,可以增加了排錯(cuò)的難度。

            PermitRootLogin nopwd 允許超級(jí)用戶通過(guò)SSH連接,但不能用密碼認(rèn)證

            FascistLogging no 禁用FascistLogging日志方式,因?yàn)樗鼤?huì)在日志中記錄用戶特定信息,對(duì)
            攻擊者有用。
            QuietMode no 禁用QuietMode日志方式,使用日志更詳細(xì),敏感度更低

            AllowTcpForwarding yes 允許tcp端口轉(zhuǎn)發(fā)和X轉(zhuǎn)發(fā),保護(hù)其它的tcp連接
            X11Forwarding yes

            3、/etc/ssh2/sshd2_config配置
            HostKeyFile /etc/ssh2/hostkey
            PublicHostKeyFile /etc/ssh2/hostkey.pub
            RandmoSeedFile /etc/ssh2/random_seed

            UserConfigDirectory
            IdentityFile
            AuthorizstionFile

            StrictModes yes

            port 22
            listenAddress 0.0.0.0
            KeepAlive yes
            RequireReverseMapping no

            LoginGraceTime 30

            由于sshd2沒有設(shè)置服務(wù)器密鑰的位數(shù)的關(guān)鍵字,用戶得在啟動(dòng)時(shí)使用 -b 選項(xiàng) $ sshd2 -b
            1024 ....

            AllowedAuthentications publickey
            RequiredAuthentications publickey

            IgnoreRhosts yes
            UserKnownHosts no 禁用該項(xiàng)可防止用戶給未知主機(jī)提供信任權(quán)限。

            PermitRootLogin nopwd


            Ciphers any 不能選none


            QuietMode no
            VerboseMode yes

            Ssh1Compatibility no 禁用SSH-1兼容模式
            #Ssh1Path /usr/local/ssh1/sshd1 出于實(shí)用原因,也可以啟用此模式,之前要指明ssh1服
            務(wù)器可執(zhí)行文件位置

            4、每賬號(hào)配置
            對(duì)于SSH1 AND OPENSSH,~/.ssh/authorized_keys中的每一個(gè)密鑰都必須用適當(dāng)?shù)倪x項(xiàng)進(jìn)
            行限制,from選項(xiàng)限制只能從特定的主機(jī)訪問特定的密鑰。例如,假設(shè)文件中包含你家那
            臺(tái)pc(myhome.isp.net)的公鑰,而其它機(jī)器根本不可能用那個(gè)密鑰來(lái)認(rèn)證,我們就可以明確
            限定這一關(guān)系:from = "myhome.isp.net" ...key...。還要對(duì)適當(dāng)?shù)拿荑€設(shè)置空閑超時(shí)時(shí)間:from
            = "myhome.isp.net" ,idle-timeout=5m ...key...。
            最后,考慮每一個(gè)密鑰是否需要對(duì)到達(dá)的連接使用端口轉(zhuǎn)發(fā),代理轉(zhuǎn)發(fā)以及分配tty等,如
            果不需要,就可以分別用no-port-forwarding,no-agent-forwarding and no-pty禁用這些特性。

            5、密鑰管理
            至少創(chuàng)建1024位長(zhǎng)的用戶密鑰,并用好的口令對(duì)密鑰進(jìn)行保護(hù)。

            6、客戶端配置
            離開正在運(yùn)行的ssh客戶端時(shí),一定要用密碼保護(hù)。
            在客戶端配置文件中啟用某些安全功能,并將其設(shè)置為最強(qiáng)
            Host *
            FallBackToRsh no 禁止使用不安全的r-命令(ssh2)沒有這個(gè)問題。
            UseRsh no
            GatewayPorts no 禁止遠(yuǎn)程客戶端連接本地的轉(zhuǎn)發(fā)端口
            StrictHostKeyChecking ask 在主機(jī)密鑰發(fā)生變化時(shí)提醒你。請(qǐng)求你的處理意見。
            配置“/etc/ssh/ssh_config”文件 
            “/etc/ssh/ssh_config”文件是OpenSSH系統(tǒng)范圍的配置文件,允許你通過(guò)設(shè)置不同的選項(xiàng)
            來(lái)改變客戶端程序的運(yùn)行方式。這個(gè)文件的每一行包含“關(guān)鍵詞-值”的匹配,其中“關(guān)鍵
            詞”是忽略大小寫的。下面列出來(lái)的是最重要的關(guān)鍵詞,用man命令查看幫助頁(yè)(ssh (1))
            可以得到詳細(xì)的列表。 

            編輯“ssh_config”文件(vi /etc/ssh/ssh_config),添加或改變下面的參數(shù): 

            # Site-wide defaults for various options 
            Host * 
            ForwardAgent no 
            ForwardX11 no 
            RhostsAuthentication no 
            RhostsRSAAuthentication no 
            RSAAuthentication yes 
            PasswordAuthentication yes 
            FallBackToRsh no 
            UseRsh no 
            BatchMode no 
            CheckHostIP yes 
            StrictHostKeyChecking no 
            IdentityFile ~/.ssh/identity 
            Port 22 
            Cipher blowfish 
            EscapeChar ~ 

            下面逐行說(shuō)明上面的選項(xiàng)設(shè)置: 

            Host * 
            選項(xiàng)“Host”只對(duì)能夠匹配后面字串的計(jì)算機(jī)有效。“*”表示所有的計(jì)算機(jī)。 

            ForwardAgent no 
            “ForwardAgent”設(shè)置連接是否經(jīng)過(guò)驗(yàn)證代理(如果存在)轉(zhuǎn)發(fā)給遠(yuǎn)程計(jì)算機(jī)。 

            ForwardX11 no 
            “ForwardX11”設(shè)置X11連接是否被自動(dòng)重定向到安全的通道和顯示集(DISPLAY set)。 

            RhostsAuthentication no 
            “RhostsAuthentication”設(shè)置是否使用基于rhosts的安全驗(yàn)證。 

            RhostsRSAAuthentication no 
            “RhostsRSAAuthentication”設(shè)置是否使用用RSA算法的基于rhosts的安全驗(yàn)證。 

            RSAAuthentication yes 
            “RSAAuthentication”設(shè)置是否使用RSA算法進(jìn)行安全驗(yàn)證。 

            PasswordAuthentication yes 
            “PasswordAuthentication”設(shè)置是否使用口令驗(yàn)證。 

            FallBackToRsh no 
            “FallBackToRsh”設(shè)置如果用ssh連接出現(xiàn)錯(cuò)誤是否自動(dòng)使用rsh。 

            UseRsh no 
            “UseRsh”設(shè)置是否在這臺(tái)計(jì)算機(jī)上使用“rlogin/rsh”。 

            BatchMode no 
            “BatchMode”如果設(shè)為“yes”,passphrase/password(交互式輸入口令)的提示將被禁止。
            當(dāng)不能交互式輸入口令的時(shí)候,這個(gè)選項(xiàng)對(duì)腳本文件和批處理任務(wù)十分有用。 

            CheckHostIP yes 

            “CheckHostIP”設(shè)置ssh是否查看連接到服務(wù)器的主機(jī)的IP地址以防止DNS欺騙。建議設(shè)
            置為“yes”。 

            StrictHostKeyChecking no 
            “StrictHostKeyChecking”如果設(shè)置成“yes”,ssh就不會(huì)自動(dòng)把計(jì)算機(jī)的密匙加入
            “$HOME/.ssh/known_hosts”文件,并且一旦計(jì)算機(jī)的密匙發(fā)生了變化,就拒絕連接。 

            IdentityFile ~/.ssh/identity 
            “IdentityFile”設(shè)置從哪個(gè)文件讀取用戶的RSA安全驗(yàn)證標(biāo)識(shí)。 

            Port 22 
            “Port”設(shè)置連接到遠(yuǎn)程主機(jī)的端口。 

            Cipher blowfish 
            “Cipher”設(shè)置加密用的密碼。 

            EscapeChar ~ 
            “EscapeChar”設(shè)置escape字符。 

            配置“/etc/ssh/sshd_config”文件 
            “/etc/ssh/sshd_config”是OpenSSH的配置文件,允許設(shè)置選項(xiàng)改變這個(gè)daemon的運(yùn)行。
            這個(gè)文件的每一行包含“關(guān)鍵詞-值”的匹配,其中“關(guān)鍵詞”是忽略大小寫的。下面列出
            來(lái)的是最重要的關(guān)鍵詞,用man命令查看幫助頁(yè)(sshd (8))可以得到詳細(xì)的列表。 

            編輯“sshd_config”文件(vi /etc/ssh/sshd_config),加入或改變下面的參數(shù): 

            # This is ssh server systemwide configuration file. 
            Port 22 
            ListenAddress 192.168.1.1 
            HostKey /etc/ssh/ssh_host_key 
            ServerKeyBits 1024 
            LoginGraceTime 600 
            KeyRegenerationInterval 3600 
            PermitRootLogin no 
            IgnoreRhosts yes 
            IgnoreUserKnownHosts yes 
            StrictModes yes 
            X11Forwarding no 
            PrintMotd yes 
            SyslogFacility AUTH 
            LogLevel INFO 
            RhostsAuthentication no 
            RhostsRSAAuthentication no 
            RSAAuthentication yes 
            PasswordAuthentication yes 
            PermitEmptyPasswords no 
            AllowUsers admin 

            下面逐行說(shuō)明上面的選項(xiàng)設(shè)置: 

            Port 22 
            “Port”設(shè)置sshd監(jiān)聽的端口號(hào)。 

            ListenAddress 192.168.1.1 
            “ListenAddress”設(shè)置sshd服務(wù)器綁定的IP地址。 

            HostKey /etc/ssh/ssh_host_key 

            “HostKey”設(shè)置包含計(jì)算機(jī)私人密匙的文件。 

            ServerKeyBits 1024 
            “ServerKeyBits”定義服務(wù)器密匙的位數(shù)。 

            LoginGraceTime 600 
            “LoginGraceTime”設(shè)置如果用戶不能成功登錄,在切斷連接之前服務(wù)器需要等待的時(shí)間(以
            秒為單位)。 

            KeyRegenerationInterval 3600 
            “KeyRegenerationInterval”設(shè)置在多少秒之后自動(dòng)重新生成服務(wù)器的密匙(如果使用密匙)。
            重新生成密匙是為了防止用盜用的密匙解密被截獲的信息。 

            PermitRootLogin no 
            “PermitRootLogin”設(shè)置root能不能用ssh登錄。這個(gè)選項(xiàng)一定不要設(shè)成“yes”。 

            IgnoreRhosts yes 
            “IgnoreRhosts”設(shè)置驗(yàn)證的時(shí)候是否使用“rhosts”和“shosts”文件。 

            IgnoreUserKnownHosts yes 
            “IgnoreUserKnownHosts”設(shè)置ssh daemon是否在進(jìn)行RhostsRSAAuthentication安全驗(yàn)證
            的時(shí)候忽略用戶的“$HOME/.ssh/known_hosts” 

            StrictModes yes 
            “StrictModes”設(shè)置ssh在接收登錄請(qǐng)求之前是否檢查用戶家目錄和rhosts文件的權(quán)限和所
            有權(quán)。這通常是必要的,因?yàn)樾率纸?jīng)常會(huì)把自己的目錄和文件設(shè)成任何人都有寫權(quán)限。 

            X11Forwarding no 
            “X11Forwarding”設(shè)置是否允許X11轉(zhuǎn)發(fā)。 

            PrintMotd yes 
            “PrintMotd”設(shè)置sshd是否在用戶登錄的時(shí)候顯示“/etc/motd”中的信息。 

            SyslogFacility AUTH 
            “SyslogFacility”設(shè)置在記錄來(lái)自sshd的消息的時(shí)候,是否給出“facility code”。 

            LogLevel INFO 
            “LogLevel”設(shè)置記錄sshd日志消息的層次。INFO是一個(gè)好的選擇。查看sshd的man幫
            助頁(yè),已獲取更多的信息。 

            RhostsAuthentication no 
            “RhostsAuthentication”設(shè)置只用rhosts或“/etc/hosts.equiv”進(jìn)行安全驗(yàn)證是否已經(jīng)足夠了。 

            RhostsRSAAuthentication no 
            “RhostsRSA”設(shè)置是否允許用rhosts或“/etc/hosts.equiv”加上RSA進(jìn)行安全驗(yàn)證。 

            RSAAuthentication yes 
            “RSAAuthentication”設(shè)置是否允許只有RSA安全驗(yàn)證。 

            PasswordAuthentication yes 
            “PasswordAuthentication”設(shè)置是否允許口令驗(yàn)證。 

            PermitEmptyPasswords no 
            “PermitEmptyPasswords”設(shè)置是否允許用口令為空的帳號(hào)登錄。 

            AllowUsers admin 
            “AllowUsers”的后面可以跟著任意的數(shù)量的用戶名的匹配串(patterns)或user@host這樣
            的匹配串,這些字符串用空格隔開。主機(jī)名可以是DNS名或IP地址。

            posted on 2007-09-06 10:48 葉子 閱讀(1562) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 系統(tǒng)管理

            欧美激情精品久久久久久| 久久婷婷成人综合色综合| 国产香蕉久久精品综合网| 久久精品国产久精国产思思 | 久久久久国产日韩精品网站 | 国产福利电影一区二区三区久久久久成人精品综合 | 99久久精品国产高清一区二区| 久久成人国产精品二三区| 久久综合久久性久99毛片| 欧美一区二区三区久久综合| 精品久久久久久国产免费了| 亚洲成色WWW久久网站| 久久久久国产| 久久香蕉综合色一综合色88| 国内精品人妻无码久久久影院导航 | 2020国产成人久久精品| 免费观看久久精彩视频| 久久精品日日躁夜夜躁欧美| 国产成人综合久久精品尤物| 久久久久99精品成人片直播| 欧美一区二区久久精品| 国产精品成人无码久久久久久 | 久久精品夜夜夜夜夜久久| 怡红院日本一道日本久久 | 久久久久se色偷偷亚洲精品av| A级毛片无码久久精品免费| 精品国际久久久久999波多野| 精品一二三区久久aaa片| 久久久亚洲精品蜜桃臀| 精品国产91久久久久久久a| 国产精品一区二区久久| 久久国产精品99国产精| 国产三级久久久精品麻豆三级| 亚洲精品无码久久久久去q| 久久亚洲AV无码精品色午夜麻豆| 色天使久久综合网天天| 无码国内精品久久人妻麻豆按摩| 久久久久国产一级毛片高清板| 久久99亚洲综合精品首页| 久久久噜噜噜久久| 久久久国产99久久国产一|