1. 程式人生 > >Linux下安裝配置VSFTP伺服器

Linux下安裝配置VSFTP伺服器

1、安裝vsftpd軟體包#yum -y install vsftpd db4 db4-utils
安裝完成後先關閉SELinux及iptables防火牆

2、啟動vsfptd伺服器#service vsftpd start
現在就可以用匿名使用者登入了。預設的匿名使用者為'ftp',密碼為空。根目錄為'/var/ftp'
現在匿名使用者只能從伺服器上下載檔案,沒有上轉及建立資料夾等等許可權。

3、vsftpd配置(/etc/vsftpd/vsftpd.conf)

a:設定使匿名使用者能夠上傳檔案下載檔案以建立資料夾等。

anon_upload_enable=YES #設定匿名使用者有上轉檔案的許可權
anon_mkdir_write_enable=YES #設定匿名使用者新建資料夾及檔案許可權
anon_other_write_enable=YES #設定匿名使用者有重新命名及刪除等許可權
改完上面的備置後重啟vsftpd服務

登入vsftp伺服器後發現還是不能上轉檔案等,這裡是因為/var/ftp的目錄所屬權為root。
不過,即使你改了/var/ftp的屬性權為ftp能達到效果,不過你再次登入時你會發現登不了vsftp伺服器了。
所在,所以我們改ftp裡的面的資料夾才可生效。
#chown ftp /var/ftp/pub

好了,完成上面這步後,我們的匿名用就可以正常登入並可以上傳下載,及建立刪除資料夾等。

b:設定使本地使用者能夠上傳檔案下載檔案以建立資料夾等。首先我們要先建立一個本地使用者,因為vsftpd為了安全預設的情況下是不允許root等擁有高階許可權的使用者登入的。
且體是哪些使用者可以檢視(/etc/vsftpd/ftpusers)

#useradd -s /sbin/nologin micxp  #這裡用 -s /sbin/nologin使該使用者不登入系統。
#passwd micxp    #這裡為給micxp使用者設定密碼為123
Changing password for user micxp.
New password:123
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is too simple
Retype new password:123
passwd: all authentication tokens updated successfully.

好了,在vspftd.conf預設的置設定就可以用本地使用者登入ftp伺服器了。並且也有上轉與下載
刪除與建立資料夾等許可權,不過,你會發這個使用者可以切換到系統的根目錄下。這樣是很不安裝的,
所以我們要設定配置檔案,把本地使用者限制在自己的家目錄下。也就是/home/micxp

chroot_local_user=YES  #這裡開啟把所有的本地使用者限制在自己的家目錄下(下面的設定將無效)

如需限制部份使用者把上面的配置設為NO,並把下面的兩個啟用。
chroot_list_enable=YES #這裡開啟是把需要限制的使用者限制在家目。需要限制的使用者須寫入下面的chroot_list檔案中。
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list  #這個與chroot_list_enable配對使用。

現在我對本地使用者的配置己基本完成。對於一些如果限速及客戶端連結數的設定在後面介紹。

下面是控制本地使用者是否可登入配置
第一種方法
userlist_enable=YES
userlist_deny=YES #則 /etc/vsftpd/user_list檔案中的使用者禁止登入
第二種方法
userlist_enable=YES
userlist_deny=NO  #則 /etc/vsftpd/user_list檔案中的使用者可以登入

說明:"/etc/vsftpd/user_list"是預設存在的,還有一個檔案"/etc/vsftpd/ftpusers"這個檔案中的使用者是禁止登入。

c:設定使用虛擬使用者能夠上傳檔案下載檔案以建立資料夾等。

首先建立一個虛擬使用者口令的文字檔案,格式為單數行為使用者名稱,偶數行為口令
如下:
vi /etc/vsftpd/vuser.txt
輸入以下內容
vmicxp  #虛擬用啟名
456     #使用者口令

儲存,並用db_load生成使用者口令庫檔案。如下:
#db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
#chmod 600 /etc/vsftpd/vuser.db  #為了安全設為只讀。

現在編輯/etc/vsftpd/vsftpd.conf 檢視是有否有 pam_service_name=vsftpd 確保開啟。如果沒有自行新增。

pam_service_name=vsftpd
guest_enable=YES  #這個是開啟虛擬使用者
guest_username=vsftp  #虛擬使用者所對映的本地使用者

現在來建立一下這個"vsftp"使用者
#useradd vsftp
上面那個vsftpd是在/etc/pam.d/vsftpd 這個文,開啟這個檔案用#號註釋掉所有內容。並新增以下兩行。

auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser

需要注意的是,上面那個db所指的vuser這個檔案不需要加".db"不然會登入不了的。

好了,現在就可以用vmicxp這個使用者登入vsftp伺服器了,不過你會發現能登入但什麼也看不到。是因為虛擬用的預設許可權為匿名用許可權,需在主配置檔案中設定"virtual_use_local_privs=YES"使虛擬使用者擁有和本地使用者一樣的許可權。

virtual_use_local_privs 這個引數具體用法如下。

當virtual_use_local_privs=YES時,虛擬使用者和本地使用者有相同的許可權;
當virtual_use_local_privs=NO時,虛擬使用者和匿名使用者有相同的許可權,預設是NO。

當virtual_use_local_privs=YES,write_enable=YES時,虛擬使用者具有寫許可權(上傳、下載、刪除、重新命名)。

當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES時,虛擬使用者不能瀏覽目錄,只能上傳檔案,無其他許可權。

當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO時,虛擬使用者只能下載檔案,無其他許可權。

當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES時,虛擬使用者只能上傳和下載檔案,無其他許可權。

當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES時,虛擬使用者只能下載檔案和建立資料夾,無其他許可權。

當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_other_write_enable=YES時,虛擬使用者只能下載、刪除和重新命名檔案,無其他許可權。

注你也可以用user_config_dir=/etc/vsftpd/vsftpd_user_conf來為每個虛擬用設定當獨的許可權

#mkdir /etc/vsftpd/vsftpd_user_conf
#vi /etc/vsftpd/vsftpd_user_conf/vmicxp  #vmicxp 這個檔名對應於你每一個虛擬使用者。

#如為這個用設定他的家目錄。

local_root=/home/vmicxp

好了現在也完成了虛擬使用者的設定了。