溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux中vsftpd服務(wù)配置(匿名,用戶,虛擬用戶)

發(fā)布時(shí)間:2020-06-28 14:35:12 來(lái)源:網(wǎng)絡(luò) 閱讀:24594 作者:一拳超人007 欄目:系統(tǒng)運(yùn)維

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從此名稱可以看出來(lái),編制者的初衷是代碼的安全;

  • 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訪問(wèn)vsftpd服務(wù)(cmd連接ftp)并下載文件

C:\Users\xy007>ftp 192.168.13.140    ##訪問(wèn)ftp服務(wù)
連接到 192.168.13.140。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用戶(192.168.13.140:(none)): ftp       ##匿名訪問(wèn)
331 Please specify the password.
密碼:                                                ##密碼無(wú) 回車
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è)磁盤的訪問(wèn)就下載到哪里,可以切換磁盤來(lái)下載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配置文件將匿名訪問(wèn)開啟最大權(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訪問(wèn)ftp并上傳本地文件到Linux上

C:\Users\xy007>ftp 192.168.13.140   ##訪問(wèn)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(文件在家目錄)

防止本地用戶訪問(wèn)系統(tǒng)目錄,限制僅訪問(wèn)用戶家目錄

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,防止本地用戶訪問(wèn)系統(tǒng)目錄,限制僅訪問(wèn)用戶家目錄

[root@localhost pub]# vim /etc/vsftpd/vsftpd.conf    ##修改配置文件

chroot_local_user=YES   ##開啟限制本地訪問(wèn)系統(tǒng)目錄模塊
allow_writeable_chroot=YES ##添加寫的權(quán)限

[root@localhost pub]# systemctl restart vsftpd   ##重啟服務(wù)

4,測(cè)試機(jī)cmd訪問(wèn)

C:\Users\xy007>ftp 192.168.13.140   ##訪問(wèn)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)還是在用戶的家目錄中,訪問(wèn)不到系統(tǒng)的其他目錄了,增強(qiáng)了安全性
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
226 Directory send OK.

設(shè)置允許,拒絕指定用戶訪問(wèn)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)換過(guò)的數(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           ##開啟來(lái)賓用戶訪問(wèn)
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

謝謝閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI