ubuntu下vsftpd虚拟用户配置

以下实验全部在ubuntu server 14.04 X64上进行。

业务要求:

现在要求创建一个FTP账号user1,该账号只能登录到/www目录下,不能切换到上级目录。同时处于安全考虑还要求该账号上传的文件权限为644,即上传的文件具有可读可写权限,但是没有可执行权限。

一:安装vsftpd

sudo apt-get -y install vsftpd

查看下vsftpd都安装了那些文件

dpkg -L vsftpd |tac

二:vsftpd配置

1.创建用户,如下:

sudo useradd -m -s /bin/bash ftpuser

注意:创建的用户ftpuser现在是无法登录到系统的,因为没有给该用户设置密码。在此,我们也无需ftpuser登录到系统,这样相对来说比较安全。

用户创建完毕后,我们来创建对应的目录并修改其所属用户,如下:

sudo mkdir /www

sudo chown -R ftpuser:ftpuser /www/

有关用户相关配置结束后,我们开始设置登录vsftp的用户与密码文件login.txt。如下:

sudo mkdir /etc/vsftpd/

sudo vim /etc/vsftpd/login.txt

user1

password1

login.txt设置完毕后,我们要使用db_load进行加密。而db_load需要db-util这个软件。所以需要我们现在安装db-util,如下:

sudo apt-get -y install db-util

db-util安装完毕后,现在开始使用db_load对loginx.txt进行加密。如下:

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

loginx.txt加密完成后,我们现在开始配置vsftpd的PAM验证。

2. PAM验证配置

vsftpd的PAM验证,在此我没有使用vsftpd安装时所生成的/etc/pam.d/vsftpd文件。

创建验证文件,如下:

sudo vim /etc/pam.d/vsftpd.virtual

auth required pam_userdb.so db=/etc/vsftpd/login

account required pam_userdb.so db=/etc/vsftpd/login

vsftpd.virtual文件的内容,也可以根据OS的版本进行调整。我现在使用的是ubuntu x64,所以也可以填写为:

auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/login

account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/login

3. vsftp权限配置

根据业务要求vsftpd.conf配置内容如下:

grep -vE "^#|^$" /etc/vsftpd.conf

listen=YES

listen_ipv6=NO

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

use_localtime=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=YES

chroot_local_user=YES

chroot_list_enable=NO

allow_writeable_chroot=YES

secure_chroot_dir=/var/run/vsftpd/empty

pam_service_name=vsftpd

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

ssl_enable=NO

guest_enable=YES

pam_service_name=vsftpd.virtual

user_config_dir=/etc/vsftpd/vu

pasv_enable=YES

pasv_min_port=30000

pasv_max_port=31000

需要添加和默认合并为:

#listen=YES
listen_ipv6=NO
#anonymous_enable=NO
#local_enable=YES
write_enable=YES
local_umask=022
#dirmessage_enable=YES
#use_localtime=YES
#xferlog_enable=YES
#connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=NO
allow_writeable_chroot=YES
#secure_chroot_dir=/var/run/vsftpd/empty
#pam_service_name=vsftpd
#rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
#rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
guest_enable=YES
pam_service_name=vsftpd.virtual
user_config_dir=/etc/vsftpd/vu
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

在以上配置文件中,有几点需要重点指出。

local_enable=YES

write_enable=YES

local_umask=022

这两项是启用系统用户的写权限。特别是write_enable=YES项一定要启用,否则vsftpd虚拟用户将无法登录vsftpd。

为什么会是这样?因为虚拟用户依赖与系统用户。

chroot_local_user=YES

chroot_list_enable=NO

allow_writeable_chroot=YES

这三项是配置vsftpd用户禁止切换上级目录的权限。

guest_enable=YES

pam_service_name=vsftpd.virtual

user_config_dir=/etc/vsftpd/vu

这三项是启用vsftpd虚拟用以及虚拟用户账号配置目录。

pasv_enable=YES

pasv_min_port=30000

pasv_max_port=31000

这三项是启用vsftpd被动模式及相关端口。

3.4 虚拟用户相关配置

vsftpd配置文件修改文件后,现在开始配置虚拟用户的相关权限。如下:

sudo mkdir /etc/vsftpd/vu

sudo vim /etc/vsftpd/vu/user1

guest_username=ftpuser

local_root=/www/

virtual_use_local_privs=YES

anon_umask=133

以上配置参数,其中guest_username=ftpuser表示的是设置FTP对应的系统用户为ftpuser

local_root=/www/表示使用本地用户登录到ftp时的默认目录。

virtual_use_local_privs=YES虚拟用户和本地用户有相同的权限。

anon_umask表示文件上传的默认掩码。计算方式是777减去anon_umask就是上传文件的权限。在此我们设置的是133,也就是说上传后文件的权限是644。即上传的文件对所属用户来说只有读写权限,没有执行权限。

以上全部配置完毕后,我们来重启vsftpd,如下:

sudo service vsftpd restart

三 IPtables配置

在实际生产环境中,为了安全起见,我们一般是开启防火墙的。

在ubuntu上,我们也可以使用IPtables来进行防护。

IPtables配置如下:

sudo iptables-save >/home/ilanni/iptables.rule

sudo iptables-restore < /home/ilanni/iptables.rule

sudo iptables -nL

sudo vim /etc/network/interfaces

pre-up iptables-restore < /home/ilanni/iptables.rule

post-down iptables-save < /home/ilanni/iptables.rule

时间: 2024-11-04 18:26:11

ubuntu下vsftpd虚拟用户配置的相关文章

烂泥:ubuntu下vsftpd虚拟用户配置

本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我微信ilanniweb. 以前搭建vsftpd都是在centos下,本以为在ubuntu按照以前的步骤搭建即可.可是实际情况告诉我是,我太想当然了.经过一番的折腾终于把ubuntu下vsftpd虚拟用户的配置搞定了,下面就把我的配置步骤贴出来供得为参考. 一.业务要求 现在要求创建一个FTP账号ailanni,该账号只能登录到/www目录下,不能切换到上级目录.同时处于安全考虑还要求该账号上传的文件权限为644

ubuntu server vsftpd 虚拟用户及目录

ubuntu server vsftpd 虚拟用户及目录 一:需求场景: 在ubuntu server上开设一个虚拟网站,在网站目录建立一个ftp目录,允许用户通过ftp上传网站文件到网站目录: 同时,该ftp用户,只能用于ftp操作,不能用于登陆ubuntu server 二:配置 1:先建立虚拟网站: 同样先创建apache2 网站配置文件,然后启用站点: 比如这里我的测试 网站 :www.cocoa.com 内网访问 站点: 网站目录在:/var/www/cocoa/web 在该目录下,建

Vsftpd 虚拟用户配置

System:Centos6.7x86_64 Author:miles Date:2015/11/24 shanghai step 1 安装 yum -y install vsftpd db4-utils step 2 创建虚拟用户 vim /opt/loginuser.txt milesaway   milesawaypwd db_load -T -t hash -f /home/loginuser.txt /etc/vsftpd/vsftpd_login.db chmod 600 /etc/

Linux下Vsftp虚拟用户配置不同权限

RHEL5.5  VSFTP2.0.5虚拟用户配置不同权限 linux下使用vsftp搭建ftp服务器,同时建立虚拟账号,为不同的账号分配不同的权限,以下配置测试通过. 系统版本 2.vsftpd版本 如果在系统安装时没有安装vsftpd服务,则后期可以通过yum进行安装或者使用rpm包.tar包进行手动安装,具体安装过程此处不做详解,安装完成之后,查看vsftpd的服务状态 3.配置vsftpd.conf文件   修改之前备份 修改下面的配置文件    关闭匿名登录 开启ascii上传下载功能

vsftpd虚拟用户配置

listen=YES anonymous_enable=NO local_enable=YES chroot_list_enable=YES ascii_upload_enable=YES ascii_download_enable=YES pam_service_name=vsftpd guest_enable=YES guest_username=ftp user_config_dir=/etc/vsftpd/vuser_conf xferlog_enable=YES xferlog_std

Ubuntu下vsftpd安装和配置

1.安装 sudo apt-get install vsftpd 2.安装后启动,停止,重启命令 sudo service vsftpd start sudo service vsftpd stop sudo service vsftpd restart 3.配置 vi /etc/vsftpd.conf listen = YES   #Run standalone? 启用独立vsftpd服务器,YES表示是 #listen_ipv6=YES #是否监听ipv6默认关闭 anonymous_ena

CentOS6.6 Vsftpd虚拟用户配置

#安装软件包 yum -y install vsftpd db4* #关闭SELinux vim /etc/sysconfig/selinux SELINUX=permissive #命令行输入,立即生效SELinux配置 getenforce 0 #防火墙允许22号端口 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT #建立虚拟用户登录文件,基数行为用户,偶数行为密码,只能这样写,否则系统不认

[ 总结 ] vsftpd 虚拟用户配置

需求:在不更改目录权限的前提下,ftp用户对目录里的文件拥有所有权. [[email protected] ~]# yum install vsftpd -y [[email protected] ~]# cd /etc/vsftpd/ [[email protected] vsftpd]# cp -a vsftpd.conf vsftpd.conf_bak [[email protected] vsftpd]# vim vsftpd.conf # 修改如下参数: anonymous_enabl

FTP服务学习笔记之基于MySQL+PAM的vsftpd虚拟用户

基于mysql+PAM的vsftpd虚拟用户配置 一.实验说明 操作系统:Redhat5.8_X64bit 实验平台:VMware Workstation 所需要的软件包:pam_mysql-0.7RC1.tar.gz 二.安装所需要程序 1.事先安装好开发环境和mysql数据库 # yum -y groupinstall "Development Tools" "Development Libraries" #yum -y install mysql-server