天天看點

Vsftp 搭建

ftp是典型的c/s結構的網絡層協定;它使用tcp 20 和 21 端口 ;傳輸模式有兩種,

主動模式:服務端主動發起 資料 連接配接;首先用戶端向服務端的21端口建立控住連結,當需要資料傳輸的時候 用戶端通過port的指令告訴服務端自己打開的端口,于是服務端從20口向用戶端法請求并建立連接配接。

被動模式:服務端被動等待 資料 連結;首先用戶端向服務端的21端口建立控制連結 當需要傳輸資料的時候 服務端以pasv 指令通知用戶端 自己打開的端口(随機打開)于是用戶端向服務端的那個端口(非20)端口建立連接配接;

如果是客戶機的防火牆禁止主動模式 一般是轉為被動模式

傳輸資料的方式分為兩種:

文本模式:ascii模式  傳輸時使用ascii字元 一般适合純文字的傳輸;

二進制模式:binary模式   适合傳輸程式,圖檔等;

我用的是vsftpd這個軟體

系統盤上就有包  要不直接yum安裝       預設安裝位置/etc/vsftpd    裡面包括:使用者控制檔案(ftpusers、user_list)和 主配置檔案;

ftpusers 檔案:這個檔案中的使用者将禁止登入到ftp伺服器;不管是不是在user_list中出現,如:root就在這裡

user_list檔案:看配置檔案中 userlist_enable=yes 則允許  userlist_deny=yes就是拒絕 看英文意思就知道了。

本地使用者的vsftpd服務:

匿名ftp:

匿名使用者對應為ftp 或 anonymous     宿主目錄是/var/ftp     該目錄是匿名使用者通路vsftpd的根目錄 (anon_root更改)首先設定相應的權限  把pub目錄的屬組設定成 ftp

2:修改主配置檔案

vi /etc/vsftpd/vsftpd.conf

anonymous_enable=yes     //允許匿名使用者通路

local_enable=no     //不啟用本地使用者

write_enable=yes    //   允許寫的權限

anon_umask=022      //上傳檔案時的掩碼  這裡是用的反碼

anon_upload_enable=yes     //允許匿名使用者上傳

anon_mkdir_write_enable=yes     //允許匿名使用者建目錄

userlist_enable=no     //沒啟用本地使用者  将使用者清單禁用

anon_other_write_enable=yes //允許匿名使用者在上傳目錄中做删除,重命名等操作;慎用;

重新開機就好了!!!

【注:不要去改/var/ftp的屬主  用可能會報錯;】

本地使用者ftp:

使用系統使用者做驗證 預設登入位于自己的宿主目錄 且有讀寫的權限 且允許切換到其他的目錄   可以使用chroot_local_user 固定在宿主目錄    local_root設定根目錄;

1:先建立測試使用者 設定密碼

2:vi /etc/vsftpd/vsftpd.cong

anonymous_enable=no   //禁用匿名通路

local_enable=yes       //允許本地使用者通路

write_enable=yes     //開放寫的權限

local_umask=022       //上傳建立檔案的預設權限

chroot_local_user=yes    //把使用者禁锢在宿主目錄

max_client=20      //并發客戶連接配接數

max_per_ip=2     //同一ip同時連接配接數

local_max_rate=102400     //本地使用者上傳下載下傳的速度 100kb/s

pasv_enable=yes       //允許被動模式并設定端口範圍

pasv_min_port=24500

pasv_max_port=24600

好了 重新開機服務 ok!!!

【如用wget測試 格式:wget  ftp://使用者:密碼@伺服器ip/檔案名】

建立基于虛拟使用者的vsftpd服務:

 1:建立虛拟使用者的使用者名/密碼資料庫

vsftpd使用berkeley db 格式的資料檔案  該資料檔案需要用db_load指令工具 CD光牒中有db4-utils-xxxxxxx.rpm包

先建立文本格式的檔案  :vi  /etc/vsftpd/vusers.list

chunchun

123456

xiaochun

123456     //格式是 使用者名密碼各一行

用db_load工具将清單檔案轉化成db檔案

db_load  -t  -t hash  -f   vusers.list  vuser.db       //-t 表示允許轉化  -f   檔案  -t   hash  讀取資料的方法     最後把權限設成600

2:設定虛拟使用者對應的系統使用者   可以不設定密碼

useradd  -d  /var/ftproot  -s  /sbin/nologin   test

把/var/ftproot    權限設定成755

3:建立pam認證檔案

(pam用于程式提供使用者認證  vsftpd使用的是 /etc/pam.d/vsftpd)

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       

{vusers   是省略.db的資料庫檔案}

4:改配置檔案:vi    /etc/vsftpd/vsftpd.conf

anonymous_enable=no

local_enable=yes

anon_umask=022

write_enable=yes

guest_enable_yes

guest_username=test

dirmessage_enable=yes

pam_service_name=vsftpd.vu            //修改pam檔案位置

虛拟使用者被當作是匿名使用者  是以是用anon配置項

這是就ok!!!!了

【補充】

可以為不同使用者單獨設定配置檔案   修改主配置檔案  加

user_config_dir=/etc/vsftpd/vusers_dir

建立檔案 

mkdir    /etc/vsftpd/vusers_dir/      進入目錄

vi    使用者名(虛拟使用者)

anon_upload_enable=yes

anon_mkdir_write_enable=yes

注意:/etc/vsftpd/ftpusers    中加入虛拟使用者并不能禁用相應的系統帳号