|
Linux centos 7 安装vsftp-server服务器
一、系统环境
# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
二、安装 vsftp 服务
# yum -y install vsftpd db4* (db4配置虚拟用户生成db库文件)
三、配置vsftp服务器主要配置文件
# cp /etc/vsftpd/vsftp.conf{,.bak}
# grep -v '^#' /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=NO
xferlog_std_format=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
####添加如下###########
chroot_local_user=YES
chroot_list_enable=YES #(1.所有用户都被限制在其主目录下
2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制)
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
listen_ipv6=NO
virtual_use_local_privs=NO
############# 以下开启虚拟用户权限#################
guest_enable=YES
guest_username=vsftpuser
user_config_dir=/etc/vsftpd/v_conf
pasv_enable=YES
pasv_min_port=33000
pasv_max_port=34000
四、先建立虚拟用户名单文件
# touch /etc/vsftpd/user_ftp
# cat /etc/vsftpd/user_ftp (第一行账号,第二行密码)
admin (账号)
123456 (密码)
user (账号)
123456(密码)
五、创建用户和组
# useradd -d /opt/ftpdata -s /sbin/nologin vsftpuser
# touch /etc/vsftpd/chroot_lis #(1.所有用户都被限制在其主目录下
2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制)
# mkdir -p /etc/vsftpd/v_conf #(虚拟用户配置文件目录)
六、在/etc/pam.d/vsftpd的文件头部加入以下信息(在后面加入无效)
# cp /etc/pam.d/vsftpd(,.bak)
# vim /etc/pam.d/vsftpd
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/user_ftp
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/user_ftp
七、生成虚拟用户数据文件:
# db_load -T -t hash -f /etc/vsftpd/user_ftp /etc/vsftpd/user_ftp.db
# chmod 600 /etc/vsftpd/user_ftp.db #设定PAM验证文件,并指定对虚拟用户数据库文件进行读取
八、创建ftp目录
# mkdir -p /opt/ftpdata/
# chown -R vsftpuser.vsftpuser /opt/ftpdata
九、配置用户登录ftp server
# mkdir -p /opt/ftpdata/admin/system-file
# chmod a-w /opt/ftpdata/admin #(新版本vsftp增加了ftp服务安全性,根目录不能有写入的权限,去掉写的权限)
# chown -R vsftpuser.vsftpuser /opt/ftpdata/admin
# chmod -R 700 /opt/ftpdata/admin/system-file
# vim /etc/vsftpd/user_ftp #(添加用户)
# cat /etc/vsftpd/user_ftp #(第一行账号,第二行密码)
admin #(账号)
123456 #(密码)
# db_load -T -t hash -f /etc/vsftpd/user_ftp /etc/vsftpd/user_ftp.db
# chmod 600 /etc/vsftpd/user_ftp.db
十、建立虚拟用户个人Vsftp的配置文件
# cd /etc/vsftpd/v_conf
# vim admin #(创建文件和设置的虚拟用户,名字要一样)
# cat admin
local_root=/opt/ftpdata/admin
anon_umask=077
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
十一、启动 ftp server service
# systemctl start vsftpd.service
# systemctl enable vsftpd.service
十二、配置虚拟用户脚本
#!/bin/bash
################################
## Writer By Tian #
## Ver 1.0 At 20190107 #
## sh vsftp.sh name password #
################################
data=/opt/ftpdata
if [ $# -eq 3 ];then
user=$1
pawd=$2
path=$3
for i in `sed -n '1~2p' /etc/vsftpd/user_ftp`;do
if [ $user == $i ];then
echo "user '$user' already exists"
exit 1
fi
done
if [ ! -d "$path" ];then
mkdir -p $path
fi
echo -e "$user\n$pawd" >> /etc/vsftpd/user_ftp
db_load -T -t hash -f /etc/vsftpd/user_ftp /etc/vsftpd/user_ftp.db
touch /etc/vsftpd/v_conf/$user
cat >>/etc/vsftpd/v_conf/$user |
|
|
|
|
|
|