vsftp 搭建及虛擬帳號配置

基於本地用戶管理的配置
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"
相關文章
相關標籤/搜索