linux端 ftp 安裝
linux伺服器通常使用 vsftpd 服務實現,首先使用 rpm -qa|grep vsftpd命令檢視伺服器是否有 vsftpd 服務,如果沒有,使用 yum -y install vsftpd 安裝 vsftpd 服務,預設安裝在 /etc/vsftpd 可以使用linux 查詢檔案命令find 檢視 find -name vsftpd ;
安裝成功後建立使用者並指定目錄:
useradd -d /home/test -m gjqftp (增加使用者gjqftp,並指定 gjqftp 使用者的主目錄為/home/test),test目錄不適合手動建立,執行命令時會自動建立,自動建立的目錄會自動屬於 gjqftp 使用者,如果指向的目錄已經存在則會報錯
本來是想建立gjqftp使用者並制定目錄為專案根目錄,但是wwwroot其實是已經是存在的,雖然報錯,但是 gjqftp 使用者依然是建立成功的
passwd gjqftp ( 為 gjqftp 設定密碼,需要輸入兩次)
然後直接 ftp 工具登入就好了
更改使用者相應許可權:
usermod -s /sbin/nologin test (限定使用者test不能telnet,只能ftp)
usermod -s /sbin/bash test (使用者test恢復正常)
usermod -d /test test (更改使用者test的主目錄為/test)
限制使用者只能訪問/home/test,不能訪問其他路徑
修改 /etc/vsftpd/vsftpd.conf 如下:
chroot_list_enable=YES //限制訪問自身目錄
#(default follows)
chroot_list_file=/etc/vsftpd/chroot_list
編輯 chroot_list 檔案,將受限制的使用者新增進去,每個使用者名稱一行
然後重啟vsFTPd伺服器
[[email protected] root]# /etc/init.d/vsftpd restart
較常用配置項
/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置檔案
/etc/vsftpd/ftpusers:用於指定哪些使用者不能訪問FTP 伺服器。 黑名單
/etc/vsftpd/user_list:指定允許使用vsftpd 的使用者列表檔案。 白名單
/etc/vsftpd/chroot_list:指定允許使用vsftpd 的使用者列表檔案。 控制名單下的目錄能不能離開ftp根目錄
vsftpd.conf具體配置如下:
anonymous_enable=NO #允許匿名使用者訪問為了安全選擇關閉
local_enable=YES # 允許本地使用者登入
write_enable=YES # 是否允許寫入
local_umask=022 # 本地使用者上傳檔案的umask
dirmessage_enable=YES #為YES則進入目錄時顯示此目錄下由message_file選項指定的文字檔案(,預設為.message)的內容
xferlog_enable=YES #開啟日誌
xferlog_std_format=YES #標準格式
connect_from_port_20=YES
xferlog_file=/var/log/xferlog #ftp日誌目錄
idle_session_timeout=6000 #設定客戶端連線時間
data_connection_timeout=1200 #設定資料連線時間 針對上傳,下載
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list #設定為YES則下面的控制有效
chroot_list_enable=YES #若為NO,則記錄在chroot_list_file所指定的檔案(預設是/etc/vsftpd.chroot_list)中的使用者將被chroot在登入後所在目錄中,無法離開.如果為YES,則所記錄的使用者將不被chroot.這裡YES.
chroot_local_user=YES
userlist_deny=NO #若設定為YES則記錄在userlist_file選項指定檔案(預設是/etc/vsftpd.user_list)中的使用者將無法login,並且將檢察下面的userlist_deny選項
userlist_enable=YES #若為NO,則僅接受記錄在userlist_file選項指定檔案(預設是/etc/vsftpd.user_list)中的使用者的login請求.若為YES則不接受這些使用者的請求.
userlist_file=/etc/vsftpd/user_list #白名單
chroot_list_enable=YES
local_root=/var/ftp/pub #根目錄
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
關閉防火牆
centos 7操作為 systemctl stop firewalld.servic
centos 6操作位service stop iptables;
啟動 ftp 伺服器
cetos 7操作為/bin/systemctl restart vsftpd.service
centos 6操作為 service vsftpd restart