Ubuntu linux下vsftpd 安裝配置

ftp基本概念數據庫

   FTP 是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱爲「文傳協議」。用於Internet上的控制文件的雙向傳輸,支持FTP協議的服務器就是FTP服務  器;TCP/IP協議中,FTP標準命令TCP端口號爲21,Port方式數據端口爲20。FTP的任務是從一臺計算機將文件傳送到另外一臺計算機,不受操做系統的限制。FTP的傳輸有兩種方式:ASCII、二進制。安全

FTP支持兩種模式:Standard (PORT方式,主動方式),Passive (PASV,被動方式)。服務器

       Port模式網絡

FTP 客戶端首先和服務器的TCP 21端口創建鏈接,用來發送命令,客戶端須要接收數據的時候在這個通道上發送PORT命令。PORT命令包含了客戶端用什麼端口接收數據。在傳送數據的時候,服務器端經過本身的TCP 20端口鏈接至客戶端的指定端口發送數據。FTP server必須和客戶端創建一個新的鏈接用來傳送數據。session

      Passive模式app

創建控制通道和Standard模式相似,但創建鏈接後發送Pasv命令。服務器收到Pasv命令後,打開一個臨時端口(端口號大於1023小於65535)而且通知客戶端在這個端口上傳送數據的請求,客戶端鏈接FTP服務器此端口,而後FTP服務器將經過這個端口傳送數據。異步

不少防火牆在設置的時候都是不容許接受外部發起的鏈接的,因此許多位於防火牆後或內網的FTP服務器不支持PASV模式,由於客戶端沒法穿過防火牆打開FTP服務器的高端端口;而許多內網的客戶端不能用PORT模式登錄FTP服務器,由於從服務器的TCP 20沒法和內部網絡的客戶端創建一個新的鏈接,形成沒法工做。socket

總結:ftp 是作文件上傳下載的。。。並且還比較陳舊async

 

安裝:apt-get install vsftpdtcp

安裝完成後查看vsftpd各文件位置:dpkg –L vsftpd

基本配置信息

listen=YES

#設定該Vsftpd服務工做在StandAlone模式下。

#所謂StandAlone模式就是該服務擁有本身的守護進程支持,在ps -A命令下咱們將可用看到vsftpd的守護進程名。

#若是不想工做在StandAlone模式下,則能夠選擇SuperDaemon模式,在該模式下 vsftpd將沒有本身的守護進程,

#而是由超級守護進程Xinetd全權代理,與此同時,Vsftp服務的許多功能將得不到實現。

 

#listen_ipv6=YES

# This directive enables listening on IPv6 sockets. By default, listening

# on the IPv6 "any" address (::) will accept connections from both IPv6

# and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6

# sockets. If you want that (perhaps because you want to listen on specific

# addresses) then you must run two copies of vsftpd with two configuration

# files.

 

anonymous_enable=NO

#設定不容許匿名訪

anon_upload_enable=NO

#禁止匿名用戶上傳。

anon_mkdir_write_enable=NO

#禁止匿名用戶創建目錄。

#chown_uploads=YES

#chown_username=whoever

# If you want, you can arrange for uploaded anonymous files to be owned by

# a different user. Note! Using "root" for uploaded files is not

# recommended! 仍是針對匿名用戶

 

local_enable=YES

#設定本地用戶能夠訪問,和容許匿名用戶訪問 兩個選項必須開啓一個 否則ftp就自閉了

#虛擬宿主用戶,若是該項設定爲NO那麼全部虛擬用戶將沒法訪問。

write_enable=YES

#設定能夠進行寫操做

local_umask=022

#設定上傳後文件的權限掩碼。注意(umask決定目錄和文件被建立時獲得的初始權限  777-022=755 )

use_localtime=YES

# If enabled, vsftpd will display directory listings with the time

# in  your  local  time  zone.  The default is to display GMT. The

# times returned by the MDTM FTP command are also affected by this

# option.

 

xferlog_enable=YES

#設定開啓日誌記錄功能 上傳/下載

#xferlog_file=/var/log/vsftpd.log

# You may override where the log file goes if you like. The default is shown

# below. 能夠自行設置日誌記錄地址 以上是默認地址

 

#idle_session_timeout=600

# You may change the default value for timing out an idle session.

#設定空閒鏈接超時時間,這裏使用默認。將具體數值留給每一個具體用戶具體指定,固然若是不指定的話,仍是使用這裏的默認值600,單位秒

#data_connection_timeout=120

# You may change the default value for timing out a data connection.

#設定單次最大連續傳輸時間,這裏使用默認。將具體數值留給每一個具體用戶具體指定,固然若是不指定的話,仍是使用這裏的默認值120,單位秒

 

#nopriv_user=ftpsecure

# It is recommended that you define on your system a unique user which the

# ftp server can use as a totally isolated and unprivileged user.

#設定支撐Vsftpd服務的宿主用戶爲手動創建的Vsftpd用戶。注意,一旦作出更改宿主用戶後,必須注意一塊兒與該服務相關的讀寫文件的讀寫賦權問題。好比日誌文件就必須給與 該用戶寫入權限等。就是 ftp服務的操做 以該設置的用戶來進行 安全限制

 

#async_abor_enable=YES

#設定支持異步傳輸功能。

ascii_upload_enable=YES

ascii_download_enable=YES

#設定支持ASCII模式的上傳和下載功能

 

connect_from_port_20=YES

#設定端口20進行數據鏈接  port模式 主動模式

#pasv_enable=YES
#pasv_max_port=30010
#pasv_min_port=30000 

#被動模式設置

 

#chroot_local_user=YES

#chroot_list_enable=YES

# (default follows)

#chroot_list_file=/etc/vsftpd.chroot_list

# 這個控制用戶切換到主目錄外的其餘目錄  chroot_list_enable該指令控制chroot_list_file的有效性,chroot_list_file指定一個文件,記錄用戶名

#chroot_local_user爲YES表示全部用戶都*能*切換到主目錄以外其餘目錄,可是除了chroot_list_file配置的文件列出的用戶。chroot_local_user爲NO表示全部用戶都*不能*切換到主目錄以外其餘目錄,可是除了chroot_list_file配置的文件列出的用戶。也能夠理解爲,chroot_list_file列出的「例外狀況」的用戶

 

#userlist_deny=NO

#userlist_enable=NO

#userlist_file=/etc/vsftpd.user_list

#userlist_enable 控制userlist_file 的有效性,userlist_enable爲YES userlist_deny配置纔有用,userlist_deny=NO  則userlist_file 配置中用戶可訪問 其餘用戶不可訪問;userlist_deny=YES 則userlist_file 配置中用戶不可訪問 其餘用戶可訪問

 

ls_recurse_enable=NO

#禁止用戶登錄FTP後使用"ls -R"的命令。該命令會對服務器性能形成巨大開銷。若是該項被容許,那麼擋多用戶同時使用該命令時將會對該服務器形成威脅

 

pam_service_name=vsftpd

#設定PAM服務下Vsftpd的驗證配置文件名。所以,PAM驗證將參考/etc/pam.d/下的vsftpd文件配置。

 

tcp_wrappers=YES

#設定支持TCP Wrappers

 

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

ssl_enable=NO

# This option specifies the location of the RSA certificate to use for SSL

# encrypted connections.

 

# Uncomment this to indicate that vsftpd use a utf8 filesystem.

#utf8_filesystem=YES

 

以上配置基本能夠保證一個基本的ftp服務走系統用戶    如下是虛擬用戶的配置方式

nopriv_user=ftpsecure

 

  *能夠檢查下以上配置中設置的文件存不存在以及相關權限設置,好比當指定了nopriv_user

 

    那麼 該用戶就須要對 日誌等ftp服務會操做的目錄以及文件有讀寫權限

接下來要說的就是虛擬用戶的設置(該操做能夠根據不一樣虛擬用戶設置不一樣配置)

準備

1.以上配置須要額外添加

guest_enable=YES
#設定啓用虛擬用戶功能。

guest_username=**
#指定虛擬用戶的宿主用戶。 這個就是限制虛擬用戶的權限

virtual_use_local_privs=YES
#設定虛擬用戶的權限符合他們的宿主用戶。

user_config_dir=/etc/vsftpd/vconf
#設定虛擬用戶我的Vsftp的配置文件存放路徑。也就是說,這個被指定的目錄裏,將#存放每一個Vsftp虛擬用戶個性的配置文件,一個須要注意的地方就是這些配置文件名#必須和虛擬用戶名相同。

2.添加虛擬用戶

           習慣性 在 /etc/vsftpd/ 下建立一個 virtualusers 文件保存虛擬用戶信息,一行用戶名 一行密碼的形式

    

        這裏須要用到 db-util   用來將上面的用戶文件轉換成 數據庫文件 以供pam 驗證  安裝:apt-get install db-util

   生成db 指令:db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db

3.設置虛擬用戶的驗證方式

  主配置中已經指定了pam校驗設置vsftpd   cat /etc/pam.d/vsftpd  再該文件 加上

    auth    sufficient      pam_userdb.so     db=/etc/vsftpd/virtusers

    account  sufficient     pam_userdb.so     db=/etc/vsftpd/virtusers

  這裏的auth是指對用戶的用戶名口令進行驗證。這裏的accout是指對用戶的賬戶有哪些權限哪些限制進行驗證。其後的sufficient表示充分條件,也就是說,一旦在這裏經過了驗  證,那麼也就不用通過下面剩下的驗證步驟了

4.設置虛擬用戶的ftp配置信息

  

  能夠看到和上面設置的虛擬用戶的名稱一致

  szy的配置

  

  zzr的配置

  

       能夠看到這裏針對不一樣的虛擬用戶 作了不一樣的設置

       注意:1.這裏的關鍵項是local_root這個配置,用來指定這個虛擬用戶的FTP主路徑。

     2.更改虛擬用戶的主目錄的屬主爲虛擬宿主用戶:也就是說虛擬用戶的宿主用戶須要對這個設置的loacl_root目錄有操做權限

基本到這 vsftpd 的基本配置就差很少了

 

其餘 vsftpd的一些指令

  service vsftpd start/stop/stauts/restart

後續可能要考慮的就是網絡問題。。。網絡訪問權限。。。編碼問題

 

開發中遇到的問題:

  1. 根據絕對路徑切換工做目錄 ftpClient.changeWorkingDirectory 始終返回false

    調整chroot_local_user相關配置確保當前ftp用戶能夠切換到主目錄之外的目錄

    奇怪的是以相對路徑來切換 能夠正常切換 該方法返回true

Over

相關文章
相關標籤/搜索