linux下VSFTPD的主动模式、被动模式和虚拟用户登录配置。

主动模式:

以CENTOS为例。
1、在 root 权限下,通过命令 yum install vsftpd 安装 vsftp。
2、启动 vsftpd 服务之前,需要登录云服务器修改配置文件,禁用匿名登录。
使用 vim /etc/vsftpd/vsftpd.conf 打开配置文件,将配置文件中第 11 行的 anonymous_enable=YES 改为anonymous_enable=NO 即可禁用匿名登录。
3、使用 cat /etc/vsftpd/vsftpd.conf |grep ^[^#] 命令读取生效配置。
返回结果为:
                                    local_enable=YES
                                    write_enable=YES
                                    local_umask=022
                                    anon_upload_enable=YES
                                    anon_mkdir_write_enable=YES
                                    anon_umask=022
                                    dirmessage_enable=YES
                                    xferlog_enable=YES
                                    connect_from_port_20=YES
                                    xferlog_std_format=YES
                                    listen=YES
                                    pam_service_name=vsftpd
                                    userlist_enable=YES
                                    tcp_wrappers=YES

4、使用 service vsftpd start 命令启动 vsftpd 服务。
5、设置 FTP 用户帐号。

        1)、使用命令 useradd 设置FTP用户账号
        例如,设置账号为ftpuser1,目录为/home/ftpuser1,且设置不允许通过SSH登录的命令为:
        useradd -m -d /home/ftpuser1 -s /sbin/nologin ftpuser1
        2)、使用命令 password 设置账号对应的密码
        例如,设置上述账号密码为 ftpuser1 的命令为:
        passwd ftpuser1
        设置成功后。即可通过该账号及密码邓丽FTP服务器。

完成修改后,重启vsftpd服务,使配置生效。
linux下VSFTPD的主动模式、被动模式和虚拟用户登录配置。

测试:客户端使用FILEZILLA
linux下VSFTPD的主动模式、被动模式和虚拟用户登录配置。

*被动模式:

在vsftpd服务的配置文件下添加以下配置。
    pasv_enable=YES     #开启被动模式
    pasv_min_port=20000  #设置被动模式传输数据的端口范围
    pasv_max_port=20045  #设置被动模式传输数据的端口范围
重启vsftpd服务后再进行测试。

linux下VSFTPD的主动模式、被动模式和虚拟用户登录配置。

虚拟用户登录:

业务场景:

    公司内部现在有一台WEB 服务器,其上的FTP的功能主要用于维护公司的web1 和web2网站内容,包括上传文件、创建目录、更新网页等等。公司现有两个部门负责维护任务,他们分别使用team1 和team2 虚拟用户登陆进行管理。现要求仅允许team1 和team2 登录FTP服务,但不能登录本地系统,并将这两个帐号的根目录限制为/var/www/html,不能进入该目录以外的任何目录。
    只允许:team1和team2 虚拟用户 可以上传。 禁止匿名。

1、建立虚拟账户列表配置文件:vim /etc/vsftpd/virtusers
team1
123456
team2
123456
2、生成虚拟用户数据文件
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
chmod 600 /etc/vsftpd/virtusers.db #设定PAM验证文件,并指定对虚拟用户数据库文件进行读
3、在/etc/pam.d/vsftpd的文件头部加入以下信息(在后面加入无效)
修改前先备份 cp /etc/pam.d/vsftpd /etc/pam.d/vsftpdbak
恢复cp /etc/pam.d/vsftpdbak /etc/pam.d/vsftpd
vi /etc/pam.d/vsftpd
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
4、新建一个系统用户vsftpd,用户家目录为/var/www/
useradd vsftpd -d /var/www/html/ -s /bin/false #禁止登陆本地系统
5、建立虚拟用户个人Vsftp的配置文件
mkdir /etc/vsftpd/vconf
cd /etc/vsftpd/vconf
touch team1 team2 #这里创建二个虚拟用户配置文件
################
vim team1 #编辑用户team1配置文件
local_root=/var/www/html/web1
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
################
vim team2 #编辑用户team2配置文件
local_root=/var/www/html/web2
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
6、最后重启vsftpd服务器
systemctl,restart vsftpd #或者 /etc/init.d/vsftpd restart

备注:配置虚拟用户登录ftp服务器需要将/etc/vsftpd/vsftpd.conf添加以下内容:

以下这些是关于Vsftpd虚拟用户支持的重要配置项目。
默认Vsftpd.conf中不包含这些设定项目,需要自己手动添加配置
#########################################################
guest_enable=YES     #设定启用虚拟用户功能。
guest_username=vsftpd     #指定虚拟用户的宿主用户(也可以指定虚拟用户的宿主用户为apache运行账户,可以避免很多权限设置问题)
user_config_dir=/etc/vsftpd/vconf     #设定虚拟用户个人Vsftp的配置文件存放路径。也就是说,这个被指定的目录里,将存放每个Vsftp虚拟用户个性的配置文件,需要注意的地方就是这些配置文件名必须和虚拟用户名相同。比如说vsftpd.conf的配置文件,你复制到这个目录下,你要mv一下,配置成虚拟用户的名称。
virtual_use_local_privs=YES     #当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限。当此参数关闭(NO)时,虚拟用户使用与匿名用户相同的权限。默认情况下此参数是关闭的(NO)。
pasv_enable=YES         #设置开启被动模式,可注释
pasv_min_port=20000     #设置被动模式的端口范围 ,可注释
pasv_max_port=20045     #设置被动模式的端口范围,可注释
accept_timeout=5       #保持5秒
connect_timeout=10     #10秒后重新连接
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章