歡迎您光臨本站 註冊首頁

Linux下的Vsftpd配置篇

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

1. 主動與被動模式 1) 主動模式(PORT方式) 連接過程為:客戶端向伺服器FTP埠(默認是21)發送連接請求,伺服器接受連接,建立一條命令鏈路.當需要傳送數據時,客戶端在命令鏈路上用PORT命令告訴伺服器:我打開了XX埠,你過來連接我,於是伺服器從20號埠向客戶端的XX埠發送連接請求,建立一條數據鏈路來傳送數據. 2) 被動模式(PASV方式) 連接過程為:客戶端向伺服器FTP埠(默認是21)發送連接請求,伺服器接受連接,建立一條命令鏈路.當需要傳送數據時,伺服器在命令鏈路上用PASV命令告訴客戶端:我打開了XX埠,你過來連接我,於是客戶端向伺服器的XX埠發送連接請求,建立一條數據鏈路來傳送數據. 2. 安裝 1) 查看是否安裝 打開命令行,輸入rpm -q vsftpd,出現: Ø 已經安裝 Ø 還沒安裝 2) 安裝 Ø 載入光碟 Ø 設置光碟 單擊虛擬機右下角的光碟圖標,選擇Settings,在Device status中將Connected勾選,在Connection中選擇Use ISO image file,然後單擊Browse選擇Linux的安裝包,單擊OK Ø 安裝 安裝完成 3. 文件結構與配置文件 1) 文件結構

配置文件名 功能
/usr/sbin/vsftpd vsftpd的主程序
/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的日誌文件

2) 配置文件 Ø 查看

以#號開頭的為註釋,這裡把非配置參數註釋都去掉了 Ø 參數含義

參數 含義
anonymous_enable=YES 是否允許使用匿名賬戶
local_enable=YES 是否允許本地用戶登錄
write_enable=YES 是否允許寫入
local_umask=022 本地umask值為022
#anon_upload_enable=YES 匿名用戶是否可上傳文件
#anon_mkdir_write_enable=YES 匿名用戶是否可建立目錄
dirmessage_enable=YES 進入每個目錄顯示歡迎信息,在每個目錄下建立.message文件在裡面寫歡迎信息
xferlog_enable=YES 上傳/下載文件時記錄日誌
connect_from_port_20=YES 是否使用20埠傳輸數據(是否使用主動模式)
#chown_uploads=YES 修改匿名用戶上傳的文件,文件的擁有者
#chown_username=whoever
#xferlog_file=/var/log/xferlog 日誌文件
xferlog_std_format=YES 使用標準文件日誌
#idle_session_timeout=600 會話超時,客戶端連接到ftp但未操作
#data_connection_timeout=120 數據傳輸超時
#nopriv_user=ftpsecure 指定vsftpd服務的運行帳戶,不指定時使用ftp
#async_abor_enable=YES 是否允許客戶端使用sync等命令
#ascii_upload_enable=YES 是否允許上傳/下載二進位文件
#ascii_download_enable=YES
#ftpd_banner=Welcome to blah FTP service. 登錄提示語
#deny_email_enable=YES 拒絕使用banned_email_file參數指定文件中所列出的e-mail地址進行登錄的匿名用戶.即,當匿名用戶使用banned_email_file文件中所列出的e-mail進行登錄時,被拒絕.
#banned_email_file=/etc/vsftpd/banned_emails
#chroot_list_enable=YES 鎖定登陸用戶在其主目錄,將用戶名一個一行寫在/etc/vsftpd/chroot_list文件里,使用此方法時必須chroot_local_user=YES
#chroot_list_file=/etc/vsftpd/chroot_list
#ls_recurse_enable=YES 是否允許使用ls -R等命令
listen=YES 開啟ipv4監聽
#listen_ipv6=YES 開啟ipv6監聽
pam_service_name=vsftpd 使用pam模塊控制,vsftpd文件在/etc/pam.d目錄下
userlist_enable=YES 與其他中userlist_deny=YES共同控制訪問用戶,詳見userlist_deny=YES參數含義
tcp_wrappers=YES 是否允許tcp_wrappers管理
其他
listen_address=ip address 指定偵聽IP
listen_port=port_value 指定偵聽埠,默認21
chroot_local_user=YES 限制所有的本地用戶在自家目錄
userlist_deny=YES 決定禁止還是只允許由userlist_file指定文件中的用戶登錄FTP伺服器.此選項在userlist_enable選項啟動后才生效.YES為默認值,禁止文件中的用戶登錄,同時也不向這些用戶發出輸入密碼的提示.NO表示只允許在文件中的用戶登錄FTP伺服器
local_root=/home/ftp 所有用戶的根目錄,對匿名用戶無效
anon_max_rate=value 匿名用戶的最大傳輸速度,單位是Byts/s
local_max_rate=value 本地用戶的最大傳輸速度,單位是Byts/s
download_enable=YES 是否允許下載

3) 連接信息

代碼 含義 代碼 含義
110 重新啟動標記應答 120 服務在多久時間內ready
125 數據鏈路埠開啟,準備傳送 150 文件狀態正常,開啟數據連接埠
200 命令執行成功 202 命令執行失敗
211 系統狀態或是系統求助響應 212 目錄的狀態
213 文件的狀態 214 求助的信息
215 名稱系統類型 220 新的聯機服務ready
221 服務的控制連接埠關閉,可以註銷 225 數據連結開啟,但無傳輸動作
226 關閉數據連接埠,請求的文件操作成功 227 進入passive mode
230 使用者登錄 250 請求的文件操作完成
257 顯示目前的路徑名稱 331 用戶名稱正確,需要密碼
332 登入時需要賬號信息 350 請求的操作需要進一部的命令
421 無法提供服務,關閉控制連結 425 無法開啟數據鏈路
426 關閉聯機,終止傳輸 450 請求的操作未執行
451 命令終止:有本地的錯誤 452 未執行命令:磁碟空間不足
500 格式錯誤,無法識別命令 501 參數語法錯誤
502 命令執行失敗 503 命令順序錯誤
504 命令所接的參數不正確 530 未登錄
532 儲存文件需要賬戶登錄 550 未執行請求的操作
551 請求的命令終止,類型未知 552 請求的文件終止,儲存位溢出
553 未執行請求的的命令,名稱不正確

4. 配置 1) 匿名用戶登錄FTP Ø 配置 安裝完成後,service vsftpd start啟動服務 Ø 測試 在XP下連接FTP,可以看到登陸成功,用戶名為ftp,即為匿名用戶,anonymous也為匿名用戶,vsFTP默認的配置匿名用戶就可登錄 2) 實名用戶登錄FTP Ø 配置 mkdir -p /var/ftp/pub/zwb:建立用戶登錄根目錄 useradd -G ftp -d /var/ftp/pub/zwb -M zwb:建立實名用戶 passwd zwb:設置實名用戶登錄密碼 Ø 測試 3) 只允許匿名登錄,不允許實名登錄 Ø 配置 l 修改配置文件

將local_enable=YES改為NO,保存退出 l 重啟服務 Ø 測試 4) 不允許匿名登錄,只允許實名登錄 Ø 配置 l 修改配置文件

將local_enable=NO改為YES,anonymous_enable=YES改為NO,退出保存 l 重啟服務 Ø 測試 5) 黑、白名單 Ø 黑名單 l 配置 u 修改配置文件

anonymous_enable=NO改為anonymous_enable=YES,還原初始配置 u 添加黑名單 將zwb用戶追加進黑名單 l 測試 zwb用戶登錄失敗 Ø 白名單 l 配置 u 還原設置

將上面追加進黑名單的用戶zwb移除並保存退出 u 設置白名單

添加userlist_deny=NO與userlist_file=/etc/vsftpd/user_list這2行

u 添加白名單

除user_list里的用戶外,都不可登陸 u 重啟服務 l 測試 6) 限制客戶數 Ø 配置 l 還原設置 u 還原白名單

將上面追加進黑名單的用戶zwb移除並保存退出 u 還原配置文件

去掉userlist_deny=NO與userlist_file=/etc/vsftpd/user_list l 修改配置文件

添加max_clients=1,指明最大客戶連接數量為1 l 重啟服務 Ø 測試 ftp用戶登錄成功,不要退出,再次開啟一個命令行 在才開啟的命令行上連接FTP,錯誤代碼421,提示There are too many connected users,please try later(有太多的用戶連接,稍後再試),使用zwb用戶登錄Connection closed by remote host(遠程主機連接關閉) 7) 速率限制 Ø 匿名用戶與實名用戶速率限制 l 配置 u 還原設置

去掉max_clients=1 u 修改配置文件

單位為bytes,local_max_rate表示實名用戶的下載速度,anon_max_rate表示匿名用戶的下載速度 u 重啟服務 l 測試 u 創建測試文件 dd if=/dev/zero of=get_test bs=126k count=1創建一個大小為126k的文件,用0填滿,作為測試文件,實際創建了一個129k的文件 u 測試 zwb用戶用時為0.77Seconds,速率為168.44Kbytes/sec.ftp用戶用時為6.20Seconds,速率為20.80Kbytes/sec Ø 不同實名用戶分等級下載限制 l 配置 u 還原設置

去掉local_max_rate與anon_max_rate

u 添加用戶

建立zzj用戶的用戶根目錄,添加zzj用戶,設置zzj用戶密碼 u 修改配置文件

添加user_config_dir=/etc/vsftpd,設置用戶配置目錄 u 添加用戶配置文件 n 為zwb用戶添加配置文件

n 為zzj用戶添加配置文件

u 重啟服務 l 測試 zwb用戶用時為0.78Seconds,速率為165.20Kbytes/sec.zzj用戶用時為6.20Seconds,速率為20.80Kbytes/sec 8) 上傳 Ø 匿名用戶上傳 l 配置 u 還原設置

把user_config_dir=/etc/vsftpd去掉 u 修改配置文件

取消anon_upload_enable=YES與anon_mkdir_write_enable=YES前的註釋,添加anon_other_write_enable=YES,表示允許文件改名、刪除 u 許可權配置 chmod -R 777 pub: 將pub目錄改為777的許可權 chcon -R -t public_content_rw_t pub: 將pub目錄的文件類型改為public_content_rw_t getsebool -a | grep ftp: 查看sebool值中關於ftp的值 setsebool -P allow_ftpd_anon_write on: 修改sebool中allow_ftpd_anon_write的值為on u 重啟服務 l 測試 u 創建測試文件 u 測試 匿名用戶需要上傳在pub目錄下 Ø 實名用戶上傳 l 配置 u 還原設置 n 還原配置文件 將anonymous_enable=YES註釋 將anon_upload_enable=YES與anon_mkdir_write_enable=YES註釋 n 還原sebool值 u 設置sebool值 u 設置用戶根目錄許可權 將用戶主目錄/var/ftp/pub/zwb改成777的許可權 u

重啟服務 l 測試 9) 更改默認共享目錄 Ø 配置 l 還原設置

l 修改配置文件

l 重啟服務 l 創建實名用戶根目錄 l 修改目錄類型 Ø 測試 l 創建文件 l 測試 實名用戶登錄后ls可以看到文件A,證明在/home/zwb文件目錄下,或者可以使用pwd命令,查看當前所在目錄 匿名用戶ftp登錄后,ls可以看到文件B,證明在/home文件目錄下


[火星人 ] Linux下的Vsftpd配置篇已經有593次圍觀

http://coctec.com/docs/linux/show-post-49525.html