Linux搭建FTP伺服器
阿新 • • 發佈:2020-12-28
Linux
FTP
- 檢測系統是否已經安裝vsftp
rpm -q vsftpd
#package vsftpd is not installed #說明系統沒有安裝vsftpd
- 安裝、啟動、配置
yum install vsftpd #設定開機自動啟動 chkconfig vsftpd on systemctl start vsftpd.service vi /etc/vsftpd/vsftpd.conf use_localtime=YES #ftp時間和系統同步,如果啟動有錯誤,請登出 reverse_lookup_enable=NO #新增此行,解決客戶端登陸緩慢問題!重要!預設vsftpd開啟了DNS反響解析!這裡需要關閉,如果啟動有錯誤,請登出! listen_port=21 #預設無此行,ftp埠為21,新增listen_port=2222把預設埠修改為2222,注意:防火牆同時要開啟2222埠 anonymous_enable=NO #禁止匿名使用者 local_enable=YES 設定本地使用者可以訪問。注意:主要是為虛擬宿主使用者,如果該專案設定為NO那麼所有虛擬使用者將無法訪問 write_enable=YES #全域性設定,是否容許寫入(無論是匿名使用者還是本地使用者,若要啟用上傳許可權的話,就要開啟他) local_umask=022 設定上傳後文件的許可權掩碼。 anon_upload_enable=NO 禁止匿名使用者上傳。 anon_mkdir_write_enable=NO 禁止匿名使用者建立目錄。 dirmessage_enable=YES 設定開啟目錄標語功能。 xferlog_enable=YES 設定開啟日誌記錄功能。 connect_from_port_20=YES 設定埠20進行資料連線。 chown_uploads=NO 設定禁止上傳檔案更改宿主。 xferlog_file=/var/log/vsftpd.log 日誌儲存路徑(先建立好檔案) xferlog_std_format=YES #使用標準格式 async_abor_enable=YES 設定支援非同步傳輸功能。 ascii_upload_enable=YES ascii_download_enable=YES 設定支援ASCII模式的上傳和下載功能。 ftpd_banner=Welcome to Awei FTP servers 設定Vsftpd的登陸標語。 chroot_local_user=YES 禁止本地使用者登出自己的FTP主目錄。 pam_service_name=vsftpd 設定PAM服務下Vsftpd的驗證配置檔名。因此,PAM驗證將參考/etc/pam.d/下的vsftpd檔案配置。 userlist_enable=YES 設為YES的時候,如果一個使用者名稱是在userlist_file引數指定的檔案中, 那麼在要求他們輸入密碼之前,會直接拒絕他們登陸。 tcp_wrappers=YES 是否支援tcp_wrappers idle_session_timeout=300 #超時設定 data_connection_timeout=1 #空閒1秒後伺服器斷開 #以下這些是關於Vsftpd虛擬使用者支援的重要配置專案。 #預設Vsftpd.conf中不包含這些設定專案,需要自己手動新增配置 guest_enable=YES 設定啟用虛擬使用者功能。 guest_username=vsftpd 指定虛擬使用者的宿主使用者(這個是我們後面要新建的使用者) user_config_dir=/etc/vsftpd/vconf 設定虛擬使用者個人Vsftp的配置檔案存放路徑。 也就是說,這個被指定的目錄裡,將存放每個Vsftp虛擬使用者個性的配置檔案,一個需要注意的 地方就是這些配置檔名必須和虛擬使用者名稱相同。 比如說vsftpd.conf的配置檔案,你複製到這個目錄下,你要mv一下,配置成虛擬使用者的名稱 virtual_use_local_privs=YES #當該引數啟用(YES)時,虛擬使用者使用與本地使用者相同的許可權。 #當此引數關閉(NO)時,虛擬使用者使用與匿名使用者相同的許可權。預設情況下此引數是關閉的(NO)。 pasv_min_port=6000 (設定被動模式的埠範圍) pasv_max_port=7000 (設定被動模式的埠範圍) accept_timeout=5 #保持5秒 connect_timeout=1 #1秒後重新連線
- 新建虛擬使用者
touch /etc/vsftpd/virtusers vi /etc/vsftpd/virtusers #第一行賬號,第二行密碼,注意:不能使用root做使用者名稱,系統保留 admin 4242587 #生成虛擬使用者資料檔案: db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db #報錯users.db-bash: db_load: command not found可以執行yum install db4* 命令安裝 chmod 600 /etc/vsftpd/virtusers.db #設定PAM驗證檔案,並指定對虛擬使用者資料庫檔案進行讀取 vi /etc/pam.d/vsftpd #如果系統為32位,則lib64改為lib,否則配置失敗 auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers #新建一個系統使用者vsftpd,使用者家目錄為/home/wwwroot, 使用者登入終端設為/bin/false(即使之不能登入系統) useradd vsftpd -d /home/wwwroot -s /bin/false chown vsftpd:vsftpd /home/wwwroot -R #chown apache:apache /home/wwwroot -R #如果虛擬使用者的宿主使用者為apache,需要這樣設定 #建立虛擬使用者個人Vsftp的配置檔案 mkdir /etc/vsftpd/vconf mkdir /home/wwwroot/admin cd /etc/vsftpd/vconf touch admin vi admin local_root=/home/wwwroot/admin write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES #防火牆 firewall-cmd -–zone=public -–add-port=20/tcp -–permanent firewall-cmd -–zone=public -–add-port=21/tcp -–permanent firewall-cmd -–zone=public -–add-port=6000-7000/tcp -–permanent systemctl restart firewalld.service #重啟伺服器 systemctl restart vsftpd.service