歡迎您光臨本站 註冊首頁

vsFTP伺服器的維護

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

vsFTP伺服器的維護

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啟動?

 

引自:http://blog.chinaunix.net/u/17928/showart_303929.html 

現在這裡還沒有關於維護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
我的一個簡單配置
 
 
文件:vsftpd.tar.gz
大小:2KB
下載:下載


[火星人 ] vsFTP伺服器的維護已經有479次圍觀

http://coctec.com/docs/net/show-post-68391.html