Vsftpd服務搭建

一.FTP工作模式

  1. 主動模式

    1.      第一步,客戶機隨機開啓大於1024的端口與服務器的21端口建立連接通道。

    2.      第二步,當客戶機需要與服務器進行數據傳輸時,客戶端會在開啓一個大於1024的隨機端口Y,並將Y端口號通過之前的命令通道傳送給服務器的21端口。

    3.      第三步,服務器獲取到客戶端的第二個端口後會主動連接客戶端的該端口,通過三次握手後,完成服務器與客戶端數據通道的建立,所有的數據均通過該數據通道進行傳輸。

  2. 被動模式

    1.      第一步,客戶端隨意開啓大於1024X端口與服務器的21端口建立連接通道。

    2.      第二步,當客戶端需要與服務器進行數據傳輸時,客戶端從命令通道發送數據請求上傳或下載        數據。

    3.      第三步,服務器收到數據請求後會隨機開啓一個端口Y,並通過命令通道將該端口信息傳送給       客戶端。

    4.      第四步,客戶端在收到服務器發送過來的數據端口Y的信息後,將在客戶端本地開啓一個隨機端口Z,此時客戶端在主動通過本機的Z端口與服務器的Y端口進行連接,通過三次握手完成後,即可進行數據傳輸。

    5.       

二.安裝與管理vsftpd

rpm –ivh vsftpd

service vsftpdstart

chkconfig vsftpdon

一.配置文件解析

Vsftpd配置文件默認位於/etc/vsftpd目錄下   

常用的全局配置項

listen=YES:是否以獨立運行的方式監聽服務

listen_address=192.168.4.1:設置監聽的 IP 地址

listen_port=21:設置監聽 FTP 服務的端口號

write_enable=YES:是否啓用寫入權限

download_enable=YES:是否允許下載文件

userlist_enable=YES:是否啓用 user_list 列表文件

userlist_deny=YES:是否禁用 user_list 中的用戶

max_clients=0:限制併發客戶端連接數

max_per_ip=0:限制同一 IP 地址的併發連接數

常用的匿名 FTP 配置項

anonymous_enable=YES:啓用匿名訪問

anon_umask=022:匿名用戶所上傳文件的權限掩碼

anon_root=/var/ftp:匿名用戶的 FTP 根目錄

anon_upload_enable=YES:允許上傳文件

anon_mkdir_write_enable=YES:允許創建目錄

anon_other_write_enable=YES:開放其他寫入權

anon_max_rate=0:限制最大傳輸速率(字節/秒)

常用的本地用戶 FTP 配置項

local_enable=YES:是否啓用本地系統用戶

local_umask=022:本地用戶所上傳文件的權限掩碼

local_root=/var/ftp:設置本地用戶的 FTP 根目錄

chroot_local_user=YES:是否將用戶禁錮在主目錄

local_max_rate=0:限制最大傳輸速率(字節/秒)


五.本地賬戶FTP(案例一)

     1.修改配置文件如下

anmous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

xferlog_std_fromat=YES

chroot_local_user=YES

listen=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

2.創建系統賬戶與測試文件

    useradd  –s /sbin/nologin  tom

    useradd  –s /sbin/nologin  jerry

    useradd  –s /sbin/nologin  smith

    touch  home/{tom,jerry,smith}/test.txt

3.服務管理

    Servicevsftpd  start

一.虛擬用戶FTP(案例二)

  1. 創建虛擬用戶數據庫

首先需要創建明文密碼文件,文件中奇數行爲用戶名,偶數行爲密碼。然後使用db_load工具將其轉換爲數據庫文件,db_load工具需要通過安裝db4utils軟件獲得,最後通過修改文件權限以增強數據資料的安全性。

 

[root@localhost]# vi /etc/vsftpd/vusers.list

mike

123

john

456

[root@localhost]# cd /etc/vsftpd/

[root@localhost vsftpd]# db_load -T -t hash -f vusers.list vusers.db

[root@localhost vsftpd]# file vusers.db

vusers.db: Berkeley DB (Hash, version 9, native byte-order)

[root@localhost vsftpd]# chmod 600 /etc/vsftpd/vusers.*

[root@localhost vsftpd]# ls -lh /etc/vsftpd/vusers.*

-rw------- 1 root root 12K 6月27 08:51 /etc/vsftpd/vusers.db

-rw------- 1 root root  18 6月27 08:48 /etc/vsftpd/vusers.list

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

[root@localhost]# useradd -d /var/ftproot -s /sbin/nologin virtual

[root@localhost]# chmod 755 /var/ftproot/

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

[root@localhost]# vi /etc/pam.d/vsftpd.vu

#%PAM-1.0

auth          required     pam_userdb.so db=/etc/vsftpd/vusers

account    required     pam_userdb.so db=/etc/vsftpd/vusers

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

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

……

local_enable=YES

write_enable=YES

anon_umask=022

guest_enable=YES    //啓用用戶映射功能

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

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

5.爲不同的虛擬用戶建立獨立的配置文件

在 vsftpd.conf 文件中添加用戶配置目錄支持

 user_config_dir=/etc/vsftpd/vusers_dir 

爲用戶 mike、john 建立獨立的配置目錄及文件

 配置文件名與用戶名相同

[root@localhost ~]# mkdir /etc/vsftpd/vusers_dir/

[root@localhost ~]# cd /etc/vsftpd/vusers_dir/

[root@localhost vusers_dir]# vi john

anon_upload_enable=YES

anon_mkdir_write_enable=YES

[root@localhost vusers_dir]# touch mike


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