一、簡介Vsftp的兩種工作模式:
(1) PORT(主動模式)
PORT中文稱為主動模式,工作的原理: FTP客戶端連接到FTP服務器的21端口,發送用戶名和密碼登錄,登錄成功後要list列表或者讀取數據時,客戶端随機開放一個端口(1024以上),發送 PORT命令到FTP服務器,告訴服務器客戶端采用主動模式并開放端口;FTP服務器收到PORT主動模式命令和端口号後,通過服務器的20端口和客戶端開放的端口連接,發送數據,原理如下圖:
主動模式
(2) PASV(被動模式)
PASV是Passive的縮寫,中文成為被動模式,工作原理:FTP客戶端連接到FTP服務器的21端口,發送用戶名和密碼登錄,登錄成功後要list列表或者讀取數據時,發送PASV命令到FTP服務器, 服務器在本地随機開放一個端口(1024以上),然後把開放的端口告訴客戶端, 客戶端再連接到服務器開放的端口進行數據傳輸,原理如下圖:
被動模式
總結:兩種模式的比較二、安裝過程:
1.)簡易安裝
1.[root@hwg1227 /]# rpm -qa | grep vsftp 2.[root@hwg1227 /]# yum install vsftpd* -y 3.[root@hwg1227 /]# rpm -ql vsftpd 4.[root@hwg1227 /]# cd /etc/vsftpd 5.[root@hwg1227 vsftpd]# ll total 20 -rw-------. 1 root root 125 Mar 1 2013 ftpusers -rw-------. 1 root root 361 Mar 1 2013 user_list -rw-------. 1 root root 4599 Mar 1 2013 vsftpd.conf -rwxr--r--. 1 root root 338 Mar 1 2013 vsftpd_conf_migrate.sh 6.[root@hwg1227 vsftpd]# cp vsftpd.conf vsftpd.conf.bak 7.[root@hwg1227 vsftpd]# vi vsftpd.conf 8. [root@hwg1227 vsftpd]# cat vsftpd.conf.bak |grep -v ^# anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
9.[root@hwg1227 vsftpd]# cat vsftpd.conf.bak |grep -v ^# >vsftpd.conf /将ftp配置文件過濾導入到vsftpd.conf下
10.[root@hwg1227 vsftpd]# vi vsftpd.conf 11.[root@hwg1227 vsftpd]# /etc/init.d/vsftpd start Starting vsftpd for vsftpd: [ OK ] 12.[root@hwg1227 vsftpd]# netstat -tnlp 13.[root@hwg1227 vsftpd]# netstat -tnlp | grep vsftpd 14.[root@hwg1227 vsftpd]# ps -ef |grep vsftpd /查看ftp進程 15.[root@hwg1227 vsftpd]# cd /var/ftp/pub /ftp的共享目錄路徑
16.在我的電腦輸入ftp://192.168.0.26
share
17.到此初步的FTP共享設置完成。
2.)VSFTP虛拟用戶配置:
在home 目錄下創建3個用戶 hr admin it 并設置密碼
1.[root@hwg1227 /]# cd /home 2.[root@hwg1227 home]# mkdir vsftpd 3.[root@hwg1227 home]#cd vsftpd 4.[root@hwg1227 vsftpd]# mkdir hr admin it 5.[root@hwg1227 vsftpd]# ll total 12 drwxr-xr-x. 2 root root 4096 Apr 16 21:23 admin drwxr-xr-x. 2 root root 4096 Apr 16 21:23 hr drwxr-xr-x. 2 root root 4096 Apr 16 21:23 it
6.在home目錄下創建一個loguser.txt文件,然後再安裝一個認證加密的軟件pam db4
7.[root@hwg1227 home]# cat loguser.txt hr hr01 admin ad01 it it01 8.[root@hwg1227 home]# yum -y install pam* db4* 9.[root@hwg1227 home]# db_load -T -t hash -f /home/loguser.txt /etc/vsftpd/vsftpd_login.db /生成加密文件 10.[root@hwg1227 home]# ll /etc/vsftpd/ 總計 36 -rw------- 1 root root 125 2013-01-09 ftpusers -rw------- 1 root root 361 2013-01-09 user_list -rw------- 1 root root 233 04-17 09:17 vsftpd.conf -rw------- 1 root root 4579 04-17 09:16 vsftpd.conf.bak -rwxr--r-- 1 root root 338 2013-01-09 vsftpd_conf_migrate.sh -rw-r--r-- 1 root root 12288 04-17 09:29 vsftpd_login.db
11.[root@hwg1227 home]# chmod 600 /etc/vsftpd_login.db /給文件600權限(設置一下數據庫文件的訪問權限)
12.配置PAM文件,編輯文件/etc/pam.d/vsftpd.vu文件。
[root@hwg1227 home]# ll /etc/pam.d/ -rw-r--r-- 1 root root 97 2007-03-15 system-config-nfs -rw-r--r-- 1 root root 118 2009-09-03 system-config-samba -rw-r--r-- 1 root root 97 2010-01-27 system-config-securitylevel -rwxr-xr-x 1 root root 118 2010-03-31 system-config-services -rw-r--r-- 1 root root 329 2013-01-09 vsftpd [root@hwg1227 vsftpd]# ll /etc/pam.d/vsftpd -rw-r--r-- 1 root root 329 2013-01-09 /etc/pam.d/vsftpd 13. [root@hwg1227 vsftpd]#vi /etc/pam.d/vsftpd 14.[root@hwg1227 vsftpd]# cat /etc/pam.d/vsftpd /這裡主機是32位的 如果是64位是/lib64/security/pam_userdb.so #%PAM-1.0 auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login session optional pam_keyinit.so force revoke auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed auth required pam_shells.so auth include system-auth account include system-auth session include system-auth session required pam_loginuid.so
15.為虛拟用戶創建本地系統用戶,新建一個系統用戶vsftpd,用戶家目錄為/home/vsftpd, 用戶登錄終端設為/bin/false(即使之不能登錄系統)
[root@hwg1227vsftpd]# useradd vsftpd -d /home/vsftpd -s /bin/false [root@hwg1227 vsftpd]# chown -R vsftpd:vsftpd /home/vsftpd [root@hwg1227 home]# ll 總計 16 -rw-r--r-- 1 root root 36 04-17 09:21 loguser.txt drwxr-xr-x 5 vsftpd vsftpd 4096 04-17 09:20 vsftpd drwxr-xr-x 2 root root 4096 04-10 20:47 zl 16.[root@hwg1227 home]# vi /etc/vsftpd/vsftpd.conf listen=YES
#使vsftpd處于獨立啟動監聽端口模式
anonymous_enable=NO
#禁止匿名用戶訪問
dirmessage_enable=YES
#激活目錄信息,當遠程用戶更改目錄時,将出現提示信息
xferlog_enable=YES
#啟用上傳和下載日志功能
xferlog_file=/var/log/vsftpd.log
#日志文件存放目錄
xferlog_std_format=YES
#是否使用标準的ftpd xferlog日志文件格式
chroot_local_user=YES
#設置所有的本地用戶可以chroot
guest_enable=YES
#訪客模式開啟
guest_username=vsftpd
#訪客使用的系統賬号
user_config_dir=/etc/vsftpd/vsftpd_user_conf
#用戶的配置文件
pam_service_name=vsftpd
#認證用戶的數據庫文件
local_enable=YES
#開啟本地用戶
17.[root@hwg1227 home]# mkdir /etc/vsftpd/vsftpd_user_conf 18.[root@hwg1227 home]# cd /etc/vsftpd/vsftpd_user_conf 19.[root@hwg1227 vsftpd_user_conf]# touch hr admin it 20.[root@hwg1227 vsftpd_user_conf]# cat hr local_root=/home/vsftpd/hr [root@hwg1227 vsftpd_user_conf]# cat amin local_root=/home/vsftpd/admin [root@hwg1227 vsftpd_user_conf]# cat it write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_root=/home/vsftpd/it 21.[root@hwg1227 vsftpd_user_conf]# cd /home/vsftpd/hr [root@hwg1227 hr]#touch abc.txt [root@hwg1227 hr]#echo "this is hr files" >abc.txt [root@hwg1227 admin]# touch def.txt [root@hwg1227 admin]# echo "this is admin files" >def.txt [root@hwg1227 it]#touch ggc.txt [root@hwg1227 it]#echo "this is admin files" >ggc.txt
22.在浏覽器輸入ftp://192.168.0.26來測試安裝的正确性,到此處安裝結束。
總結有時候在工作時需要臨時傳遞一些文件需要使用FTP的方式共享文件也是挺方便的,2種模式的共享方式各有優缺點,最重要的事你選擇最快最正确的方式來完成工作才是關鍵。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!