FTP 虚账号

vsftp虚拟用户模式

虚拟用户的特点是只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源。所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性

VSFTP安装与配置

1 依赖包安装

使用yum命令来安装vsftpd和DB软件包:

yum -y install vsftpd db4-utils

2 建立口令库文件

建立虚拟用户口令库文件,使用文本编辑器创建一个文本文件,第一行写:用户名;第二行写:密码,依此类推:

mkdir -p /etc/vsftpd/v-login
#vi login.txt
user1
passwd1
user2
passwd2

使用db_load命令生成vsftpd的认证文件,将用户信息文件转换为数据库并使用hash加密:

db_load -T -t hash -f login.txt /etc/vsftpd/v-login/vsftpd_login.db

赋权:

chmod 600 /etc/vsftpd/v-login/vsftpd_login.db

3 建立PAM配置文件

建立虚拟用户所需的PAM配置文件,目的是对虚拟用户的安全和账户权限进行验证。
• auth是对用户密码进行验证。
• accout是对用户的权限进行验证。

vi /etc/pam.d/vsftpd.vu

加入下面内容:

auth  required  /lib64/security/pam_userdb.so  db=/etc/vsftpd/v-login/vsftpd_login
account  required  /lib64/security/pam_userdb.so  db=/etc/vsftpd/v-login/vsftpd_login

4 对虚账号分别设置权限

mkdir -p /etc/vsftpd/v-conf

上传、下载、创建、删除权限:

[root@ZJJH-BSJK-COL01 v-conf]# more user1 
local_root=/home/bsjk/ftpbsjk/southern/gxpt
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES

仅下载权限:

local_root=/home/bsjk/ftpbsjk/southern/gxpt
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=NO
anon_upload_enable=NO
anon_other_write_enable=NO

5 设置vsftpd.conf主配置文件

修改vsftpd.conf,重启vsftp服务,并测试虚账户登录情况:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
connect_from_port_20=YES
ftpd_banner=Authorized users only. All activity may be monitored and reported.
chroot_local_user=YES
listen=YES
userlist_enable=YES
tcp_wrappers=YES

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

use_localtime=YES
allow_writeable_chroot=YES

#Virtual user
guest_enable=YES
guest_username=bsjk
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd/v-conf

5.1 vsftp配置说明

配置说明

5.2 常见的日志解决方案

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

  该方案将xferlog_enable设置为YES,表明FTP服务器记录上传下载的情况,而将xferlog_std_format也设置为YES,则表明将记录的上传下载情况写在xferlog_file所指定的文件中,即/var/log/xferlog文件。
  同时,该方案启用dual_log_enable,表明启用了双份日志。在用xferlog文件记录服务器上传下载情况的同时,vsftpd_log_file所指定的文件,即/var/log/vsftpd.log,也将用来记录服务器的传输情况。

5.3 常用配置说明

1. 启用本地时间

use_localtime=YES

2. 控制用户是否允许切换到上级目录

chroot_local_user=YES
限制用户不能访问父级目录
allow_writeable_chroot=YES
你的用户根目录是可写的,但在新版中,当使用chroot限制功能时是不被允许的,增加下述命令解决登录失败问题

3. 超时时间设置

accept_timeout=60
设置建立FTP连接的超时时间,单位为秒。默认值为60。
connect_timeout=60
PORT 方式下建立数据连接的超时时间,单位为秒。默认值为60。
data_connection_timeout=120
设置建立FTP数据连接的超时时间,单位为秒。默认值为120。
idle_session_timeout=300
设置多长时间不对FTP服务器进行任何操作,则断开该FTP连接,单位为秒。默认值为300 。

4. 与连接相关的设置

listen=YES
设置vsftpd服务器是否以standalone模式运行。以standalone模式运行是一种较好 的方式,此时listen必须设置为YES,此为默认值。建议不要更改,有很多与服务器运行相关的配置命令,需要在此模式下才有效。若设置为NO,则 vsftpd不是以独立的服务运行,要受到xinetd服务的管控,功能上会受到限制。
max_clients=0
设置vsftpd允许的最大连接数,默认值为0,表示不受限制。若设置为100时,则同时允许有100个连接,超出的将被拒绝。只有在standalone模式运行才有效。
max_per_ip=0
设置每个IP允许与FTP服务器同时建立连接的数目。默认值为0,表示不受限制。只有在standalone模式运行才有效。
listen_address=IP地址
设置FTP服务器在指定的IP地址上侦听用户的FTP请求。若不设置,则对服务器绑定的所有IP地址进行侦听。只有在standalone模式运行才有效。
setproctitle_enable=NO
设置每个与FTP服务器的连接,是否以不同的进程表现出来。默认值为NO,此时使用ps aux |grep ftp只会有一个vsftpd的进程。若设置为YES,则每个连接都会有一个vsftpd的进程。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值