vsftp搭建文檔

FTP全名是File Transfer Protocol(文件傳輸協議) C/S架構

簡介:

下面是關於FTP這個服務的屬性

1)FTP服務相關軟件

IIS Serv-U Vsftpd proftpd pureftpd

2FTP客戶端相關軟件

ftp命令 CuteFTP FlashFTP LeapFTP Filezilla gftp kuftp

3VSFTP的守護進程

/usr/sbin/vsftpd

4FTP的啓動腳本

/etc/init.d/vsftpd

5FTP的端口

TCP協議的2021端口與客戶端進行通信

20用於建立數據連接,傳輸文件數據。(數據端口)

21用於建立控制連接,並傳輸FTP控制命令。(命令端口)

 (6)用戶控制列表文件

/etc/vsftpd/ ftpusers文件中的用戶禁止登錄FTP服務器(黑名單)

/etc/vsftpd/ user_list文件中的用戶可能被禁止或允許登錄FTP服務器,具體看vsftpd.conf的設置

7)工作模式

主動模式:

客戶端想服務端21端口發送建立連接請求,需要傳輸數據時,客戶端會通過port命令告訴服務器自己監聽的端口,服務器會主動通過20端口與客戶端建立數據連接。

 

  被動模式

客戶端想服務端21端口發送建立連接請求,需要傳輸數據時,

服務器以pasv命令告訴客戶我打開了某個端口(非20端口),你來連接我,客戶端會像服務器的非20端口建立數據連接

 (8)根據傳輸文件是否進行字符轉換分爲:

文本模式(又稱爲ASCII以文本序列傳輸數據,用的較多

二進制模式(又稱爲Binary模式)以二進制序列傳輸數據

 

 

主配置文件

/etc/vsftpd/vsftpd.conf

 

 

 

搭建FTP服務:

1、搭建yum倉庫

1mount /dev/cdrom /mnt

   (2cat /etc/yum.repos.d/rhel-debuginfo.repo

[rhel-Server]

name=Red Hat Enterprise Server

baseurl=file:///mnt/Server

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

2、安裝

yum -y install vsftpd*

 

配置選項講解

實驗1

  1. 創建測試文件

  2. 匿名用戶ftp對/var/ftp/pub有寫入權限

  3. 允許匿名用戶瀏覽

  4. 允許用戶(匿名,本地,虛擬)有上傳權限

  5. 允許匿名用戶有上傳權限

  6. 允許匿名用戶有上傳文件夾權限

  7. 禁止匿名用戶有刪除,覆蓋等權限

     

    (1)查看ftp的默認根路徑,默認是有一個pub目錄(默認的跟目錄),

    [root@Centos2 ~]# ls /var/ftp/

    pub

    2)備份配置文件

    cd /etc/vsftpd/vsftpd.confg

    cp vsftpd.conf vsftpd.bak

    vim vsftpd.conf

    內容如下

    write_enable=YES

    anon_umask=022

    anonymous_enable=YES

    anon_upload_enable=YES

    anon_mkdir_write_enable=YES

    anon_other_write_enable=NO 是否允許匿名用戶有其他寫入權(改名,刪除,覆蓋)

    dirmessage_enable=YES

    xferlog_enable=YES

    connect_from_port_20=YES

    xferlog_std_format=YES

    listen=YES

    pam_service_name=vsftpd

    userlist_enable=YES

    tcp_wrappers=YES

    3)啓動服務

    service vsftpd start

    (4)改變根目錄的屬主,如果不改變的話,只能訪問,其他權限不能生效。因爲我們是以ftp用戶的身份訪問的,而pub默認的屬主屬組是root

    chown ftp /var/ftp/pub

     

    驗證:

    在網絡或是計算中輸入ftp地址:格式如下圖。

    我們會看到默認的pub目錄。

    1

     

    進入到pub目錄下,可以創建和上傳測試目錄了。如圖2

     

    2

    注意:(1)修改完配置之後需要重啓完服務才能生效

    2)還需要從新從客戶端登陸,否則修改後的配置看不到效果。

     

    實驗2

  8. 創建測試帳號u1u2u3密碼都爲“user”

  9. 允許本地用戶訪問

  10. 將權限掩碼設爲077

  11. 將本地帳號禁錮在宿主目錄中

  12. 只允許u1u2兩個用戶可以登錄

     

    創建測試用戶,並且設置密碼

    [root@crushlinux ~]# useradd u1

    [root@crushlinux ~]# echo "user" |passwd --stdin u1

    [root@crushlinux ~]# useradd u2

    [root@crushlinux ~]# echo "user" |passwd --stdin u2

    [root@crushlinux ~]# useradd u3

    [root@crushlinux ~]# echo "user" |passwd --stdin u3

     

    在配置文件中加入紅色部分內容

    [root@crushlinux ~]# vi /etc/vsftpd/vsftpd.conf

     

    local_enable=YES

    local_umask=077

    chroot_local_user=YES

    write_enable=YES

    dirmessage_enable=YES

    xferlog_enable=YES

    connect_from_port_20=YES

    xferlog_std_format=YES

    listen=YES

    pam_service_name=vsftpd

    userlist_enable=YES

    userlist_deny=NO

    tcp_wrappers=YES

     

     

     

    將允許登陸的用戶加入到白名單中

     

    vi /etc/vsftpd/user_list

    u1

    u2

     

    service vsftpd restart

     

    登陸驗證

    格式爲:ftp://用戶名:密碼@ftpIP地址

     

     

    登陸上默認是空白的,因爲這是用戶的家目錄。

     

    u3用戶登陸,會報錯誤(windows不同系統報錯不會完全一致):

     

     

    實驗3

    構建基於虛擬用戶的FTP服務

    創建賬號數據

    1.建立虛擬FTP用戶的帳號數據庫文件

    2.創建FTP根目錄及虛擬用戶映射的系統用戶

    3.建立支持虛擬用戶的PAM認證文件

    添加虛擬用戶支持

    4.vsftpd.conf文件中添加支持配置

    5.爲個別虛擬用戶建立獨立的配置文件

    啓動服務並測試

    6.重新加載vsftpd配置

    7.使用虛擬FTP賬戶訪問測試

     

    實驗部分

    1.建立虛擬FTP用戶的帳號數據庫文件用到db_load工具先安裝軟件包

    rpm -ivh db4-utils-4.7.25-17.el6.x86_64.rpm

    cd /etc/vsftpd/

    2、創建虛擬用戶文件

    vim user

    a

    1

    b

    1

    c

    1


    基數行代表用戶名,偶數行代表密碼

     

    通過db_load工具創建出Berkeley DB格式的數據庫文件

    db_load -T -t hash -f user user.db

     

        -f 指定數據原文件

    -T允許非Berkeley DB的應用程序使用文本格式轉換的DB數據文件

    -t hash讀取文件的基本方法

    3、創建虛擬用戶對應的系統用戶

    useradd -s /sbin/nologin vu

    4建立支持虛擬用戶的PAM認證文件

    vi /etc/pam.d/vsftpd.vu

    加入以下兩行

    auth       required     /lib64/security/pam_userdb.so db=/etc/vsftpd/user

    account    required     /lib64/security/pam_userdb.so db=/etc/vsftpd/user

    對應剛纔生成user.db的文件

    5、在vsftpd的配置文件中支持虛擬用戶

    注意:在做虛擬用戶的時候,一定要去掉userlist_deny=NO

    這個選項,否則會顯示用戶驗證失敗

    vi /etc/vsftpd/vsftpd.conf

    guest_enable=YES  啓用用戶映射功能

    guest_username=vu  指定映射的系統用戶名稱

    pam_service_name=vsftpd.vu  指定新的PAM認證文件

    local_enable=YES

    local_umask=077

    chroot_local_user=YES  如果紅色3條配置沒有的話就會報錯:用戶身份驗證失敗

     

    virtual_use_local_privs=YES

    如果沒有這條配置的話 上傳將會顯示錯誤.這條最重要

    還要注意每行配值的末尾不要有空行,否則也會有報錯

     

     

     

    6.爲個別虛擬用戶建立獨立的配置文件

    vi /etc/vsftpd/vsftpd.conf   加入下面一行

    user_config_dir=/etc/vsftpd/user_dir用戶配置目錄支持

    爲用戶ab建立獨立的配置目錄及文件 這一行也是必須有的

     

     mkdir /etc/vsftpd/user_dir

    vim a

    local_root=/test   規定了a用戶的根目錄  注意:一定要把目錄的屬主改爲虛擬用戶對應的系統用戶。

     

     

    默認就是所有權限

     

     

    總結:本地用戶和虛擬用戶不能同時登錄、因爲認證方式只有一種

    本地是pam_service_name =vsftpd

    虛擬是pam_service_name =vsftpd.vu 

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    實驗4

  13. 修改vsftpd服務的監聽地址,端口

    1. IP爲:192.168.200.129

    2. 端口爲:2121

  14. 使用vsftpd服務的被動模式

    1. 下限端口爲24500

    2. 上限端口爲24600

  15. 限制vsftpd服務的併發數,傳輸速度

    1. 限制併發客戶連接最多200

    2. 限制每個IP地址的連接數最多50

    3. 限制匿名用戶傳輸速率爲50KB/s

    4. 限制本地用戶傳輸速率爲200KB/s

      [root@crushlinux ~]# netstat -naptu |grep "vsftpd"

      [root@crushlinux ~]# vi /etc/vsftpd/vsftpd.conf

      listen=YES

      listen_address=192.168.200.129

      listen_port=2121

       

      pasv_enable=YES

      pasv_min_port=24500

      pasv_max_port=24600

       

      max_clients=200

      max_per_ip=50

      anon_max_rate=50000

      local_max_rate=200000

       

      [root@crushlinux ~]# service vsftpd restart

      [root@crushlinux ~]# netstat -naptu |grep "vsftpd"

      tcp        0      0 192.168.200.129:2121        0.0.0.0:*                   LISTEN      3552/vsftpd    

       

       


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章