vsftpd 是「very secure FTP daemon」的縮寫,安全性是它的一個最大的特色。vsftpd 是一個 UNIX 類操做系統上運行的服務器的名字,它能夠運行在諸如 Linux、BSD、Solaris、 HP-UNIX等系統上面,是一個徹底免費的、開放源代碼的ftp服務器軟件,支持不少其餘的 FTP 服務器所不支持的特徵。
特色
很是高的安全性需求、帶寬限制、良好的可伸縮性、可建立虛擬用戶、支持IPv六、速率高
小巧輕快,安全易用。數據庫
ftp 是File Transfer Protocol的縮寫,文件傳輸協議,用於在網絡上進行文件傳輸的一套標準協議,使用客戶/服務器模式。它屬於網絡傳輸協議的應用層。
sftp 是SSH File Transfer Protocol的縮寫,安全文件傳輸協議;
vsftp 是一個基於GPL發佈的類Unix系統上使用的ftp服務器軟件,它的全稱是Very Secure FTP今後名稱能夠看出來,編制者的初衷是代碼的安全;
vsftpd 是very secure FTP daemon的縮寫,安全性是它的一個最大的特色。vsftpd 是一個 UNIX 類操做系統上運行的服務器的名字,它能夠運行在諸如 Linux、BSD、Solaris、 HP-UNIX等系統上面,是一個徹底免費的、開放源代碼的ftp服務器軟件;vim
[root@localhost ~]# yum install vsftpd -y ##安裝vsftp服務 [root@localhost ~]# cd /etc/vsftpd/ [root@localhost vsftpd]# ls ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh [root@localhost vsftpd]# systemctl start vsftpd ##開啓服務 [root@localhost vsftpd]# systemctl stop firewalld.service s[root@localhost vsftpd]# setenforce 0 [root@localhost vsftpd]# echo "this is text" > /var/ftp/test.txt ##寫一段內容到測試文件中
C:\Users\CHEN>ftp 192.168.136.178 ##訪問ftp服務 鏈接到 192.168.136.178。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用戶(192.168.136.178:(none)): ftp ##匿名訪問 331 Please specify the password. 密碼: ##密碼沒有,直接回車 230 Login successful. ftp> pwd ##查看當前的絕對路徑 257 "/" ftp> ls -a ##查看目錄中的內容 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. . .. pub test.txt ##服務器中的文件 226 Directory send OK. ftp: 收到 25 字節,用時 0.00秒 25000.00千字節/秒。 ftp> get test.txt ##下載文件到本地客戶機,在哪一個磁盤訪問的就會下載到哪裏,能夠切換磁盤來下載 200 PORT command successful. Consider using PASV. 150 Opening BINARY mode data connection for test.txt (13 bytes). 226 Transfer complete. ftp: 收到 13 字節,用時 0.00秒 13000.00千字節/秒。
ftp> put test1.txt ##建立一個文件上傳到服務器中 200 PORT command successful. Consider using PASV. 550 Permission denied. ##權限受限
[root@localhost ftp]# cd /etc/vsftpd/ [root@localhost vsftpd]# vim vsftpd.conf ##在配置文件中查找開啓下列選項 anonymous_enable=YES ##開啓匿名用戶 local_enable=YES ##本地用戶 write_enable=YES ##寫入權限 local_umask=022 ##本地用戶反掩碼 anon_upload_enable=YES ##上傳權限開啓 anon_mkdir_write_enable=YES ##開啓建立目錄而且可以寫入 anon_other_write_enable=YES ##添加一個other的重命名和刪除的權限 [root@localhost vsftpd]# systemctl restart vsftpd ##重啓服務 [root@localhost vsftpd]# cd /var/ftp/ ##切換到ftp目錄下 [root@localhost ftp]# ls pub test.txt [root@localhost ftp]# ls -l 總用量 4 drwxr-xr-x. 2 root root 6 10月 31 2018 pub -rw-r--r--. 1 root root 13 11月 5 19:14 test.txt [root@localhost ftp]# chmod 777 pub ##將pub目錄權限給最大,注意不能直接給ftp權限最大
C:\Users\CHEN>ftp 192.168.136.178 ##訪問ftp服務 鏈接到 192.168.136.178。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用戶(192.168.136.178:(none)): ftp 331 Please specify the password. 密碼: 230 Login successful. ftp> cd pub/ ##切換到pub目錄下 250 Directory successfully changed. ftp> put test1.txt ##上傳文件 200 PORT command successful. Consider using PASV. 150 Ok to send data. 226 Transfer complete. ftp: 發送 13 字節,用時 0.03秒 0.41千字節/秒。 ftp> by ##退出 221 Goodbye. ##可使用delete刪除文件
root@localhost ~]# useradd zhangsan [root@localhost ~]# passwd zhangsan 更改用戶 zhangsan 的密碼 。 新的 密碼: 無效的密碼: 密碼少於 8 個字符 從新輸入新的 密碼: passwd:全部的身份驗證令牌已經成功更新。 [root@localhost ~]# useradd lisi [root@localhost ~]# passwd lisi 更改用戶 lisi 的密碼 。 新的 密碼: 無效的密碼: 密碼少於 8 個字符 從新輸入新的 密碼: passwd:全部的身份驗證令牌已經成功更新。
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 101 chroot_local_user=YES ##第101行開啓本地訪問系統目錄 102 chroot_list_enable=YES ##102行添加寫的權限 [root@localhost ~]# systemctl restart vsftpd
C:\Users\CHEN>ftp 192.168.136.178 鏈接到 192.168.136.178。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用戶(192.168.136.178:(none)): zhangsan 331 Please specify the password. 密碼: 230 Login successful. ftp> cd / ##切換到系統根目錄 250 Directory successfully changed. ftp> ls ##查看發現仍是在用戶的家目錄中,訪問不到系統的其餘目錄了,加強了安全性 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. 226 Directory send OK.
[root@localhost ~]# cd /etc/vsftpd/ [root@localhost vsftpd]# ls ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh [root@localhost vsftpd]# vim vsftpd.conf userlist_enable=YES ##確認user-list開啓 [root@localhost vsftpd]# ls ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh [root@localhost vsftpd]# echo "zhangsan" >> user-list ##將zhangsan用戶添加到列表中,user-list(默認拒絕),容許或者拒絕特定用戶登陸 [root@localhost vsftpd]# systemctl restart vsftpd ##重啓服務
C:\Users\CHEN>ftp 192.168.136.178 鏈接到 192.168.136.178。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用戶(192.168.136.178:(none)): zhangsan 530 Permission denied. 登陸失敗。 ##拒絕登陸
[root@localhost ftp]# cd /etc/vsftpd/ [root@localhost vsftpd]# vim vsftpd.conf ##配置vsftpd配置文件 userlist_enable=YES userlist_deny=NO ##添加列表容許 [root@localhost vsftpd]# systemctl restart vsftpd ##重啓服務
C:\Users\CHEN>ftp 192.168.136.178 鏈接到 192.168.136.178。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用戶(192.168.136.178:(none)): zhangsan ##用zhangsan去登陸 331 Please specify the password. 密碼: 230 Login successful. ##登陸成功 ftp> by 221 Goodbye. C:\Users\CHEN>ftp 192.168.136.178 鏈接到 192.168.136.178。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用戶(192.168.13.140:(none)): lisi ##用lisi去登陸 530 Permission denied. 登陸失敗。 ##登陸失敗
[root@localhost ~]# cd /etc/vsftpd/ [root@localhost vsftpd]# vim vuser chen ##奇數行爲用戶名 123123 ##偶數行爲密碼 cheng 123123 轉換成數據庫文件,設置權限 [root@localhost vsftpd]# db_load -T -t hash -f vuser vuser.db ##將vuser轉換成數據庫文件,T轉換,t類型,f指定文件 [root@localhost vsftpd]# chmod 600 vuser ##設置權限 [root@localhost vsftpd]# chmod 600 vuser.db 編輯pam認證模塊支持虛擬用戶登陸 root@localhost vsftpd]# useradd -d /opt/vuser -s /sbin/nologin vuser
[root@localhost vsftpd]# vim /etc/pam.d/vsftpd.vu ##編譯pam認證模塊 auth required pam_userdb.so db=/etc/vsftpd/vuser ##識別轉換過的數據庫文件 account required pam_userdb.so db=/etc/vsftpd/vuser ##鏈接的密碼服務 ##開啓虛擬用戶,使用pam模塊認證登陸 [root@localhost vsftpd]# vim vsftpd.conf ##修改配置文件 ##大G到末行 #pam_service_name=vsftpd ##註釋 ##添加下面三行內容 guest_enable=YES ##開啓來賓用戶訪問 guest_username=vuser ##使用vuser用戶名 pam_service_name=vsftpd.vu ##pam模塊 [root@localhost vsftpd]# systemctl restart vsftpd ##重啓服務
C:\Users\xy007>ftp 192.168.136.178 鏈接到 192.168.136.178 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用戶(192.168.136.178:(none)): tom ##使用虛擬用戶tom登陸 331 Please specify the password. 密碼: 230 Login successful. ftp> put test1.txt ##上傳一個文件 200 PORT command successful. Consider using PASV. 150 Ok to send data. 226 Transfer complete. ftp: 發送 13 字節,用時 0.00秒 13000.00千字節/秒。 ##查看文件的權限爲600 [root@localhost vsftpd]# ls -l /opt/vuser/ 總用量 4 -rw-------. 1 vuser vuser 13 11月 5 22:51 test1.txt
[root@localhost vsftpd]# vim vsftpd.conf ##大G末行添加 user_config_dir=/etc/vsftpd/vu_dir ##單獨用戶配置文件夾 [root@localhost vsftpd]# mkdir vu_dir ##建立文件夾 [root@localhost vsftpd]# cd vu_dir/ [root@localhost vu_dir]# vim lisa ##在配置文件夾裏建立用戶配置文件 anon_umask=022 ##指定上傳文件的權限 [root@localhost vu_dir]# systemctl restart vsftpd ##重啓服務
C:\Users\xy007>ftp 192.168.136.178 鏈接到 192.168.136.178 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用戶(192.168.136.178:(none)): lisa ##使用lisa登陸 331 Please specify the password. 密碼: 230 Login successful. ftp> put 111.txt ##上傳文件 200 PORT command successful. Consider using PASV. 150 Ok to send data. 226 Transfer complete. ftp: 發送 13 字節,用時 0.00秒 13000.00千字節/秒。 [root@localhost vu_dir]# ls -l /opt/vuser/ ##查看上傳文件的權限 總用量 8 -rw-r--r--. 1 vuser vuser 13 11月 5 22:58 111.txt ##lisa上傳文件權限644 -rw-------. 1 vuser vuser 13 11月 5 22:51 test1.txt ##tom上傳文件權限600