淺析Linux中vsftpd服務(wù)配置(匿名,用戶,虛擬用戶)
vsftpd概述
vsftpd 是“very secure FTP daemon”的縮寫,安全性是它的一個(gè)最大的特點(diǎn)。vsftpd 是一個(gè) UNIX 類操作系統(tǒng)上運(yùn)行的服務(wù)器的名字,它可以運(yùn)行在諸如 Linux、BSD、Solaris、 HP-UNIX等系統(tǒng)上面,是一個(gè)完全免費(fèi)的、開放源代碼的ftp服務(wù)器軟件,支持很多其他的 FTP 服務(wù)器所不支持的特征。
特點(diǎn)
非常高的安全性需求、帶寬限制、良好的可伸縮性、可創(chuàng)建虛擬用戶、支持IPv6、速率高
小巧輕快,安全易用。
ftp、sftp、vsftp、vsftpd這四個(gè)的區(qū)別
ftp 是File Transfer Protocol的縮寫,文件傳輸協(xié)議,用于在網(wǎng)絡(luò)上進(jìn)行文件傳輸?shù)囊惶讟?biāo)準(zhǔn)協(xié)議,使用客戶/服務(wù)器模式。它屬于網(wǎng)絡(luò)傳輸協(xié)議的應(yīng)用層。
sftp 是SSH File Transfer Protocol的縮寫,安全文件傳輸協(xié)議;
vsftp 是一個(gè)基于GPL發(fā)布的類Unix系統(tǒng)上使用的ftp服務(wù)器軟件,它的全稱是Very Secure FTP從此名稱可以看出來,編制者的初衷是代碼的安全;
vsftpd 是very secure FTP daemon的縮寫,安全性是它的一個(gè)最大的特點(diǎn)。vsftpd 是一個(gè) UNIX 類操作系統(tǒng)上運(yùn)行的服務(wù)器的名字,它可以運(yùn)行在諸如 Linux、BSD、Solaris、 HP-UNIX等系統(tǒng)上面,是一個(gè)完全免費(fèi)的、開放源代碼的ftp服務(wù)器軟件;
一,匿名用戶登錄ftp(文件在/var/ftp)
1,安裝vsftpd服務(wù)
[root@localhost ~]# yum install vsftpd -y ##安裝服務(wù) [root@localhost ~]# cd /etc/vsftpd/ ##此目錄是配置文件目錄 [root@localhost vsftpd]# ls ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh [root@localhost vsftpd]# systemctl start vsftpd ##開啟vsftpd服務(wù) [root@localhost vsftpd]# systemctl stop firewalld.service ##關(guān)閉防火墻 [root@localhost vsftpd]# setenforce 0 ##關(guān)閉增強(qiáng)功能 [root@localhost vsftpd]# ls /var/ftp/ ##切換到ftp目錄下 pub [root@localhost vsftpd]# echo "this is test" > /var/ftp/test.txt ##添加一個(gè)文本文件
2,用測(cè)試機(jī)cmd訪問vsftpd服務(wù)(cmd連接ftp)并下載文件
C:\Users\xy007>ftp 192.168.13.140 ##訪問ftp服務(wù) 連接到 192.168.13.140。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用戶(192.168.13.140:(none)): ftp ##匿名訪問 331 Please specify the password. 密碼: ##密碼無 回車 230 Login successful. ftp> pwd ##查看當(dāng)前路徑 257 "/" ##ftp服務(wù)的根目錄 ftp> ls -a ##查看目錄中的內(nèi)容 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. . .. pub test.txt ##服務(wù)器中的文件 226 Directory send OK. ftp: 收到 25 字節(jié),用時(shí) 0.00秒 25000.00千字節(jié)/秒。 ftp> get test.txt ##下載文件到本地(在哪個(gè)磁盤的訪問就下載到哪里,可以切換磁盤來下載e:) 200 PORT command successful. Consider using PASV. 150 Opening BINARY mode data connection for test.txt (13 bytes). 226 Transfer complete. ftp: 收到 13 字節(jié),用時(shí) 0.00秒 13000.00千字節(jié)/秒。 ftp> put test1.txt ##在c盤中創(chuàng)建一個(gè)test1.txt然后上傳到Linux中 200 PORT command successful. Consider using PASV. 550 Permission denied. ##此時(shí)是權(quán)限受限的 Linux中vsftpd服務(wù)配置(匿名,用戶,虛擬用戶)
3,修改vsftpd配置文件將匿名訪問開啟最大權(quán)限
[root@localhost ftp]# cd /etc/vsftpd/ [root@localhost vsftpd]# vim vsftpd.conf ##在配置文件中查找開啟下列選項(xiàng) anonymous_enable=YES ##開啟匿名用戶 local_enable=YES ##本地用戶 write_enable=YES ##寫入權(quán)限 local_umask=022 ##本地用戶反掩碼 anon_upload_enable=YES ##上傳權(quán)限開啟 anon_mkdir_write_enable=YES ##開啟創(chuàng)建目錄并且能夠?qū)懭? anon_other_write_enable=YES ##添加一個(gè)other的重命名和刪除的權(quán)限 [root@localhost vsftpd]# systemctl restart vsftpd ##重啟服務(wù) [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目錄權(quán)限給最大,注意不能直接給ftp權(quán)限最大
4,用測(cè)試機(jī)cmd訪問ftp并上傳本地文件到Linux上
C:\Users\xy007>ftp 192.168.13.140 ##訪問ftp服務(wù) 連接到 192.168.13.140。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用戶(192.168.13.140:(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: 發(fā)送 13 字節(jié),用時(shí) 0.03秒 0.41千字節(jié)/秒。 ftp> by ##退出 221 Goodbye. ##你也可以使用delete刪除文件
5,查看上傳的文件
[root@localhost ftp]# cd /var/ftp/pub ##切換到pub目錄下 [root@localhost pub]# ls ##查看上傳的文件 test1.txt
二,利用本地用戶登錄ftp(文件在家目錄)
防止本地用戶訪問系統(tǒng)目錄,限制僅訪問用戶家目錄
1,創(chuàng)建系統(tǒng)用戶
[root@localhost pub]# useradd zhangsan ##創(chuàng)建用戶并設(shè)置用戶密碼 [root@localhost pub]# passwd zhangsan [root@localhost pub]# useradd lisi ##創(chuàng)建用戶并設(shè)置用戶密碼 [root@localhost pub]# passwd lisi
2,測(cè)試機(jī)上cmd使用用戶登錄ftp
C:\Users\xy007>ftp 192.168.13.140 ##登錄ftp服務(wù) 連接到 192.168.13.140。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用戶(192.168.13.140:(none)): zhangsan ##使用本地用戶 331 Please specify the password. 密碼: 230 Login successful. ftp> ls / ##查看用戶/下的目錄文件,直接到系統(tǒng)根目錄下 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. /bin /boot /dev /etc /home /lib /lib64 /media /mnt /opt /proc /root /run /sbin /srv /sys /tmp /usr /var 226 Directory send OK. ftp: 收到 126 字節(jié),用時(shí) 0.02秒 7.88千字節(jié)/秒。
3,防止本地用戶訪問系統(tǒng)目錄,限制僅訪問用戶家目錄
[root@localhost pub]# vim /etc/vsftpd/vsftpd.conf ##修改配置文件 chroot_local_user=YES ##開啟限制本地訪問系統(tǒng)目錄模塊 allow_writeable_chroot=YES ##添加寫的權(quán)限 [root@localhost pub]# systemctl restart vsftpd ##重啟服務(wù)
4,測(cè)試機(jī)cmd訪問
C:\Users\xy007>ftp 192.168.13.140 ##訪問ftp 連接到 192.168.13.140。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用戶(192.168.13.140:(none)): zhangsan ##用戶zhangsan 331 Please specify the password. 密碼: 230 Login successful. ftp> cd / ##切換到系統(tǒng)根目錄 250 Directory successfully changed. ftp> ls ##查看發(fā)現(xiàn)還是在用戶的家目錄中,訪問不到系統(tǒng)的其他目錄了,增強(qiáng)了安全性 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. 226 Directory send OK. 設(shè)置允許,拒絕指定用戶訪問ftp 1,設(shè)置user-list(默認(rèn)拒絕),允許或者拒絕特定用戶登錄ftp [root@localhost pub]# cd /etc/vsftpd/ ##切換到vsftpd配置文件目錄 [root@localhost vsftpd]# vim vsftpd.conf userlist_enable=YES ##確認(rèn)user-list開啟 [root@localhost vsftpd]# ls ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh [root@localhost vsftpd]# echo "zhangsan" >> user-list ##將zhangsan用戶添加到列表中 [root@localhost vsftpd]# systemctl restart vsftpd ##重啟服務(wù) 2,用測(cè)試機(jī)cmd測(cè)試 C:\Users\xy007>ftp 192.168.13.140 連接到 192.168.13.140。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用戶(192.168.13.140:(none)): zhangsan ##使用zhangsan登錄 530 Permission denied. 登錄失敗。 ##直接拒絕登錄 ftp>
3,設(shè)置列表為僅允許
[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 ##重啟服務(wù)
4,測(cè)試機(jī)cmd測(cè)試
C:\Users\xy007>ftp 192.168.13.140 連接到 192.168.13.140。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用戶(192.168.13.140:(none)): zhangsan ##用zhangsan去登錄 331 Please specify the password. 密碼: 230 Login successful. ##登錄成功 ftp> by 221 Goodbye. C:\Users\xy007>ftp 192.168.13.140 連接到 192.168.13.140。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用戶(192.168.13.140:(none)): lisi ##用lisi去登錄 530 Permission denied. 登錄失敗。 ##登錄失敗
三,建立虛擬用戶賬戶使用ftp(文件在系統(tǒng)用戶vuser家目錄)
1,創(chuàng)建虛擬用戶文件
[root@localhost vsftpd]# cd /etc/vsftpd/ ##切換到配置文件目錄下 [root@localhost vsftpd]# vim vuser ##創(chuàng)建虛擬用戶文件 lisa ##奇數(shù)行為用戶名 123123 ##偶數(shù)行為密碼 tom 123123
2,轉(zhuǎn)換數(shù)據(jù)庫(kù)文件,設(shè)置安全權(quán)限
[root@localhost vsftpd]# db_load -T -t hash -f vuser vuser.db ##將vuser轉(zhuǎn)換成數(shù)據(jù)庫(kù)文件 ##T轉(zhuǎn)換,t類型,f指定文件 [root@localhost vsftpd]# chmod 600 vuser ##安全起見,不讓別人看到,設(shè)置權(quán)限 [root@localhost vsftpd]# chmod 600 vuser.db
3,編輯pam認(rèn)證模塊支持虛擬用戶登錄
[root@localhost vsftpd]# useradd -d /opt/vuser -s /sbin/nologin vuser ##創(chuàng)建系統(tǒng)用戶,指定家目錄,不能登錄 [root@localhost vsftpd]# vim /etc/pam.d/vsftpd.vu ##編譯pam認(rèn)證模塊 auth required pam_userdb.so db=/etc/vsftpd/vuser ##識(shí)別轉(zhuǎn)換過的數(shù)據(jù)庫(kù)文件 account required pam_userdb.so db=/etc/vsftpd/vuser ##連接的密碼服務(wù)
4,開啟虛擬用戶,使用pam模塊認(rèn)證登錄
[root@localhost vsftpd]# vim vsftpd.conf ##修改配置文件 ##大G到末行 #pam_service_name=vsftpd ##注釋 ##添加下面三行內(nèi)容 guest_enable=YES ##開啟來賓用戶訪問 guest_username=vuser ##使用vuser用戶名 pam_service_name=vsftpd.vu ##pam模塊 [root@localhost vsftpd]# systemctl restart vsftpd ##重啟服務(wù)
5,測(cè)試機(jī)cmd測(cè)試
C:\Users\xy007>ftp 192.168.13.140 連接到 192.168.13.140。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用戶(192.168.13.140:(none)): tom ##使用虛擬用戶tom登錄 331 Please specify the password. 密碼: 230 Login successful. ftp> put test1.txt ##上傳一個(gè)文件 200 PORT command successful. Consider using PASV. 150 Ok to send data. 226 Transfer complete. ftp: 發(fā)送 13 字節(jié),用時(shí) 0.00秒 13000.00千字節(jié)/秒。 ##查看文件的權(quán)限為600 [root@localhost vsftpd]# ls -l /opt/vuser/ 總用量 4 -rw-------. 1 vuser vuser 13 11月 5 22:51 test1.txt
6,單獨(dú)用戶配置,指定上傳文件的權(quán)限644
[root@localhost vsftpd]# vim vsftpd.conf ##大G末行添加 user_config_dir=/etc/vsftpd/vu_dir ##單獨(dú)用戶配置文件夾 [root@localhost vsftpd]# mkdir vu_dir ##創(chuàng)建文件夾 [root@localhost vsftpd]# cd vu_dir/ [root@localhost vu_dir]# vim lisa ##在配置文件夾里創(chuàng)建用戶配置文件 anon_umask=022 ##指定上傳文件的權(quán)限 [root@localhost vu_dir]# systemctl restart vsftpd ##重啟服務(wù)
7,測(cè)試機(jī)cmd使用lisa用戶登錄,查看上傳文件權(quán)限
C:\Users\xy007>ftp 192.168.13.140 連接到 192.168.13.140。 220 (vsFTPd 3.0.2) 200 Always in UTF8 mode. 用戶(192.168.13.140:(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: 發(fā)送 13 字節(jié),用時(shí) 0.00秒 13000.00千字節(jié)/秒。 [root@localhost vu_dir]# ls -l /opt/vuser/ ##查看上傳文件的權(quán)限 總用量 8 -rw-r--r--. 1 vuser vuser 13 11月 5 22:58 111.txt ##lisa上傳文件權(quán)限644 -rw-------. 1 vuser vuser 13 11月 5 22:51 test1.txt ##tom上傳文件權(quán)限600
總結(jié)
以上所述是小編給大家介紹的Linux中vsftpd服務(wù)配置(匿名,用戶,虛擬用戶),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)我們網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
欄 目:Linux/apache
下一篇:centos7 服務(wù)器基本的安全設(shè)置步驟
本文標(biāo)題:淺析Linux中vsftpd服務(wù)配置(匿名,用戶,虛擬用戶)
本文地址:http://mengdiqiu.com.cn/a1/Linux_apache/10713.html
您可能感興趣的文章
- 04-02linux關(guān)閉串口命令 關(guān)閉linux端口命令
- 04-02linux文件命令重命名 linux重命名文件名命令
- 04-02linux命令注入過濾 linux 代碼注入
- 04-02linux中jobs命令 shell jobs命令
- 04-02linux依次執(zhí)行命令 linux命令的執(zhí)行過程是怎樣的?新手必讀
- 04-02linux命令免輸入 linux配置免密登錄
- 04-02linux命令注銷vnc linux命令行注銷用戶
- 04-02軟交換linux命令 軟交換網(wǎng)絡(luò)主要協(xié)議有哪些
- 04-02linux命令歷史記錄 linux查看歷史記錄的操作命令
- 04-02linux命令頁面 linux命令頁面中文


閱讀排行
- 1C語言 while語句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
- 4C語言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02linux關(guān)閉串口命令 關(guān)閉linux端口命令
- 04-02linux文件命令重命名 linux重命名文件名
- 04-02linux中jobs命令 shell jobs命令
- 04-02linux命令注入過濾 linux 代碼注入
- 04-02linux依次執(zhí)行命令 linux命令的執(zhí)行過程
- 04-02linux命令注銷vnc linux命令行注銷用戶
- 04-02linux命令免輸入 linux配置免密登錄
- 04-02軟交換linux命令 軟交換網(wǎng)絡(luò)主要協(xié)議
- 04-02linux命令歷史記錄 linux查看歷史記錄的
- 04-02linux命令頁面 linux命令頁面中文
隨機(jī)閱讀
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 04-02jquery與jsp,用jquery
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10delphi制作wav文件的方法