1.安裝程序包
[root@node1 ~]$ yum install -y vsftpd
[root@node1 ~]$ yum install -y lftp # 安裝測試軟件
2.啟動vsftpd服務
[root@node1 ~]$ setenforce 0 #關閉selinux setenforce: SELinux is disabled [root@node1 ~]$ service iptables stop #關閉防火牆 [root@node1 ~]$ service vsftpd start # 啟動服務 為 vsftpd 啟動 vsftpd: [確定] [root@node1 ~]$ service vsftpd status vsftpd (pid 6473) 正在運行...
[root@node1 ~]$ ss -tnl | grep 21 #默認監聽21號端口
LISTEN 0 32 *:21 *:*
3.訪問vsftpd服務器,在本機或者其他主機,在其他主機上測試,需要先確認兩台主機能進行網絡通信ping
在linux上訪問測試
[root@localhost ~]#lftp 172.16.55.6 lftp 172.16.55.6:~> ls drwxr-xr-x 2 0 0 4096 May 11 2016 pub lftp 172.16.55.6:/>
windows上訪問測試
C:\Users\Vathe>ftp 172.16.55.6 #連接 Connected to 172.16.55.6. 220 (vsFTPd 2.2.2) 200 Always in UTF8 mode. User (172.16.55.6:(none)): ftp #輸入用戶名 331 Please specify the password. Password: #密碼為空 230 Login successful. ftp> ls #顯示文件 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. pub 226 Directory send OK. ftp: 8 bytes received in 0.00Seconds 8000.00Kbytes/sec. ftp> pwd #顯示當前目錄 257 "/" ftp> cd pub 250 Directory successfully changed.
4.創建本地用戶admin
[root@node1 vsftpd]$ useradd admin [root@node1 vsftpd]$ echo "admin" | passwd --stdin admin 更改用戶 admin 的密碼 。 passwd: 所有的身份驗證令牌已經成功更新。
5.修改配置文件vsftpf.conf
[root@node1 vsftpd]$ cp vsftp.conf{,.bak} #備份操作 [root@node1 vsftpd]$ vim vsftpd.conf chroot_local_user=YES #禁錮所有本地用戶至家目錄 chroot_list_enable=YES #指定需要禁錮的本地用戶 chroot_list_file=/etc/vsftpd/chroot_list #禁錮的用戶文件 [root@node1 vsftpd]$ pwd /etc/vsftpd [root@node1 vsftpd]$ vim chroot_list #添加admin用戶 admin [root@node1 vsftpd]$ !ser #重啟vsftpd服務 service vsftpd reload 關閉 vsftpd: [確定] 為 vsftpd 啟動 vsftpd: [確定]
6.添加白名單
[root@node1 vsftpd]$ cd /etc/pam.d/ [root@node1 pam.d]$ vim vsftpd #修改pam的配置文件為白名單 auth required pam_listfile.so item=user sense=allow file=/etc/vsftpd/ftpusers onerr=succeed 4 [root@node1 vsftpd]$ cp ftpusers{,.bak} #備份 [root@node1 vsftpd]$ vim ftpusers #修改白名單列表 # Users that are not allowed to login via ftp admin ftp
注:也可以使用vsftpd自身的配置文件/etc/vsftpd/user_list進行配置
測試登錄用戶
[root@localhost ~]#ftp 172.16.55.6 # 連接 Connected to 172.16.55.6 (172.16.55.6). 220 (vsFTPd 2.2.2) Name (172.16.55.6:root): ftp # ftp用戶登錄成功 331 Please specify the password. Password: # 不需要密碼登錄 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> exit 221 Goodbye.
[root@localhost ~]#ftp 172.16.55.6 Connected to 172.16.55.6 (172.16.55.6). 220 (vsFTPd 2.2.2) Name (172.16.55.6:root): vathe # 其他用戶(非白名單用戶)登錄 331 Please specify the password. Password: 530 Login incorrect. Login failed. # 登錄失敗 ftp>
vstfpd服務常見文件目錄
[root@node1 ~]$ rpm -ql vsftpd #查看程序包相關文件 /etc/logrotate.d/vsftpd /etc/pam.d/vsftpd /etc/rc.d/init.d/vsftpd #主程序文件 /etc/vsftpd/ftpusers #pam模塊默認的黑名單配置文件 /etc/vsftpd/user_list #黑名單或白名單配置文件 /etc/vsftpd/vsftpd.conf #主配置文件 ... /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE #示例文檔 2.2.2/EXAMPLE/INTERNET_SITE/vsftpd.xinetd /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/README /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/README.configuration /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf /usr/share/doc/vsftpd-2.2.2/EXAMPLE/PER_IP_CONFIG/hosts.allow /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS_2 /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS_2/README /usr/share/doc/vsftpd-2.2.2/FAQ ... /usr/share/man/man8/vsftpd.8.gz /var/ftp #匿名用戶共享資源路徑 /var/ftp/pub