Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2473794
  • 博文数量: 867
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 9800
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-27 14:44
文章分类

全部博文(867)

文章存档

2007年(6)

2006年(861)

我的朋友

分类: LINUX

2006-08-30 17:26:00

簡易 vsftpd 伺服器設定
前言
    除了 proftpd 之外,事實上,這個 vsftpd 也是一個很好的 FTP 伺服器軟體喔!為什麼這麼說呢?因為 vsftpd 全名是『very secure FTP daemon』的意思,所以他的發展本來就是以安全性為考量來發展這個套件的。vsftpd 在安全性的考量上面,主要針對了『程序的權限, privilege』概念來設計的,因為我們的任何服務在 Linux 上面運作時都會取得一個 PID,而這個 PID 是有擁有者的身份的,也就是說,這個服務的 PID 在我們的 Linux 上面是具有某些『權限』的。萬一這個服務的 PID 所屬擁有者的身份等級太高,例如 root 的權限,那麼如果不幸該 PID 有些設計上的漏洞,使得該 PID 被入侵的話,入侵者將具有該 PID 的權限,也就是 root 的身份喔!所以,近來發展的套件都會盡量的將服務取得的 PID 權限降低,使得該服務即使不小心被入侵了,入侵者也無法得到有效的系統管理權限,這樣會讓我們的系統較為安全的啦。
     
    除了上面這個權限的設計之外, vsftpd 也利用 chroot 這個軟體的輔助,來讓登入者僅能於一些較不重要的目錄當中活動,而無法使用 Linux 系統全部的功能。所謂的 chroot 這個函數,最主要的功能就是『改變根目錄的所在 ( change root directory )』了!舉例來說,如果您想要讓使用者登入 A 服務後,且執行任何指令都是在 /tmp/pub 目錄下,並限制使用者使用 A 服務時都只能在 /tmp/pub 目錄下,那麼使用『 chroot /tmp/pub command 』就能夠讓 /tmp/pub 變成 A 服務的根目錄『/』了!如此一來,使用者就無法離開 /tmp/pub ,那麼萬一我們 A 服務的 PID 還是被入侵時,沒有關係,入侵者還是僅能在 /tmp/pub 裡面跑來跑去而已,而無法使用 Linux 的完整功能。這個時候,自然我們的系統也就會比較安全啦!
     
    vsftpd 是基於上面的說明來設計的一個較為安全的 FTP 伺服器軟體,他具有底下的特點喔:
     
    • vsftpd 是以一般身份啟動服務,所以對於 Linux 系統的使用權限較低,對於 Linux 系統的危害就相對的減低了。此外, vsftpd 亦利用 chroot() 這個函式進行改換根目錄的動作,使得系統工具不會被 vsftpd 這支服務所誤用;
    • 任何需要具有較高執行權限的 vsftpd 指令均以一支特殊的上層程序 ( parent process ) 所控制 ,該上層程序享有的較高執行權限功能已經被限制的相當的低,並以不影響 Linux 本身的系統為準;
    • 所有來自 clients 端,想要使用這支上層程序所提供的較高執行權限之 vsftpd 指令的需求,均被視為『不可信任的要求』來處理,必需要經過相當程度的身份確認後,方可利用該上層程序的功能。例如 chown(), Login 的要求等等動作;
    • 此外,上面提到的上層程序中,依然使用 chroot() 的功能來限制使用者的執行權限。
     
    由於具有這樣的特點,所以 vsftpd 會變的比較安全一些咯!
     
    另外,要架設 vsftpd 之前,還是請您得先要針對 FTP 的主動連線、被動連線以及 port 21, 20 這兩個指令通道與資料通道的基礎有一定程度的認識喔,會比較容易進入狀況,所以,還是回到前面的 那一張節,將前言的部分看完才好吶!我這裡假設您已經具有 FTP 的相關知識了,所以底下就直接來進行 vsftpd 的安裝與設定吧!

套件安裝:

    以 RPM 安裝
     
    在目前新版的 Red Hat 9 主要的 FTP 伺服器軟體就是 vsftpd 這個玩意兒!所以您可以拿出光碟裡面的 vsftpd 來直接以 RPM 安裝即可!如果您的 Linux distribution 沒有提供 vsftpd 的話,沒有關係,我們也可以使用底下的 Tarball 的方式來安裝吶!
     

    以 Tarball 安裝
     
    要以 Tarball 安裝,當然得先下載 Tarball 的檔案了!vsftpd 的官方網站下載點為:
      您可以自行找尋自己喜歡的版本來安裝。我這裡以 1.2.0 這一版來安裝 vsftpd 在我的 Mandrake 9.0 上面喔!(註:如果是 Red Hat 的系統,原本就有 vsftpd 了,所以使用 RPM 安裝比較好!至於其他沒有提供 vsftpd RPM 檔案的 distribution 就可以使用 Tarball 咯!)
       
      1. 下載與解壓縮:
      [root@test root]# wget \
      > ftp://vsftpd.beasts.org/users/cevans/vsftpd-1.2.0.tar.gz
      [root@test root]# cd /usr/local/src
      [root@test root]# tar -zxvf /root/vsftpd-1.2.0.tar.gz
      [root@test root]# cd vsftpd-1.2.0/
      # 在這個目錄下有個 INSTALL 與 README 請務必察看喔!
       
      2. 開始編譯與安裝
      # vsftpd 預設安裝的路徑為:
      # 所有可執行檔放置在 /usr/local/sbin 裡面;
      # man page 放置在 /usr/local/man/man5 與 /usr/local/man/man8
      # 若 super daemon 為 xinetd 時,會複製一份啟動檔案到 /etc/xinetd.d 去!
      [root@test vsftpd-1.2.0]# make
      # 編譯的過程可能有 warning 的訊息,只要不是 Error 就可以不理他!
      [root@test vsftpd-1.2.0]# make install
      [root@test vsftpd-1.2.0]# cp vsftpd.conf /etc
      # 將 PAM 身份認證模組給他放進去系統裡面!
      [root@test vsftpd-1.2.0]# cp RedHat/vsftpd.pam /etc/pam.d/vsftpd
      # 建立 ftp 這個使用者以及他的家目錄:
      # 若本來就存在 ftp 這個使用者,那就不需要進行新增!
      [root@test vsftpd-1.2.0]# useradd -M ftp -d %2
      阅读(1251) | 评论(0) | 转发(0) |
      给主人留下些什么吧!~~