tyxiayu 发表于 2019-2-15 12:11:40

​Linux centos 7 安装vsftp

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
页: [1]
查看完整版本: ​Linux centos 7 安装vsftp