一:基本知識 1:虛擬用戶:與系統無關聯,不能登入系統,只能訪問FTP服務器 2:vsftp的服務進程是vsftpd3:vsftpd的配置文件是/etc/vsftpd/vsftpd.conf.4:vsftpd的用戶文件是/etc/vsftpd/ftpusers5:vsftpd的用戶文件是/etc/vsftpd/user_list6:推薦使用虛擬用戶登入vs-FTP服務器
二、安裝vsftp
查看是否安裝vsftpd服務
1. [root@localhost ~]# chkconfig --list 如果沒有安裝,安裝vsftpd服務
1. [root@localhost ~]# yum -y install vsftpd
三、配置虛擬用戶
1)檢查服務器selinux是否開啟,如果開啟,關閉selinux
1. [root@localhost ~]# /usr/sbin/sestatus -v
2. SELinux status: enabled
1.1)關閉selinux方法
修改/etc/selinux/config文件, 將SELINUX=enforcing改為SELINUX=disabled, 重啟機器即可
2)創建虛擬用戶文本文件,添加虛擬用戶和密碼
1. [root@localhost ~]# cd /etc/vsftpd/
2. [root@localhost ~]# touch vuser.txt
奇數行是用戶名,偶數是密碼 比如: lowkeyman 123456
3)生成虛擬數據庫文件(*如果db_load沒有安裝,yum install db4-utils db4-develdb4-4.3安裝才能使用。)
1. [root@localhost ~]# db_load –T –t hash –f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
4)配置PAM文件,目的是對客戶端進行驗證
編輯/etc/pam.d/vsftpd文件,批注所有內容,后添加:
1. auth required pam_userdb.so db=/etc/vsftpd/vuser
2. account required pam_userdb.so db=/etc/vsftpd/vuser
*不能寫成db=/etc/vsftpd/vuser.db5)修改虛擬數據庫文件vuser.db的權限為 700
1. [root@localhost ~]# chmod 700 vuser.db
6)增加一個系統用戶vuser,使用它來對應所有虛擬用戶,虛擬用戶使用系統用戶來訪問ftp服務器。
1. [root@localhost ~]# mkdir /vsftp
2. [root@localhost ~]# useradd -d /var/ftp/pub-s /sbin/nologin vuser
3. [root@localhost ~]# chown vuser:vuser /var/ftp/pub
7)修改vsftpd.conf配置文件,使虛擬用戶可以訪問vsftpd服務器,增加以下參數
修改/etc/vsftpd/vsftpd.conf如下:
anonymous_enable=NO(是否允許匿名登錄FTP服務器,默認設置為YES 允許,即用戶可使用用戶名ftp 或anonymous 進行ftp 登錄,口令為空。如 不允許匿名訪問設置為NO) local_enable=YES(是否允許本地用戶登錄FTP服務器,默認設置為YES允許,本地用戶登錄后會進入指定的用戶主目錄,而匿名用戶登錄后進入匿名用戶的下載目錄/var/ftp/pub;設置虛擬賬戶必須設會YES) local_umask=022(設置本地用戶的文件掩碼為缺省022,得到上傳文件的初始權限) #anon_upload_enable=YES(是否允許匿名用戶上傳文件,須將write_enable=YES,默認設置為YES 允許) #anon_mkdir_write_enable=YES(是否允許匿名用戶創建新文件夾,默認設置為YES允許) xferlog_enable=YES(默認值為NO如果啟用此選項,系統將會維護記錄服務器上傳和下載情況的日志文件,默認情況該日志文件為/var/log/vsftpd.log,也可以通過下面的xferlog_file 選項對其進行設定) connect_from_port_20=YES(設定 FTP服務器將啟用FTP數據端口的連接請求,端口20為ftp-data數據傳輸,21 為連接控制端口) #chown_uploads=YES(設定是否允許改變上傳文件的屬主,與下面一個設定項配合使用) #chown_username=whoever(設置想要改變的上傳文件的屬主,如果需要,則輸入一個系統用戶名,例如可以把上傳的文件都改成root屬主。whoever任何人) #xferlog_file=/var/log/xferlog(設定系統維護記錄FTP服務器上傳和下載情況的日志文件,/var/log/vsftpd.log是默認的,也可以另設其它) xferlog_std_format=YES idle_session_timeout=600(設置數據傳輸中斷間隔時間,此語句表示空閑的用戶會話中斷時間為600秒,即當數據傳輸結束后,用戶連接FTP服務器的時間不應超過600秒,可以根據實際情況對該值進行修改) #data_connection_timeout=120(設置數據連接超時時間,該語句表示數據連接超時時間為120秒,可根據實際情況對其修改) #noPRiv_user=ftpsecure(運行 vsftpd需要的非特權系統用戶,缺省是nobody) #async_abor_enable=YES #ascii_upload_enable=YES #ascii_download_enable=YES #ftpd_banner=Welcome to blah FTP service. #deny_email_enable=YES #banned_email_file=/etc/vsftpd/banned_emails #chroot_list_enable=YES(設置為 NO時,用戶登錄FTP 服務器后具有訪問自己目錄以外的其他文件的權限,設置為 YES時,用戶被鎖定在自己的宿主目錄中,vsftpd 將在下面 chroot_list_file 選項值的位置尋找 chroot_list 文件,此文件需用戶建立, 再將需鎖定在自己宿主目錄的用戶列入其中,每行一個用戶) # (default follows) #chroot_list_file=/etc/vsftpd/chroot_list(此文件需自己建立,被列入此文件的用戶,在登錄后將不能切換到自己目錄以外的其他目錄,由 FTP服務器自動地 chrooted 到用戶自己的home 目錄下,使得 chroot_list 文件中的用戶不能隨意轉到其他用戶的FTP home 目錄下,從而有利于FTP 服務器的安全管理和隱私保護) listen=YES(如果設置為YES,則 vsftpd 將以獨立模式運行,由vsftpd 自己監聽和處理連接請求) #listen_ipv6=YES(設定是否支持IPV6)
pam_service_name=vsftpd(設置 PAM外掛模塊提供的認證服務所使用的配置文件名,即/etc/pam.d/vsftpd 文件,此文件中file=/etc/vsftpd/ftpusers 字段,說明了PAM 模塊能抵擋的帳號內容來自文件/etc/vsftpd/ftpusers 中) userlist_enable=YES(此選項默認值為NO,則不啟用user_list文件;若此項設為YES ,則啟用user_list 文件,而如果同時設置了 userlist_deny=YES ,則 user_list 文件中的用戶將不允許登錄FTP 服務器,甚至連輸入密碼提示信息都沒有,直接被FTP 服務器拒絕,如果userlist_deny=NO,將則只允許user_list文件中的用戶登陸FTP服務器) userlist_deny=YES(若已啟用userlist_enable項,此項默認為YES,則阻止user_list 文件中的用戶登錄FTP 服務器;反之,則只允許user_list文件中的用戶登錄) tcp_wrappers=YES(表明服務器使用tcp_wrappers作為主機訪問控制方式)
write_enable=NO(決定是否允許一些FTP命令去更改文件系統。包括上傳文件,刪除文件,新增目錄,刪除目錄) download_enable=NO(決定是否允許下載文件,如果設為NO,下載請求將返回“permission denied”)
guest_enable=YES(如果啟用,所有的非匿名用戶登錄時將被視為游客,其名字將被映射為guest_username里所指定的名字。采用虛擬用戶必須設置該選項) guest_username=vuser(設置當游客進入后,其將會被映射的名字。這里設置為“vuser”,即虛擬用戶登陸ftp后被映射的本地用戶名)
virtual_use_local_privs=YES(虛擬用戶和本地用戶權限相同。很重要,保證虛擬用戶有和映射的本地用戶相同的權限) chroot_local_user=YES(設置虛擬用戶被鎖定在自己的宿主目錄中。) user_config_dir=/etc/vsftpd/user_config(定義用戶配置文件的目錄) |
上表中標紅的參數為重要的修改項,每項參數都在其后面的括號中有簡單的說明。當然還有其他的很多參數來配置VSFTPD,這里不一一例句,附錄中將會進行統一的說明。
1. guest_enable=YES ####激活虛擬賬戶
2. guest_username=vuser ####把虛擬賬戶綁定為系統賬戶vuser
3. pam_service_name=vsftpd ####使用PAM驗證
8)設置虛擬用戶的主配置文件,編輯vsftpd.conf文件,添加:
1. user_config_dir=/etc/vsftpd/vsftpd_user_conf
9)建立vsftpd_user_conf
1. [root@localhost ~]# mkdir /etc/vsftpd/vsftpd_user_conf
10)設置虛擬用戶配置文件,與虛擬賬戶同名
1. [root@localhost ~]# touch /etc/vsftpd/vsftpd_user_conf/lowkeyman
11)編輯虛擬賬戶lowkeyman的配置文件lowkeyman,是虛擬賬戶lowkeyman獲得相應的權限
1. anon_world_readable_only=NO ###瀏覽FTP目錄和下載
2. anon_upload_enable=YES ###允許上傳
3. anon_mkdir_write_enable=YES ###建立和刪除目錄
4. anon_other_write_enable=YES ####改名和刪除文件
5. local_root=/var/ftp/pub #### 指定虛擬用戶在系統用戶下面的路徑,限制虛擬用戶的家目錄,虛擬用戶登錄后的主目錄。
新聞熱點
疑難解答