FTP服務(wù)器的搭建及配置文件的使用詳解
FTP簡介
文件傳輸協(xié)議FTP(File Transfer FTP)作為網(wǎng)絡(luò)共享文件的傳輸協(xié)議,在網(wǎng)絡(luò)應(yīng)用軟件中具有廣泛的應(yīng)用。
FTP協(xié)議
FTP是TCP/IP的協(xié)議簇協(xié)議之一,其主要功能是借助網(wǎng)絡(luò)實現(xiàn)遠距離主機間的文件傳輸。
1.使用Vsftpd服務(wù)器
Vsftpd (Very Secure FTP)是linux系統(tǒng)的常用軟件。
1.1 Vsftpd的服務(wù)器的安裝與啟動
Vsftpd在yum源中的名稱就是叫做vsftpd
yum install -y vsftpd* //*代表下載所有關(guān)于vsftpd的軟件包
1.2 Vsftpd服務(wù)器的用戶類型
Vsftpd的用戶類型主要分為匿名用戶、本地用戶和虛擬用戶。
(1)匿名用戶:如果Vsftpd服務(wù)器提供匿名訪問功能,默認(rèn)的匿名訪問用戶為anonymous或ftp,密碼為空,匿名用戶登錄后進入到工作目錄是/var/ftp
(2)本地用戶:本地用戶信息存儲在/etc/passwd文件中,本地用戶輸入用戶名和密碼后可登錄vsftpd,并且直接進入該用戶的宿主目錄。
(3)虛擬用戶:旨在vsftpd服務(wù)器中擁有賬號,并且該賬號只能用于文件傳輸服務(wù)的專有用戶,也稱guest用戶。該類用戶可以通過輸入用戶名和密碼進行授權(quán)登錄。
2. Vsftpd服務(wù)器的測試
FTP服務(wù)器的運行模式基于服務(wù)器、客戶端,服務(wù)器安裝完Vsftpd軟件包后,可以通過客戶端進行測試。
1.首先下載vsftpd與其相關(guān)的服務(wù)
yum install -y vsftpd* ftp*
2.然后打開ftp服務(wù)的端口,使防火墻放行ftp服務(wù)
firewall-cmd --zone=public --add-port=21/tcp --per systemctl restart vsftpd firewalld
3.在虛擬機上以匿名用戶身份進行測試,使用ftp命令,后面輸入本機的ip地址,用戶名是ftp,密碼是空,登錄過程如下。
[root@linux2 ~]# ftp 192.168.123.102 Connected to 192.168.123.102 (192.168.123.102). 220 (vsFTPd 3.0.2) Name (192.168.123.102:root): ftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ftp> ls
以上命令中的192.168.123.102是vsftpd服務(wù)器的ip地址
終端打印信息“230 Login successful. ”說明登錄成功
3.FTP常用的命令
命令 | 說明 |
---|---|
ls | 查看服務(wù)器當(dāng)前目錄的文件 |
mkdir 【目錄名】 | 在服務(wù)器新建目錄 |
put 文件名 | 向服務(wù)器上傳指定的一個文件 |
mput 文件名列表 | 向服務(wù)器上傳多個文件 |
chmod | 改變服務(wù)器中的文件權(quán)限 |
?或help | 顯示內(nèi)部命令的幫助信息 |
open 域名或IP地址 | 建立于指定服務(wù)器的連接 |
close | 終止遠端的進程,返回命令狀態(tài) |
bye或quit | 推出服務(wù)器 |
4.Vsftp服務(wù)器的配置文件
配置基本的Vsftpd服務(wù)器比較簡單,只需要正確安裝了Vsftpd軟件,直接啟動Vsftpd并放行端口就行了,但是如果想要更進一步的搭建Vsftpd服務(wù),那就要掌握Vsftpd服務(wù)器的配置文件。
文件 | 說明 |
---|---|
/etc/vsftpd/vsftpd.conf | Vsftpd服務(wù)器主配置文件 |
/etc/vsftpd/ftpusers | 禁止訪問Vsftp服務(wù)器的用戶名單 |
/etc/vsftpd/user_list | 指定用戶能否訪問FTP服務(wù)器取決于userlist_deny選項的設(shè)置 |
/etc/vsftpd/chroot_list | 目錄訪問控制文件 |
下面對這幾個文件進行詳細(xì)說明
1.vsftpd.conf文件
vsftpd.conf位于/etc/vsftpd目錄下,與大多數(shù)配置文件一樣,vsftpd.conf文件中以符號”#“開始注釋信息,我們可以用Vim等工具對它進行修改。在Vsftpd中去掉注釋,顯示該文件的配置內(nèi)容如下:
[root@linux2 ~]# grep -v "#" /etc/vsftpd/vsftpd.conf anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YESpam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
下面對該文件中的常用選項進行介紹,合理使用這些選項是保障FTP安全穩(wěn)定的前提
選項 | 說明 |
---|---|
anonymous_enable | 設(shè)置是否允許匿名用戶登錄服務(wù)器 |
local_enable | 設(shè)置是否允許本地用戶登錄服務(wù)器 |
write_enable | 設(shè)置是否允許寫操作 |
local_umask | 設(shè)置本地用戶創(chuàng)建文件的umask值 |
anon*_upload_enable* | 設(shè)置是否允許匿名用戶上傳文件 |
anon*_mkdir_write_enable* | 設(shè)置是否允許匿名用戶建立目錄 |
xferlog_enable | 是否激活日志功能 |
chown_uploads | 修改匿名用戶上傳文件的所有者 |
chown_username=whoever | 啟用chown_uploads=YES時,指定為主用戶賬戶,whoever表示你的ftp用戶 |
chroot*_local_user* | 設(shè)置是否將所有用戶限制在其主目錄 |
chroot*_list_enable* | 設(shè)置是否啟用限制用戶的名單 |
chroot*_list_file* | 設(shè)置是否限制/排除主目錄下的用戶名單,限制/排除有chrootlocaluser值決定 |
allow*_writeable_choot* | 設(shè)置chroot目錄的寫權(quán)限 |
2.ftpusers文件
/etc/vsftpd/ftpusers文件用于指定不能訪問vsftp服務(wù)器的用戶列表,此文件在格式中采用每個用戶一行的形式,其中包含的用戶通常是系統(tǒng)的超級用戶和系統(tǒng)用戶
3.user_list文件
/etc/vsftpd/userlist 文件也用于保留用戶列表,指定的用戶能否訪問vsftp服務(wù)取決于userlistdeny選項的參數(shù),當(dāng)userlist_deny選項的參數(shù)=YES時,此文件中寫入的所有用戶都將無法登錄vsftp服務(wù),想都別想,但是當(dāng)userlist_deny=No時,這些用戶就起來了,那就表示只有這些用戶能夠訪問vsftp服務(wù),所以一定要注意這個選項的參數(shù)。非常重要。
如果要限制一些指定的本地用戶不能訪問FTP服務(wù),則可以添加以下內(nèi)容來做到:
進入/etc/vaftpd/vsftpd.conf 末行添加
userlist_enable=YES
userlist_deny=YES
userlistfile=/etc/vsftpd/user_list
進入/etc/vsftpd/user_list 添加你需要拒絕訪問的本地用戶
toto (意為指定用戶 每個指定用戶單獨占一行)
如果需要指定幾個本地用戶才能訪問FTP服務(wù),則可以添加以下內(nèi)容來做到:
進入/etc/vaftpd/vsftpd.conf 末行添加
userlist_enable=YES
userlist_deny=NO
userlistfile=/etc/vsftpd/user_list
進入/etc/vsftpd/user_list 添加你需要拒絕訪問的本地用戶
toto (意為指定用戶 每個指定用戶單獨占一行)
4.chroot_list文件
默認(rèn)情況下,匿名用戶會被鎖定在默認(rèn)FTP目錄中,而本地用戶卻可以訪問自己主目錄以外的內(nèi)容,出于安全考慮,通過chroot_list文件可以限制用戶只能訪問其主目錄,也可以實現(xiàn)使用不同喲ing胡不僅能訪問自己的目錄也可以訪問主目錄以外的內(nèi)容。
chrootlist文件設(shè)計chrootlocaluser和chroot*_list_enable兩個選項*
chroot*_list_file默認(rèn)指向/etc/ sftpd/chroot_list*
chroot_list文件的功能有兩個
- 是限制用戶名單中的用戶只能在其主目錄中
- 名單中的用戶不僅能訪問自己的主目錄,還能跳出主目錄,訪問其它的目錄。
當(dāng)chroot*_list_enable=YES時,chroot_list中的用戶只能在本目錄中*
當(dāng)chroot*_list_enable=NO時,chroot_list中的目錄可以訪問除主目錄以外的內(nèi)容*
5.Vsftp服務(wù)器的使用
前面介紹了Vsftpd服務(wù)器的安裝,啟動及主要的配置文件,下面通過具體的實例來介紹該服務(wù)器的具體應(yīng)用。
1.匿名用戶訪問Vsfto服務(wù)器
本次實驗環(huán)境為Centos7 服務(wù)器的IP地址為192.168.123.101 主機名為linux1
第一步:安裝Vsftp服務(wù)及開啟該服務(wù)
yum install -y vsftpd systemctl restart vsftpd
使用ftp匿名用戶登錄,如下所示:
[root@linux2 ~]# ftp 192.168.123.101 Connected to 192.168.123.101 (192.168.123.101). 220 (vsFTPd 3.0.2) Name (192.168.123.101:root): ftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ftp> ls 227 Entering Passive Mode (192,168,123,101,101,29). 150 Here comes the directory listing. drwxr-xr-x 2 0 0 6 Oct 13 2020 pub 226 Directory send OK.
登錄成功,使用ls命令瀏覽默認(rèn)的FTP目錄 (/var/ftp)
1、首先在FTP默認(rèn)目錄/var/pub中創(chuàng)建兩個文本文件1.txt和2.txt
[root@ayaka ~]# cd /var/ftp/pub/ [root@ayaka pub]# touch 1.txt [root@ayaka pub]# touch 2.txt [root@ayaka pub]# ls 1.txt 2.txt
2、在客戶端上進入/pub目錄
ftp> ls 227 Entering Passive Mode (192,168,123,101,75,103). 150 Here comes the directory listing. -rw-r–r-- 1 0 0 0 May 09 10:37 1.txt -rw-r–r-- 1 0 0 0 May 09 10:37 2.txt
將Vsftpd服務(wù)器上文件下載到客戶端
進入pub目錄 使用get命令將文件1.txt與2.txt下載到當(dāng)前目錄下,下載成功的過程如下
220 (vsFTPd 3.0.2) Name (192.168.123.101:root): ftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd pub 250 Directory successfully changed. ftp> ls 227 Entering Passive Mode (192,168,123,101,25,132). 150 Here comes the directory listing. -rw-r--r-- 1 0 0 50 May 09 10:54 1.txt -rw-r--r-- 1 0 0 0 May 09 10:37 2.txt 226 Directory send OK. ftp> !pwd /root ftp> get 1.txt local: 1.txt remote: 1.txt 227 Entering Passive Mode (192,168,123,101,145,74). 150 Opening BINARY mode data connection for 1.txt (50 bytes). 226 Transfer complete. 50 bytes received in 0.000134 secs (373.13 Kbytes/sec) ftp> !ls 1 1.txt anaconda-ks.cfg ftp>
測試在Vsftp服務(wù)器創(chuàng)建目錄
ftp> mkdir toto 550 Permission denied. ftp
通過以上操作可以得出:在默認(rèn)情況下,匿名用戶一般只有從服務(wù)器服務(wù)器下載文件的權(quán)限,不能上傳文件或進行其它操作
那如何讓他變得有權(quán)限呢,接下來我們來配置vsftpd使得有上傳文件或進行其它操作
更改vsftpd.conf文件,開啟匿名用戶上傳,創(chuàng)建目錄權(quán)限
將如下兩個參數(shù)取消注釋
29 #anon_upload_enable=YES //允許匿名文件上傳文件 34 #anon_mkdir_write_enable=YES //允許匿名用戶建立目錄
取消注釋后保存并退出 重啟vsftpd服務(wù)讓它生效
systemctl restart vsftpd
創(chuàng)建匿名用戶上傳目錄
需要在/var/ftp目錄下創(chuàng)建一個目錄,修改目錄的權(quán)限,讓匿名用戶具有寫權(quán)限
[root@ayaka pub]# mkdir /var/ftp/hub [root@ayaka pub]# chmod o+w /var/ftp/hub
上傳目錄
使用put命令把本地文件上傳到FTP服務(wù)器上,具體過程如下。
[root@linux2 ~]# ftp 192.168.123.101 Connected to 192.168.123.101 (192.168.123.101). 220 (vsFTPd 3.0.2) Name (192.168.123.101:root): ftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd hub //進入目錄hub 250 Directory successfully changed. ftp> !ls //執(zhí)行本機Shell命令,顯示當(dāng)前內(nèi)容 1 1.txt anaconda-ks.cfg file1.txt ftp> put 1 //上傳文件1 local: 1 remote: 1 227 Entering Passive Mode (192,168,123,101,176,227). 150 Ok to send data. 226 Transfer complete. 1664 bytes sent in 0.000814 secs (2044.23 Kbytes/sec) ftp> ls -l //查看hub目錄中的文件列表 227 Entering Passive Mode (192,168,123,101,85,50). 150 Here comes the directory listing. -rw------- 1 14 50 1664 May 09 11:26 1 226 Directory send OK. ftp> mkdir tomato //創(chuàng)建目錄 257 "/hub/tomato" created //創(chuàng)建目錄成功 ftp> ls 227 Entering Passive Mode (192,168,123,101,99,18). 150 Here comes the directory listing. -rw------- 1 14 50 1664 May 09 11:26 1 drwx------ 2 14 50 6 May 09 11:35 tomato 226 Directory send OK. ftp>
2.本地用戶訪問Vsftp服務(wù)器
本地用戶是在FTP服務(wù)器上擁有用戶賬戶的用戶,相當(dāng)于FTP服務(wù)器中的真實實際用戶,其通過輸入自己的賬號和口令來進行授權(quán)登錄,當(dāng)用戶成功登錄服務(wù)器后,其登錄目錄為用戶的主目錄,用戶的權(quán)限對該主目錄的操作權(quán)限,可以下載也可以上傳文件。
下面我們將用實例來介紹本地用戶登錄服務(wù)器下載,上傳文件的過程。
本地用戶訪問Vsftp服務(wù)器,本例Vsftp服務(wù)器的ip地址為192.168.123.101 客戶端主機名為Client
Vsftp服務(wù)器建立用戶ftpuser,并在用戶的家目錄建立文件toto和yoyo 命令如下
[root@ayaka pub]# useradd ftpuser [root@ayaka pub]# echo “123” | passwd --stdin ftpuser //設(shè)置ftpuser的密碼為123 [root@ayaka pub]# su - ftpuser //登錄用戶ftpuser [ftpuser@ayaka ~]$ touch toto.txt [ftpuser@ayaka ~]$ touch yoyo.txt
使用本地用戶登錄Vsftpd服務(wù)器后,其登錄目錄為用戶的主目錄/home/ftpuser,具體過程如下
[root@linux2 ~]# ftp 192.168.123.102 Connected to 192.168.123.102 (192.168.123.102). 220 (vsFTPd 3.0.2) Name (192.168.123.102:root): ftpuser 331 Please specify the password. Password: 530 Login incorrect. Login failed. ftp> ^Z [2]+ 已停止 ftp 192.168.123.102 [root@linux2 ~]# [root@linux2 ~]# ftp 192.168.123.101 Connected to 192.168.123.101 (192.168.123.101). 220 (vsFTPd 3.0.2) Name (192.168.123.101:root): ftpuser 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (192,168,123,101,56,176). 150 Here comes the directory listing. -rw-rw-r-- 1 1000 1000 0 May 09 11:44 toto.txt -rw-rw-r-- 1 1000 1000 0 May 09 11:44 yoyo.txt 226 Directory send OK. ftp> pwd 257 "/home/ftpuser" ftp>
創(chuàng)建目錄
用戶ftpuser創(chuàng)建目錄tomato,具體操作如下
ftp> mkdir tomato 257 "/home/ftpuser/tomato" created ftp> ls 227 Entering Passive Mode (192,168,123,101,244,9). 150 Here comes the directory listing. drwxr-xr-x 2 1000 1000 6 May 09 11:52 tomato -rw-rw-r-- 1 1000 1000 0 May 09 11:44 toto.txt -rw-rw-r-- 1 1000 1000 0 May 09 11:44 yoyo.txt 226 Directory send OK. ftp>
上傳本地文件
用戶ftpuser上傳本地文件到服務(wù)器指定目錄,具體操作如下:
ftp> !ls -l 總用量 16 -rw-r--r--. 1 root root 1664 10月 23 2020 1 -rw-r--r--. 1 root root 50 5月 9 18:56 1.txt -rw-------. 1 root root 1295 5月 7 19:16 anaconda-ks.cfg -rw-r--r--. 1 root root 7 5月 9 19:20 file1.txt ftp> !pwd /root ftp> put anaconda-ks.cfg //上傳本地文件 local: anaconda-ks.cfg remote: anaconda-ks.cfg 227 Entering Passive Mode (192,168,123,101,101,125). 150 Ok to send data. 226 Transfer complete. 1295 bytes sent in 0.00108 secs (1194.65 Kbytes/sec) ftp> ls -l //瀏覽遠程目錄,驗證上傳文件是否為本地文件 227 Entering Passive Mode (192,168,123,101,149,213). 150 Here comes the directory listing. -rw-r--r-- 1 1000 1000 1295 May 09 11:55 anaconda-ks.cfg drwxr-xr-x 2 1000 1000 6 May 09 11:52 tomato -rw-rw-r-- 1 1000 1000 0 May 09 11:44 toto.txt -rw-rw-r-- 1 1000 1000 0 May 09 11:44 yoyo.txt 226 Directory send OK. ftp>
下載服務(wù)器文件到本地
用ftpuser下載文件toto到本地當(dāng)前目錄下,下載文件yoyo到本地目錄/tmp下,并且重命名為toto.bak 具體操作如下
ftp> get toto local: toto remote: toto 227 Entering Passive Mode (192,168,123,101,206,168). 550 Failed to open file. ftp> ls 227 Entering Passive Mode (192,168,123,101,98,221). 150 Here comes the directory listing. -rw-r--r-- 1 1000 1000 1295 May 09 11:55 anaconda-ks.cfg drwxr-xr-x 2 1000 1000 6 May 09 11:52 tomato -rw-rw-r-- 1 1000 1000 0 May 09 11:44 toto.txt -rw-rw-r-- 1 1000 1000 0 May 09 11:44 yoyo.txt 226 Directory send OK. ftp> get toto.txt //下載文件到本地目錄 local: toto.txt remote: toto.txt 227 Entering Passive Mode (192,168,123,101,46,209). 150 Opening BINARY mode data connection for toto.txt (0 bytes). 226 Transfer complete. ftp> !ls -l //瀏覽本地目錄,驗證下載文件操作是否成功 總用量 16 -rw-r--r--. 1 root root 1664 10月 23 2020 1 -rw-r--r--. 1 root root 50 5月 9 18:56 1.txt -rw-------. 1 root root 1295 5月 7 19:16 anaconda-ks.cfg -rw-r--r--. 1 root root 7 5月 9 19:20 file1.txt -rw-r--r--. 1 root root 0 5月 9 19:59 toto.txt // 下載文件yoyo.txt 到 本地目錄/tmp下 并重命名為yoyo.bak tp> get yoyo.txt /tmp/yoyo.bak local: /tmp/yoyo.bak remote: yoyo.txt 227 Entering Passive Mode (192,168,123,101,46,136). 150 Opening BINARY mode data connection for yoyo.txt (0 bytes). 226 Transfer complete. ftp> lcd /tmp 進入本地目錄/tmp Local directory now /tmp ftp> !ls //瀏覽驗證本地目錄是否有yoyo.bak ks-script-e7_otA yoyo.bak systemd-private-7da9c4fa89d64f18a66b1cf3053c3ff6-chronyd.service-JoFutU yum.log vmware-root_797-4257069498 ftp>
到此這篇關(guān)于FTP服務(wù)器的搭建與文件目錄的使用詳解的文章就介紹到這了,更多相關(guān)FTP服務(wù)器搭建內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Ubuntu 用vsftpd 配置FTP服務(wù)器教程詳解
本文給大家介紹Ubuntu 用vsftpd 配置FTP服務(wù)器的教程,本文給大家介紹的非常詳細(xì),具有參考借鑒價值,感興趣的朋友一起看看吧2016-10-10ftp連接出現(xiàn)socket錯誤=#10054的解決方法
這篇文章主要介紹了ftp連接出現(xiàn)socket錯誤=#10054的解決方法,需要的朋友可以參考下2014-07-07iis7配置zend framework的地址重寫規(guī)則[url_rewrite]
由于站長的zf項目不是在iis根目錄而是在zfdemo文件夾中,所以重寫的url是zfdemo/public/index.php/{R:1},請各位根據(jù)自己的情況填寫。2011-06-06Serv-U 無法連接到服務(wù)器127.0.0.1,端口43958 之解決辦法
今天在幫朋友配置服務(wù)器的時候發(fā)現(xiàn)的一個問題,進入serv-u管理員工具的時候提示無法連接,非常的討厭,后來參考了這篇文章和先前自己操作的幾個步驟,解決了這個問題。2009-09-09