天天看點

linux安裝服務-vsftpd

1.檢查是否安裝vsftpd(服務端),ftp(用戶端)。

2.vsftpd相關配置檔案:

/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置檔案

/etc/vsftpd/ftpusers:用于指定哪些使用者不能通路FTP 伺服器。  黑名單

/etc/vsftpd/user_list:userlist_deny=no時,白名單     userlist_deny=yes時,黑名單

3.通過vsftpd.conf配置,實作本地使用者登入ftp,并具有讀寫能力:

(1)建立維護網站内容的ftp 帳号team1 和team2 ,然後設定其密碼

[[email protected] ~]# useradd team1

[[email protected] ~]# useradd team2

[[email protected] ~]# echo "123456" | passwd --stdin team1

Changing password for user team1.

passwd: all authentication tokens updated successfully.

[[email protected] ~]# echo "123456" | passwd --stdin team2

Changing password for user team2.

passwd: all authentication tokens updated successfully.

2)配置vsftpd.conf 主配置檔案并作相應修改

[[email protected] vsftpd]# cp vsftpd.conf.back vsftpd.conf

[[email protected] vsftpd]# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO:禁止匿名使用者登入

local_enable=YES:允許本地使用者登入

ocal_root=/var/www/html:設定本地使用者的根目錄為/var/www/html

chroot_list_enable=YES:啟用chroot(鎖定使用者根目錄) 功能

chroot_list_file=/etc/vsftpd/chroot_list:設定鎖定使用者在根目錄中的清單檔案。此檔案存放要鎖定的使用者名

allow_writeable_chroot=YES :允許鎖定的使用者有寫的權限

儲存退出

(3)建立/etc/vsftpd/chroot_list 檔案,添加team1 和team2 帳号

[[email protected] vsftpd]# touch /etc/vsftpd/chroot_list

[[email protected] ~]# ll !$

ll /etc/vsftpd/chroot_list

-rw-r--r-- 1 root root 0 Nov 10 17:08 /etc/vsftpd/chroot_list

[[email protected] ~]# vim /etc/vsftpd/chroot_list  #寫入以下内容,一行,一個使用者名

team1

team2

(5)修改本地權限

[[email protected] ~]# ll -d /var/www/html/

drwxr-xr-x. 2 root root 4096 Oct  6  2011 /var/www/html/

[[email protected] ~]# chmod -R o+w /var/www/html/

[[email protected] ~]# ll -d /var/www/html/

drwxr-xrwx. 2 root root 4096 Oct  6  2011 /var/www/html/

(6)重新開機vsftpd 服務使配置生效

service vsftpd restart

4.通過vsftpd.conf配置,實作虛拟使用者登入ftp,并具有讀寫能力:

第1步:建立用于進行 FTP 認證的使用者資料庫檔案,其中奇數行為賬戶名,偶數行為密碼。 [[email protected] ~]# cd /etc/vsftpd/ [[email protected] vsftpd]# vim vuser.list zhangsan 123456 lisi 123456   用 db _ load 指令用哈希( hash)算法将原始的明文資訊檔案轉換成資料庫檔案,并且降低 資料庫檔案的權限(避免其他人看到資料庫檔案的内容),然後再把原始的明文資訊檔案 删除。 [[email protected] vsftpd]# db _ load -T -t hash -f vuser.list vuser.db [[email protected] vsftpd]# file vuser.db vuser.db: Berkeley DB (Hash, version 9, native byte-order) [[email protected] vsftpd]# chmod 600 vuser.db [[email protected] vsftpd]# rm -f vuser.list   第2步:建立一個與虛拟使用者對應的系統本地使用者,并為該使用者指定使用者ftp通路的家目錄,并且不允許登入: [[email protected] ~]# useradd -d /var/ftproot -s /sbin/nologin virtual [[email protected] ~]# ls -ld /var/ftproot/ drwx------. 3 virtual virtual 74 Jul 14 17:50 /var/ftproot/ [[email protected] ~]# chmod -Rf 755 /var/ftproot/   第3步:建立用于支援虛拟使用者的 PAM 檔案。 [[email protected] ~]# vim /etc/pam.d/vsftpd.vu auth required pam _ userdb.so db=/etc/vsftpd/vuser account required pam _ userdb.so db=/etc/vsftpd/vuser   第4步:在 vsftpd 服務程式的主配置檔案中通過 pam_service_name 參數将 PAM 認證 檔案的名稱修改為 vsftpd.vu [[email protected] ~]# vim /etc/vsftpd/vsftpd.conf 1 anonymous _ enable=NO 2 local _ enable=YES 3 guest _ enable=YES 第 11 章 4 guest _ username=virtual 5 allow _ writeable _ chroot=YES 6 write _ enable=YES 7 local _ umask=022 8 dirmessage _ enable=YES 9 xferlog _ enable=YES 10 connect _ from _ port _ 20=YES 11 xferlog _ std _ format=YES 12 listen=NO 13 listen _ ipv6=YES 14 pam _ service _ name=vsftpd.vu 15 userlist _ enable=YES 16 tcp _ wrappers=YES   第5步:為虛拟使用者設定不同的權限。 [[email protected] ~]# mkdir /etc/vsftpd/vusers _ dir/ [[email protected] ~]# cd /etc/vsftpd/vusers _ dir/ [[email protected] vusers _ dir]# touch lisi [[email protected] vusers _ dir]# vim zhangsan anon _ upload _ enable=YES anon _ mkdir _ write _ enable=YES anon _ other _ write _ enable=YES 然後再次修改 vsftpd 主配置檔案,通過添加 user _ config _ dir 參數來定義這兩個虛拟使用者 不同權限的配置檔案所存放的路徑 [[email protected] ~]# vim /etc/vsftpd/vsftpd.conf anonymous _ enable=NO local _ enable=YES guest _ enable=YES guest _ username=virtual allow _ writeable _ chroot=YES write _ enable=YES local _ umask=022 dirmessage _ enable=YES xferlog _ enable=YES connect _ from _ port _ 20=YES xferlog _ std _ format=YES listen=NO listen _ ipv6=YES pam _ service _ name=vsftpd.vu userlist _ enable=YES tcp _ wrappers=YES user _ config _ dir=/etc/vsftpd/vusers _ dir 重新開機vsftpd服務 [[email protected] ~]# systemctl restart vsftpd [[email protected] ~]# systemctl enable vsftpd ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi user.target.wants/vsftpd.service 11.2 vsftpd 服務程式 229   第6步:設定 SELinux 域允許政策 [[email protected] ~]# getsebool -a | grep ftp ftp _ home _ dir –> off ftpd _ anon _ write –> off ftpd _ connect _ all _ unreserved –> off ftpd _ connect _ db –> off ftpd _ full _ access –> off ftpd _ use _ cifs –> off ftpd _ use _ fusefs –> off ftpd _ use _ nfs –> off ftpd _ use _ passive _ mode –> off httpd _ can _ connect _ ftp –> off httpd _ enable _ ftp _ server –> off sftpd _ anon _ write –> off sftpd _ enable _ homedirs –> off sftpd _ full _ access –> off sftpd _ write _ ssh _ home –> off tftp _ anon _ write –> off tftp _ home _ dir –> off [[email protected] ~]# setsebool -P ftpd _ full _ access=on