ubuntu ftp安裝配置


一、准備。

 ubuntu虛擬機和window之間采用橋接方式(電腦主機最好是網線上網)

二、ftp服務器配置。

2.1. 安裝ftp服務器。

    目前Linux上使用較多的ftp服務器是vsftpd。所以,我們需要先安裝vsftpd軟件。在Ubuntu上安裝vsftpd,使用的命令是

sudo apt-get install vsftpd

    在終端輸入這句命令,有可能會提示-“無法定位到軟件包 vsftpd”,那么這個問題的解決辦法是在 /etc/apt/sources.list文件的最后,添加如下代碼,

    deb http://ftp.us.debian.org/debian stable main contrib non-free

    deb http://ftp.us.debian.org/debian-non-US stable/non-US main contrib non-free

    deb http://ftp.us.debian.org/debian testing main contrib non-free

    deb http://ftp.us.debian.org/debian-non-US testing/non-US main contrib non-free

    deb http://ftp.us.debian.org/debian unstable main contrib non-free

    deb http://ftp.us.debian.org/debian-non-US unstable/non-US main contrib non-free

 然后在終端中執行命令

apt-get update

    經過漫長的等待,終端中最終會執行上面添加的代碼。

2.2 vsftpd的配置。

   安裝好vsftpd后,我們就需要配置它,那么就要修改 /etc/vsftpd.conf文件。具體的配置和說明,見下文,

# 設置登錄FTP歡迎信息
ftpd_banner=Welcome to CHL FTP service. 

# 基本配置1
listen=YES               # 服務器監聽
local_enable=YES         # 是否允許本地用戶訪問
write_enable=YES         # 是否允許上傳文件,不開啟會報 550 permission denied
anonymous_enable=NO      # 匿名訪問允許,默認不要開啟
anon_upload_enable=YES   # 匿名上傳允許,默認是NO
anon_mkdir_write_enable=YES  # 匿名創建文件夾允許 

# 基本配置2
local_umask=022   # FTP上本地的文件權限,默認是077。此時umask為022,則目錄為777-022=755,文件為666-022=644。
dirmessage_enable=YES     # 進入文件夾允許 
connect_from_port_20=YES   # 啟用20號端口作為數據傳送的端口 
data_connection_timeout=120 # 設置數據連接超時時間

# 日志配置
utf8_filesystem=YES # vsftpd使用utf8文件系統
use_localtime=YES
xferlog_enable=YES         # 激活上傳和下傳的日志 
xferlog_file=/var/log/vsftpd.log    # 設定系統維護記錄FTP服務器上傳和下載情況的日志文件
xferlog_std_format=YES     # 使用標准的日志格式 

# 自定義
local_root=/home/ftp # 設置自定義的ftp根目錄的位置

# 讀寫權限
allow_writeable_chroot=YES  # 解決"500 OOPS: vsftpd: refusing to run with writable root inside chroot()" 問題
write_enable=YES    # 允許向FTP服務器寫入權限
chown_uploads=YES   # 設定是否允許改變上傳文件的屬主,與下面一個設定項配合使用
chown_username=whoever  # 設置想要改變的上傳文件的屬主,可設為ftp

ascii_upload_enable=YES  # 允許服務器以ASCII方式傳輸數據,但引起"SIZE /big/file"方式的DoS攻擊
ascii_download_enable=YES
deny_email_enable=YES    # 黑名單設置。如果很討厭某些email address,可以取消他的登錄權限
banned_email_file=/etc/vsftpd/allowed_users
# FTP限制最大連接數和傳輸速率,進行資源控制,避免負擔過大而運行異常 max_client=50 # FTP服務器的所有客戶端最大連接數不超過50個 max_per_ip=5 # 同一IP地址的FTP客戶機與FTP服務器建立的最大連接數不超過5個 local_max_rate=100000 # FTP服務器的本地用戶最大傳輸速率設置為100KB/s. anon_max_rate=50000 # FTP服務器的匿名用戶最大傳輸速率設置為50KB/s. # 權限設置 #是否啟動userlist為禁止模式,YES表示在userlist中的用戶禁止登錄ftp(黑名單),NO表示黑名單失效 userlist_deny=NO userlist_enable=NO # 是否啟動限制用戶的名單為允許模式,上面的YES限制了所有用戶,可以用這個名單作為白名單,作為例外允許訪問ftp根目錄以外 userlist_file=/etc/vsftpd.user_list # 在默認配置下,本地用戶登入FTP后可以使用cd命令切換到其他目錄,這樣會對系統帶來安全隱患,可配置如下 chroot_list_enable=YES # 設置是否啟用chroot_list_file配置項指定的用戶列表文件。默認值為NO。 chroot_local_user=YES # 用於指定用戶列表文件中的用戶是否允許切換到上級目錄。默認值為NO。 chroot_list_file=/etc/vsftpd.chroot_list # 禁用名單,用於指定用戶列表,該文件用於控制哪些用戶可以切換到home目錄的上級目錄。

通過搭配能實現以下幾種效果

  • chroot_list_enable=YES,chroot_local_user=YES時,在/etc/vsftpd.chroot_list文件中列出的用戶,可以切換到其他目錄;未在文件中列出的用戶,不能切換到其他目錄。

  • chroot_list_enable=YES,chroot_local_user=NO時,在/etc/vsftpd.chroot_list文件中列出的用戶,不能切換到其他目錄;未在文件中列出的用戶,可以切換到其他目錄。

  • chroot_list_enable=NO,chroot_local_user=YES時,所有的用戶均不能切換到其他目錄。

  • chroot_list_enable=NO,chroot_local_user=NO時,所有的用戶均可以切換到其他目錄。

1. 需要手動創建一個目錄-ftp的根目錄,用戶可以訪問該目錄下的資源,

mkdir /home/ftp

接着創建一個子目錄,

mkdir /home/ftp/data

修改ftp這個目錄的權限,

chmod -R 777 /home/ftp

2. 還需要手動創建一個文件allowed_users,位於 /etc下,創建該文件的命令是

touch allowed_users

創建文件成功后,我們就可以添加訪問用戶了,添加用戶的命令是

useradd -d /home/ftp/data -s /sbin/nologin zhangxw

添加一個用戶(zhangxw),但是該用戶不能登錄系統。

接着設置該用戶的密碼,輸入命令,

passwd zhangxw

然后根據提示,輸入密碼即可。

3. 將上面添加的用戶,手動寫入到 /etc/vsftpd/allowed_users。只需要添加一行,寫入用戶名即可。

退出保存即可!重啟下vsftp服務!

重啟vsftpd,命令是

service vsftpd restart

PS:

如果想要刪除ftp某個用戶,可以使用如下命令,例如刪除用戶名為 ”zhangxw”的用戶,

userdel zhangxw

配置好vsftpd后,我們就可以啟動它了。命令為

service vsftpd start

如需查看vsftpd的狀態,可以輸入命令

service vsftpd status

參考:
https://blog.csdn.net/oxiaoxue123456789/article/details/81557896
https://www.jianshu.com/p/8f17e2a18515
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM