yum install vsftp* -y
linux
/etc/vsftpd/vsftp.conf
配置文件#拒絕匿名用戶登陸 anonymous_enable=NO #啓用本地系統用戶訪問 local_enable=YES #本地用戶寫權限 write_enable=YES #本地用戶上傳文件的權限爲-rw-r--r-- (最高權限666-022=644 local_umask=022 #是否顯示目錄說明文件(須要本身建立.message) dirmessage_enable=YES #記錄使用者上傳下載信息,保存路徑:/var/log/vsftpd.log xferlog_enable=YES #數據傳輸使用20端口 connect_from_port_20=YES #以xferlog格式寫入日誌 xferlog_std_format=YES #YES爲standalone啓動 NO爲經過Xinetd管理 listen=NO #啓用ipv6監聽 listen_ipv6=YES #經過/etc/pam.d/vsftpd進行認證 pam_service_name=vsftpd #禁止/etc/vsftpd中的user_list和ftpusers用戶訪問(黑名單) userlist_enable=YES #經過/etc/host.allow、host.deny中的IP進行訪問控制 tcp_wrappers=YES
systemctl restart vsftpd.service
shell
# 匿名用戶登錄的username ftp_username=ftp # 是否容許匿名用戶建立目錄 anon_mkdir_write_enable=YES # 是否容許匿名用戶對文件增、刪、改 anon_other_write_enable=YES # 是否容許匿名用戶上傳文件 anon_upload_enable=YES
chown -R ftp /var/ftp/pub
數據庫
chmod 755 /var/ftp/pub
vim
systemctl restart vsftpd.service
windows
測試能夠正常寫入數據,OK安全
useradd caiwubu useradd yanfabu useradd shichangbu echo "666666" | passwd --stdin caiwubu echo "666666" | passwd --stdin shichangbu echo "666666" | passwd --stdin yanfabu
#拒絕匿名用戶登陸 anonymous_enable=NO #啓用本地系統用戶訪問 local_enable=YES #本地用戶寫權限 write_enable=YES #本地用戶上傳文件的權限爲-rw-r--r-- (最高權限666-022=644 local_umask=022 #是否顯示目錄說明文件(須要本身建立.message) dirmessage_enable=YES #記錄使用者上傳下載信息,保存路徑:/var/log/vsftpd.log xferlog_enable=YES #數據傳輸使用20端口 connect_from_port_20=YES #以xferlog格式寫入日誌 xferlog_std_format=YES #YES爲standalone啓動 NO爲經過Xinetd管理 listen=NO #啓用ipv6監聽 listen_ipv6=YES #經過/etc/pam.d/vsftpd進行認證 pam_service_name=vsftpd #禁止/etc/vsftpd中的user_list和ftpusers用戶訪問(黑名單) userlist_enable=YES #經過/etc/host.allow、host.deny中的IP進行訪問控制 tcp_wrappers=YES
登陸進去,建立test文件夾,在/home/caiwubu下能夠正常顯示bash
系統用戶訪問能夠解決匿名用戶帶來的安全問題,可是系統用戶通常能夠用於登陸linux系統,存在安全隱患,故可使用多個虛擬用戶映射一個服務器系統用戶,對外只暴露虛擬用戶,該虛擬用戶不能登陸linux系統,而且能夠設置相應的權限來保障系統安全
vim /etc/vsftpd/virtusers_list
服務器
# 第一行帳號 第二行密碼 以此類推 caiwubu 666666 yanfabu 666666
#db_load 將virtusers中的密碼加密,並生成virtusers.db給系統使用,virtusers文件可刪除 db_load -T -t hash -f /etc/vsftpd/virtusers_list /etc/vsftpd/virtusers.db #設定PAM驗證文件,並指定對虛擬用戶數據庫文件進行讀取 chmod 700 /etc/vsftpd/virtusers.db
vim /etc/pam.d/vsftpd
在行首插入以下,其餘的註釋app
auth required pam_userdb.so db=/etc/vsftpd/virtusers account required pam_userdb.so db=/etc/vsftpd/virtusers #db=後面的文件要與步驟二中的一致
useradd -s /sbin/nologin ftpuser
tcp
mkdir -p /etc/vsftpd/vsftpd_user_conf/
vim /etc/vsftpd/vsftpd_user_conf/caiwubu
# 財務部用戶登陸的根目錄 local_root=/home/ftpuser/caiwubu write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
vim /etc/vsftpd/vsftpd_user_conf/yanfabu
# yanfabu用戶登陸的根目錄 local_root=/home/ftpuser/yanfabu write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
建立 虛擬用戶登陸的根目錄
mkdir -p /home/ftpuser/{caiwubu,yanfanbu}
chown -R ftpuser:ftpuser /home/ftpuser
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES # ---------virtusers config-------------------- # 啓用pam認證 pam_service_name=vsftpd # 啓用虛擬用戶 guest_enable=YES # 虛擬用戶映射系統用戶ftpuser guest_username=ftpuser # 虛擬用戶與本地用戶權限相同 virtual_use_local_privs=YES # 虛擬用戶配置文件目錄 user_config_dir=/etc/vsftpd/vsftpd_user_conf # -----------(可選)訪問權限控制---------------- # 將用戶目錄限制爲根目錄(看不到家目錄的其餘目錄) allow_writeable_chroot=YES # 是否禁止本地用戶切換到家目錄上級目錄,綁定家目錄爲用戶的根目錄 chroot_local_user=NO # 是否啓用chroot列表文件,寫入文件中的用戶將鎖定家目錄 chroot_list_enable=NO # 指定用戶列表文件的文件路徑 chroot_list_file=/etc/vsftpd/chroot_list # ------------(可選) 被動模式------------------- # 啓用被動模式 pasv_enable=YES # 端口範圍 pasv_min_port=30000 pasv_max_port=31000 # Connect_from_port_20=NO 須要修改上面的此項
systemctl restart vsftpd.service
例如 提示anon_world_readable_only
的bool
值錯誤,打開配置文件vim /etc/vsftpd/vsftpd_user_conf/caiwubu
發現該bool值後面有空格,刪除後能夠正常訪問
在vim /etc/vsftpd/vsftpd.conf配置中添加以下
# 將用戶目錄限制爲根目錄(看不到家目錄的其餘目錄) allow_writeable_chroot=YES # 是否禁止本地用戶切換到家目錄上級目錄,綁定家目錄爲用戶的根目錄 chroot_local_user=YES
鏈接只能看到本身的家目錄文件。
vim /etc/vsftpd/chroot_list
# 用戶名稱 yanfabu
vim /etc/vsftpd/vsftpd.conf
# 指定用戶列表文件的文件路徑 chroot_list_file=/etc/vsftpd/chroot_list # chroot_list_file文件中的用戶能夠切換到其餘目錄 chroot_local_user=YES chroot_list_enable=YES
測試完,研發部能夠訪問其餘目錄