Linux系統上實現虛擬FTP空間的方法

發布時間:2019-11-07 11:16 來源:互聯網 當前欄目:電腦技巧

  虛擬主機是使用軟件技術把一臺運行在因特網上的服務器主機分成一臺臺相對有獨立的域名和IP地址的“虛擬”主機,每一“虛擬”主機都具有完整的Internet服務器(WWW、FTP、E-mail等)功能。虛擬主機之間完全獨立,在外界看來每一臺虛擬主機和一臺獨立的主機完全一樣。它解決了網絡中處于不同域的網絡段,分別在多臺機器上安裝FTP服務器太過浪費的問題。

  在linux下我們可以用多種FTP服務程序來構建FTP服務器,wu-ftp在在因特網中的占有量超過了50%,那么我們下面就以wu-ftp為例為大家介紹Linux系統上如何實現虛擬FTP空間。
  在Linux下,我們可以用wu-ftp、tftp-server、proftpd、gssftp、vsftp等FTP服務程序來構建FTP服務器。由于wu-ftp(Washington University Ftp)廣泛使用在各種Linux發行版本和多種的Unix(其中包括了IBM AIX、FreeBSD、HP-UX、各種BSD、Solaris等)中,同時它在因特網中的占有量超過了50%,并且現在Linux發行版本中都帶有2.6版本的wu-ftp,因此下面以它為例介紹在Linux下如何實現FTP虛擬主機。
  虛擬主機安裝要求
  wu-ftpd提供了虛擬主機的功能。它通過一個FTP軟件在同一臺主機上提供不同FTP服務器,以主機名稱或IP來區分各個不同的虛擬主機。
  wu-ftp有rpm和tar兩種安裝方式。rpm安裝比較簡單,可以直接通過rpm ivh wu-ftp*.rpm 就可以安裝完成。下面主要介紹tar安裝方式。
  對于沒有RPM安裝程序包的Linux,可以從http://www.wu-ftpd.org下載一個源程序tar代碼包,這樣可以更好地按照需求來定制wu-ftp所能支持的各種功能,包含一些附加的upload的速率、虛擬主機等功能。
  1.解壓縮包tar -zxvf wu-ftpd-current.tar.gz:
  #cd wu-ftp
  2.配置所需要的附加功能:
  #./configure ——enable-virtual
  這個enable-virtual參數必須進行設定,通過設定了這個參數,提供虛擬主機的服務,同時增加了對FTP服務器的吞吐量,這樣wu-ftp就擁有了虛擬主機的功能。  3.進行編譯及安裝
  # make
  # make install
  通過以上各個步驟,就已經把服務器成功地安裝在Linux系統上了。現在系統上應該包含了
  /etc/ftpaccess
  /etc/ftpconversions
  /etc/ftpgroups
  /etc/ftphosts
  /etc/ftpusers
  配置文件,以及
  /usr/bin/ftpcount
  /usr/bin/ftpwho
  /usr/sbin/ftprestart
  /usr/sbin/ftpshut
  /usr/sbin/in.ftpd等可執行的程序,當然還包含一些help,man的文檔。只要系統中包含了這些文件,就說明FTP服務器已經安裝成功。
  在這些文件中有兩個文件是關于虛擬主機配置的,其中ftpservers 文件控制了當客戶登陸不同虛擬主機時候,服務器采用不同的配置文件來進行功能設置。例如在ftpservers中增加下面兩個語句:
  172.20.66.10 /etc/ ftpaccess.1
  172.20.66.20 /etc/ ftpaccess.2
  這兩行參數指定了當用戶從10 IP訪問的時候,服務器指定的是ftpaccess.1的配置文件,而當用戶從20 IP訪問的時候,服務器指定的是ftpaccess.2的配置文件。在下面配置虛擬主機的過程中,需要這個文件的配合使用。
  配置虛擬主機
  1.給主機綁定多IP
  wu-ftp的虛擬主機是建立在同一個主機、不同IP的基礎上,因此要在同一臺機器上配置多個IP地址。其中一個方法就是在一塊網卡上綁定多個IP地址。
  如果機器上有一塊網卡,并且通過這個網卡來監聽FTP的服務請求,我們就可以通過ifconfig命令來實現這個功能。
  # ifconfig eth0:0 172.20.66.2 up
  # ifconfig eth0:1 172.20.66.3 up
  我們設置兩個FTP虛擬主機,因此就在網卡上綁定兩個IP地址。在Linux中,一個網卡理論上可以綁定16個IP地址。如果讀者不想通過命令來執行,也可以自行改變/etc/sysconfig/networking中的配置文件,來達到同樣目的。
  2.配置ftpservers文件
  關于ftpservers文件上面已經提到,在此例中可以用到以下的配置:
  172.20.66.2 /etc/ftpaccess1
  172.20.66.3 /etc/ftpaccess2
  該文件給出了存放虛擬主機配置文件的路徑,在客戶端對FTP服務器發出請求的時候,服務器將客戶端請求的IP在該文件中進行查找,看看是否有匹配的配置文件。如果有匹配的配置文件,就調用該IP地址對應的目錄中的配置文件作為該客戶端的配置文件。如果沒有發現匹配項,就使用默認的配置文件。在該文件中用IP地址或主機名都可以。如果用主機名,就需要/etc/hosts和DNS的支持,來進行解析為最終的IP.由于在配置虛擬主機中,這個文件是可選的,用戶可以不用為每個虛擬主機都設置不同的配置文件,通過在主ftpaccess文件中做一些設置也可以達到相應目的。我們就通過配置ftpaccess來實現虛擬主機的功能。  3.配置ftpaccess文件中的虛擬主機部分
  虛擬服務器的ftpaccess配置文件與不提供虛擬服務器版本相比,增加了virtia、root、logfile等多個指令,這些都是在編譯源代碼的時候產生的。下面就這些參數進行說明。
  (1)virtual
  virtual
  上面各個參數設定了虛擬主機的各種基本配置,其中virtual參數前綴說明下面的參數是為了設定虛擬主機而設定的;address指定了虛擬主機的IP地址,這里應該是172.20.66.2和172.20.66.3兩個IP.
  下面的參數都是建立在virtual下面的子參數:
  ◆ root 指定了該虛擬主機的ftp根目錄;
  ◆ banner 指定了該虛擬主機的系統提示信息;
  ◆ logfile 指定了該虛擬主機的日志文件所在的位置;
  ◆ hostname 指定了該虛擬主機的主機名稱;
  ◆ email 指定了該虛擬主機管理者的E-mail地址。
  比如,在下例中指定了一個虛擬FTP服務器的配置情況:
  # 虛擬主機的配置設定
  virtual 172.20.66.2 root /var/ftp/virtual1
  virtual 172.20.66.2 banner /var/ftp/virtual/1.msg
  virtual 172.20.66.2 logfile /var/log/ftp/virtual/1xferlog
  virtual 172.20.66.2 hostname 1
  virtual 172.20.66.2 email [email protected]
  virtual 172.20.66.3 root /var/ftp/virtual2
  virtual 172.20.66.3 banner /var/ftp/virtual/2.msg
  virtual 172.20.66.3 logfile /var/log/ftp/virtual/2xferlog
  virtual 172.20.66.3 hostname 2
  virtual 172.20.66.3 email [email protected]
  (2)virtual
  allow [ ……]
  virtual
  deny [ ……]
  上面這些參數設定虛擬主機的權限。其中allow和 deny都是virtual的子參數,它們設定是否可以訪問虛擬主機的設置。一般情況下real和guest兩個class是用戶不允許訪問虛擬主機,該兩個指示用來重新對允許和拒絕訪問的虛擬主機的用戶進行定義,通過這些設置和ftpuser的搭配,可以更加細化服務器。
  (3)defaultserver deny [ ……]
  defaultserver allow [ ……]
  defaultserver private
  上面這幾個參數設定了虛擬主機中訪問權限默認值。請注意它們不是virtual的子參數。其中:
  defaultserver private 指定了默認的虛擬服務器是否拒絕anonymous用戶訪問 .
  defaultserver deny 指定了默認的虛擬服務器拒絕哪些用戶的訪問。
  defaultserver allow 指定了默認的虛擬服務器接受哪些用戶的訪問。
  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、
  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、