VSFTP配置

1 vsFTP服務器的安裝

1.1 匿名服務器的連接(獨立的服務器)
1.2 開啓匿名FTP服務器上傳權限
1.3 開啓匿名服務器下傳的權限
1.4 普通用戶FTP服務器的連接(獨立服務器)
1.5 用戶登陸限制進其它的目錄,只能進它的主目錄
1.6 限制本地用戶訪問FTP
1.7 安全選項
1.8 查看誰登陸了FTP,並殺死它的進程

2 vsFTP服務器的配置

2.1 配置本地組訪問的FTP
2.2 配置獨立FTP的服務器的非端口標準模式進行數據連接
2.3 配置單獨的虛擬FTP,使用虛擬FTP用戶,並使建立的四個帳戶中有不同的權限

2.3.1 A:配置網卡
2.3.2 B:寫入/etc/sysconfig中(爲了重起後IP地址不會丟失)
2.3.3 C:進入vsftpd.conf所在的文件夾
2.3.4 D:建立logins.txt
2.3.5 E:建立訪問者的口令庫文件,然後修改其權限
2.3.6 F:進如/etc/pam.d/中創建ftp.vu
2.3.7 G:在/var/ftp/創建目錄並改變其屬性和它的屬主
2.3.8 H:進入vsftpd2.conf修改其中的信息
2.3.9 I:在vsftpd.comf所在的目錄中創建virtaul文件目錄並在文件目錄中創建以你用戶名命名的配置文件
2.3.10 J:修改vsftpd2.conf

2.4 vsftpd.conf中的所有配置信息

3 vsFTP服務器的維護

4 vsFTP使用的一些補充

4.1 補充一:如何有選擇的把用戶限制在家目錄中呢?
4.2 補充二:打開vsFTP服務器的日誌功能
4.3 補充三:如何讓綁定IP到vsFTP?
4.4 補充四:如何讓vsFTP服務器限制鏈接數,以及每個IP最大的鏈接數??
4.5 補充五:如何限制下載的速度?
4.6 補充六:我的硬盤空間有限,怎麼辦?
4.7 補充七:如何定製歡迎信息
4.8 補充八:如何實現虛擬路徑?
4.9 補充九:如何上匿名訪問、上傳,並支持下載和執行?
4.10 補充十:通過pam認證方式,添加虛擬用戶
4.11 補充十一:如何把系統默認用standalone啓動改爲用xinetd啓動?

vsFTP服務器的安裝
安裝一個軟件實在是不許要在這裏介紹,因此,這裏的安裝主要針對vsFTPd服務器的初級配置。 
VSFTPD的菜鳥篇 
版權聲明:可以任意轉載,轉載時請務必以超鏈接形式標明文章原始出處和作者信息及本聲明 
[原文出處 
http://www.5ilinux.com/vsftp01.html

這是我這個菜鳥學習LINUX所寫的第一篇文章,是比較基礎的FTP架設的應用,如果我寫有
什麼問題請大家多指教,我後續會陸續出進階篇把FTP中各種詳細的配置跟大家一起進行探討。我所用的是Redhat Linux AS +
VSFTPD-1.2.0-4的系統架構,在這裏說明的是如果對配置文件不是很熟悉,最好做個備份,以免誤操作: 
匿名服務器的連接(獨立的服務器)
在/etc/vsftpd/vsftpd.conf配置文件中添加如下幾項:

  anonymous_enable=yes (允許匿名登陸)
  dirmessage_enable=yes (切換目錄時,顯示目錄下.message的內容)
  local_umask=022 (FTP上本地的文件權限,默認是077)
  connect_form_port_20=yes (啓用FTP數據端口的數據連接)*
  xferlog_enable=yes (激活上傳和下傳的日誌)
  xferlog_std_format=yes (使用標準的日誌格式)
  ftpd_banner=XXXXX (歡迎信息)
  pam_service_name=vsftpd (驗證方式)*
  listen=yes (獨立的VSFTPD服務器)*

功能:只能連接FTP服務器,不能上傳和下傳
注:其中所有和日誌歡迎信息相關連的都是可選項,打了星號的無論什麼帳戶都要添加,是屬於FTP的基本選項 
開啓匿名FTP服務器上傳權限
在配置文件中添加以下的信息即可:

  Anon_upload_enable=yes (開放上傳權限)
  Anon_mkdir_write_enable=yes (可創建目錄的同時可以在此目錄中上傳文件)
  Write_enable=yes (開放本地用戶寫的權限)
  Anon_other_write_enable=yes (匿名帳號可以有刪除的權限)

開啓匿名服務器下傳的權限
在配置文件中添加如下信息即可:

  Anon_world_readable_only=no

注:要注意文件夾的屬性,匿名帳戶是其它(other)用戶要開啓它的讀寫執行的權限
(R)讀-----下傳 (W)寫----上傳 (X)執行----如果不開FTP的目錄都進不去 
普通用戶FTP服務器的連接(獨立服務器)
在配置文件中添加如下信息即可:

  Local_enble=yes (本地帳戶能夠登陸)
  Write_enable=no (本地帳戶登陸後無權刪除和修改文件)

功能:可以用本地帳戶登陸vsftpd服務器,有下載上傳的權限
注:在禁止匿名登陸的信息後匿名服務器照樣可以登陸但不可以上傳下傳 
用戶登陸限制進其它的目錄,只能進它的主目錄
設置所有的本地用戶都執行chroot

  Chroot_local_user=yes (本地所有帳戶都只能在自家目錄)

設置指定用戶執行chroot

  Chroot_list_enable=yes (文件中的名單可以調用)
  Chroot_list_file=/任意指定的路徑/vsftpd.chroot_list

注意:vsftpd.chroot_list 是沒有創建的需要自己添加,要想控制帳號就直接在文件中加帳號即可 
限制本地用戶訪問FTP
  Userlist_enable=yes (用userlistlai 來限制用戶訪問)
  Userlist_deny=no (名單中的人不允許訪問)
  Userlist_file=/指定文件存放的路徑/ (文件放置的路徑)

注:開啓userlist_enable=yes匿名帳號不能登陸 
安全選項
  Idle_session_timeout=600(秒) (用戶會話空閒後10分鐘)
  Data_connection_timeout=120(秒) (將數據連接空閒2分鐘斷)
  Accept_timeout=60(秒) (將客戶端空閒1分鐘後斷)
  Connect_timeout=60(秒) (中斷1分鐘後又重新連接)
  Local_max_rate=50000(bite) (本地用戶傳輸率50K)
  Anon_max_rate=30000(bite) (匿名用戶傳輸率30K)
  Pasv_min_port=50000 (將客戶端的數據連接端口改在
  Pasv_max_port=60000 50000—60000之間)
  Max_clients=200 (FTP的最大連接數)
  Max_per_ip=4 (每IP的最大連接數)
  Listen_port=5555 (從5555端口進行數據連接)

查看誰登陸了FTP,並殺死它的進程
  ps –xf |grep ftp
  kill 進程號





vsFTP服務器的配置
VSFTPD的高手篇 
版權聲明:可以任意轉載,轉載時請務必以超鏈接形式標明文章原始出處和作者信息及本聲明 
[原文出處 
http://www.5ilinux.com/vsftp02.html

我可不是高手!!!^_^我只不過是個菜鳥,盡我的能力寫出了我這個菜鳥覺得的高手篇,所以有什麼錯誤請大家指正哦!!! 
環境:linux as 3.0 + vsftpd -1.2.0-4的系統架構,是在獨立服務器下的哦!討厭XINETD^_^ 
配置本地組訪問的FTP
首先創建用戶組 test和FTP的主目錄 
  groupadd test
  mkdir /tmp/test

然後創建用戶 
  useradd -G test –d /tmp/test –M usr1

注:G:用戶所在的組 d:表示創建用戶的自己目錄的位置給予指定 
M:不建立默認的自家目錄,也就是說在/home下沒有自己的目錄 
  useradd –G test –d /tmp/test –M usr2

接着改變文件夾的屬主和權限 
  chown usr1.test /tmp/test ----這表示把/tmp/test的屬主定爲usr1
  chmod 750 /tmp/test ----7表示wrx 5表示rx 0表示什麼權限都沒有

這個實驗的目的就是usr1有上傳、刪除和下載的權限 
而usr2只有下載的權限沒有上傳和刪除的權限 
當然啦大家別忘了我們的主配置文件vsftpd.conf 
要確定local_enable=yes、write_enable=yes、chroot_local_usr=yes這三個選項是有的哦! 


配置獨立FTP的服務器的非端口標準模式進行數據連接
這個非常容易:在VSFTPD。CONF中添加 
  Listen_port=33333

就可以了啦! 


配置單獨的虛擬FTP,使用虛擬FTP用戶,並使建立的四個帳戶中有不同的權限
(兩個有讀目錄的權限,一個有瀏覽、上傳、下載的權限,一個有瀏覽、下載、刪除和改文件名的權限) 
A:配置網卡
第一塊網卡地址是10.2.3.4 掩碼是255.255.0.0 
  ifconfig eth0:1 211.131.4.253 netmask 255.255.255.0 up

B:寫入/etc/sysconfig中(爲了重起後IP地址不會丟失)
  cd /etc/sysconfig/network-scripts
  cp ifcfg-eth0 ifcfg-eth0:1
  vi ifcfg-eth0:1在其中修改內容如下
  DEVICE=eth0:1
  BROADCAST=211.131.4.255
  HWADDR=該網卡的MAC地址
  IPADDR=211.131.4.253
  NETMASK=255.255.255.0
  NETWORK=211.131.4.0
  onBOOT=yes
  TYPE=Ethernet
  wq退出

C:進入vsftpd.conf所在的文件夾
  cp vsftpd.conf vsftpd2.conf

修改vsftpd.conf添加以下信息 
  Listen_address=10.2.3.4

修改vsftpd2.conf添加以下信息 
  Listen_address=211.131.4.253
  Ftpd_banner=this is a virtual ftp test

到此虛擬的FTP服務器建立好了 
D:建立logins.txt
  vi /tmp/logins.txt

添加入下信息: 
  longlei------------用戶名
  longlei------------密碼
  zhangweibo
  zhangweibo
  jinhui
  jinhui
  lxp
  lxp

格式要按照我的來哦,一個用戶名,一個密碼啦 
E:建立訪問者的口令庫文件,然後修改其權限
  db_load –T –t hash –f /tmp/logins.txt /etc/vsftpd_login.db

F:進如/etc/pam.d/中創建ftp.vu
在此文件中添加如下信息 
  auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
  account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

G:在/var/ftp/創建目錄並改變其屬性和它的屬主
  useradd -d /var/ftp/test qiang
  chmod 700 /var/ftp/test

在目錄中添加test_file測試文件 
H:進入vsftpd2.conf修改其中的信息
  Listen_yes
  Anonymous_enable=no
  Local_enable=yes
  Write_enable=no
  Anon_upload_enable=no
  Anon_mkdir_write_enable=no
  Anon_other_write_enable=no
  Chroot_local_user=yes
  Guest_enable=yes----------起用虛擬用戶
  Guest_username=qiang------將虛擬用戶映射爲本地用戶
  Listen_port=5555
  Max_client=10
  Max_per_ip=1
  Ftpd_banner=this is a virtual server and users
  Pam_service_name=ftp.vu

注:在主配置文件中給的權限越低,在後面分用戶管理的時候對擁護的權限劃分的空間就越大,因爲主配置文件最高的限制服務先讀主配置文件,然後再讀用戶的配置文件 
重起服務。到此虛擬USER就建好了 
I:在vsftpd.comf所在的目錄中創建virtaul文件目錄並在文件目錄中創建以你用戶名命名的配置文件
  Longlei zhangweibo jinhui lxp

在longlei中添加: 
  Anon_world_readable_only=no

在lxp中添加 
  Anon_world_readable_only=no

這樣此兩個用戶就有了瀏覽目錄的權限了 
在jinhui中添加 
  Anon_world_readable_only=no
  Write_enable=yes
  Anon_upload_enable=yes

此用戶就有了上傳、下載和瀏覽的權限 
在zhangweibo中添加 
  Anon_world_readable_only=no
  Write_enable=yes
  Anon_upload_enable=yes
  Anon_other_write_enable=yes

此用戶就有了上傳、下載、刪除文件目錄、修改文件名和瀏覽的權限 
J:修改vsftpd2.conf
加入user_config_dir=/vsftpd.conf所在的目錄/virtual 
重起服務器就搞定了 


vsftpd.conf中的所有配置信息


vsftpd.conf的參數: 
Anonymous_enable=yes
允許匿名登陸 
Dirmessage_enable=yes
切換目錄時,顯示目錄下.message的內容 
Local_umask=022
FTP上本地的文件權限,默認是077 
Connect_form_port_20=yes
啓用FTP數據端口的數據連接 * 
Xferlog_enable=yes
激活上傳和下傳的日誌 
Xferlog_std_format=yes
使用標準的日誌格式 
Ftpd_banner=XXXXX
歡迎信息 
Pam_service_name=vsftpd
驗證方式 * 
Listen=yes
獨立的VSFTPD服務器 * 
Anon_upload_enable=yes
開放上傳權限 
Anon_mkdir_write_enable=yes
可創建目錄的同時可以在此目錄中上傳文件 
Write_enable=yes
開放本地用戶寫的權限 
Anon_other_write_enable=yes
匿名帳號可以有刪除的權限 
Anon_world_readable_only=no
放開匿名用戶瀏覽權限 
Ascii_upload_enable=yes
啓用上傳的ASCII傳輸方式 
Ascii_download_enable=yes
啓用下載的ASCII傳輸方式 
Banner_file=/var/vsftpd_banner_file
用戶連接後歡迎信息使用的是此文件中的相關信息 
Idle_session_timeout=600(秒)
用戶會話空閒後10分鐘 
Data_connection_timeout=120(秒)
將數據連接空閒2分鐘斷 
Accept_timeout=60(秒)
將客戶端空閒1分鐘後斷 
Connect_timeout=60(秒)
中斷1分鐘後又重新連接 
Local_max_rate=50000(bite)
本地用戶傳輸率50K 
Anon_max_rate=30000(bite)
匿名用戶傳輸率30K 
Pasv_min_port=50000
將客戶端的數據連接端口改在 
Pasv_max_port=60000
50000—60000之間 
Max_clients=200
FTP的最大連接數 
Max_per_ip=4
每IP的最大連接數 
Listen_port=5555
從5555端口進行數據連接 
Local_enble=yes
本地帳戶能夠登陸 
Write_enable=no
本地帳戶登陸後無權刪除和修改文件 
下面這是一組
Chroot_local_user=yes
本地所有帳戶都只能在自家目錄 
Chroot_list_enable=yes
文件中的名單可以調用 
Chroot_list_file=/任意指定的路徑/vsftpd.chroot_list
前提是chroot_local_user=no 
這又是一組
Userlist_enable=yes
在指定的文件中的用戶不可以訪問 
Userlist_deny=yes
Userlist_file=/指定的路徑/vsftpd.user_list 
又開始單的了
Banner_fail=/路徑/文件名
連接失敗時顯示文件中的內容 
Ls_recurse_enable=no
Async_abor_enable=yes
one_process_model=yes
Listen_address=10.2.2.2
將虛擬服務綁定到某端口 
Guest_enable=yes
虛擬用戶可以登陸 
Guest_username=所設的用戶名
將虛擬用戶映射爲本地用戶 
User_config_dir=/任意指定的路徑/爲用戶策略自己所建的文件夾
指定不同虛擬用戶配置文件的路徑 
又是一組
Chown_uploads=yes
改變上傳文件的所有者爲root 
Chown_username=root
又是一組
Deny_email_enable=yes
是否允許禁止匿名用戶使用某些郵件地址 
Banned_email_file=//任意指定的路徑/xx/
又是單的
Pasv_enable=yes
服務器端用被動模式 
User_config_dir=/任意指定的路徑//任意文件目錄
指定虛擬用戶存放配置文件的路徑 


vsFTP服務器的維護
現在這裏還沒有關於維護vsftp服務器的資料。歡迎大家編輯2 
vsFTP使用的一些補充
補充一:如何有選擇的把用戶限制在家目錄中呢?
我們要自己建一個文件,在/etc目錄中 
  #touch /etc/vsftpd.chroot_list

以beinan和nanbei這兩個用戶限制在他們所在的家目錄中,而其它的FTP用戶不做此限制。 
在vsftpd.chroot_list這個文件中,把beinan和nanbei添上去就行,注意,每個用戶佔一行。 
  beinan
  nanbei

然後改/etc/vsftpd/vsftpd.conf文件,找如下的兩行 
  #chroot_list_enable=YES
  #chroot_list_file=/etc/vsftpd.chroot_list

把前面的#號去掉,也就是這樣的 
  chroot_list_enable=YES
  chroot_list_file=/etc/vsftpd.chroot_list

如果沒有這樣的兩行,就可以自己添加上去也是一樣的。 
設置好後,重新vsFTPD服務器。 
補充一之補充:如何把系統內所有的FTP用戶都限制在家目錄中呢??經juliaugong兄的提示,我查找了vsFTPd的洋文說明,證明這個選項是一刀切的解決所有的用戶都能限制在家目錄中 
我們可以通過更改vsftpd.conf文件,加入如下的一行 
  chroot_local_user=YES

改完配製文件,不要忘記重啓vsFTPd服務器 


  [root@linuxsir001 root]# /etc/init.d/vsftpd restart
  關閉 vsftpd: [ 確定 ]
  爲 vsftpd 啓動 vsftpd: [ 確定 ]
  [root@linuxsir001 root]#

補充二:打開vsFTP服務器的日誌功能
把下面xferlog_file前面的#號對掉,也就是把vsftp的log功能打開,這樣我們就能在/var/log目錄下查看vsftpd.log。這是vsFTP的日誌功能,這對於我們來說是極爲重要的。 
  #xferlog_file=/var/log/vsftpd.log

補充三:如何讓綁定IP到vsFTP?
也就是說,如何讓用戶只能通過某個IP來訪問FTP。其實這個功能很有意思。如果綁定的是內網的IP,外部是沒有辦法訪問的。如果綁定的是對外服務的IP,內網也只能通過對外服務的IP來訪問FTP 
在/etc/vsftpd/vsftpd.conf中加一行,以我的局域網爲例,請看第一帖中的操作環境,這樣外網就不能訪問我的FTP了,內網也可能通過192.168.0.2來訪問FTP 
  listen_address=192.168.0.2

加完後,要重啓vsFTP服務器 
  [root@linuxsir001 root]# /etc/init.d/vsftpd restart
  關閉 vsftpd: [ 確定 ]
  爲 vsftpd 啓動 vsftpd: [ 確定 ]
  [root@linuxsir001 root]#

補充四:如何讓vsFTP服務器限制鏈接數,以及每個IP最大的鏈接數??
答:應該改vsFTP服務器的配製文件vsftpd.conf,加入下面的兩行: 
  max_clients=數字
  max_per_ip=數字

舉例:我想讓我的vsFTP最大支持鏈接數爲100個,每個IP,最多能支持5個鏈接,所以我應該在vsftpd.conf中加上如下的兩行: 
  max_clients=100
  max_per_ip=5

改好了配製文件,不要忘記啓動vsftp服務器。 


補充五:如何限制下載的速度?
anon_max_rate=數字 注:這是匿名的下載速度 local_max_rate=數字 注:這是vsFTP服務器上普通用戶的下載速度 
注:這個數字的單位是字節,所以我們要計算一下。比如我想讓匿名用戶和vsFTP上的用戶都以80KB下載,所以這個數字應該是1024x80=81920 所以我們要在vsftpd.conf中加入下面的兩行 
  anon_max_rate=81920
  local_max_rate=81920

不要忘記重啓vsftpd服務 
補充六:我的硬盤空間有限,怎麼辦?
我的硬盤空間有限,如何把帳號ftp默認的路徑/var/ftp更改到別處?或者是,我的linux所有的目錄都放在/根分區,因爲空間緊張,我能否把ftp這個用戶的默認路徑放到別的分區? 
可以,應該如下操作! 
首先要把ftp這個用戶刪除 
  #userdel -r ftp 

會有錯誤信息,不過不用理,這是正常的。 
然後我們再把這個用戶添加上,比如我想爲帳號ftp的家目錄設置在/mnt/LinG/ftp,我們就可以如下操作 
  [root@linuxsir001 root]# mkdir /mnt/LinG
  [root@linuxsir001 root]# adduser -d /mnt/LinG/ftp -g ftp -s /sbin/nologin ftp

僅僅是這樣做還不行,因爲這樣還是不能讓匿名用戶找到它的家目錄,所以我們必須改變/mnt/LinG/ftp這個目錄的權限。 
  [root@linuxsir001 root]# chmod 755 /mnt/LinG/ftp/
  [root@linuxsir001 root]# chown -R root.root /mnt/LinG/ftp/



補充七:如何定製歡迎信息
如何在我們登入有些FTP之後,會出現類似:歡迎您來到LinuxSir FTP,在這裏,您會得到最真誠的幫助,如果有什麼問題和建議,請來信,多謝。 
實現這個並不難,我們可以查看vsftpd.cof文件中,是否有這行。 
  dirmessage_enable=YES

如果沒有就加上,如果dirmessage_enable=YES前面有#號,就把#號去掉。 
然後我們制定一個.message文件,寫上您想要寫的東西,比如是.message的內容是如下的: 
  歡迎您來到LinuxSir FTP!
  在這裏,您會得到最真誠的幫助;
  如果有什麼問題和建議,請來信,多謝。

我們可以用編輯器來寫這個.message,我想這個過程就不用說了吧。 
然後我們把.message這個文件複製到各個用戶的家目錄中。比如我的FTP的一個用戶是beinan,這個用戶所在的家目錄是/home/beinan 
我們就要把.message放在/home/beinan這個目錄下。如果系統用戶ftp,他的目錄
就是/var/ftp這個目錄,這個是默認的,當匿名用戶登入時就訪問的是/var/ftp這個目錄。我們要讓匿名用戶能看到歡迎信息。就要把.
message放在/var/ftp目錄中。其它的用戶,也無非就是類似的操作。 


補充八:如何實現虛擬路徑?
比如: /home/a 映射爲
ftp://localhost/a
/home/b/c 則爲
ftp://localhost/c

其實這個不能說是vsFTPd的內容,其實我們早就接觸過了,可能我們沒有注意,我們可以通過如下的方法來實現。 
  #mount --bind [原有的目錄] [新目錄]

比如我的ftp的默認目錄是/var/ftp,我想把/mnt/LinG/WinSoft文件夾,映射到/var/ftp目錄中,我就如下操作 
我們要先在/var/ftp目錄中建一個目錄 
  #mkdir /var/ftp/WinSoft

然後執行mount命令 
  #mount --bind /mnt/LinG/WinSoft /var/ftp/WinSoft

這樣就OK了。 


補充九:如何上匿名訪問、上傳,並支持下載和執行?
在默認的情況下,vsftp是不支持匿名用戶的訪問的,所以我們要自己打開相應的選項。現在我針對這個問題,我們要打開如下的選項。 
  anonymous_enable=YES 注:允許匿名訪問
  anon_upload_enable=YES 注:允許上傳
  anon_mkdir_write_enable=YES 注:允許建立相應的目錄
  anon_umask=022 把上傳到FTP的文件或者目錄改變權限

當然打開這些選項還是不行的,我們還要讓匿名寫入文件的上一級目錄有寫入權,以我所做的FTP爲例,
我所做的FTP的匿名訪問的目錄是/var/ftp,在vsFTPd中,/var/ftp這個目錄是不能讓匿名用戶有寫入權限的,這是爲了安全考慮,所以
我們必須自己在/var/ftp目錄中建一個目錄,讓這個目錄有寫入權。 
比如:我在/var/ftp目錄建一個upload目錄,然後把它的權限設置成777,這樣匿名用戶就能寫入了。 
  #mkdir /var/ftp/upload 
  #chmod 777 /var/ftp/upload

改了一系列的文件,不要忘記重啓vsFTPd服務器 
我是用standalone模式的,當然用下面的方法 
  [root@linuxsir001 root]# service vsftpd restart
  關閉 vsftpd: [ 確定 ]
  爲 vsftpd 啓動 vsftpd: [ 確定 ]
  [root@linuxsir001 root]#

如果您用的是xinetd模式來啓動vsFTPd,我們要重啓xinetd服務器 
  [root@linuxsir001 root]# service xinetd restart
  停止 xinetd: [ 確定 ]
  啓動 xinetd: [ 確定 ]
  [root@linuxsir001 root]# ]



補充十:通過pam認證方式,添加虛擬用戶
通過pam認證,用db_load添加用戶,是真正的虛擬用戶。現在我們簡單的介紹一下,通過以後的學習,我們再深入補充: 
1。在/etc/pam.d/目錄中創建一個文件ftp 
  [root@linuxsir001 root]# touch /etc/pam.d/ftp

2。在/etc/pam.d/ftp裏面加上如下的兩行 
  auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
  account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

3。創建一系統的用戶名用密碼的文件logins.txt 
  [root@linuxsir001 root]# touch logins.txt

在logins.txt文件中,輸入如下的內容。這個內容您可以自己來定。比如我下面的。其實
linuxsir007是FTP的虛擬用戶名,123456是linuxsir007的密碼;linuxsir008是虛擬用戶名,234567是
linuxsir008的密碼,以此類推,您想加入幾個就是幾個;下面是我添加的FTP的虛擬用戶名和密碼。 
  linuxsir007
  123456
  linuxsir008
  234567
  linuxsir009
  567890
  linuxsir010
  678901
  linuxsir011
  789012

4。創建一個真實的用戶名linuxsir006,這個linuxsir006的用戶,所在的家目錄由您來定。我在這裏不多說了。我是按系統默認的來添加的。 
  [root@linuxsir001 root]# useradd linuxsir006

5。把/etc/hosts複製到/home/linuxsir006,並改變它的屬主 
  [root@linuxsir001 root]#cp /etc/hosts /home/linuxsir006/hosts
  [root@linuxsir001 root]#chown linuxsir006.linuxsir006 /home/linuxsir006/hosts 

6。通過db_load來創建虛擬用戶的庫文件。我們在前面建的logins.txt文件,我是放在了/root用戶目錄下。所以咱們得把目錄切換到/root目錄來創建虛擬用戶的庫文件。 
  [root@linuxsir001 root]# db_load -T -t hash -f logins.txt /etc/vsftpd_login.db

7。更改vsftpd.conf文件,加入如下的幾行 
  pam_service_name=ftp
  guest_enable=YES
  guest_username=linuxsir006
  anon_world_readable_only=NO

8。重啓vsFTPd服務器;改了一系列的文件,不要忘記重啓vsFTPd服務器 
我是用standalone模式的,當然用下面的方法 
  [root@linuxsir001 root]# service vsftpd restart
  關閉 vsftpd: [ 確定 ]
  爲 vsftpd 啓動 vsftpd: [ 確定 ]
  [root@linuxsir001 root]#

如果您用的是xinetd模式來啓動vsFTPd,我們要重啓xinetd服務器 
  [root@linuxsir001 root]# service xinetd restart
  停止 xinetd: [ 確定 ]
  啓動 xinetd: [ 確定 ]
  [root@linuxsir001 root]#

9。如果您想讓用戶登入FTP時,登入成功的相應的信息,請把您製作的.message複製到您的用戶的家目錄中,這方面的請參考前面的補充。 
10。測試: 
  [root@linuxsir001 root]# ftp 192.168.0.1
  Connected to 192.168.0.1.
  220 (vsFTPd 1.1.3)
  530 Please login with USER and PASS.
  530 Please login with USER and PASS.
  KERBEROS_V4 rejected as an authentication type
  Name (192.168.0.1:root): linuxsir007
  331 Please specify the password.
  Password:
  230-歡迎光臨LinuxSir自由FTP
  230-在這裏,您將得到最真誠的幫助!
  230-本站限度爲30KB!
  230-每個IP限四個線程
  230-請大家遵守FTP的有關規定。
  230-多謝合作!
  230-
  230-LinuxSir管理部
  230 Login successful. Have fun.
  Remote system type is UNIX.
  Using binary mode to transfer files.
  ftp> ls
  227 Entering Passive Mode (192,168,0,1,85,171)
  150 Here comes the directory listing.
  -rw-r--r-- 1 ftp ftp 174 Jun 01 12:59 hosts
  drwxr-xr-x 3 ftp ftp 4096 Jun 01 13:29 linuxsir008
  drwxr-xr-x 2 ftp ftp 4096 Jun 01 13:24 sun
  226 Directory send OK.
  ftp>

補充十一:如何把系統默認用standalone啓動改爲用xinetd啓動?
如何把Redhat
9.0中系統默認安裝的vsftpd-1.1.3-8.i386.rpm,系統默認vsFTPd是用standalone啓動方式
,改爲xinetd啓動方式 ?如果是用源碼包安裝的,安裝後就是xinetd模式,如果是用RPM包安裝的,在Redhat
9.0中,應該用下面的方法來解決。 
1.在/etc/xinetd.d/目錄中創建一個文件vsftpd 
  [root@linuxsir001 root]# touch /etc/xinetd.d/vsftpd

/etc/xinetd.d/vsftpd內容如下: 
  service ftp
  {
  socket_type = stream
  wait = no
  user = root
  server = /usr/sbin/vsftpd
  # server_args =
  # log_on_success += DURATION USERID
  # log_on_failure += USERID
  nice = 10
  disable = no
  }

2。複製vsftpd.conf到/etc/目錄下,因爲xinetd對vsFTPd配製文件應該在
/etc目錄下,所以我們就必須把這個文件複製到/etc目錄下,否則會出現系統中local用戶無法登入,也就是說,不復制這個文件會出現ftp非匿名
用戶無法訪問,只能用匿名用戶訪問。 
  [root@linuxsir001 root]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd.conf

3。更改配製文件/etc/vsftpd.conf,把如下的項注掉:也就是把 
  listen=YES

改爲 
  #listen=YES

或者是把這行刪除也行。 
4。把/etc/init.d/vsftpd這個文件刪除。其實最好的備份到別處,因爲我們有時實驗來實驗去,可能還會轉到standalone模式啓動。我就直接移動到別的目錄,比如是/root下面的backup目錄。 


  [root@linuxsir001 root]#mkdir /root/backup
  [root@linuxsir001 root]# mv /etc/init.d/vsftpd /root/backup

5。運行ntsysv,把vsftpd的服務取消 
  [root@linuxsir001 root]#ntsysv
  [ ] vsftpd 

6。重啓xinetd服務 
  [root@linuxsir001 root]# service xinetd restart
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章