您的位置:首页 > 运维架构 > Linux

Linux下安装配置VSFTP服务器

2016-11-10 16:18 267 查看
1、安装vsftpd软件包#yum -y install vsftpd db4 db4-utils

安装完成后先关闭SELinux及iptables防火墙
2、启动vsfptd服务器#service vsftpd start

现在就可以用匿名用户登录了。默认的匿名用户为'ftp',密码为空。根目录为'/var/ftp'

现在匿名用户只能从服务器上下载文件,没有上转及建立文件夹等等权限。
3、vsftpd配置(/etc/vsftpd/vsftpd.conf)
a:设置使匿名用户能够上传文件下载文件以建立文件夹等。
anon_upload_enable=YES #设置匿名用户有上转文件的权限

anon_mkdir_write_enable=YES #设置匿名用户新建文件夹及文件权限

anon_other_write_enable=YES #设置匿名用户有重命名及删除等权限

改完上面的备置后重启vsftpd服务
登录vsftp服务器后发现还是不能上转文件等,这里是因为/var/ftp的目录所属权为root。

不过,即使你改了/var/ftp的属性权为ftp能达到效果,不过你再次登录时你会发现登不了vsftp服务器了。

所在,所以我们改ftp里的面的文件夹才可生效。

#chown ftp /var/ftp/pub
好了,完成上面这步后,我们的匿名用就可以正常登录并可以上传下载,及创建删除文件夹等。
b:设置使本地用户能够上传文件下载文件以建立文件夹等。首先我们要先创建一个本地用户,因为vsftpd为了安全默认的情况下是不允许root等拥有高级权限的用户登录的。

且体是哪些用户可以查看(/etc/vsftpd/ftpusers)
#useradd -s /sbin/nologin micxp #这里用 -s /sbin/nologin使该用户不登录系统。

#passwd micxp #这里为给micxp用户设置密码为123

Changing password for user micxp.

New password:123

BAD PASSWORD: it is WAY too short

BAD PASSWORD: is too simple

Retype new password:123

passwd: all authentication tokens updated successfully.
好了,在vspftd.conf默认的置设置就可以用本地用户登录ftp服务器了。并且也有上转与下载

删除与创建文件夹等权限,不过,你会发这个用户可以切换到系统的根目录下。这样是很不安装的,

所以我们要设置配置文件,把本地用户限制在自己的家目录下。也就是/home/micxp
chroot_local_user=YES #这里开启把所有的本地用户限制在自己的家目录下(下面的设置将无效)
如需限制部份用户把上面的配置设为NO,并把下面的两个启用。

chroot_list_enable=YES #这里开启是把需要限制的用户限制在家目。需要限制的用户须写入下面的chroot_list文件中。

# (default follows)

chroot_list_file=/etc/vsftpd/chroot_list #这个与chroot_list_enable配对使用。
现在我对本地用户的配置己基本完成。对于一些如果限速及客户端链接数的设置在后面介绍。
下面是控制本地用户是否可登录配置

第一种方法

userlist_enable=YES

userlist_deny=YES #则 /etc/vsftpd/user_list文件中的用户禁止登录

第二种方法

userlist_enable=YES

userlist_deny=NO #则 /etc/vsftpd/user_list文件中的用户可以登录
说明:"/etc/vsftpd/user_list"是默认存在的,还有一个文件"/etc/vsftpd/ftpusers"这个文件中的用户是禁止登录。
c:设置使用虚拟用户能够上传文件下载文件以建立文件夹等。
首先建立一个虚拟用户口令的文本文件,格式为单数行为用户名,偶数行为口令

如下:

vi /etc/vsftpd/vuser.txt

输入以下内容

vmicxp #虚拟用启名

456 #用户口令
保存,并用db_load生成用户口令库文件。如下:

#db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db

#chmod 600 /etc/vsftpd/vuser.db #为了安全设为只读。
现在编辑/etc/vsftpd/vsftpd.conf 查看是有否有 pam_service_name=vsftpd 确保开启。如果没有自行添加。
pam_service_name=vsftpd

guest_enable=YES #这个是开启虚拟用户

guest_username=vsftp #虚拟用户所映射的本地用户
现在来创建一下这个"vsftp"用户

#useradd vsftp

上面那个vsftpd是在/etc/pam.d/vsftpd 这个文,打开这个文件用#号注释掉所有内容。并添加以下两行。
auth required pam_userdb.so db=/etc/vsftpd/vuser

account required pam_userdb.so db=/etc/vsftpd/vuser
需要注意的是,上面那个db所指的vuser这个文件不需要加".db"不然会登录不了的。
好了,现在就可以用vmicxp这个用户登录vsftp服务器了,不过你会发现能登录但什么也看不到。是因为虚拟用的默认权限为匿名用权限,需在主配置文件中设置"virtual_use_local_privs=YES"使虚拟用户拥有和本地用户一样的权限。
virtual_use_local_privs 这个参数具体用法如下。
当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;

当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。

当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传、下载、删除、重命名)。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,

anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

anon_other_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权限。
注你也可以用user_config_dir=/etc/vsftpd/vsftpd_user_conf来为每个虚拟用设置当独的权限
#mkdir /etc/vsftpd/vsftpd_user_conf

#vi /etc/vsftpd/vsftpd_user_conf/vmicxp #vmicxp 这个文件名对应于你每一个虚拟用户。
#如为这个用设置他的家目录。
local_root=/home/vmicxp
好了现在也完成了虚拟用户的设置了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: