當前位置:編程學習大全網 - 源碼下載 - 如何在ubuntu中安裝設置ftp服務器

如何在ubuntu中安裝設置ftp服務器

FTP服務器是平時應用最為廣泛的服務之壹。VSFTP是Very Secure

FTP的縮寫,意指非常安全的FTP服務。VSFTP功能強大,通過結合本地系統的用戶認證模塊及其多功能的配置項目,可以快速有效的搭建強大的多用戶FTP服務。

首先我們考慮搭建FTP服務需要關註的都有哪些方面?比如我們最經常關註的有:

1、如何添加FTP用戶?

2、如何臨時凍結某FTP用戶?

3、FTP用戶登入後的默認目錄?是否可以改變?

4、如何鎖定FTP用戶可訪問的目錄範圍?

5、FTP用戶可以有哪些訪問權限?可否上傳文件?

我們將帶著這些問題來探討如何配置VSFTP以達到預定目標。

壹、主要配置選項

VSFTP的主配置文件是/etc/vsftpd.conf

。由於可配置的選項實在太多,無法壹壹詳談,只能截取比較常用的功能配置選項來加以說明。完整說明可參考man

vsftpd.conf。

這裏需要註意的是,每個配置選項都是由“配置項目名稱=配置值“所定義。在每個配置變量後,要緊跟等號,再緊跟設置的變量值。中間不允許出現空格之類的分隔符,否則導致配置錯誤,無法生效!

另外,如果需要開通上傳功能,則應註意用來登錄FTP的本地系統用戶對要操作的目錄需要具備寫權限,否則無法上傳文件!

版本vsftpd: version 2.0.6

啟動VSFTPD:sudo /etc/init.d/vsftpd start

停止VSFTPD:sudo /etc/init.d/vsftpd stop

重啟VSFTPD:sudo /etc/init.d/vsftpd restart

以下為常用的配置選項:

1、listen=YES

若設置為YES,開啟監聽網絡。

2、anonymous_enable

若設置為YES,則允許匿名用戶訪問;若設置為NO則拒絕匿名用戶訪問。

如果開啟的話,則可以通過用戶名ftp或者anonymous來訪問,密碼隨便。

3、local_enable

若設置為YES,則允許通過本地用戶帳號訪問;若設置為NO,則拒絕本地用戶帳號訪問。如果妳拒絕了陌生人訪問,那麽這個必須設置為YES吧,否則誰能訪問妳的FTP呢?

4、write_enable

若設置為YES,則開啟FTP全局的寫權限;若設置為NO,則不開。

若為NO則所有FTP用戶都無法寫入,包括無法新建、修改、刪除文件、目錄等操作,也就是說用戶都沒辦法上傳文件!!

5、anon_upload_enable

若設置為YES,開啟匿名用戶的上傳權限。前提是write_enable有開啟,並且用戶具有對當前目錄的可寫權限。

若設置為NO,則關閉匿名用戶的上傳權限。

6、anon_mkdir_write_enable

若設置為YES,開啟匿名用戶新建目錄的權限。前提是write_enable有開啟,並且用戶具有對當前目錄的可寫權限。

若設置為NO,則關閉匿名用戶新建目錄的權限。

7、dirmessage_enable

若設置為YES,則可開啟目錄信息推送,也就是用戶登錄FTP後可以列出當前目錄底下的文件、目錄。 這個應該要開啟吧!

8、xferlog_enable

若設置為YES,則開啟登錄、上傳、下載等事件的日誌功能。應開啟!

9、xferlog_file=/var/log/vsftpd.log

指定默認的日誌文件,可指定為其他文件。

10、xferlog_std_format

若設置為YES,則啟用標準的ftpd日誌格式。可以不啟用。

11、connect_from_port_20

若設置為YES,則服務器的端口設為20。

如果不想用端口20,可以另外通過ftp_data_port來指定端口號。

12、chown_uploads

若設置為YES,則匿名用戶上傳文件後系統將自動修改文件的所有者。

若要開啟,則chown_username=whoever也需指定具體的某個用戶,用來作為匿名用戶上傳文件後的所有者。

13、idle_session_timeout=600

不活動用戶的超時時間,超過這個時間則中斷連接。

14、data_connection_timeout=120

數據連接超時時間 。

15、ftpd_banner=Welcome to blah FTP

service.

FTP用戶登入時顯示的信息 。

16、local_root=/home/ftp

指定壹個目錄,用做在每個本地系統用戶登錄後的默認目錄。

17、anon_root=/home/ftp

指定壹個目錄,用做匿名用戶登錄後的默認目錄。

18、chroot_local_user、 chroot_list_enable、chroot_list_file

這個組合用於指示用戶可否切換到默認目錄以外的目錄。

其中,chroot_list_file默認是/etc/vsftpd.chroot_list,該文件定義壹個用戶列表。

若chroot_local_user

設置為NO,chroot_list_enable設置為NO,則所有用戶都是可以切換到默認目錄以外的。

若chroot_local_user

設置為YES,chroot_list_enable設置為NO,則鎖定FTP登錄用戶只能在其默認目錄活動,不允許切換到默認目錄以外。

若chroot_local_user

設置為YES,chroot_list_enable設置為YES,則chroot_list_file所指定的文件裏面的用戶列表都可以訪問默認目錄以外的目錄,而列表以外的用戶則被限定在各自的默認目錄活動。

若chroot_local_user設置為NO,chroot_list_enable設置為YES,則chroot_list_file所指定的文件裏面的用戶列表都被限定在各自的默認目錄活動,而列表以外的用戶則可以訪問默認目錄以外的目錄。

建議設置:chroot_local_user與chroot_list_enable都設置為YES。這樣就只有chroot_list_file所指定的文件裏面的用戶列表可以訪問默認目錄以外的目錄,而列表以外的用戶則被限定在各自的默認目錄活動!

好處:所有人都被限制在特定的目錄裏面。如果某些特定用戶需要訪問其他目錄的權限,只需將其用戶名寫入chroot_list_file文件就可以賦予其訪問其他目錄的權限!

19、userlist_file、userlist_enable、userlist_deny

這個組合用於指示用戶可否訪問FTP服務。

其中,userlist_file默認是/etc/vsftpd.user_list,該文件定義壹個用戶列表。

若userlist_enable設置為YES,userlist_deny設置為NO,則只有userlist_file所指定的文件裏面的用戶列表裏面的用戶可以訪問FTP。

若userlist_enable設置為YES,userlist_deny設置為YES,則userlist_file所指定的文件裏面的用戶列表裏面的用戶都被拒絕訪問FTP。

若userlist_enable設置為NO,userlist_deny設置為YES,則這個列表沒有實際用處,起不到限制的作用!因為所有用戶都可訪問FTP。

建議設置:userlist_enable與userlist_deny都設置為YES。這樣則userlist_file所指定的文件裏面的用戶列表裏面的用戶都被拒絕訪問FTP。

好處:只需將某用戶帳號加入到userlist_file所指定文件裏面的用戶列表,就可以起到暫時凍結該用戶的功能!

20、user_config_dir

指定壹個目錄用於存放針對每個用戶各自的配置文件,比如用戶kkk登錄後,會以該用戶名建立壹個對應的配置文件。

比如指定user_config_dir=/etc/vsftpd_user_conf,

則kkk登錄後會產生壹個/etc/vsftpd_user_conf/kkk的文件,這個文件保存的配置都是針對kkk這個用戶的。可以修改這個文件而

不用擔心影響到其他用戶的配置。

二、我的VSFTP的配置方案

#首先要安裝VSFTP。源碼編譯或軟件包安裝都可以。

#以下方案實現以下功能:

#1、鎖定用戶在/home/ftp默認目錄活動,

#

並保留/etc/vsftpd.chroot_list文件裏面的用戶列表可訪問其他目錄。

#2、具備暫時凍結FTP用戶的功能,將需暫停的用戶名加入到/etc/vsftpd.usr_list即可。

#

#設置配置文件:

#復制以下文件並保存為/etc/vsftpd.conf

#新建兩文件:touch /etc/vsftpd.chroot_list

#

touch /etc/vsftpd.user_list

#新建目錄:mkdir /home/ftp

#新建群組:addgroup ftp

#修改/home/ftp屬性:chown ftp:ftp /home/ftp

#新增FTP用戶: adduser --shell /bin/false --home /home/ftp

your_usr_name

#把需要開通FTP的用戶名加入到ftp群組:usermod -aG ftp your_usr_name

#註意:

#如果妳的/etc/shells裏面沒有包含/bin/false,則妳用上述的方法建立的用戶將法訪問#FTP,解決方法:編輯/etc/shells,加入/bin/false這行。

#

# Example config file /etc/vsftpd.conf

listen=YES

#listen_ipv6=YES

anonymous_enable=YES

local_enable=YES

write_enable=YES

#anon_upload_enable=YES

#anon_mkdir_write_enable=YES

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

#chown_uploads=YES

#chown_username=whoever

#xferlog_file=/var/log/vsftpd.log

#xferlog_std_format=YES

#idle_session_timeout=600

#data_connection_timeout=120

#nopriv_user=ftpsecure

#async_abor_enable=YES

#ascii_upload_enable=YES

#ascii_download_enable=YES

#ftpd_banner=Welcome to blah FTP

service.

#deny_email_enable=YES

#banned_email_file=/etc/vsftpd.banned_emails

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list

#ls_recurse_enable=YES

secure_chroot_dir=/var/run/vsftpd

pam_service_name=vsftpd

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

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

anon_root=/home/ftp

local_root=/home/ftp

userlist_file=/etc/vsftpd.user_list

userlist_enable=YES

userlist_deny=YES

三、回答前面提到的問題

1、如何添加FTP用戶?

設置local_enable為YES可以開放系統用戶訪問FTP。

在系統裏面添加用戶,將shell設置為/bin/false,並將其家目錄若設置為/home/ftp或者其他目錄。這樣就可以建立只訪問FTP而無法登錄shell環境的用戶。

註意:可以新建壹個ftp組,把/home/ftp的所有者設為ftp,群組也設為ftp。然後所有新添加的FTP用戶只需加入到FTP群組就可以具有對/home/ftp的訪問權限了。這樣也方便管理用戶量比較大的FTP系統。如:

sudo addgroup ftp #如果有了就不用添加

sudo chown ftp:ftp /home/ftp #如果改過了就不用再改

sudo adduser --shell /bin/false --home /home/ftp user1

#添加用戶user1

sudo usermod -aG ftp

user1 #把用戶user1加入到ftp組

這樣便可以通過用戶名user1來訪問FTP服務了。

2、如何臨時凍結某FTP用戶?

將userlist_enable與userlist_deny都設置為YES。這樣userlist_file所指定的文件裏面的用戶列表裏面的用戶都

被拒絕訪問FTP。只需將某用戶帳號加入到userlist_file所指定文件裏面的用戶列表,就可以起到暫時凍結該用戶的功能!如需重新開通使用權

限,則只需從該文件中去掉相應的用戶名。

3、FTP用戶登入後的默認目錄?是否可以改變?

可以通過local_root、anon_root來指定相應的默認目錄。

4、如何鎖定FTP用戶可訪問的目錄範圍?

將chroot_local_user與chroot_list_enable都設置為YES。這樣就只有chroot_list_file所指定的文件

裏面的用戶列表可以訪問默認目錄以外的目錄,而列表以外的用戶則被限定在各自的默認目錄活動!如果某些特定用戶需要訪問其他目錄的權限,只需將其用戶名寫

入chroot_list_file文件就可以賦予其訪問其他目錄的權限!

5、FTP用戶可以有哪些訪問權限?可否上傳文件?

設置write_enable可以開啟全局的寫權限。這樣FTP用戶就可以在本地帳號管理系統允許的範圍內進行寫操作了

  • 上一篇:ioc源代碼的詳細解釋
  • 下一篇:流氓源代碼
  • copyright 2024編程學習大全網