10.1 ftp介紹
雨湖網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,雨湖網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為雨湖上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的雨湖做網(wǎng)站的公司定做!網(wǎng)絡(luò)文件共享服務(wù)主流的主要有三種,分別是ftp、nfs、samba。在上一章中我們已經(jīng)了解了nfs,本章我們將來(lái)說(shuō)說(shuō)ftp。
FTP是File Transfer Protocol(文件傳輸協(xié)議)的簡(jiǎn)稱,用于internet上的控制文件的雙向傳輸。
FTP也是一個(gè)應(yīng)用程序,基于不同的操作系統(tǒng)有不同的FTP應(yīng)用程序,而所有這些應(yīng)用程序都遵守同一種協(xié)議以傳輸文件。
在FTP的使用當(dāng)中,用戶經(jīng)常遇到兩種概念:下載和上傳
下載(Download)文件就是從遠(yuǎn)程主機(jī)拷貝文件至自己的計(jì)算機(jī)上
上傳(Upload)文件就是將文件從自己的計(jì)算機(jī)上拷貝至遠(yuǎn)程主機(jī)上。
10.2 ftp架構(gòu)
FTP工作于應(yīng)用層,監(jiān)聽(tīng)于tcp的21號(hào)端口,是一種C/S架構(gòu)的應(yīng)用程序。其有多種客戶端和服務(wù)端的應(yīng)用程序,下面來(lái)簡(jiǎn)單介紹一下
Client:
ftp
lftp,lftpget
wget,curl
filezilla
gftp(Linux GUI)
商業(yè)軟件:flashfxp,cuteftp
Server:
wu-ftpd
proftpd:提供web接口的一種ftp服務(wù)端程序
pureftp
vsftpd:Very Secure
ServU:windows平臺(tái)的一種強(qiáng)大ftp服務(wù)端程序
10.3 ftp數(shù)據(jù)連接模式
ftp有2種數(shù)據(jù)連接模式:命令連接和數(shù)據(jù)連接
命令連接:是指文件管理類命令,始終在線的持久性連接,直到用戶退出登錄為止
數(shù)據(jù)連接:是指數(shù)據(jù)傳輸,按需創(chuàng)建及關(guān)閉的連接
其中數(shù)據(jù)連接需要關(guān)注的有2點(diǎn),一是數(shù)據(jù)傳輸格式,二是數(shù)據(jù)傳輸模式
數(shù)據(jù)傳輸格式有以下兩種:
a) 文件傳輸
b) 二進(jìn)制傳輸
數(shù)據(jù)傳輸模式也有2種:
a) 主動(dòng)模式:由服務(wù)器端創(chuàng)建數(shù)據(jù)連接
b) 被動(dòng)模式:由客戶端創(chuàng)建數(shù)據(jù)連接
下面來(lái)介紹下兩種數(shù)據(jù)傳輸模式的建立過(guò)程:
主動(dòng)模式:
命令連接:
Client(1025)--> Server(21)客戶端以一個(gè)隨機(jī)端口(大于1023)來(lái)連服務(wù)器端的21號(hào)端口
數(shù)據(jù)連接:
Server(20/tcp) --> Client(1025+1) 服務(wù)器端以自己的20號(hào)端口去連客戶端創(chuàng)建命令連接時(shí)使用的隨機(jī)端口+1的端口號(hào)
此處有個(gè)弊端,因?yàn)榭蛻舳说亩丝谑请S機(jī)的,客戶端如果開(kāi)了防火墻,則服務(wù)器端去連客戶端創(chuàng)建數(shù)據(jù)連接時(shí)可能會(huì)被拒絕
被動(dòng)模式:
命令連接:
Client(1110) --> Server(21)客戶端以一個(gè)隨機(jī)端口來(lái)連成服務(wù)器端的21號(hào)端口
數(shù)據(jù)連接:
Client(1110+1) --> Server(隨機(jī)端口)客戶端以創(chuàng)建命令連接的端口+1的端口號(hào)去連服務(wù)器端通過(guò)命令連接告知自己的一個(gè)隨機(jī)端口號(hào)來(lái)創(chuàng)建數(shù)據(jù)連接
10.4 ftp響應(yīng)碼
1xx:純信息的狀態(tài)碼
2xx:成功類的狀態(tài)碼
3xx:提示需進(jìn)一步提供補(bǔ)充類信息的狀態(tài)碼
4xx:客戶端錯(cuò)誤
5xx:服務(wù)端錯(cuò)誤
10.5 用戶認(rèn)證
ftp的用戶主要有三種:
a) 虛擬用戶:僅用于訪問(wèn)某特定服務(wù)中的資源
b) 系統(tǒng)用戶:可以登錄系統(tǒng)的真實(shí)用戶
c) 匿名用戶
ftp的用戶認(rèn)證主要通過(guò)nsswitch和pam來(lái)實(shí)現(xiàn),關(guān)于nsswitch和pam,請(qǐng)看此處
10.6 vsftpd
此處我們要說(shuō)的ftp應(yīng)用程序是vsftpd,這也是在公司中用得最多的一款ftp軟件。
本章主要說(shuō)一下vsftpd的配置,關(guān)于安裝就不啰嗦了,請(qǐng)自行g(shù)oogle
vsftpd用戶認(rèn)證配置文件是/etc/pam.d/vsftpd
服務(wù)腳本為/etc/rc.d/init.d/vsftpd
配置文件目錄為/etc/vsftpd/,其中主配置文件為/etc/vsftpd/vsftpd.conf
匿名用戶(映射為ftp用戶)的共享資源位置是/var/ftp
系統(tǒng)用戶通過(guò)ftp訪問(wèn)的資源位置為用戶的家目錄
虛擬用戶通過(guò)ftp訪問(wèn)的資源位置為給虛擬用戶指定的映射成為的系統(tǒng)用戶的家目錄
10.7 vsftpd的常用配置
匿名用戶的配置:
anonymous_enable=YES啟用匿名用戶登錄
anon_upload_enable=YES允許匿名用戶上傳
anon_mkdir_write_enable=YES允許匿名用戶創(chuàng)建目錄,但是不能刪除
anon_other_write_enable=YES允許匿名用戶創(chuàng)建和刪除目錄
系統(tǒng)用戶的配置:
local_enable=YES啟用本地用戶登錄
write_enable=YES允許本地用戶有寫權(quán)限
local_umask=022通過(guò)ftp上傳文件的默認(rèn)遮罩碼
chroot_local_user=YES禁錮所有的ftp本地用戶于其家目錄中
禁錮文件(/etc/vsftpd/chroot_list)中指定的ftp本地用戶于其家目錄中:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
虛擬用戶的配置:
所有的虛擬用戶會(huì)被統(tǒng)一映射為一個(gè)指定的系統(tǒng)帳號(hào),訪問(wèn)的共享位置即為此系統(tǒng)帳號(hào)的家目錄
各虛擬用戶可被賦予不同的訪問(wèn)權(quán)限,通過(guò)匿名用戶的權(quán)限控制參數(shù)進(jìn)行指定
虛擬用戶帳號(hào)的存儲(chǔ)方式:
a) 文件:編輯文件,此文件需要被編碼為hash格式。
奇數(shù)行為用戶名
偶數(shù)行為密碼
b) 關(guān)系型數(shù)據(jù)庫(kù)的表中:
通過(guò)即時(shí)查詢數(shù)據(jù)庫(kù)完成用戶認(rèn)證
mysql庫(kù):pam要依賴于pam_mysql軟件,可以通過(guò)epel源yum安裝
日志配置:
xferlog_enable=YES是否啟用傳輸日志,記錄ftp傳輸過(guò)程
xferlog_std_format=YES傳輸日志是否使用標(biāo)準(zhǔn)格式
xferlog_file=/var/log/xferlog指定傳輸日志存儲(chǔ)的位置
改變上傳文件的屬主:自動(dòng)將客戶端上傳到服務(wù)器的某文件的屬主改為指定的用戶
chown_uploads=YES是否啟用改變上傳文件屬主的功能
chown_username=whoever 指定要將上傳的文件的屬主改為哪個(gè)用戶,此用戶必須在系統(tǒng)中存在
vsftpd使用pam完成用戶認(rèn)證,其用到的pam配置文件:
pam_service_name=vsftpd指定vsftpd使用/etc/pam.d下的哪個(gè)pam配置文件進(jìn)行用戶認(rèn)證
是否啟用控制用戶登錄的列表文件:默認(rèn)為/etc/vsftpd/user_list文件
userlist_enable=YES
userlist_deny=YES是否拒絕userlist指定的列表文件中存在的用戶登錄ftp
連接限制:
max_clients=#大并發(fā)連接數(shù)
max_per_ip=#每個(gè)IP可同時(shí)發(fā)起的并發(fā)請(qǐng)求數(shù)
傳輸速率:
anon_max_rate匿名用戶的大傳輸速率,單位是“字節(jié)/秒”
local_max_rate本地用戶的大傳輸速率,單位是“字節(jié)/秒”
通用配置:
dirmessage_enable=YES啟用某目錄下的.message描述信息
假定有一個(gè)目錄為/upload,在其下創(chuàng)建一個(gè)文件名為.message,在文件內(nèi)寫入一些描述信息,則當(dāng)用戶切換至/upload目錄下時(shí)會(huì)自動(dòng)顯示.message文件中的內(nèi)容
message_file設(shè)置訪問(wèn)一個(gè)目錄時(shí)獲得的目錄信息文件的文件名,默認(rèn)是.message
idle_session_timeout=600設(shè)置默認(rèn)的斷開(kāi)不活躍session的時(shí)間
data_connection_timeout=120設(shè)置數(shù)據(jù)傳輸超時(shí)時(shí)間
ftpd_banner=Welcome to chenlf FTP service.定制歡迎信息,登錄ftp時(shí)自動(dòng)顯示
10.8 vsftpd虛擬用戶配置
vsftpd虛擬用戶的配置步驟如下,這里使用mysql進(jìn)行用戶認(rèn)證
a) 安裝所需要的程序
yum -y install vsftpd mysql-server mysql-devel pam_mysql注意:pam_mysql由epel源提供
b) 創(chuàng)建虛擬用戶帳號(hào)
準(zhǔn)備數(shù)據(jù)庫(kù)及相關(guān)表:首先確保mysql服務(wù)已經(jīng)正常啟動(dòng)。而后,按需要建立存儲(chǔ)虛擬用戶的數(shù)據(jù)庫(kù)即可,這里將其創(chuàng)建為vsftpd數(shù)據(jù)庫(kù)
mysql> CREATE DATABASE vsftpd; mysql> GRANT SELECT ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'Your password'; mysql> GRANT SELECT ON vsftpd.* TO 'vsftpd'@'127.0.0.1' IDENTIFIED BY 'Your password'; mysql> FLUSH PRIVILEGES; mysql> use vsftpd; mysql> CREATE TABLE users ( id int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name char(20) binary NOT NULL, password char(48) binary NOT NULL );添加測(cè)試的虛擬用戶:根據(jù)需要添加所需要的用戶,需要說(shuō)明的是,這里將其密碼為了安全起見(jiàn)應(yīng)使用PASSWORD函數(shù)加密后存儲(chǔ)
mysql> INSERT INTO users(name,password) values('tom',password('Your password')); mysql> INSERT INTO users(name,password) values('jerry',password('Your password'));c) 配置vsftpd
建立pam認(rèn)證所需文件,編輯/etc/pam.d/vsftpd.mysql文件,添加如下兩行:
auth required /lib64/security/pam_mysql.so user=vsftpd passwd='Your password' host=mysqldb_ip db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 account required /lib64/security/pam_mysql.so user=vsftpd passwd='Your password' host=mysqldb_ip db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2注意:由于mysql的安裝方式不同,pam_mysql.so基于unix sock連接mysql服務(wù)器時(shí)可能會(huì)出問(wèn)題,此時(shí),建立授權(quán)一個(gè)可遠(yuǎn)程連接的mysql并訪問(wèn)vsftpd數(shù)據(jù)庫(kù)的用戶
修改vsftpd的配置文件/etc/vsftpd/vsftpd.conf,使其適應(yīng)mysql認(rèn)證
建立虛擬用戶映射的系統(tǒng)用戶及對(duì)應(yīng)的目錄:
建立虛擬用戶映射的系統(tǒng)用戶及對(duì)應(yīng)的目錄:
useradd -s /sbin/nologin -d /var/ftproot vuser chmod go+rx /var/ftproot/請(qǐng)確保/etc/vsftpd/vsftpd.conf中已經(jīng)啟用了以下選項(xiàng):
anonymous_enable=YES local_enable=YES write_enable=YES anon_upload_enable=NO anon_mkdir_write_enable=NO chroot_local_user=YES而后添加以下選項(xiàng):
guest_enable=YES guest_username=vuser并確保pam_service_name選項(xiàng)的值如下所示:
pam_service_name=vsftpd.mysqld) 啟動(dòng)vsftpd服務(wù)并查看端口開(kāi)啟情況
service vsftpd start chkconfig vsftpd on ss -tnlp|grep 21e) 配置虛擬用戶具有不同的訪問(wèn)權(quán)限
vsftpd可以在配置文件目錄中為每個(gè)用戶提供單獨(dú)的配置文件以定義其ftp服務(wù)訪問(wèn)權(quán)限,每個(gè)虛擬用戶的配置文件名同虛擬用戶的用戶名。
配置文件目錄可以是任意未使用目錄,只需要在vsfptd.conf中指定其路徑及名稱即可
編輯vsftpd.conf文件,添加如下選項(xiàng)
user_config_dir=/etc/vsftpd/vusers_config創(chuàng)建所需要的目錄,并為虛擬用戶提供配置文件
mkdir /etc/vsftpd/vusers_config cd /etc/vsftpd/vusers_config touch tom jerry配置虛擬用戶的訪問(wèn)權(quán)限
虛擬用戶對(duì)vsftpd服務(wù)的訪問(wèn)權(quán)限是通過(guò)匿名用戶的相關(guān)指令進(jìn)行的。
比如,如果需要讓tom用戶具有上傳文件的權(quán)限,可以修改/etc/vsftpd/vusers_config/tom文件,添加如下選項(xiàng)即可:
anon_upload_enable={YES|NO} anon_mkdir_write_enable={YES|NO} anon_other_write_enable={YES|NO}Linux下好用的下載工具:
axel:可實(shí)現(xiàn)多線程下載,斷點(diǎn)續(xù)傳等功能,下載速度超快
lftpget
wget
curl
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前題目:第十章網(wǎng)絡(luò)文件共享服務(wù)之ftp-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://muchs.cn/article40/dssieo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、企業(yè)建站、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站維護(hù)、網(wǎng)站內(nèi)鏈、定制開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容