第十章網(wǎng)絡(luò)文件共享服務(wù)之ftp-創(chuàng)新互聯(lián)

10.1 ftp介紹

雨湖網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,雨湖網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為雨湖上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個售后服務(wù)好的雨湖做網(wǎng)站的公司定做!

 網(wǎng)絡(luò)文件共享服務(wù)主流的主要有三種,分別是ftp、nfs、samba。在上一章中我們已經(jīng)了解了nfs,本章我們將來說說ftp。

 FTP是File Transfer Protocol(文件傳輸協(xié)議)的簡稱,用于internet上的控制文件的雙向傳輸。

 FTP也是一個應(yīng)用程序,基于不同的操作系統(tǒng)有不同的FTP應(yīng)用程序,而所有這些應(yīng)用程序都遵守同一種協(xié)議以傳輸文件。

 在FTP的使用當(dāng)中,用戶經(jīng)常遇到兩種概念:下載和上傳

  下載(Download)文件就是從遠(yuǎn)程主機(jī)拷貝文件至自己的計算機(jī)上

  上傳(Upload)文件就是將文件從自己的計算機(jī)上拷貝至遠(yuǎn)程主機(jī)上。

10.2 ftp架構(gòu)

 FTP工作于應(yīng)用層,監(jiān)聽于tcp的21號端口,是一種C/S架構(gòu)的應(yīng)用程序。其有多種客戶端和服務(wù)端的應(yīng)用程序,下面來簡單介紹一下

 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平臺的一種強(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點,一是數(shù)據(jù)傳輸格式,二是數(shù)據(jù)傳輸模式

 數(shù)據(jù)傳輸格式有以下兩種:

   a) 文件傳輸

   b) 二進(jìn)制傳輸

 數(shù)據(jù)傳輸模式也有2種:

   a) 主動模式:由服務(wù)器端創(chuàng)建數(shù)據(jù)連接

   b) 被動模式:由客戶端創(chuàng)建數(shù)據(jù)連接

 下面來介紹下兩種數(shù)據(jù)傳輸模式的建立過程:

 主動模式:

   命令連接:

   Client(1025)--> Server(21)客戶端以一個隨機(jī)端口(大于1023)來連服務(wù)器端的21號端口

   數(shù)據(jù)連接:

   Server(20/tcp) --> Client(1025+1) 服務(wù)器端以自己的20號端口去連客戶端創(chuàng)建命令連接時使用的隨機(jī)端口+1的端口號

   此處有個弊端,因為客戶端的端口是隨機(jī)的,客戶端如果開了防火墻,則服務(wù)器端去連客戶端創(chuàng)建數(shù)據(jù)連接時可能會被拒絕

 被動模式:

   命令連接:

   Client(1110) --> Server(21)客戶端以一個隨機(jī)端口來連成服務(wù)器端的21號端口

   數(shù)據(jù)連接:

   Client(1110+1) --> Server(隨機(jī)端口)客戶端以創(chuàng)建命令連接的端口+1的端口號去連服務(wù)器端通過命令連接告知自己的一個隨機(jī)端口號來創(chuàng)建數(shù)據(jù)連接

10.4 ftp響應(yīng)碼

 1xx:純信息的狀態(tài)碼

 2xx:成功類的狀態(tài)碼

 3xx:提示需進(jìn)一步提供補(bǔ)充類信息的狀態(tài)碼

 4xx:客戶端錯誤

 5xx:服務(wù)端錯誤

10.5 用戶認(rèn)證

 ftp的用戶主要有三種:

 a) 虛擬用戶:僅用于訪問某特定服務(wù)中的資源

 b) 系統(tǒng)用戶:可以登錄系統(tǒng)的真實用戶

 c) 匿名用戶

 ftp的用戶認(rèn)證主要通過nsswitch和pam來實現(xiàn),關(guān)于nsswitch和pam,請看此處

10.6 vsftpd

 此處我們要說的ftp應(yīng)用程序是vsftpd,這也是在公司中用得最多的一款ftp軟件。

 本章主要說一下vsftpd的配置,關(guān)于安裝就不啰嗦了,請自行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)用戶通過ftp訪問的資源位置為用戶的家目錄

 虛擬用戶通過ftp訪問的資源位置為給虛擬用戶指定的映射成為的系統(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通過ftp上傳文件的默認(rèn)遮罩碼

   chroot_local_user=YES禁錮所有的ftp本地用戶于其家目錄中

   禁錮文件(/etc/vsftpd/chroot_list)中指定的ftp本地用戶于其家目錄中:

   chroot_list_enable=YES

   chroot_list_file=/etc/vsftpd/chroot_list

 虛擬用戶的配置:

   所有的虛擬用戶會被統(tǒng)一映射為一個指定的系統(tǒng)帳號,訪問的共享位置即為此系統(tǒng)帳號的家目錄

   各虛擬用戶可被賦予不同的訪問權(quán)限,通過匿名用戶的權(quán)限控制參數(shù)進(jìn)行指定

   虛擬用戶帳號的存儲方式:

   a) 文件:編輯文件,此文件需要被編碼為hash格式。

   奇數(shù)行為用戶名

   偶數(shù)行為密碼

   b) 關(guān)系型數(shù)據(jù)庫的表中:

   通過即時查詢數(shù)據(jù)庫完成用戶認(rèn)證

   mysql庫:pam要依賴于pam_mysql軟件,可以通過epel源yum安裝

 日志配置:

   xferlog_enable=YES是否啟用傳輸日志,記錄ftp傳輸過程

   xferlog_std_format=YES傳輸日志是否使用標(biāo)準(zhǔn)格式

   xferlog_file=/var/log/xferlog指定傳輸日志存儲的位置

 改變上傳文件的屬主:自動將客戶端上傳到服務(wù)器的某文件的屬主改為指定的用戶

   chown_uploads=YES是否啟用改變上傳文件屬主的功能

   chown_username=whoever  指定要將上傳的文件的屬主改為哪個用戶,此用戶必須在系統(tǒng)中存在

 vsftpd使用pam完成用戶認(rèn)證,其用到的pam配置文件:

   pam_service_name=vsftpd指定vsftpd使用/etc/pam.d下的哪個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=#每個IP可同時發(fā)起的并發(fā)請求數(shù)

 傳輸速率:

   anon_max_rate匿名用戶的大傳輸速率,單位是“字節(jié)/秒”

   local_max_rate本地用戶的大傳輸速率,單位是“字節(jié)/秒”

 通用配置:

   dirmessage_enable=YES啟用某目錄下的.message描述信息

   假定有一個目錄為/upload,在其下創(chuàng)建一個文件名為.message,在文件內(nèi)寫入一些描述信息,則當(dāng)用戶切換至/upload目錄下時會自動顯示.message文件中的內(nèi)容

   message_file設(shè)置訪問一個目錄時獲得的目錄信息文件的文件名,默認(rèn)是.message

   idle_session_timeout=600設(shè)置默認(rèn)的斷開不活躍session的時間

   data_connection_timeout=120設(shè)置數(shù)據(jù)傳輸超時時間

   ftpd_banner=Welcome to chenlf FTP service.定制歡迎信息,登錄ftp時自動顯示

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)建虛擬用戶帳號

   準(zhǔn)備數(shù)據(jù)庫及相關(guān)表:首先確保mysql服務(wù)已經(jīng)正常啟動。而后,按需要建立存儲虛擬用戶的數(shù)據(jù)庫即可,這里將其創(chuàng)建為vsftpd數(shù)據(jù)庫

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 );

   添加測試的虛擬用戶:根據(jù)需要添加所需要的用戶,需要說明的是,這里將其密碼為了安全起見應(yīng)使用PASSWORD函數(shù)加密后存儲

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ù)器時可能會出問題,此時,建立授權(quán)一個可遠(yuǎn)程連接的mysql并訪問vsftpd數(shù)據(jù)庫的用戶

   修改vsftpd的配置文件/etc/vsftpd/vsftpd.conf,使其適應(yīng)mysql認(rèn)證

   建立虛擬用戶映射的系統(tǒng)用戶及對應(yīng)的目錄:

      建立虛擬用戶映射的系統(tǒng)用戶及對應(yīng)的目錄:

useradd -s /sbin/nologin -d /var/ftproot vuser chmod go+rx /var/ftproot/

   請確保/etc/vsftpd/vsftpd.conf中已經(jīng)啟用了以下選項:

anonymous_enable=YES local_enable=YES write_enable=YES anon_upload_enable=NO anon_mkdir_write_enable=NO chroot_local_user=YES

   而后添加以下選項:

guest_enable=YES guest_username=vuser

   并確保pam_service_name選項的值如下所示:

pam_service_name=vsftpd.mysql

 d) 啟動vsftpd服務(wù)并查看端口開啟情況

service vsftpd start chkconfig vsftpd on ss -tnlp|grep 21

 e) 配置虛擬用戶具有不同的訪問權(quán)限

   vsftpd可以在配置文件目錄中為每個用戶提供單獨的配置文件以定義其ftp服務(wù)訪問權(quán)限,每個虛擬用戶的配置文件名同虛擬用戶的用戶名。

   配置文件目錄可以是任意未使用目錄,只需要在vsfptd.conf中指定其路徑及名稱即可

   編輯vsftpd.conf文件,添加如下選項

user_config_dir=/etc/vsftpd/vusers_config

   創(chuàng)建所需要的目錄,并為虛擬用戶提供配置文件

mkdir /etc/vsftpd/vusers_config cd /etc/vsftpd/vusers_config touch tom jerry

   配置虛擬用戶的訪問權(quán)限

   虛擬用戶對vsftpd服務(wù)的訪問權(quán)限是通過匿名用戶的相關(guān)指令進(jìn)行的。

   比如,如果需要讓tom用戶具有上傳文件的權(quán)限,可以修改/etc/vsftpd/vusers_config/tom文件,添加如下選項即可:

anon_upload_enable={YES|NO} anon_mkdir_write_enable={YES|NO} anon_other_write_enable={YES|NO}

Linux下好用的下載工具:

 axel:可實現(xiàn)多線程下載,斷點續(xù)傳等功能,下載速度超快

 lftpget

 wget

 curl

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前題目:第十章網(wǎng)絡(luò)文件共享服務(wù)之ftp-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://bm7419.com/article40/dssieo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、企業(yè)建站、網(wǎng)站設(shè)計公司、網(wǎng)站維護(hù)、網(wǎng)站內(nèi)鏈、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)