FTP服務

    FTP是一個非常古老的協議,其主要的作用是用于文件的傳輸。FTP采用明文的方式傳輸,極其不安全,但在局域網等環境中使用還是比較方便的。

一、工作原理

    FTP的工作方式分為主動模式與被動模式。

    1、主動模式

        blob.png

        上圖顯示了主動模式的連接過程:

            1、客戶端與FTP服務器的21端口建立了TCP連接;

            2、客戶端將一個隨機端口號告知給FTP服務器,此端口用于數據傳輸;

            3、FTP服務器通過TCP的20端口向已被告知的隨機端口號傳輸數據。

        主動模式存在一個問題:當客戶端出口處部署了防火墻時,我們有可能會將客戶端開啟的隨機端口號阻塞掉,而導致FTP的20端口無法連接到客戶端。

        為了解決這個問題,可以采用被動模式進行數據傳輸。

    2、被動模式

        blob.png

        上圖顯示了被動連接的過程:

            1、客戶端與FTP服務大的21端口建立了TCP連接;

            2、客戶端向服務器的21端口發起被動連接請求;

            3、服務器告訴客戶端用于數據傳輸的端口號;

            4、客戶端使用另一個隨機端口去連接服務器的數據傳輸端口。

二、FTP服務器配置

    在CentOS中,對FTP服務增加了安全相關的改進,稱為vsftpd,即“Very Secure FTP Daemon”,下面來詳細介紹一下vsftpd的相關配置。

    1、相關的配置文件

        /etc/vsftpd/vsftpd.conf

            主要配置文件,可通過man 5 vsftpd.conf查看詳細說明。 

        /etc/pam.d/vsftpd

            用于身份認證。

        /etc/vsftpd/ftpusers

            設置無法登錄FTP服務器的用戶配置文件。 

        /etc/vsftpd/user_list

            與ftpusers文件的作用相同,只能這個文件的生效與否需要在主配置文件中定義。

        /etc/vsftpd/chroot_list

            限制用戶只能在其主目錄中進行操作,不可以到其它的目錄中。

        /var/ftp

            匿名用戶的根目錄。

    2、vsftpd.conf配置說明

        connect_from_port_20=YES(NO)

            數據傳輸的端口號。

        listen_port=21

            連接監聽端口。

        dirmessage_enable=YES(NO)

            進入目錄時是否顯示提示信息。

        message_file=.message

            當dirmessage_enable=YES時,指定提示信息從哪個文件中讀取。

        listen=YES(NO)

            vsftpd是否以stand alone的方式啟動。

        pasv_enable=YES(NO)

            是否啟用被動模式。

        use_localtime=YES(NO)

            是否使用本地時間。

        write_enable=YES(NO)

            是否允許用戶上傳數據。

        connect_timeout=60

            單位為秒,主動連接模式下,60秒內得不到客戶端響應時強制斷線。

        accept_timeout=60

            單位為秒,被動連接模式下,60秒內得不到客戶端響應時強制斷線。

        data_connection_timeout=300

            單位為秒,無論什么模式下,300秒內得不能正常完成數據傳輸時強制斷線。

        idle_session_timeout=300

            單位為秒,用戶300秒內沒有任何操作時強制斷線。

        max_clients=0

            最大客戶端連接數,0表示沒有限制。

        max_per_ip=0

            同一IP地址同一時間允許的最大連接數。

        pasv_min_port=0

            被動連接時,如果想將隨機端口號控制在一定的范圍內,使用此選項來設置隨機端口號開始值。

        pasv_max_port=0

            被動連接時,如果想將隨機端口號控制在一定的范圍內,使用此選項來設置隨機端口號結束值。

        ftpd_banner=

            用戶連接到FTP服務器時顯示的提示信息,信息內容直接寫在等號后面。

        banner_file=/path/to/somefile

            用戶連接到FTP服務器時顯示的提示信息,信息內容為文件中的信息。

        guest_enable=YES(NO)

            所有系統用戶訪問FTP時均被當成guest用戶。

        guest_username=ftp

            指定guest用戶的用戶名。

        local_enable=YES(NO)

            是否允許/etc/passwd內的賬號登錄FTP服務器。

        local_max_rate=0

            實體用戶的傳輸速度上限。

        chroot_local_user=YES(NO)

            是否限制用戶在自己的主目錄之內。

        chroot_list_enable=YES(NO)

            是否啟用chroot寫入列表的功能。

        chroot_list_file=/etc/vsftpd/chroot_list

            如果chroot_list_enable為YES,則/etc/vsftpd/chroot_list中的用戶將不受chroot的限制。

        userlist_enable=YES(NO)

            是否阻止某些用戶登錄。

        userlist_deny=YES(NO)

            user_list_enalbe設置為YES時生效,啟用拒絕用戶登錄的文件,具體文件見下面的配置項。

        userlist_file=/etc/vsftpd/user_list

            此文件中的用戶都無法訪問FTP服務器。

        anonymous_enable=YES(NO)

            是否允許匿名登錄。

        anon_world_readable_only=YES(NO)

            允許匿名用戶有下載的權限。

        anon_other_write_enable=YES(NO)

            是否允許anonymous具有除了寫入之外的權限,默認為NO。

        tcp_wrappers=YES(NO)

            是否支持tcp_wrappers。

        xferlog_enable=YES(NO)

            是否記錄用戶上傳、上載文件的操作。

        xferlog_file=/var/log/xferlog

            指定日志文件的位置。

    3、安裝vsftpd

1.png    4、啟動vsftpd

2.png

        在啟動vsftpd服務后,不需要任何配置就可以使用匿名的方式訪問FTP服務器了,默認的訪問路徑為/var/ftp。

3.png

三、FTP服務器配置實例

    默認vsftpd的配置并不總是能夠滿足我們的實際需求,下面通過實例來說明vsftpd的用戶認證及權限控制的功能。

    1、禁止匿名用戶登錄,并且允許root用戶登錄FTP服務器

        修改主配置文件

3.png

        放開root用戶的限制,需要在下面的兩個文件中注釋掉root用戶,以使得root用戶可以登錄FTP服務器。

4.png

5.png

        重啟vsftpd服務

8.png

        驗證

6.png

    2、將root用戶的權限控制在其主目錄中

        修改主配置文件 

7.png

        注意chroot_list文件必須存在。

        重啟服務:

8.png

        驗證:

9.png

10.png

    2、創建一個普通用戶,此用戶有上傳文件的權限

        修改主配置文件:

10.png

        在系統中創建用戶fin,并使用此用戶登錄到FTP服務器上,上傳一個文件。

11.png

    以上兩個實例只是FTP的最基本的用法,其它的設置可以根據上文中的選項說明進行配置,也可參考man手冊,此處就不在做過多的演示了。

原創文章,作者:petmaster,如若轉載,請注明出處:http://www.www58058.com/5767

(0)
petmasterpetmaster
上一篇 2015-07-08
下一篇 2015-07-08

相關推薦

  • Linux DNS服務系列之主從復制、子域授權和轉發、view配置詳解

    前言 上文我們講解了DNS服務的原理及正反向解析配置,相信大家對DNS服務已經有了初步了解。接下來,讓我們進一步了解DNS服務的其它功能,本文將詳解主從復制、子域授權和轉發以及view的相關配置。 主從服務器配置 主從服務器關系 如果公司內DNS服務器負載過重或者為了實現冗余這一類功能就需要用到一個備份DNS服務器,備份服務器和主DNS服務器就形成了主從關系…

    Linux干貨 2015-04-13
  • 計算機的一些簡單認識

      完整的計算機系統包括硬件和軟件兩大部分,硬件是指計算機系統中的各種看得見摸得著的物理裝置。例如主板,網卡,顯示器等。軟件是指計算機運行所以需要的各種程序。例如操作系統:linux,windows。辦公軟件office等等??梢赃@樣理解為軟件是對硬件功能通過復雜的編程封裝,讓人們得以實現計算機應用于生活。 早期的計算機: 英國曼徹斯特科學工業博物…

    2017-09-11
  • N25-Bazinga-第三周作業

    N25-Bazinga-第三周作業 1.列出當前系統上登錄的所有用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost ~]# w | cut -d' ' -f1 | uniq -c |&nbs…

    Linux干貨 2016-12-21
  •  編譯安裝步驟     大致過程:(源代碼–預處理–編譯–匯編–鏈接–執行)   第一步 下載安裝開發工具“Development toos” 第二步 下載解壓源代碼包 仔細閱讀“Install和 Read me” 第三步 使用./conf…

    Linux干貨 2017-04-24
  • 馬哥教育網絡班21期+第8周課程練習

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋:橋接器,是連接兩個局域網的一種存儲/轉發設備,它能將一個大的LAN分割為多個網段,或將兩個以上的LAN互聯為一個邏輯LAN,使LAN上的所有用戶都可訪問服務器 集線器:集線器的英文稱為“Hub”.集線器(hub)屬于純硬件網絡底層設備,基本上不具有類似于交換機的"…

    Linux干貨 2016-08-29
  • LINUX–命令的格式、類型、別名的概述及運用

    命令格式       COMMAND [OPTIONS…] [ARGUMENTS..]      [OPTIONS..] 選項:用于啟用或關閉命令的某個或某些功能                &n…

    2017-05-21
欧美性久久久久