Linux技術文章---檔案伺服器Vsftp使用指南

來源:互聯網
上載者:User

Vsftpd是一款十分不錯的ftp伺服器軟體,用它可以很快地部署一個功能強大的ftp伺服器。 

知識點:  

1、FTP使用TCP串連和TCP連接埠

2、在進行通訊時,FTP需要建立兩個TCP串連:

一個用於控制資訊,TCP連接埠號碼預設為21

一個用於資料轉送,TCP連接埠號碼預設為20

3、Vsftp是一個基於GPL發布的類Unix系統上的FTP伺服器

4、其名稱中的VS即“Verysecure”的意思,可見安全性高。

配置:

1、查看是否安裝了Vsftp

#rpm –qa vsftpd

2、安裝

系統光碟片安裝方法:

放入第三張光碟片

#mount /mnt/cdrom

#cd /mnt/cdrom/RedHat/RPMS

#rpm –ivh vsftpd-1.1.3-8.i386.rpm

#cd;eject 

源碼安裝方法:

依照下面的步驟一步步完成架設:

(1、下載軟體vsftpd-2.0.1.tar.gz。這可避免rpm包出現依賴這樣的麻煩。

(2、解壓檔案vsftpd-2.0.1.tar.gz 。 # tar zxvf vsftpd-2.0.1.tar.gz

(3、進入目錄vsftpd-2.0.1。 # cd vsftpd-2.0.1

(4、編譯。 # make

(5、建立目錄 # mkdir /var/ftp

(6、添加使用者 # useradd –d /var/ftp ftp

(7、更改目錄屬組和許可權 # chown root.root /var/ftp ; chmod og-w /var/ftp

(8、安裝軟體 # make install

(9、拷貝檔案 # cp vsftpd.conf /etc/vsftpd.conf ; cp RedHat/vsftpd.pam /etc/pam.d/ftp

(10、修改設定檔 # vi /etc/vsftpd.conf . 把 local_enable=YES write_enable=YES和local_umask=022前面的注釋取消,然後加上一行listen=YES 。

(11、修改檔案 /etc/rc.local , 把行/usr/local/sbin/vsftpd& 插入檔案中,以實現開機自動啟動。

3、Vsftp服務啟動與停止

#service vsftpd start 啟動

#service vsftpd stop 停止

#service vsftpd restart 重啟

永久啟動:#setup

#ps –ax | grep vsftpd 查看進程是否啟動。

#chkconfig –level 2345 vsftpd on 設定在系統啟動時,自動啟動進程。

4、訪問Vsftp

進入 ftp 192.168.0.1

輸入密碼進入後:ls 查看 put 上傳 get下載

離開bye

5、設定檔

主設定檔 /etc/vsftpd/vsftpd.conf

使用者控制檔案 /etc/vsftpd.ftpusers 作用:指定哪些使用者不能訪問FTP,相當於一個黑名單

主設定檔:

option=value

要注意的是,等號兩邊不能加空白,不然是不正確的設定。

===ascii 設定=====================

ascii_download_enable

管控是否可用ASCII模式下載。預設值為NO。

ascii_upload_enable

管控是否可用ASCII模式上傳。預設值為NO。

===個別使用者設定===================

chroot_list_enable

如果啟動這項功能,則所有的本機使用者登入均可進到根目錄之外的資料夾,除了列在/etc/vsftpd.chroot_list之中的使用者之外。預設值為NO。

userlist_enable

用法:YES/NO

若是啟動此功能,則會讀取/etc/vsftpd.user_list 當中的使用者名稱。此項功能可以在詢問密碼前就出現失敗訊息,而不需要檢驗密碼的程式。預設值為關閉。

userlist_deny

用法:YES/NO

這個選項只有在userlist_enable啟動時才會被檢驗。

如果將這個選項設為YES,則在/etc/vsftpd.user_list 中的使用者將無法登入,

若設為NO,則只有在/etc/vsftpd.user_list中的使用者才能登入。

而且此項功能可以在詢問密碼前就出現錯誤訊息,而不需要檢驗密碼的程式。

user_config_dir

定義個別使用者設定檔案所在的目錄,

例如定義user_config_dir=/etc/vsftpd/userconf,且主機上有使用者test1,test2,那我們可以在user_config_dir 的目錄新增檔案名稱為test1以及test2。若是test1登入,則會讀取user_config_dir下的test1 這個檔案內的設定。

預設值為無。

===歡迎語設定=====================

dirmessage_enable

如果啟動這個選項,使用者第一次進入一個目錄時,會檢查該目錄下是否有.message這個檔案,若是有,則會出現此檔案的內容,通常這個檔案會放置歡迎話語,或是對該目錄的說明。預設值為開啟。

banner_file

當使用者登入時,會顯示此設定所在的檔案內容,通常為歡迎話語或是說明。預設值為無。

ftpd_banner

這邊可定義歡迎話語的字串,相較於banner_file是檔案的形式,而ftpd_banner是字串的格式。預設值為無。

===特殊安全設定====================

chroot_local_user

如果設定為YES,那麼所有的原生使用者都可以切換到根目錄以外的資料夾。預設值值為NO。

hide_ids

如果啟動這項功能,所有檔案的擁有者與群組都為ftp,也就是使用者登入使用ls -al之類的指令,所看到的檔案擁有者跟群組均為ftp。預設值為關閉。

ls_recurse_enable

若是啟動此功能,則允許登入者使用ls -R 這個指令。預設值為NO。

write_enable

用法:YES/NO

這個選項可以控制FTP的指令是否允許更改file system,譬如STOR、DELE、RNFR、RNTO、MKD、RMD、APPE以及SITE。預設值為關閉。

setproctitle_enable

用法:YES/NO

啟動這項功能,vsftpd 會將所有聯機的狀況已不同的process 呈現出來,換句話說,使用ps -ef這類的指令就可以看到聯機的狀態。預設值為關閉。

tcp_wrappers

用法:YES/NO

如果啟動,則會將vsftpd與tcp_wrapper結合,也就是可以在/etc/hosts.allow與/etc/hosts.deny中定義允許或拒絕的來源地址。

pam_service_name

這邊定義PAM所使用的名稱,預設值為vsftpd。

secure_chroot_dir

這個選項必須指定一個空的資料夾且任何登入者都不能有寫入的許可權,當vsftpd不需要file system的許可權時,就會將使用者限制在此資料夾中。預設值為/usr/share/empty。

===紀錄檔案設定=====================

xferlog_enable

用法:YES/NO

如果啟動,上傳與下載的資訊將被完整紀錄在底下xferlog_file 所定義的檔案中。預設值為開啟。

xferlog_file

這個選項可設定紀錄檔案所在的位置,預設值為/var/log/vsftpd.log。

xferlog_std_format

如果啟動,則紀錄檔案將會寫為xferlog 的標準格式,如同wu-ftpd一般。預設值為關閉。

===逾時設定======================

accept_timeout

接受建立聯機的逾時設定,單位為秒。預設值為60。

connect_timeout

響應PORT 方式的資料聯機的逾時設定,單位為秒。預設值為60。

data_connection_timeout

建立資料聯機的逾時設定。預設值為300秒。

idle_session_timeout

發獃的逾時設定,若是超出這時間沒有資料的傳送或是指令的輸入,則會強迫斷線,單位為秒。預設值為300秒。

===速率限制======================

anon_max_rate

匿名登入所能使用的最大傳輸速度,單位為每秒多少bytes,0表示不限速度。預設值為0。

local_max_rate

本機使用者所能使用的最大傳輸速度,單位為每秒多少bytes,0表示不限速度。預設值為0。

===新增檔案許可權設定==================

anon_umask

匿名登入者新增檔案時的umask 數值。預設值為077。

file_open_mode

上傳檔案的許可權,與chmod 所使用的數值相同。預設值為0666。

local_umask

本機登入者新增檔案時的umask 數值。預設值為077。

===port 設定======================

connect_from_port_20

用法:YES/NO

若設為YES,則強迫ftp-data 的資料傳送使用port 20。預設值為YES。

ftp_data_port

設定ftp 資料聯機所使用的port。預設值為20。

listen_port

FTP server 所使用的port。預設值為21。

pasv_max_port

建立資料聯機所可以使用port範圍的上界,0表示任意。預設值為0。

pasv_min_port

建立資料聯機所可以使用port範圍的下界,0表示任意。預設值為0。

===其它========================

anon_root

使用匿名登入時,所登入的目錄。預設值為無。

local_enable

用法:YES/NO

啟動此功能則允許本機使用者登入。預設值為YES。

local_root

本機使用者登入時,將被更換到定義的目錄下。預設值為無。

text_userdb_names

用法:YES/NO

當使用者登入後使用ls -al 之類的指令查詢該檔案的管理權時,預設值會出現擁有者的UID,而不是該檔案擁有者的名稱。若是希望出現擁有者的名稱,則將此功能開啟。預設值為NO。

pasv_enable

若是設為NO,則不允許使用PASV 的模式建立資料的聯機。預設值為開啟。

===更換檔案所有權===================

chown_uploads

用法:YES/NO

若是啟動,所有匿名上傳資料的擁有者將被更換為chown_username 當中所設定的使用者。這樣的選項對於安全及管理,是很有用的。預設值為NO。

chown_username

這裡可以定義當匿名登入者上傳檔案時,該檔案的擁有者將被置換的使用者名稱。預設值為root。

===guest 設定======================

guest_enable

用法:YES/NO

若是啟動這項功能,所有的非匿名登入者都視為guest。預設值為關閉。

guest_username

這裡將定義guest 的使用者名稱。預設值為ftp。

===anonymous 設定====================

anonymous_enable

用法:YES/NO

管控使否允許匿名登入,YES 為允許匿名登入,NO 為不允許。預設值為YES。

no_anon_password

若是啟動這項功能,則使用匿名登入時,不會詢問密碼。預設值為NO。

anon_mkdir_write_enable

用法:YES/NO

如果設為YES,匿名登入者會被允許新增目錄,當然,匿名使用者必須要有對上層目錄的寫入權。預設值為NO。

anon_other_write_enable

用法:YES/NO

如果設為YES,匿名登入者會被允許更多於上傳與建立目錄之外的許可權,譬如刪除或是更名。預設值為NO。

anon_upload_enable

用法:YES/NO

如果設為YES,匿名登入者會被允許上傳目錄的許可權,當然,匿名使用者必須要有對上層目錄的寫入權。預設值為NO。

anon_world_readable_only

用法:YES/NO

如果設為YES,匿名登入者會被允許下載可閱讀的檔案。預設值為YES。

ftp_username

定義匿名登入的使用者名稱。預設值為ftp。

deny_email_enable

若是啟動這項功能,則必須提供一個檔案/etc/vsftpd.banner_emails,內容為email address。若是使用匿名登入,則會要求輸入email address,若輸入的email address在此檔案內,則不允許聯機。預設值為NO。

===Standalone 選項====================

listen

用法:YES/NO

若是啟動,則vsftpd將會以獨立運作的方式執行,若是vsftpd獨立執行,如RedHat Linux 9的預設值,則必須啟動;若是vsftpd包含在xinetd之中,則必須關閉此功能,如RedHat Linux 8。在RedHat Linux 9中預設值為YES。

listen_address

若是vsftpd 使用standalone 的模式,可使用這個參數定義使用哪個IP address提供這項服務,若是主機上只有定義一個IP address,則此選項不需使用,若是有多個IP address,可定義在哪個IP address上提供ftp服務。若是不設定,則所有的IP address均會提供此服務。預設值為無。

max_clients

若是vsftpd使用standalone的模式,可使用這個參數定義最大的總聯機數。超過這個數目將會拒絕聯機,0表示不限。預設值為0。

max_per_ip

若是vsftpd使用standalone的模式,可使用這個參數定義每個ip address所可以聯機的數目。超過這個數目將會拒絕聯機,0表示不限。預設值為0。

實驗一、設定Chroot——使用者不能切換目錄

因為預設情況下是可以切換目錄的,所以是很不安全的。。

1、限制所有使用者不能切換目錄

chroot_local_user=YES

2、設定指定的使用者不能切換目錄

chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list

實驗二、用Vsftp.user_list存取控制

利用/etc/vsftpd.user_list

A、設定在/etc/vsftpd.user_list檔案中使用者不能訪問,其它使用者可以訪問

userlist_enable=YES

userlist_deny=YES

userlist_file=/etc/vsftpd.user_list

B、設定在/etc/vsftpd.user_list檔案中的使用者能訪問國,其它使用者不可以訪問。

userlist_enable=YES

userlist_deny=NO

userlist_file=/etc/vsftpd.user_list

實驗三、簡單虛擬使用者

讓abc使用者不能登入系統,只能登入FTP

#adduser –g ftp –s /sbin/nologin abc

#passwd abc

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.