歡迎您光臨本站 註冊首頁

Linux下網路服務的安全設置

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

Linux下網路服務的安全設置

Linux操作系統由於其良好的穩定性、健壯性、高效性和安全性.正在成為各種網路服務的理想平台.各種網路應用在Linux系統上部有性能卓越的應用,例如,提供Web服務的Apache伺服器;提供DNS服務的Bind;提供SMTP服務的Postfix、Sendmail、Qmail等;提供FTP服務的Wu-ftp和Vsftp,Proftp等.除此之外,越來越多的網路應用也都提供了在Linux上的實現,更多的應用可參考《Linux企業應用案例精解》一書.依靠這些開放源代碼的軟體,通過精心的配置可以提供同昂貴的商業軟體同樣優秀的網路服務.本文重點講述Linux系統對於網路服務的控制和管理,首先介紹Linux系統提供網路服務的兩種方式,即standalong和inetd/xinetd方式;然後介紹如何察看、啟動和停止系統提供的服務. 一、stand-along和inetd/xinetd方式 Linux系統能夠通過兩種方式來提供網路服務, 一種是傳統的stand-alone方式,另外一種通過系統的inetd進程來啟動. 1)stand-alone方式 (1) 工作過程 圖1 stand-alone方式的工作過程如圖1所示.首先,伺服器啟動網路服務進程,用以監聽某一指定網路埠,來等待客戶端的連接請求到達.比如,Web伺服器會監聽TCP的80埠;telnet服務則會監聽TCP的23埠.然後,當有客戶端連接請求到達時這個監聽的進程會響應這個連接請求,並且生成一個子進程或是線程來處理客戶端的請求, 父服務進程則返回,繼續監聽指定埠,等待下一個客戶請求的到來. , 當客戶端完成訪問結束時, 處理其請求的子進程也隨之退出.在某些情況下,比如訪問量比較大的 Web伺服器上,會預先生成幾個子進程,這樣就不必在父進程接收到客戶端請求時再去生成子進程,從而提高了客戶的訪問速度. (2).服務的啟動和停止 在Linux系統當中,通過stand-alone方式啟動服務通常都由/etc/rc.d/下面對應的運行級別當中的符號鏈接來啟動.這裡首先解釋一下運行級別.Linux運行級別是一種系統狀態, 或者稱為模式(Mode),它由列在/etc/rc.d/rc.d目錄中的服務來定義,其中是運行級別的數字. # ls -l drwxr-xr-x 2 root root 4096 07-30 22:31 init.d -rwxr-xr-x 1 root root 2255 2008-03-03 rc drwxr-xr-x 2 root root 4096 07-30 22:31 rc0.d drwxr-xr-x 2 root root 4096 07-30 22:15 rc1.d drwxr-xr-x 2 root root 4096 07-30 22:31 rc2.d drwxr-xr-x 2 root root 4096 07-30 22:31 rc3.d drwxr-xr-x 2 root root 4096 07-30 22:15 rc4.d drwxr-xr-x 2 root root 4096 08-23 19:28 rc5.d drwxr-xr-x 2 root root 4096 07-30 22:31 rc6.d -rwxr-xr-x 1 root root 220 2008-03-03 rc.local -rwxr-xr-x 1 root root 26918 2008-03-03 rc.sysinit 現存的運行級別如下: 0停運; 1 單用戶模式; 2 沒有使用(可由用戶定義); 3 完整的多用戶模式; 4 沒有使用(可由用戶定義); 5 完整的多用戶模式(帶有基於X的登錄屏幕); 6 重新引導. 如果使用的是文本登錄屏幕,那麼所在的運行級別就3.如果使用的是圖形化登錄屏幕,則運行級別就是5.默認的運行級別可以通過修改/etc/inittab文件來改變: ................... # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 # Run xdm in runlevel 5 x:5:respawn:/etc/X11/prefdm -nodaemon 修改的運行級別在系統重新引導之後就會生效,系統就會進入相應的運行級別.注意,不要將運行級別設置為 0或6.如果要立即改變運行級別,則需要使用telinit命令,之後跟隨運行級別號碼.只有是root用戶才能使用這個命令.要注意的是,telinit命令並不改變/etc/inittab文件,只改變當前的運行級別.當系統重新引導后,它會被引導入/etc/inittab中指定的運行級別. 對每一個運行級別來說,在/etc/rc.d子目錄中都有一個對應的下級目錄.這些運行級別的下級子目錄的命名方法是rcX.d,其中的X就是代表運行級別的數字.比如,運行級別3的全部命令腳本程序都保存在/etc/rc.d/rc3.d子目錄中. # ls K02avahi-dnsconfd K35smb K88wpa_supplicant S08iptables S22messagebus S80sendmail K02dhcdbd K35vncserver K89dund S09isdn S25bluetooth S85gpm K02NetworkManager K35winbind K89netplugd S10network S25netfs S90crond … … S56xinetd S99smartd K25squid K87multipathd S08ip6tables S20kdump S77netbackup 由上可以看到,在各個運行級別的子目錄中,都有很多個以字母S或以字母K開頭的文件,這些文件都是一些到/etc/init.d/下面的符號連接.比如: # ls -l S77netbackup lrwxrwxrwx 1 root root 26 07-30 22:31 S77netbackup -> /etc/rc.d/init.d/netbackup 真正的啟動腳本部存放存/etc/init.d/下,系統啟動時,Linux系統會根據/etc/initab當中設定的運行級別來運行某個特定的了目錄.首先運行以字母K打頭的命令腳本程序,然後再運行以字母s打頭的命令腳本程序.對以字母K打頭的命令腳本程序來說,會傳遞Stop參數來停止該服務.類似地對以字母s打頭的命令腳本程序來說,會傳遞Start參數來啟動該服務. 在許多情況下, 命令腳本程序的執行順序都很重要.比如,如果沒有先配置網路介面,那麼就沒有辦法使用DNS服務來解析主機名.因此,為了安排它們的執行順序,在字母s或K的後面緊跟著一個兩位數字,數值小的在數值大的前面執行.比如,/etc/rc.d/rc3.d/S5Oinet就會在/etc/rc.d/rc3.d/S55named之前執行(s50inet配置網路設置,S55named肩動DNS伺服器). 二、inetd/xinetd方式 (1)工作過程 相對stand-alone方式,inetd/xinetd方式也被稱為“Internet Super-Server”,它管理著多個守護程序的鏈接,這些守護進程來提供諸如FTP、Telnet等網路服務.inetd/xinetd工作方式如圖2所示.有關更詳細的xinetd介紹請查閱Linux系統管理教程.2 控制服務的啟動和停止 管理系統服務訪問的方法有好幾種,可以根據服務、系統配置及對Linux的掌握程度來決定使用哪一種管理方法. 拒絕對某一服務的使用最簡便的方法是將其關閉.不論是由xinetd管理的服務,還是在/etc/rc.d層次中的服務,都可以使用服務配置工具、ntsysv和chkconfig等三種不同的應用程序來配置其啟動或停止. 1.服務配置工具 使用圖形化應用程序可以顯示每項服務的描述, 以及每項服務是否在引導時啟動(運行級別3、4和5),並允許啟動、停止或重新啟動每項服務,如圖4所示. 4 服務配置工具 2.ntsysv ntsysv是基於文本的程序,它允許為每個運行級別配置引導時要啟動的服務.對於不屬於xinetd的服務而言,改變不會立即生效.不能使用這個程序來啟動、停止或重新啟動不屬於xinetd的服務. 3.chkconfig chkconfig是允許在不同運行級別啟動和關閉服務的命令行工具.對於不屬於xinetd的服務而言,改變不會立即生效.不能使用這個程序啟動、停.I匕或重新啟動不屬於xinetd的服務. [root@jie rc3.d]# chkconfig --list NetworkManager 0:關閉 1:關閉 2:關閉 3:關閉 4:關閉 5:關閉 6:關閉 NetworkManagerDispatcher 0:關閉 1:關閉 2:關閉 3:關閉 4:關閉 5:關閉 6:關閉 acpid 0:關閉 1:關閉 2:關閉 3:啟用 4:啟用 5:啟用 6:關閉 anacron 0:關閉 1:關閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關閉 apmd 0:關閉 1:關閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關閉 atd 0:關閉 1:關閉 2:關閉 3:啟用 4:啟用 5:啟用 6:關閉 auditd 0:關閉 1:關閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關閉 autofs 0:關閉 1:關閉 2:關閉 3:啟用 4:啟用 5:啟用 6:關閉 avahi-daemon 0:關閉 1:關閉 2:關閉 3:啟用 4:啟用 5:啟用 6:關閉 avahi-dnsconfd 0:關閉 1:關閉 2:關閉 3:關閉 4:關閉 5:關閉 6:關閉 bluetooth 0:關閉 1:關閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關閉 capi 0:關閉 1:關閉 2:關閉 3:關閉 4:關閉 5:關閉 6:關閉 conman 0:關閉 1:關閉 2:關閉 3:關閉 4:關閉 5:關閉 6:關閉 cpuspeed 0:關閉 1:啟用 2:啟用 3:啟用 4:啟用 5:啟用 6:關閉 此外,還可以直接編輯/etc/rc.d/rcX.d下文件,或者在/etc/xinet.d/文件下直接控制Linux提供的系統服務.注意這裡的X對應了啟動級別. 三、Web服務安全 1、Web服務面臨的威脅 由於Web服務的普及,各種針對它的攻擊手段也是層出不窮.對於Web服務而言,按照威脅針對的對象可以分為針 對伺服器端、針對客戶端和針對伺服器到客戶端之間的傳輸三類. (1)針對伺服器端的威脅 針對伺服器端的威脅主要包括非授權用戶利用配置漏洞或其它漏洞獲取伺服器端保密信息,入侵者通過Web服務進 程漏洞取得伺服器主機的控制權;入侵者發動DoS (拒絕服務)攻擊使服務失效. (2)針對客戶端的威脅 針對客戶端的威脅主要包括通過瀏覽器漏洞執 行ActiveX、Javaapplet等動態執行程序危害用戶系統,獲取用 戶機密信息. (3) 針對伺服器到客戶端之間傳輸的威脅 針對伺服器到客戶端之間傳輸的威脅通過網路竊聽等手來獲取客戶 /伺服器之間的通信信息,或者惡意篡改通信內容. 這裡我們重點討論Web 伺服器端和通信過程中的安全性.對於多數Web伺服器而言,被攻擊主要應用程序或 腳本當中存在漏澗,並且這些漏洞被入侵者所利用而導致. 2. Apache安全配置實例 (1) 用戶/用戶組,文件系統和默認設置 按照最小特權原則,需要給Apache分配一個合適的許可權,讓其能夠完成Web服務.保證Apache使用一個專 門的用戶和用戶組,不要使用系統預定義的賬號,比如 nobody用戶和nogroup用戶組. 對於Apache 系統而言,有 ServerRoot、DocumentRoot、 ScriptAlias、CustomLog和Errorlog四個主要目錄,確 保以上四個主要目錄相互獨立,也就說任何兩個目錄之間不 存在父子關係.例如下面的配置: ServerRoot "/etc/httpd" DocumentRoot "/var/www/html " ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" CustomLog /var/log/httpd/access.log ErrorLog logs /var/log/httpd/error.log 除了 root用戶以外,沒有其它用戶能夠配置或是運行Apache,ServerRoot應該被配置為只能由root用戶 訪問.DocumentRoot應該能夠被管理Web站點內容的用戶訪 問,跟Apache伺服器使用Apache用戶和apache用戶組訪問.ScriptAlias目錄應該只能被CGI開發人員和apache用戶訪問.在管理時最好為Web內容維護人員和CGI開發人員分別建立webcontent和webdev兩個組然後利用usermod命 令將用戶分別加入到這兩個組當中.例如,將用戶cgweb加入到root組當中: # usermod -G root cgweb 利用groups命令可以査看用戶屬於哪些組: # groups cgweb cgweb:cgweb root 在默認設置當中修改以下幾點: • 禁止使用目錄索引文件 Apache伺服器在接收到用戶對一個目錄的訪問時,會查找 Directorvlndex指令指定的目錄索引文件.默認情況下該文件是index.html 如果該文件不存在,那麼Apache 會創建動態列表為用戶顯示該目錄的內容,如圖 1 用戶 http://ipaddress/test/訪問Web伺服器上的test目錄. Apache 伺服器在該目錄下沒有找到 index.html,則顯示test目錄下所有文件和目錄信息.通常這樣的設置會暴露 Web 站點結構,因此需要修改配置文件禁止顯示動態目錄列表. 修改配置文件httpd.conf <Directory “/var/www/html”> Options -Indexes FolIowSymLinks AllowOverride None Order allow,deny Allow from all 在Options欄位添加“-Indexes”,表明禁止顯示活動目錄. • 禁止默認訪問 一個好的安全模型應該規定默認拒絕一切訪問,為了實現默認的訪問拒絕可以在httpd.conf 當中使用如下的配置: Order deny, allow Deny from all </Directory > 為了訪問特定的目錄,再次使用進行 配置. <Directory "/var/www/html " > Order allow,deny Allow from all < /Directory> • 禁止用戶重載 通過如下設定,可以防止用戶通過任何目錄當中的.htaccess配置文件對配置進行重載的能力. AllowOverride None (2) 控制 CGI 腳本 CGI 腳本的漏洞已經成為了Web 眼務器的首要安全隱患,許多程序員在編寫CGI 程序時並不注重其安全性,在無 意當中產生了許多的後門和漏洞.控制CGI 腳本的漏洞除了在編寫時需要注意對輸入數據的合法性檢查、對系統調用的 謹慎使用等因素外,安全配置Apache 伺服器也能夠消除掉 許多不安全的CGI 程序帶來的影響. 默認情況下,以Apache 伺服器所使用的UID 來運行這 些CGI 程序.在很多情況下,如果以CGI 程序所有者的UI D 來運行這些程序,則會帶來安全性上的好處,此時這些CGI程序即使存在某些漏洞,那麼其危害也僅限於該XJID 所能夠 訪問的文件當中.也就說這樣只能傷害用戶的文件,而不會對整個系統帶來致命的影響..使用 SSL加密 使用SSL (Secure Sockets Layer, 安全套接字層)能夠保證 Web 伺服器和客戶端通信過程當中數據的安全性 .HTTP協議採用明文進行傳輸,因此入侵者對於伺服器和客戶端之間傳輸的數據很容易進行竊聽和篡改.為了解決這一問題,最初由Netscape公司開發了Secure socket layer(SSL) 協議,現在SSL已經成為用以鑒別網站和網頁瀏覽者身份、 並在瀏覽器和Web 伺服器之間進行加密通信的全球標準. SSL技術已被所有主要的瀏覽器和Web伺服器所支持. 四、DNS服務安全 DNS即域名解析服務作為網路的基礎服務之一,承擔著 將域名翻譯成計算機可識別的IP 地址形式,以及尋找IP 地 址對應域名的逆向翻譯工作.DNS服務對於網路非常重要,一旦DNS服務出現故障,用戶就不能採用域名的方式來進行訪問,並且,相應的郵件服務也會由於無法正常解析域名而 出現故障.正是由於DNS服務對於網路的重要性,它也成為黑客攻擊的重要目標. 1. DNS服務面臨的威脅 DNS服務面臨的威脅有域名信息欺騙、DoS/DDOS攻擊和緩衝區漏洞溢出攻擊等. (1) 域名信息欺騙 域名信息欺騙(DNS Spoofing)指的是客戶端進行DNS 查詢時,由於DNS伺服器被攻擊或錯誤的配置,而對客戶端返回了一個錯誤的、未經證實的響應.域名信息欺騙會帶來 嚴重的後果,客戶由於相信了DNS伺服器錯誤的信息會導致 用戶訪問到一個錯誤的、很可能是一個惡意的網站,從而導致非常嚴重的後果. 1)入侵者通常採用以下兩種方法來進行域名信息欺騙: • 緩存感染入侵者通過特定的DNS 訪問將其數據放入到DNS伺服器的緩存當中.這些緩存信息會在客戶進行DNS訪問時返回給客戶,從而將客戶引導到入侵者所設置的惡意 伺服器上. • DNS 劫持 入侵者通過監聽客戶端和 DNS之間服務 器的對話,通過猜測伺服器響應給客戶端的DNS query id 在伺服器之前將虛假的響應交給用戶,從而欺騙客戶端去訪問惡意的網站.2)DoS攻擊 很多DNS 伺服器的預設設置存在一個漏洞,可能導致DoS (Denial of Service, 拒絕服務攻擊).如果一個域名伺服器允許遠程主機向它査詢其它域(本身並不管理這些域)的域 名,就是所謂允許遞歸査詢,有可能導致網路流量的異常增大.單個主機引起的流量增大可能並不導致拒絕服務攻擊的 產生,但是利用DNS的分級方式的弱點,可能引發對單個站 點的大量數據流量,阻塞正常的網路交通服務.這個問題出 在當域名伺服器收不到某域權威伺服器的域名解析應答時的 處理方式上.當域名伺服器接收到一個域名解析請求時,它往往會轉發給上一級的DNS伺服器.如果這個查詢請求不能 被解析,其權威域名伺服器上沒有啟動DNS服務或是沒有應答. 那麼每個轉發的伺服器將會試圖自己解析,通常會重試三次(分別在0 秒、12 秒和24 秒時),甚至更多次.在這種情況下,該域名所在網路的流量就明顯增大了.通過使 用大量的域名伺服器做這種査詢,可能導致向目標網路發送 大量數據,造成拒絕服務攻擊. (3) 緩衝區漏洞溢出攻擊 DNS伺服器軟體在實現上如果存在漏洞,比如對特定的 輸入沒有進行嚴格檢査,那麼有可能被攻擊者利用,攻擊者構造特殊的畸形數據包來對 DNS 伺服器進行緩衝區溢出 攻 擊.如果這一攻擊成功,就會造成DNS 服務停止,或者攻擊 者能夠在DNS 伺服器上執行任意代碼. 2. Bind安全配置實例 下面以著名的BIND 軟體為例,講解DNS 伺服器的安全配置. (1)控制區域傳輸 如果DNS 伺服器允許對任何人都進行區域傳輸的話,那麼整個網路架構中的主機名、主機IP 列表、路由器名和路由 器IP 列表,甚至包括各主機所在的位置和硬體配置等情況都會被入侵者輕易得到.因此,要對區域傳輸進行必要的限制. 可以通過在/etc/named.conf 文件當中添加以下語句來 限制區域傳輸: acl "zero-transfer" { 192.168.0.3, 192.168.0.100, }; zone "yourdomain.com" { type master; file "mydomain.dns"; allow-transfer { zero-transfer ;}; }; 現在只有IP地址為192.168.0.53和192.168.0.100的主 機能夠同DNS 伺服器進行區域傳輸. (2)限制訪問區域 限制 DNS 伺服器提供服務的範圍對於 DNS伺服器的安全性也是至關重要的,這樣能夠把許多入侵者拒之門外.要實現這一點很簡單,只需要在BIND 伺服器的配置文件/etc/named.conf 當中增加以下語句: options { allow-query {192.168.0.0/24;}; 這樣通過allow-query指令就能夠保證網 段192.168.0.0/24 上的所有主機可以訪問伺服器提供的DNS服務,而不處於該網段的主機就無法訪問該DNS 伺服器提供的服務. (3) 用非root 用戶用戶運行DNS 服務 利用BIND 軟體提供的-u 選項採用非root 用戶身份來運行 BIND : # /usr/sbin/named -u nobody 通過上面這條命令以nobody 身份來運行BIND ,這樣能夠降低由於緩衝區溢出攻擊所帶來的危害. 五、FTP 服務安全 FTP 服務即文件傳輸服務,它曾經是 Internet 上應用最 為廣泛的文件交換手段之一,但是FTP 協議由於其設計之初並沒有考慮到安全問題,因此,FTP 協議存在著不可克服的 安全性漏洞. 1. FTP服務面臨的威脅 FTP 服務主要面臨緩衝區溢出攻擊、明文口令和匿名訪問等幾種攻擊. (1) 緩衝區溢出攻擊 緩衝區溢出漏洞是一種軟體中邊境條件、函數指針等設計不當造成地址空間錯誤.它的原理是向一個有限空間的緩衝區中拷貝了過長的字元串,帶來了兩種後果,一是過長的字元串覆蓋了相臨的存儲單元而造成程序癱瘓,甚至造成宕 機、系統或進程重啟等;二是利用漏洞可以讓攻擊者運行惡意代碼,執行任意指令,甚至獲得超級許可權等. (2) 明文口令 由於FTP 協議採用明文傳輸其口令,因此很容易被攻擊者通過竊聽的方式獲取口令. (3) 匿名訪問 匿名訪問方式在FTP 服務當中被廣泛的支持,但是由於匿名FTP 不需要真正的身份驗證,因此很容易為入侵者提供—個訪問通道,配合緩衝區溢出攻擊,會造成很嚴重的後果.例如,Ramen 蠕蟲就是利用匿名訪問和緩衝區溢出攻擊對著名的wu-ftpd 伺服器造成了極大的威脅. 2.Vsftp 安全配置實例 這裡以vsftpd為例,介紹FTP伺服器的安全配置.vsftpd在安全性、高性能及穩定性三個方面有不錯的表現,它能夠提供包括虛擬IP設置、虛擬用戶、Standalone、xinetd操作 模式、強大的單用戶設置能力及帶寬限流等強大功能.在安 全方面,它從原理上修補了大多數wu_ftp 、ProFTP,的安裝缺陷,使用安全編碼技術解決了緩衝溢出 問題,並能有效避免“globbing” 類型的拒絕服務攻擊. 安裝和vsftp的基本配置在這裡就不再贅述,可以參考其相關文檔. 下面主要從兩個方面來加強 VSftp的安全性: (1)採用tcp_wrappers進行訪問控制 要使用這項功能,首先需要在安裝編譯之前構建包含tcp_wrappers 的 vsftpd,可通過編輯“builddefs.h”文件, 將“#undef VSF_BUILD_TCPWRAPPERS" 修改 為 “#define VSF_BU I LD_TCPWRAPPERS", 然後重新構建 編譯,生成可執行代碼.其次,要開啟在配置文件 vsftpd.conf 中的選項“tcp_wrappers=YES”.該功能依賴於對文件“/etc / hosts.allow”的配置.以下是一個樣例: vsftpd; 192.168.1.3: setenv VSFTPD_LOAD_CONF/etc/vsftpd_tcp_wrap. conf vsftpd: 192.168.1.4: DENY 其中,第一行表示如果一個客戶端從192.168.1.3連接,那麼vsftpd將應用 “/etc/vsftpd_tcp_wrap.conf” 的vsftpd 配置文件連接.這些設置被應用在默認的vsftpd.conf之前. 這一點十分有用,可用它為一些IP應用不同的訪問限制( 例 如上傳的能力) ;還可以指定某些IP有能力來超越連接限制 (max_clients=0);或者為某些IP增減帶寬限制.第二行表示 拒絕192.168.1.4連接的能力.這一點對別有用心的連接者 很有用. (2) 啟用虛擬用戶 虛擬用戶是指不像系統上的真實用戶一樣客觀存在的用戶,虛擬用戶因而比真實用戶更安全.虛擬用戶常用來服務那些不想開放給不被信任用戶的內容,一般不影響正常的普通用戶. • 創建虛擬用戶資料庫 使用pam_userdb鑒別虛擬用戶,需要一個“db”格式的 用戶名/ 密碼文件.要創建一個“db” 格式文件,首先要創 建一個在交替行上寫有用戶名和密碼的無格式文本文件,代 碼如下: $ cat logins.txt upload foo download bar 上面的“upload” 對應著密碼“foo”: “download”對應 著密碼“bar”.同時用root身份登陸,創建實際的資料庫文 件,代碼如下: $db_load -T -t hash -f logins.txt /etc /Vsftpd_login.db 注意,要求已安裝了Berkeley db 程序.這樣即可創建“/etc/vsftpd_login.db”.如果想改變訪問許可許可權,可用如下命令: $chmod 600 /etc/vsftpd_login.db • 建一個使用新資料庫的PAM 文件 創建編輯文件vsftpd.pam,包含以下兩行: auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login accound required /lib/security/pam_userdb.so db=/etc/vsftpd_login 告訴PAM使用新資料庫來鑒別用戶.把該PAM文件保 存到 PAM 目錄(通常為“/etc/pam.d/cp vsftpd.pam /etc/pam.d/ftp") . • 為虛擬用戶設置文件位置 接下來使用以下命令為虛擬用戶設置文件位置: $useradd -d /home/ftpsite virtual $ls -ld /home/ftpsite 將顯示如下: drwx-----3 virtual virtual 4096 Aug 25 00:39 /home/ftpsite 上面表明已經創建一個叫做“virtual” 的用戶,並且有 一個主目錄“/home/ftpsite”.增加一些內容到這個下載區域,代碼如下: $ cp /etc/hosts /home/ftpsite $ chown virtual. virtual /home/ftpsite/hosts • 定製vsftpd.conf 配置文件 重新定製vsftpd.conf文件: Anonymous_enable= NO local_enable=YES 由於安全因素應關閉匿名FTP,並開啟非匿名FTP(虛擬 用戶需使用). write_enable=NO anon_upload_enable=NO anon_mkdir_writei_enable=NO anon_other_write_enable=NO 出於安全目的寫下這些確保命令,不許寫命令執行. Chroot_local_user=YES 限制虛擬用戶到上面設置的虛擬 FTP 區域 /home /ftpsite. Guest_ enable= YES

本文出自 「李晨光原創技術博客」 博客,謝絕轉載!


[火星人 ] Linux下網路服務的安全設置已經有508次圍觀

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