vsftpd是unix類作業系統上運作的伺服器名稱,它的名字代表“very secure ftp daemon”,安全性是其設計與開發的一個重要目标。它可運作在linux、solaris等系統中,支援很多其他的ftp 伺服器不支援的特征:
非常高的安全性需求
帶寬限制
良好的可伸縮性
建立虛拟使用者的可能性
配置設定虛拟ip位址的可能性
一、vsftpd的啟動
#service vsftpd start
如果允許使用者匿名通路,需建立使用者ftp和目錄/var/ftp
# mkdir /var/ftp
# useradd –d /var/ftp ftp
二、vsftpd的配置
vsftpd的配置檔案存放在/etc/vsftpd/vsftpd.conf 我們可根據實際數要對如下資訊進行配置:
1. 連接配接選項
☆監聽位址和控制端口
(1) listen_address=ip address
定義主機在哪個ip 位址上監聽ftp請求。即在哪個ip位址上提供ftp服務。
(2) listen_port=port_value
指定ftp伺服器監聽的端口号。預設值為21。
2. 性能與負載控制
☆逾時選項
(1) idle_session_timeout=
空閑使用者會話的逾時時間,若是超過這段時間沒有資料的傳送或是指令的輸入,則會被迫斷線。預設值是300s
(2) accept_timeout=numerical value
接受建立聯機的逾時設定。預設值為60s
☆負載選項
(1) max_clients= numerical value
定義ftp伺服器最大的兵法連接配接數。當超過此連接配接數時,伺服器拒絕用戶端連接配接。預設值為0,表示不限最大連接配接數。
(2) max_per_ip= numerical value
定義每個ip位址最大的并發連接配接數目。超過這個數目将會拒絕連接配接。此選項的設定将會影響到網際快車、迅雷之類的多線程下載下傳軟體。預設值為0,表示不限制。
(3) anon_max_rate=value
設定匿名使用者的最大資料傳輸速度,以b/s為機關。預設無。
(4) local_max_rate=value
設定使用者的最大資料傳輸速度。以b/s為機關。預設無。此選項對所有的使用者都生效。
3. 使用者選項
vsftpd的使用者分為3類:匿名使用者、本地使用者(local user)及虛拟使用者(guest)
☆ 匿名使用者
(1) anonymous_enable=yes|no
控制是否允許匿名使用者登入
(2) ftp_username=
匿名使用者使用的系統使用者名。預設情況下,值為ftp
(3) no_anon_password= yes|no
控制匿名使用者登入時是否需要密碼。
(4) anon_root=
設定匿名使用者的根目錄,即匿名使用者登入後,被定位到此目錄下。主配置檔案中預設無此項,預設值為/var/ftp/
(5) anon_world_readable_only= yes|no
控制是否隻允許匿名使用者下載下傳可閱讀的文檔。yes,隻允許匿名使用者下載下傳可閱讀的檔案。no,允許匿名使用者浏覽整個伺服器的檔案系統。
(6) anon_upload_enable= yes|no
控制是否允許匿名使用者上傳檔案。除了這個參數外,匿名使用者要能上傳檔案,還需要兩個條件,write_enable參數為yes;在檔案系統上,ftp匿名使用者對某個目錄有寫權限。
(7) anon_mkdir_wirte_enable= yes|no
控制是否允許匿名使用者建立新目錄。在檔案系統上,ftp匿名使用者必須對新目錄的上層目錄擁有寫權限。
(8) anon_other_write_enbale= yes|no
控制匿名使用者是否擁有除了上傳和建立目錄之外的其他權限。如删除、更名等。
(9) chown_uploads= yes|no
是否修改匿名使用者所上傳檔案的所有權。yes,匿名使用者上傳得檔案所有權改為另一個不同的使用者所有,使用者由chown_username參數指定。
(10) chown_username=whoever
指定擁有匿名使用者上傳檔案所有權的使用者。
☆本地使用者
(1) local_enable= yes|no
控制vsftpd所在的系統的使用者是否可以登入vsftpd。
(2) local_root=
定義本地使用者的根目錄。當本地使用者登入時,将被更換到此目錄下。
☆虛拟使用者
(1) guest_enable= yes|no
啟動此功能将所有匿名登入者都視為guest
(2) guest_username=
定義vsftpd的guest使用者在系統中的使用者名。
4. 安全措施
☆使用者登入控制
(1) /etc/vsftpd.ftpusers
vsftpd禁止列在此檔案中的使用者登入ftp伺服器。此機制是預設設定的。
(2) userlist_enable= yes|no
此選項激活後,vsftpd将讀取userlist_file參數所指定的檔案中的使用者清單。
(3) userlist_file=/etc/vsftpd.user_list
指出userlist_enable選項生效後,被讀取的包含使用者清單的檔案。預設值是/etc/vsftpd.user_list
(4) userlist_deny= yes|no
決定禁止還是隻允許由userlist_file指定檔案中的使用者登入ftp伺服器。userlist_enable選項啟動後才能生效。預設值為yes,禁止文中的使用者登入,同時不向這些使用者發出輸入密碼的指令。no,隻允許在文中的使用者登入ftp伺服器。
☆目錄通路控制
(1) chroot_list_enable= yes|no
鎖定某些使用者在自己的目錄中,而不可以轉到系統的其他目錄。
(2) chroot_list_file=/etc/vsftpd/chroot_list
指定被鎖定在主目錄的使用者的清單檔案。
(3) chroot_local_users= yes|no
将本地使用者鎖定在主目中。
三、vsftpd伺服器的配置執行個體:
基于ip的虛拟ftp伺服器配置
假設伺服器有兩個ip位址,192.168.1.199和192.168.1.200。vsftpd是建立在192.168.1.199上的。現在在192.168.1.200上再提供一個虛拟ftp伺服器。
☆建立虛拟ftp伺服器根目錄
# mkdir –p /var/ftp2/pub
確定/var/ftp2和/var/ftp2/pub目錄的所有者群組均為root,掩碼為755
# chmod 755 /var/ftp2 # chmod 755 /var/ftp2/pub
# chown –r root /var/ftp2 # chown –r : root /var/ftp2
☆ 增加虛拟ftp伺服器的匿名使用者帳号ftp2
# useradd –d /var/ftp2 –m ftp2
☆ 建立虛拟ftp伺服器的配置檔案
複制原來的vsftpd.conf作為虛拟ftp伺服器的配置檔案,并修改相關參數
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd2.conf
# vi /etc/vsftpd/vsftpd2.conf
添加或修改參數:
listen=yes
listen_address=192.168.1.200
ftp_username=ftp2
anon_root=/var/ftp2
并可參考vsftpd的配置部分的說明做其他配置,如:
•允許匿名使用者上傳檔案
write_enable=yes
anon_world_readable_only=no
anon_upload_enable=yes
anon_mkdir_write_enable=yes
建立匿名使用者上傳檔案的目錄,并設定權限:
# mkdir /var/ftp/incoming # chmod o+w /var/ftp/incoming
•取消寫權限
write_enable=no
anon_upload_enable=no
anon_mkdir_write_enable=no
anon_other_write_enable=no
•限制下載下傳速度為80kb/s
anon_max_rate=8000
•控制并發數,以及每個ip位址的并發數
max_clients=100
max_per_ip=3
☆啟動虛拟ftp伺服器
# /usr/sbin/vsftpd /etc/vsftpd/vsftpd2.comf &