歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> FTP服務器vsftpd安裝架設

FTP服務器vsftpd安裝架設

日期:2017/3/1 15:53:44   编辑:關於Linux
FTP服務器vsftpd安裝架設 yum install vsftpd 2.啟動/重啟/關閉vsftpd服務器 [root@localhost ftp]# /sbin/service vsftpd restart Shutting down vsftpd: [ OK ] Starting vsftpd for vsftpd: [ OK ] OK表示重啟成功了. 啟動和關閉分別把restart改為start/stop即可. 如果是源碼安裝的,到安裝文件夾下找到start.sh和shutdown.sh文件,執行它們就可以了. 3.與vsftpd服務器有關的文件和文件夾 vsftpd服務器的配置文件的是: /etc/vsftpd/vsftpd.conf vsftpd服務器的根目錄,即FTP服務器的主目錄: 在/var/ftp處pub處 如果你想修改服務器目錄的路徑,那麼你只要修改/var/ftp到別處就行了 4.添加FTP本地用戶 有的FTP服務器需要用戶名和密碼才能登錄,就是因為設置了FTP用戶和權限. FTP用戶一般是不能登錄系統的,只能進入FTP服務器自己的目錄中,這是為了安全.這樣的用戶就叫做虛擬用戶了.實際上並不是真正的虛擬用戶,只是不能登錄SHELL了而已,沒能力登錄系統. /usr/sbin/adduser -d /opt/test_ftp -g ftp -s /sbin/nologin test 這個命令的意思是: 使用命令(adduser)添加test用戶,不能登錄系統(-s /sbin/nologin),自己的文件夾在(-d /opt/test_ftp)),屬於組ftp(-g ftp) 然後你需要為它設置密碼 passwd test 這樣就添加了一個FTP用戶了.下面的示例可以幫助你進入FTP服務器了. [root@localhost ftp]# ftp ftp> open 192.168.0.33 Connected to 192.168.0.33 (192.168.0.33). 220 (vsFTPd 2.0.5) Name (192.168.0.33:gxl): test 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> quit 在windows中,只要在浏覽器中輸入 ftp://192.168.0.33 進入FTP服務器,然後 右鍵 登錄,輸入用戶名和密碼就可以登錄自己的目錄了. 當然你要保證自己能讀寫自己的目錄,就要在配置文件vsftpd.conf裡設置一下就可以讀寫了. local_enable=yes write_enable=yes local_umask=022 5.匿名上傳下載 修改配置文件即可vsftpd.conf,確定有以下幾行,沒有自己添加進去就可以了. anonymous_enable=yes anon_upload_enable=yes anon_mkdir_write_enable=yes anon_umask=022 然後你可以新建一個文件夾,修改它的權限為完全開放,任何用戶就可以登錄這個文件夾,並上傳下載文件: mkdir /var/ftp/guest chmod 777 /var/ftp/guest 6.定制進入FTP服務器的歡迎信息 在vsftpd.conf文件中設置: dirmessage_enable=yes 然後進入用戶目錄建立一個.message文件,輸入歡迎信息即可(我這裡寫入的是Welcome to gxlinux's FTP!): [root@localhost test_ftp]# ftp 192.168.0.33 Connected to 192.168.0.33 (192.168.0.33). 220 (vsFTPd 2.0.5) Name (192.168.0.33:gxl): test 331 Please specify the password. Password: 230-Welcome to gxlinux's FTP! 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. 7.實現虛擬路徑 將某個目錄掛載到FTP服務器下供用戶使用,這就叫做虛擬路徑. 比如將gxl用戶的目錄掛載到FTP服務器中,供FTP服務器的用戶使用,使用如下命令即可: [root@localhost opt]# mount --bind /home/gxl /var/ftp/pub #使用掛載命令 [root@localhost opt]# ls /var/ftp/pub LumaQQ Screenshot.png 桌面 8.打開vsFTPd的日志功能 添加下面一行到vsftpd.conf文件中,一般情況下該文件中有這一行,只要把前面的注釋符號#去掉即可,沒有的話就添加,或者修改: xferlog_file=/var/log/vsftpd.log 9.限制鏈接數,以及每個IP最大的鏈接數 修改配置文件中,例如vsftp最大支持鏈接數100個,每個IP能支持5個鏈接: max_client=100 max_per=5 10.限制傳輸速度 修改配置文件中,例如讓匿名用戶和vsftd上的用戶(即虛擬用戶)都以80KB=1024*80=81920的速度下載 anon_max_rate=81920 local_max_rate=81920 11.將用戶(一般指虛擬用戶)限制在自家目錄 修改配置文件中,這樣用戶就只能訪問自己家的目錄了: chroot_local_user=yes 如果只想某些用戶僅能訪問自己的目錄,其它用戶不做這個限制,那麼就需要在chroot_list文件(此文件一般是在/etc/vsftpd/中)中添加此用戶. 編輯此文件,比如將test用戶添加到此文件中,那麼將其寫入即可.一般的話,一個用戶占一行. [root@localhost vsftpd]# cat chroot_list test 12.綁定某個IP到vsFTPd 有時候要限制某些IP訪問服務器,只允許某些IP訪問,例如只允許192.168.0.33訪問這個FTP,同樣修改配置文件: listen_address=192.168.0.33 配置vsftpd.conf anonymous_enable=NO #禁止匿名 local_enable=YES #允許本地登錄 write_enable=YES #允許寫,如需上傳,則必須 local_umask=027 #將上傳文件的權限設置為:777-local_umask anon_upload_enable=YES #允許虛擬用戶和匿名用戶上傳 anon_other_write_enable=YES #允許虛擬用戶和匿名用戶修改文件名和刪除文件 dirmessage_enable=YES xferlog_enable=YES #打開日志記錄 connect_from_port_20=YES xferlog_file=/var/log/vsftpd.log #日志存放位置 xferlog_std_format=YES #標准日志格式 idle_session_timeout=600 #空閒連接超時 data_connection_timeout=120 ftpd_banner=Welcome to ChinaRise FTP service #歡迎信息 guest_enable=yes #允許虛擬用戶 guest_username=vsftpdguest #虛擬用戶使用的系統賬號 virtual_use_local_privs=YES #虛擬用戶擁有本地系統權限 chroot_local_user=NO chroot_list_enable=YES #以上兩行將虛擬用戶限制在其目錄下,不能訪問其他目錄,或者直接用 chroot_local_user=YES listen=yes #監聽/被動模式 listen_port=21 #監聽端口 chroot_list_file=/etc/vsftpd/vsftpd.chroot_list #虛擬用戶名單保存在文件/etc/vsftpd/vsftpd.chroot_list 中 user_config_dir=/etc/vsftpd/vsftpd_user_conf #每個虛擬用戶名的更加詳細的培植保存在/etc/vsftpd/vsftpd_user_conf 中 虛擬用戶其他設置 在/etc/vsftpd/vsftpd.chroot_list 文件中寫入允許登陸的虛擬用戶名稱,每行一個 在/etc/vsftpd/vsftpd_user_conf 文件夾中創建一個以虛擬用戶用戶名命名的文件, 寫入:local_root = /var/FTP/子目錄名 然後在/var/FTP下創建一個對應的目錄即可 可能遇到的問題以及解決方案: 在執行ftp IP 登錄時出現 500 OOPS: vsftpd: cannot locate user specified in 'ftp_username':ftp 的錯誤消息 需要在vsftpd.conf中加入了ftp_username=ftpuser(用戶)這一行,ftp_username的缺省用戶應該是ftp /etc/init.d/vsftpd restart後成功登陸 如果出現“550 create directory operation failed” 是SELinux安裝機制搞的鬼.只要disable SELinux就可以了. # vi /etc/selinux/config 將 SELINUX=XXX -->XXX 代表級別 改為 SELINUX=disabled 或者setsebool -P ftpd_disable_trans on + service vsftpd restart 或者 setsebool -P ftp_home_dir on + service vsftpd restart 即可 如果不能執行,提示“ Could not change active booleans: Invalid boolean ” 可以執行以下命令 setsebool allow_ftpd_full_access 1 setsebool allow_ftpd_use_cifs 1 setsebool allow_ftpd_use_nfs 1 setsebool ftp_home_dir 1 setsebool httpd_enable_ftp_server 1 setsebool tftp_anon_write 以下是具體實踐步驟可供參考 1開啟防火牆ftp端口 vi /etc/sysconfig/iptables #編輯防火牆配置文件 -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT(允許21端口通過防火牆) -A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT(允許20端口通過防火牆) -A INPUT -m state --state NEW -m tcp -p tcp --dport 9000:9045 -j ACCEPT(設置ftp被動模式的端口范圍) 注意:如果ftp端口修改為其它的端口(比如2222),這時防火牆就要開啟2222端口,這裡防火牆是以CentOS 6.0為例 -A INPUT -m state --state NEW -m tcp -p tcp --dport2222 -j ACCEPT(允許2222端口通過防火牆) /etc/init.d/iptables restart #重啟防火牆使配置生效 2、檢查系統是否已安裝vsftp rpm -q vsftpd package vsftpd is not installed #說明系統沒有安裝vsftpd 3、安裝vsftpd yum install vsftpd 按Y回車,系統自動安裝 /etc/init.d/vsftpd start #啟動vsftpd service vsftpd restart #重啟 service vsftpd stop #停止 chkconfig vsftpd on #設置開機時自動運行 4、配置vsftp服務器 配置文件說明: /etc/vsftpd/vsftpd.conf vsftpd的核心配置文件 /etc/vsftpd/ftpusers 用於指定哪些用戶不能訪問FTP服務器 /etc/vsftpd/user_list 指定允許使用vsftpd的用戶列表文件 /etc/vsftpd/vsftpd_conf_migrate.sh 是vsftpd操作的一些變量和設置腳本 /var/ftp/ 默認情況下匿名用戶的根目錄 ======================================================================== 配置/etc/vsftpd/vsftpd.conf 配置前先備份 cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.confbak 恢復文件 cp /etc/vsftpd/vsftpd.confbak /etc/vsftpd/vsftpd.conf 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=9000 (設置被動模式的端口范圍) pasv_max_port=9045 (設置被動模式的端口范圍) accept_timeout=5 #保持5秒 connect_timeout=1 #1秒後重新連接 5、先建立虛擬用戶名單文件: touch /etc/vsftpd/virtusers 編輯虛擬用戶名單文件:(第一行賬號,第二行密碼,注意:不能使用root做用戶名,系統保留) vi /etc/vsftpd/virtusers web1 123456 web2 123456 web3 123456 ======================================================================= 6、生成虛擬用戶數據文件: db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db chmod 600 /etc/vsftpd/virtusers.db #設定PAM驗證文件,並指定對虛擬用戶數據庫文件進行讀取======================================================================= 7、在/etc/pam.d/vsftpd的文件頭部加入以下信息(在後面加入無效) 修改前先備份 cp /etc/pam.d/vsftpd /etc/pam.d/vsftpdbak 恢復cp /etc/pam.d/vsftpdbak /etc/pam.d/vsftpd vi /etc/pam.d/vsftpd auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/virtusers account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/virtusers 注意:如果系統為64為,則上面的lib改為lib64,否則配置失敗 8、新建一個系統用戶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,需要這樣設置。 9、建立虛擬用戶個人Vsftp的配置文件 系統運維 溫馨提醒:qihang01原創內容版權所有,轉載請注明出處及原文鏈接 mkdir /etc/vsftpd/vconf cd /etc/vsftpd/vconf touch web1 web2 web3 #這裡創建三個虛擬用戶配置文件 vi web1 #編輯用戶web1配置文件,其他的跟這個配置文件類似 local_root=/home/wwwroot/web1/ write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES 10、最後重啟vsftpd服務器 /etc/init.d/vsftpd restart 備注:guest_username=vsftpd #指定虛擬用戶的宿主用戶(就是我們前面新建的用戶) 如ftp的目錄是指向網站根目錄的,用來上傳網站程序的話 guest_username=apache #指定虛擬用戶的宿主用戶為apache運行賬戶,可以避免很多權限設置問題 如果生成虛擬用戶數據文件的時候出現以下錯誤 users.db-bash: db_load: command not found 因為在執行db命令時候軟件包沒有安裝 db4 db4-devel db4-java db4-tcl db4-utils 可以運行yum install db4* 命令安裝 至此,vsftpd安裝配置完成。
Copyright © Linux教程網 All Rights Reserved