1.1 環境檢查
[root@www ~]# cat /etc/redhat-release #系統版本,6系列等區別不大,都可以 CentOS Linux release 7.5.1804 (Core) [root@www ~]# uname -r 3.10.0-862.9.1.el7.x86_64 [root@www ~]# systemctl status firewalld #關閉防火牆 ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) [root@www ~]# getenforce #檢查selinux是否關閉 Disabled
1.2 安裝並配置
#直接粘貼配置就可以使用
[root@www ~]# yum -y install vsftpd #直接yum安裝 [root@www ~]# cd /etc/vsftpd/ [root@www vsftpd]# cp vsftpd.conf vsftpd.conf.bak #編輯配置文件前一定記得備份,養成好習慣 [root@www ~]# vim /etc/vsftpd/vsftpd.conf #編輯主配置文件 #開啟匿名 anonymous_enable=no #--------------------本地用戶權限設置------------------------------ #本地賬戶可以登錄 local_enable=YES #本地帳戶登陸后可以刪除和修改文件 write_enable=NO #允許鎖定的用戶有寫的權限 allow_writeable_chroot=yes #當本地用戶登入時,將被更換到定義的目錄下。默認值為各用戶的家目錄 local_root=/data/sprixin #ftp上本地文件權限 local_umask=022 #本地用戶上傳檔案后的檔案權限,與chmod 所使用的數值相同。默認值為0666 file_open_mode=0755 pam_service_name=vsftpd #--------------------控制用戶是否允許切換到上級目錄--------------- #設置是否啟用chroot_list_file配置項指定的用戶列表文件。默認值為NO。 chroot_list_enable=no #用於指定用戶列表文件,該文件用於控制哪些用戶可以切換到用戶家目錄的上級目錄。 chroot_list_file=/etc/vsftpd.chroot_list #用於指定用戶列表文件中的用戶是否允許切換到上級目錄。默認值為NO。 chroot_local_user=YES #---------------------歡迎語設置----------------------------------- #訪問ftp時的說明文件 dirmessage_enable=NO #設置目錄消息文件,可將要顯示的信息寫入該文件。默認值為.message。 message_file=.message #當使用者登入時,會顯示此設定所在的檔案內容,通常為歡迎話語或是說明. banner_file=/etc/vsftpd/banner #---------------------日志文件設置--------------------------------- #啟用上傳和下載的日志S xferlog_enable=YES #使用標准的日志格式 xferlog_std_format=yes #日志路徑 xferlog_file=/var/log/vsftpd.log #如果啟用此選項,所有的FTP請求和響應都會被記錄到日志中,默認日志文件在/var/log/vsftpd.log。啟用此選項時,xferlog_std_format不能被激活。這個選項有助於調試。默認值為NO。 #log_ftp_protocol=YES #---------------------FTP工作方式與端口設置------------------------- #啟用ftp數據端口的數據連接 connect_from_port_20=YES #設置FTP服務器建立連接所監聽的端口,默認值為21。 listen_port=21 #將客戶端的數據連接端口改在50000—60000之間 #在PASV工作模式下,數據連接可以使用的端口范圍的最大端口,0 表示任意端口。默認值為0。 pasv_min_port=50000 # 在PASV工作模式下,數據連接可以使用的端口范圍的最小端口,0 表示任意端口。默認值為0。 pasv_max_port=60000 #若設置為YES,則使用PASV工作模式;若設置為NO,則使用PORT模式。默認值為YES,即使用PASV工作模式 pasv_enable=YES #----------------------與連接相關的設置------------------------------ #設置vsftpd服務器是否以standalone模式運行 listen=YES #以下只有在standalone模式運行才有效 # (ftp的最大連接數) max_clients=200 # (每ip的最大連接數) max_per_ip=0 #設置每個與FTP服務器的連接,是否以不同的進程表現出來 setproctitle_enable=YES #------------------------訪問控制------------------------------------ #兩種控制方式:一種控制主機訪問,另一種控制用戶訪問。 tcp_wrappers=YES #配合系統的文件進行訪問控制,類似簡易防火牆,限制訪問(/etc/hosts.allow,/etc/hosts.deny) userlist_enable=NO #是否啟用用戶控制文件 userlist_file=/etc/vsftpd.user_list #控制用戶訪問FTP的文件,里面寫着用戶名稱。一個用戶名稱一行。 userlist_deny=NO #若設置為YES,則vsftpd.user_list文件中的用戶不允許訪問FTP,若設置為NO,則只有vsftpd.user_list文件中的用戶才能訪問FTP。 #-----------------------訪問速率------------------------------------ #本地用戶使用的最大傳輸速度,單位為B/s,0 表示不限制速度。預設值為0。 #下載速度9M local_max_rate=10000000 #-----------------------超時時間設置------------------------------- # (用戶會話空閑后10分鍾) idle_session_timeout=600 # (將數據連接空閑2分鍾斷) data_connection_timeout=120 # (將客戶端空閑1分鍾后斷) accept_timeout=60 # (中斷1分鍾后又重新連接) connect_timeout=60 #----------------------數據傳輸模式設置---------------------------- #FTP在傳輸數據時,可以使用二進制方式,也可以使用ASCII模式來上傳或下載數據。 ascii_upload_enable=NO #設置是否啟用ASCII 模式上傳數據。默認值為NO。 ascii_download_enable=NO #設置是否啟用ASCII 模式下載數據。默認值為NO。 #-----------------------其他設置----------------------------------------- #顯示用戶名和組名 text_userdb_names=YES #不可以查看當前目錄下子目錄中的文件 ls_recurse_enable=NO #如果設置為NO,所有的文件都不能下載到本地,文件夾不受影響。默認值為YES。 download_enable=NO
#創建ftp用戶
[root@www vsftpd]# useradd ftpuser -s /sbin/nologin #禁止登錄系統 [root@www vsftpd]# passwd ftpuser #設置ftpuser密碼,我這里是123456輸入兩次 Changing password for user ftpuser. New password: BAD PASSWORD: The password is shorter than 8 characters Retype new password: passwd: all authentication tokens updated successfully.
#將ftp用戶加入user_list允許訪問
[root@www vsftpd]# echo ftpuser >>/etc/vsftpd/user_list [root@www vsftpd]# echo ftpuser >>/etc/vsftpd/chroot_list
#啟動vsftpd
[root@www vsftpd]# systemctl start vsftpd [root@www vsftpd]# netstat -lntup|grep 21 #檢查是否監聽 tcp6 0 0 :::21 :::* LISTEN 13837/vsftpd
1.3 使用瀏覽器訪問或者ftp工具
瀏覽器輸入:ftp://IP地址 輸入賬號:ftpuser 密碼:123456