RHE5服務器管理——FTP服務器

一:FTP工做原理服務器

在一個FTP會話中,存在兩個獨立的網絡鏈接:控制鏈接和數據鏈接。一般狀況下,FTP服務器監聽端口號21,等待控制鏈接創建請求。當FTP控制鏈接創建以後,便可開始傳輸文件,傳輸文件的鏈接稱爲FTP「FTP數據鏈接」。FTP數據鏈接即FTP傳輸數據的過程,它有3種傳輸模式,即主動傳輸模式(PORT)、被動傳輸模式(PASSIVE,簡稱PASV)、單端口模式。網絡

主動傳輸模式:當FTP控制鏈接創建,客戶端提出目錄列表及傳輸文件時,客戶端發出PORT命令與服務器協商,FTP服務器使用端口20做爲服務器的數據鏈接端口與客戶端創建數據鏈接。端口20只用於鏈接源地址是服務器的狀況,別且端口20沒有監聽進程而是監聽客戶請求。在主動傳輸模式中,FTP服務器使用20端口與客戶端的臨時端口鏈接並傳輸數據,客戶端只是出於接受狀態。ide

被動傳輸模式:當FTP控制鏈接創建,客戶端提出目錄列表及傳輸文件時,客戶端發送PASV命令使服務器出於被動傳輸模式,FTP服務器等待客戶與其聯繫。FTP服務器在非20端口的其餘數據傳輸端口上監聽客戶請求。當FTP客戶在防火牆以外訪問FTP服務器時,須要使用被動傳輸模式。即FTP服務器打開一個臨時端口等待客戶端與其鏈接並傳輸數據。服務器並不參與數據的主動傳輸,只是被動接收。測試

單端口模式:使用該傳輸模式,客戶端的控制鏈接端口和數據鏈接端口一致。由於這種模式沒法在短期連續輸入數據並傳輸命令,所以並不經常使用。大數據

二:Linux服務器端主要FTP軟件:Wu-ftpd          Vsftpd           ProFTPDrest

有關軟件的詳細介紹這裏再也不贅述。日誌

三:配置Vsftpd服務器blog

Vsftpd配置文件進程

/usr/sbin/vsftpd                       Vsftpd的主程序ip

/etc/rc.d/init.d/vsftpd            啓動腳本

/etc/vsftpd/vsftpd.conf           主配置文件

/etc/pam.d/vsftpd                   PAM認證文件

/etc/vsftpd.ftpusers                禁止使用Vsftpd的用戶列表文件

/etc/vsftpd.user_list                禁止或容許使用Vsftpd的用戶列表文件

/var/ftp                                    匿名用戶主目錄

/var/ftp/pub                            匿名用戶的下載目錄

/etc/logrotate.d/vsftpd.log    Vsftpd的日誌文件

1.    快速搭建一個Vsftpd服務器

        1.1:安裝軟件包

clip_image001

1.2:啓動vsftpd服務器

clip_image002

1.3:在/var/ftp/pub目錄下建立文件test1

                  #touch   /var/ftp/pub/test1

        1.4:在客戶端用Leapftp軟件測試

clip_image003

到此,一臺簡單的Vsftpd服務器就搭建好。這是一個專門提供下載服務的匿名FTP服務器,這是由於Red Hat已經配置一個默認的FTP服務器,不過在實際應用中並不適用大部分的需求。

2.     禁用匿名方式登陸FTP

        1.1:修改主配置文件:/etc/vsftpd/vsftpd.conf

將第12行的YES改成NO,保存退出,重啓服務便可

clip_image004

3.     鎖定用戶的登陸目錄

        3.1: 默認用戶登陸到FTP,除了看到本身的家目錄外,還能瀏覽其餘目錄,這裏讓用戶鎖定在本身家目錄下

        3.2:修改主配置文件

添加117和118行,將鎖定用戶目錄的功能開啓,而後再指定鎖定用戶的列表文件

clip_image005

        3.3:重啓服務,並將us1用戶添加到列表文件中

                #service  vsftpd    restart

               #echo   us1    >    /etc/vsftpd/chroot_list

        3.4:驗證效果

能夠看到他的訪問目錄只能呆在本身家了。

clip_image006

4.     更改用戶默認的登陸目錄

        4.1:改變用戶的訪問目錄爲:/tmp

默認每一個用戶登陸到FTP,都是登陸到他的家目錄

        4.2:在/tmp下建一個文件:test2

                #touch       /tmp/test2

       4.3:修改主配置文件,在主配置文件的最後一行添加:

               # local_root=/tmp

       4.4:重啓服務,並驗證效果

us1的登陸目錄已經改變爲/tmp

clip_image007

5.      配置用戶的我的配置文件

在主配置文件中,全部的參數對每一個用戶都是生效的,好比:local_max_rate=value(限制用戶最大的數據傳輸速度),定義在主配置文件中的此選項,則會對全部的用戶限制相同的速度,可是,若想對一些特色的用戶增長最大的數據傳輸速度,則要用到用戶我的配置文件

         5.1:先定義用戶的我的配置文件目錄:在主配置文件中添加一行

                  #user_config_dir=/etc/vsftpd/userconf

        5.2:建立這個目錄

                 #mkdir      /etc/vsftpd/userconf

        5.3:在這個目錄中建立跟用戶同名的文件,好比定義us1的我的配置文件

                #touch     /etc/vsftpd/userconf/us1

        5.4:修改剛建立的文件us1,定義用戶us1一些我的配置參數(只對us1生效)。好比設置us1最大數據傳輸速度,則添加一行

                local_max_rate=100000       #單位爲Bytes/s

6.      只容許特定的用戶可登錄FTP

         6.1:修改主配置文件,添加下面三行

                  #userlist_deny=NO

                  #userlist_enable=YES

                  #userlist_file=/etc/vsftpd.user_list

第三行表示用戶的列表文件,第二行值爲YES,表示此選項被激活,當列表中的用戶登陸FTP服務器時,該用戶在提高輸入口令以前被禁止。即不容許該用戶登陸。可是第一行值爲NO,表示用戶列表文件的用戶能夠登陸FTP服務器,默認是YES,禁止文件中的用戶登陸。因此開啓了第二行和第三行,必定要將第一行的值改成NO,不然變成列表中的用戶被禁止登錄。

         6.2:將容許登陸的用戶添加到列表文件中

                  #echo   us2     /etc/vsftpd.user_list

         6.3:重啓服務便可,則該FTP服務器只容許us2登陸了。

7.      設置用戶的操做權限

         write_enable=YES/NO

是否有可寫權限

         anon_umask=

設置匿名用戶新增文件的umask數值,默認是077

         local_umask=

設置用戶新增文件時的umask數值,默認爲077    

         file_open_mode=

設置上傳檔案的全限,默認爲0666。若要是上傳的檔案有執行權限,則修改成0777

相關文章
相關標籤/搜索