基於本地用戶管理的配置
1、 安裝vsftpdios
yum -y install vsftpd chkconfig vsftpd on
2、阻止匿名訪問和切換根目錄安全
編輯 /etc/vsftpd/vsftpd.conf,找到下面兩處配置並修改:bash
# 禁用匿名用戶 anonymous_enable=NO # 禁止切換根目錄 chroot_local_user=YES
3、建立用戶服務器
建立一個用戶 ftpuserapp
useradd ftpuser
爲用戶 ftpuser 設置密碼tcp
echo "dAvK55EG" | passwd ftpuser --stdin
限制該用戶僅能經過 FTP 訪問工具
usermod -s /sbin/nologin ftpuser
4、爲用戶分配主目錄ui
爲用戶 ftpuser 建立主目錄並約定:
/data/ftp 爲主目錄, 該目錄不可上傳文件
/data/ftp/pub 文件只能上傳到該目錄下rest
mkdir -p /data/ftp/pub
建立登陸歡迎文件 :日誌
echo "Welcome to use FTP service." > /data/ftp/welcome.txt
設置訪問權限:
chmod a-w /data/ftp && chmod 777 -R /data/ftp/pub
設置爲用戶的主目錄:
usermod -d /data/ftp ftpuser
基於獨立用戶驗證配置
1、 安裝vsftpd
yum -y install vsftpd chkconfig vsftpd on
2、 修改主配置文件
vi /etc/vsftpd/vsftpd.conf # 容許匿名用戶登錄,登錄時登錄名爲 ftp 或 anonymous,口令爲空 anonymous_enable=YES # 容許本地用戶登錄,登錄名爲本地用戶名,口令爲本地用戶的口令 local_enable=YES # 容許本地用戶寫擁有FTP服務器文件的寫權限 write_enable=YES # 本地用戶的文件默認掩碼022,文件的默認最大權限爲666,也就是上傳文件的默認權限爲644 local_umask=022 # 激活目錄的歡迎信息功能 dirmessage_enable=YES # 指定FTP使用20端口進行數據傳輸(默認FTP工做模式爲被動模式,也就是PASV FTP,服務器將使用20端口與客戶端進行數據傳輸) connect_from_port_20=YES # 啓用上傳和下載日誌功能,該日誌文件默認的存放位置爲 /var/log/xferlog xferlog_enable=YES # 啓用xferlog的標準格式輸出 xferlog_std_format=YES xferlog_file=/var/log/xferlog dual_log_enable=YES # ftp日誌文件位置,須要手動touch vsftpd_log_file=/var/log/vsftpd.log # 以ascii模式傳輸數據 ascii_upload_enable=YES ascii_download_enable=YES # 服務器獨立運行 listen=YES # 支持ipv6 listen_ipv6=YES # 設置PAM使用的名稱,默認值爲 /etc/pam.d/vsftpd pam_service_name=vsftpd # 啓動user_list文件(該選項需與userlist_deny選項配合使用,userlist_deny默認爲YES,也就是說默認請況下user_list表中的用戶將被阻止登錄ftp服務器) userlist_enable=YES # 設置vsftpd與tcp wrapper組合來進行訪問控制,YES的狀況下,vsftpd將檢查/etc/hosts.allow以及/etc/hosts.deny中的設置,來進行主機的訪問控制 tcp_wrappers=YES # 設定啓用虛擬用戶功能 guest_enable=YES # 指定虛擬用戶的宿主用戶 guest_username=vftpdata user_config_dir=/etc/vsftpd/vuser_conf
3、 設置虛擬帳號認證
#安裝Berkeley DB工具,提供虛擬帳號管理 yum install db4 db4-utils #建立用戶密碼文本,注意奇行是用戶名,偶行是密碼 vi /etc/vsftpd/vuser_passwd.txt backup 123456 #生成虛擬用戶認證的db文件 db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db #編輯認證文件,所有註釋掉原來語句,再增長如下兩句 vi /etc/pam.d/vsftpd auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
4、 建立虛擬用戶宿主
useradd -d /ftp_data vftpdata
5、 配置虛擬用戶
#建立虛擬用戶配置文件 mkdir /etc/vsftpd/vuser_conf/ #文件名等於vuser_passwd.txt裏面的帳戶名 vi /etc/vsftpd/vuser_conf/backup #虛擬用戶根目錄,根據實際狀況修改 local_root=/ftp_data/backup write_enable=YES anon_umask=022 anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
剩下的能夠添加PASV擴展了
6、 端口及相關安全設置(能正常登陸,沒法獲取目錄列表)
方案一:
一、修改/etc/vsftpd/vsftpd.conf的配置文件,在文件末端添加:
pasv_max_port=6666 pasv_min_port=5555
/etc/init.d/vsftpd restart
二、添加一條防火牆規則
/etc/init.d/iptables stop iptables -I INPUT -p tcp --dport 5555:6666 -j ACCEPT /etc/init.d/iptables save /etc/init.d/iptables start
方案二:
添加附加模塊,連接追蹤模塊
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT modprobe ip_conntrack_ftp //臨時加載 /etc/sysconfig/iptables-config//這個是永久的 IPTABLES_MODULES="ip_conntrack_netbios_ns ip_conntrack_ftp"