Vsftpd安裝、系統用戶及虛擬用戶配置詳解

一.安裝與啓動vsftpd

yum -y install vsftpd

/usr/sbin/vsftpd或service vsftpd start

netstat -ntlp

chkconfig --level 35 vsftpd on

二.FTP相關配置文件說明

1.vsftpd.conf文件說明

anonymous_enable=YES 是否允許匿名ftp,如否則選擇NO

local_enable=YES 是否允許本地用戶登錄

write_enable=YES 允許使用任何可以修改文件系統的FTP的指令

local_umask=022 默認的umask碼

anon_upload_enable=YES 允許匿名上傳文件

anon_mkdir_write_enable=YES 是否允許匿名用戶有創建目錄的權利

dirmessage_enable=YES 是否顯示目錄說明文件,默認是YES但需要收工創建.message文件

xferlog_enable=YES 是否記錄ftp傳輸過程

connect_from_port_20=YES 是否確信端口傳輸來自20(ftp-data)

chown_upload=YES 所有匿名上傳的文件的所屬用戶將會被更改成chown_username 

chown_username=username 是否改變上傳文件的屬主,如果是需要輸入一個系統用戶名,你可以把上傳的文件都改成root屬主

xferlog_file=/var/log/vsftpd.log ftp傳輸日誌的路徑和名字默認是/var/log/vsftpd.log

xferlog_std_format=YES 是否使用標準的ftp xferlog模式

idle_session_timeout=600 設置默認的斷開不活躍session的時間

data_connection_timeout=120 設置數據傳輸超時時間

nopriv_user=ftpsecure 運行vsftpd需要的非特權系統用戶,默認是nobody

async_abor_enable=YES 允許使用\"async ABOR\"命令,一般不用,容易出問題 

ascii_upload_enable=YES 管控是否可用ASCII 模式上傳。默認值爲NO

ascii_download_enable=YES 是否使用ascii碼方式上傳和下載文件

ftpd_banner=Welcome to chenlf FTP service. 定製歡迎信息

deny_email_enable=YES 如果匿名用戶需要密碼,那麼使用banned_email_file裏面的電子郵件地址的用戶不能登錄

banned_email_file=/etc/vsftpd.banned_emails 禁止使用匿名用戶登陸時作爲密碼的電子郵件地址 

chroot_local_user=YES 在預設的情況下,是否要將使用者限制在自己的家目錄之內,如果是YES代表用戶默認就會被chroot,如果是NO,則預設是沒有chroot。不過,實際還是需要底下的兩個參數互相參考才行。爲了安全性,這裏應該要設定成YES纔好

chroot_list_enable=YES 如果啓動這項功能,則所有列在chroot_list_file中的使用者不能更改根目錄 

chroot_list_file=/etc/vsftpd.chroot_list 定義不能更改用戶主目錄的文件

ls_recurse_enable=YES    是否能使用ls -R命令以防止浪費大量的服務器資源 

listen=YES 

pam_service_name=vsftpd   定義PAM 所使用的名稱,預設爲vsftpd

userlist_enable=YES  若啓用此選項,userlist_deny選項才被啓動 

tcp_wrappers=YES  開啓tcp_wrappers支持 

#local_root=/home/username   當本地用戶登入時,將被更換到定義的目錄下。默認值爲各用戶的家目錄。



2.vsftpd.ftpusers文件說明

root //默認情況下,root和它以下的用戶是不允許登錄FTP服務器的.可以將不允許登錄的用戶添加到這裏來.但切記每個用戶都要單獨佔用一行.
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

3.vsftpd.user_list文件說明

其實它的內容跟上面那個文件內容一樣,只是在系統對文件vsftpd.conf 進行檢測時,會檢測到"userlist_deny=YES",因此這個文件必須存在.


注意:修改前建議使用“cp”命令備份這三個文件,修改完成後需要重啓vsftpd服務才能使設置生效。


三.配置實例

不允許匿名登錄FTP,只允許系統用戶登錄,且固定到自己的家目錄

爲了防止配置過程中出現錯誤,一般應把原配置文件/etc/vsftpd/vsftpd.conf複製一份到別的目錄中,一旦配置後出現問題解決不了,還可以把原配置文件複製回來.

修改文件/etc/vsftpd/vsftpd.conf如下:

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/xferlog

xferlog_std_format=YES

dual_log_enable=YES

vsftpd_log_file=/var/log/vsftpd.log

ascii_upload_enable=YES

ascii_download_enable=YES

ftpd_banner=Welcome to my FTP service.

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

listen=YES


pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

use_localtime=YES


touch /var/log/vsftpd.log

touch /var/log/xferlog

touch /etc/vsftpd/chroot_list

vim /etc/vsftpd/chroot_list

把要固定在家目錄的用戶添加到裏面


service vsftpd restart


Ps:一定要加上 chroot_local_user=YES

否則通過瀏覽器登錄時會默認在根/下,不僅能訪問其他目錄,還有讀、寫權限

Vsftpd虛擬用戶的配置

第一步、安裝

#cd  /etc/yum.repos.d/

# rm -rf *

# wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo

# yum clean all

# yum -y install vsftpd

# yum -y install db4-utils

 

第二步、建立虛擬用戶

#vim /etc/vsftpd/vu_list.txt

 

user1  password1  user2  password2  user3  password4

格式爲第一行爲用戶名名,第二行爲密碼,然後類推

 

建立db數據庫,同時只有root用戶才能讀寫

# db_load -T -t hash -f /etc/vsftpd/vu_list.txt /etc/vsftpd/vu_list.db

# chmod 600 /etc/vsftpd/vu_list.db

配置pam文件

# vim /etc/pam.d/vsftpd.vu (64位系統) 

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vu_list
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vu_list

# vim /etc/pam.d/vsftpd.vu (32位系統)

auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login  account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

建立虛擬用戶對應的系統真實用戶

useradd  wangxu4 -d /data -s /sbin/nologin

chown wangxu4.wangxu4 -R /data

注:在虛擬主機服務器上用nginx,用戶爲www,所以我的配置爲虛擬用戶爲www

 

第三步、修改配置文件

# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_file=/var/log/xferlogxferlog_std_format=YESdual_log_enable=YESvsftpd_log_file=/var/log/vsftpd.logascii_upload_enable=YESascii_download_enable=YESftpd_banner=Welcome to FTP service.chroot_local_user=YESlisten=YESlisten_port=2121allow_writeable_chroot=YESuserlist_enable=YEStcp_wrappers=YESguest_enable=YESguest_username=wangxu4pam_service_name=vsftpd.vuuser_config_dir=/etc/vsftpd_vuvirtual_use_local_privs=YES

註釋如下:

anonymous_enable=NO

設定不允許匿名訪問

local_enable=YES

設定本地用戶可以訪問。注意:主要是爲虛擬宿主用戶,如果該項目設定爲NO那麼所有虛擬用戶將無法訪問。

write_enable=YES

設定可以進行寫操作。

local_umask=022

設定上傳後文件的權限掩碼。

anon_upload_enable=NO

禁止匿名用戶上傳。

anon_mkdir_write_enable=NO

禁止匿名用戶建立目錄。

dirmessage_enable=YES

設定開啓目錄標語功能。

xferlog_enable=YES

設定開啓日誌記錄功能。

connect_from_port_20=YES

設定端口20進行數據連接。

chown_uploads=NO

設定禁止上傳文件更改宿主。

xferlog_file=/var/log/vsftpd.log

設定Vsftpd的服務日誌保存路徑。注意,該文件默認不存在。必須要手動touch出來,並且由於這裏更改了Vsftpd的服務宿主用戶爲手動建立的Vsftpd。必須注意給與該用戶對日誌的寫入權限,否則服務將啓動失敗。

xferlog_std_format=YES

設定日誌使用標準的記錄格式。

nopriv_user=vsftpd

設定支撐Vsftpd服務的宿主用戶爲手動建立的Vsftpd用戶。注意,一旦做出更改宿主用戶後,必須注意一起與該服務相關的讀寫文件的讀寫賦權問題。比如日誌文件就必須給與該用戶寫入權限等。

async_abor_enable=YES

設定支持異步傳輸功能。

ascii_upload_enable=YES

ascii_download_enable=YES

設定支持ASCII模式的上傳和下載功能。

ftpd_banner=Welcome to Awei FTP servers

設定Vsftpd的登陸標語。

chroot_local_user=YES

禁止本地用戶登出自己的FTP主目錄。

pam_service_name=vsftpd

設定PAM服務下Vsftpd的驗證配置文件名。因此,PAM驗證將參考/etc/pam.d/下的vsftpd文件配置。

以下這些是關於Vsftpd虛擬用戶支持的重要配置項目。默認Vsftpd.conf中不包含這些設定項目,需要自己手動添加配置。

guest_enable=YES

設定啓用虛擬用戶功能。

guest_username=ftp

指定虛擬用戶的宿主用戶。

virtual_use_local_privs=YES

設定虛擬用戶的權限符合他們的宿主用戶。

user_config_dir=/etc/vsftpd/vconf

設定虛擬用戶個人Vsftp的配置文件存放路徑。也就是說,這個被指定的目錄裏,將存放每個Vsftp虛擬用戶個性的配置文件,一個需要注意的

地方就是這些配置文件名必須和虛擬用戶名相同。

 

第四步、建立日誌

因爲默認vsftpd的日誌文件不存在,需要手工建立,同時賦予權限

# touch /var/log/vsftpd.log

# chown /var/log/vsftpd.log

 

第五步、建立虛擬用戶配置文件

# mkdir /etc/vsftpd_vu/

所有權限

# vim /etc/vsftpd_vu/user1

write_enable=YES anonymous_enable=NO anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_umask=022 download_enable=Yes local_root=/data/user1

上傳權限

# vim /etc/vsftpd_vu/user2

write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_umask=022 download_enable=NO local_root=/data/user2

 

只能下載

# vim /etc/vsftpd_vu/user3

write_enable=NO anon_world_readable_only=NO anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO local_umask=022 download_enable=yes local_root=/data/user3

 

啓動服務

#service vsftpd start

新版本vsftpd一定要加上allow_writeable_chroot=YES,否則登錄報500錯誤


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章