CentOs下配置Vsftp虚拟用户帐号禁止下载详细步骤(成功案例)

1. 安装VSFTPED
yum  -y install  vsftpd
2.重新启动vsftpd
systemclt restart vsftpd
3.检查服务
ps -ef|grep vsftp  && netstat -tunlp|grep 21

4 说明:

主配置文件:/etc/vsftpd/vsftpd.conf
配置文件目录:/etc/vsftpd/*.conf
服务启动脚本:/etc/rc.d/init.d/vsftpd
用户认证配置文件:/etc/pam.d/vsftpd

配置参数

常用配置参数都为主配置文件,/etc/vsftpd/vsftpd.conf 的常用配置。

通用基础配置

listen=[YES|NO]         #是否以独立运行的方式监听服务
listen_address=IP地址   #设置要监听的 IP 地址
listen_port=21        #设置 FTP 服务的监听端口
download_enable=[YES|NO] #是否允许下载文件
max_clients=0   #最大客户端连接数,0 为不限制
max_per_ip=0   #同一 IP 地址的最大连接数,0 为不限制
chown_uploads=[YES|NO] #是否允许改变上传文件的属主
chown_username=whoever #改变上传文件的属主为 whoever
pam_service_name=vsftpd #让 vsftpd 使用 pam 完成用户认证,使用的文件为/etc/pam.d/vsftpd

系统用户的配置

anonymous_enable=NO    #禁止匿名访问模式
local_enable=[YES|NO]  #是否允许本地用户登录 FTP
write_enable=[YES|NO]  #是否开放本地用户的其他写入权限
local_umask=022        #本地用户上传文件的 umask 值
local_root=/var/ftp    #本地用户的 FTP 根目录
local_max_rate=0      #本地用户最大传输速率(字节/秒),0 为不限制
userlist_enable=[YES|NO] #开启用户作用名单文件功能
userlist_deny=[YES|NO]   #启用禁止用户名单,名单文件为 ftpusers 和/etc/vsftpd/user_list
chroot_local_user=[YES|NO] #是否将用户权限禁锢在 FTP 家目录中,以确保安全
chroot_list_enable=[YES|NO] #禁锢文件中指定的 FTP 本地用户于其家目录中
chroot_list_file=/etc/vsftpd/chroot_list #指定禁锢文件位置,需要和 chroot_list_enable 一同
匿名用户的配置
anonymous_enable=[YES|NO]      #是否允许匿名用户访问
anon_upload_enable=[YES|NO]    #是否允许匿名用户上传文件
anon_mkdir_write_enable=[YES|NO] #是否允许匿名用户创建目录
anon_other_write_enable=[YES|NO] #是否开放匿名用户的其他写入权限(包括重命名、删除等操作权限)
anon_umask=022       #匿名用户上传文件的 umask 值
anon_root=/var/ftp   #匿名用户的 FTP 根目录
anon_max_rate=0       #匿名用户的最大传输速率(字节/秒),0 为不限制

5 vsftp配置虚拟用户
创建 vsftpd 服务程序用于存储文件的根目录以及虚拟用户映射的系统本地用户
FTP服务用于存储文件的根目录指的是,当虚拟用户登录后所访问的默认位置
可以把这个系统本地用户的家目录设置为/var或都 /home目录并设置不允许登录FTP服务器

5.1、虚拟用户访问
首先建立认证文件模板/etc/vsftpd/vuser.list
xinlisn
123456
5.2 然后,在/etc/pam.d/ftp_auth认证策略文件中写出读取的规则,包括账户,配置一致才能通过原则,谁执行该操作,文件模板在哪里。
因此需要使用db_load命令用哈希算法将原始的明文信息文件转换成数据库文件
cd /etc/vsftpd/
db_load -T -t hash -f vuser.list vuser.db
生成一个vuser.db文件
5.3 如果提示无此命令则安装
yum -y install db4
5.4给文件权限
chmod 600 vuser.db
5.5 rm -f vuser.list
5.6 建立虚拟用户所需的PAM配置文件
   vi /etc/pam.d/vsftpd
在该文件头部插入如下两行
auth       sufficient   pam_userdb.so db=/etc/vsftpd/vsftpd_login
account    sufficient   pam_userdb.so db=/etc/vsftpd/vsftpd_login

5.7 创建虚拟用户配置目录,用来单独配置不同虚拟用户访问不同目录等。
            mkdir /etc/vsftpd/vsftpd_user_conf
5.8 创建一个与虚拟用户同名称的文件,用来单独配置这个虚拟用户的访问目录。
            vim /etc/vsftpd/vsftpd_user_conf/xinlisn(xinlisn是对应的虚拟用户名 xinlisn)
写入配置内容:
            local_root=/home/ftp   #根据实际来写,目录不存在需创建  但要注意virtual用户对此目录的权限)
            write_enable=YES     
            anon_world_readable_only=YES
            anon_upload_enable=YES
            anon_mkdir_write_enable=YES
            anon_other_write_enable=YES
5.9  创建 vsftpd 映射本地用户:
1.创建vsftpd使用的系统用户,主目录为/home/vsftpd,禁止ssh登录。创建之后所有虚拟用户使用这个系统用户访问文件。
$ useradd  virtual -d    /home/ftp -s   /bin/false
或者 useradd -d /home/ftp -s /sbin/nologin virtual 
5.10 设置主目录权限(否则无法写入):
    chown -R virtual:virtual  /home/ftp 
#chown    virtual:virtual    /home/ftp/   --FTP文件夹所属virtual用户

#chmod   700   /home/ftp/                   --权限可读可写

5.11 备份vsftpd.conf文件:
            cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back
清空vsftpd.conf内容:
            > /etc/vsftpd/vsftpd.conf
写入以下内容
            vim /etc/vsftpd/vsftpd.conf

#Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
idle_session_timeout=600
data_connection_timeout=6
listen=YES
listen_port=21
allow_writeable_chroot=YES
local_root=/data/ftp--------------暂时没有用
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
pasv_enable=YES
pasv_min_port=10240
pasv_max_port=10260
pam_service_name=vsftpd  ----------在/etc/pam.d/目录中创建一个 虚拟服务配置文件
guest_enable=YES               ----------起用虚拟用户
guest_username=virtual     ------将虚拟用户映射为本地用户
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd_user_conf
reverse_lookup_enable=NO
download_enable=NO


(17)添加用户,加入组,设置访问目录,不能telnet登录:        -----我没有做 testftp是虚拟用户
        useradd -d /opt/test_ftp -g ftp -s /sbin/nologin testftp   

5.12 #systemctl stop vsftpd

5.13 #systemctl start vsftpd

2、虚拟用户家目录的独立设定
现在虚拟用户都用同一个家目录,这样显然不合适,所以想独立每个虚拟用户的家目录,首先建立三个家目录,
在主配置文件中添加local_root=/ftphomedir/$USER,表示不同的用户家目录不同,但是这个$命令只有shell中识别,所以要加user_sub_token=$USER,使在vim中识别$USER。重启服务,就好了,独立虚拟用户的家目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值