FTP服务器配置虚拟用户登录

启动ftp服务
systemctl restart vsftpd

1、安装vsftpd和依赖软件

yum install vsftpd pam pam-devel db4 db4-devel db4-utils db4-tcl -y

2、备份并且配置vsftpd.conf

备份

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

配置

cat > /etc/vsftpd/vsftpd.conf << EOF
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
connect_from_port_20=YES

xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log

ascii_upload_enable=YES
ascii_download_enable=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

chroot_local_user=YES
chroot_list_enable=YES
allow_writeable_chroot=YES
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

guest_enable=YES
guest_username=ftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vconf
EOF

3、**创建虚拟用户配置文件存放的目录,这个目录是vsftpd.conf配置文件中的参数
user_config_dir=/etc/vsftpd/vconf定义的 **

mkdir -p /etc/vsftpd/vconf

4、创建保存虚拟用户的文件

touch /etc/vsftpd/vusers

5、在保存虚拟用户的文件中建立测试用户

vim /etc/vsftpd/vusers

user
user

6、生成虚拟用户数据库加密文件:

db_load -T -t hash -f /etc/vsftpd/vusers /etc/vsftpd/vusers.db

7、备份vsftpd的pam认证文件"/etc/pam.d/vsftpd"

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

8、修改vsftpd的pam认证文件"/etc/pam.d/vsftpd"
首先删除/etc/pam.d/vsftpd的所有内容,然后添加以下内容到这个文件中

vim /etc/pam.d/vsftpd

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers

9 、创建虚拟用户的配置文件,
每个虚拟用户的配置文件可以不同,
每个虚拟用户的配置文件是个独立的文件,
配置文件新建到vsftpd.conf的配置文件中的参数userconfig dir=/etc/vsftpd/vconf定义的目录中,这个目录在第3步已经创建 各个虚拟用户的配置文件名称,必须设置得和虚拟用户数据库中的虚拟用户名相同,
例:在虚拟用户的数据库文件中定义了userl这个用户,那么在/etc/vsftpd/vconf/这个目录中,就必须定义1个user1这个用户
配置文件的格式

cat>/etc/vsftpd/vconf/<<EOF
local_root=/srv/vsftp/test
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
EOF

由于此处需要创建的虚拟用户有点多,故shell脚本创建(10和11合并在此步)

vi /etc/vsftpd/vconf

vi 1.sh

#! bin/bash
declare -a array=(
201942060238
202142150108
201842060141
201942060201
201942060204
201942060205
201942060206
201942060207
201942060209
201942060211
201942060212
201942060213
201942060214
201942060219
201942060223
201942060224
201942060225
201942060226
201942060228
201942060230
201942060232
201942060234
201942060235
202142150110
202142150112
202142150107
202142150109
)
for element in a r r a y [ @ ] ; d o e c h o " l o c a l r o o t = / s r v / v s f t p / {array[@]};do echo "local_root=/srv/vsftp/ array[@];doecho"localroot=/srv/vsftp/element" >> /etc/vsftpd/vconf/ e l e m e n t e c h o " a n o n y m o u s e n a b l e = N O " > > / e t c / v s f t p d / v c o n f / element echo "anonymous_enable=NO" >> /etc/vsftpd/vconf/ elementecho"anonymousenable=NO">>/etc/vsftpd/vconf/element
echo “write_enable=YES” >> /etc/vsftpd/vconf/ e l e m e n t e c h o " l o c a l u m a s k = 022 " > > / e t c / v s f t p d / v c o n f / element echo "local_umask=022" >> /etc/vsftpd/vconf/ elementecho"localumask=022">>/etc/vsftpd/vconf/element
echo “anon_upload_enable=NO” >> /etc/vsftpd/vconf/ e l e m e n t e c h o " a n o n m k d i r w r i t e e n a b l e = N O " > > / e t c / v s f t p d / v c o n f / element echo "anon_mkdir_write_enable=NO" >> /etc/vsftpd/vconf/ elementecho"anonmkdirwriteenable=NO">>/etc/vsftpd/vconf/element
echo “idle_session_timeout=600” >> /etc/vsftpd/vconf/ e l e m e n t e c h o " d a t a c o n n e c t i o n t i m e o u t = 120 " > > / e t c / v s f t p d / v c o n f / element echo "data_connection_timeout=120" >> /etc/vsftpd/vconf/ elementecho"dataconnectiontimeout=120">>/etc/vsftpd/vconf/element
echo “max_clients=10” >> /etc/vsftpd/vconf/ e l e m e n t e c h o " m a x p e r i p = 5 " > > / e t c / v s f t p d / v c o n f / element echo "max_per_ip=5" >> /etc/vsftpd/vconf/ elementecho"maxperip=5">>/etc/vsftpd/vconf/element
mkdir -p /srv/vsftp/ e l e m e n t c h m o d − R 777 / s r v / v s f t p / element chmod -R 777 /srv/vsftp/ elementchmodR777/srv/vsftp/element
chown -R ftp.root /srv/vsftp/$element
done

10、创建虚拟用户的ftp上传目录,这个目录是由第9步的配置文件中的参数local_root=/srv/vsftp/test定义的,参考示例配置

mkdir -p /srv/vsftp/xx

11、修改虚拟用户的ftp上传目录权限,这个用户是由vsftpd.conf配置文件的参数guest_username=ftp定义的

chown -R ftp.root /srv/vsftp/xx

12、创建文件vsftpd.conf配置文件中参数chroot_list_file=/etc/vsftpd/vsftpd.chroot_list定义的文件, 这个参数和chroot_local_user=YES, chroot_list_enable=YES这2个参数配合使用

touch /etc/vsftpd/vsftpd.chroot_list

13、启动ftp

systemctl start vsftpd

遇到的问题:

一、问题描述

在专有网络ECS服务器中搭建FTP时,通过本地的计算机访问FTP的时候出现220 switching to ASCII mode.

227 Entering Passive Mode (172,17,208,91,43,).

img

二、问题分析

专有网络VPC只支持【主动模式】的FTP服务,FTP服务端和客户端都必须配置为主动模式,才可以正常传输

三、解决方法:

**1.****开始 - 运行 - 录入:control命令打开控制面板,打开“网络和Internet”**如下图所示

b1af291cfedbd3e6849d151635f71f16d6ce3dbf

cb0dbb5aecf35aab9c1030a65a821062e9c99038

2.打开Internet选项

f7a933327a451611d98f846a7b09eb5fd85bbee7

**3.**选择高级选项卡,找到选项,使用被动FTP(用于防火墙和DSL调制解调器的兼容)—》将勾去掉,点击确定!

df1419f42895dd6dcde500bbd81b3b4dda1757d5

4.配置完毕以后即可正常访问

4e21d99732945570286788469cce4057f2a5923d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向山海出发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值