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

linux搭建vsftpd虚拟用户访问

2013-01-18 01:14 471 查看
配置vsftpd服务

FTP服务器默认匿名可以访问。

1.搭建yum仓库

[root@accp~]# vim /etc/yum.repos.d/dvd.repo

[server]

name=redhat6

baseurl=file:///mnt/rheldvd 为本地光盘路径

enabled=1

gpgcheck=0

[root@accp~]# yum install -y vsftpd* yum安装vsftpd服务

[root@accp~]# service vsftpd restart 重启完服务后,默认可以匿名用户访问

[root@accp~]# vim /etc/vsftpd/vsftpd.conf

chown_uploads=YES 设置匿名上传内容的属主为"tom"

chown_username=tom

********************************************************

2.建立用户验证访问

建立一个用户并设置密码

[root@accp~]# useradd harry

[root@accp~]# passwd harry

[root@accp~]# vim /etc/vsftpd/vsftpd.conf

anonymous_enabl=NO/YES 控制匿名用户访问 注释掉匿名访问不能关闭匿名,注释匿名是设置为默认设置,默认设置是可以匿名访问

ftp_username=ftp 此参数用来设置匿名用户的用户名

anon_root=/var/ftp 设定匿名访问的根目录

anon_world_readable_only=NO 控制是否允许用户下载可阅读的文件,YES为可以下载,NO为不可以下载但可浏览。

anon_upload_enable=NO 允许匿名ftp用户访问并上传文件

anon_mkdir_write_enable=NO 是否允许匿名用户有创建目录的权利

anon_other_write_enable=NO 匿名用户是有除上传之外的其它权限

local_enable=YES 本地用户访问

write_enable=YES 本地用户写入

local_umask=022 写入的权限为755

chroot_local_user=YES 所有用户禁锢在家目录中,提高安全性,本地用户在访问时只能访问自己家目录。

chroot_list_enable=YES 指定用户访问限止在自己的home目录下

chroot_list_file=/etc/vsftpd/chroot_list 在/etc/vsftpd/chroot_list文件中列出的是被限制的用户的列表。

dirmessage_enable=YES 访问某用户的FTP时显示的欢迎信息,在用户的家目录中编辑“vim .message”,方可显示效果

data_connection_timeout=120 数据传输时间为120秒

pam_service_name=vsftpd 可插拔模块 "vim /etc/pam.d/vsftpd" 控制 "vim /etc/vsftpd/ftpusers"中的用户denny与allow

默认为denny

userlist_enable=YES YES与NO 决定"vim /etc/vsftpd/user_list" 中的用户能否被访问

tcp_wrappers=YES 是否启用tcp_wrappers主机访问控制防御设置,"vim /etc/hosts.deny" "vim /etc/hosts.allow"

ftpd_banner=welcome to ftp service 定制FTP欢迎信息

banner_file=/etc/vsftpd/banner 使用欢迎文件

dirmessage_enable=YES 当用户切换到一个目录时,是否显示目录切换信息

xferlog_enable=YES 是否记录ftp传输过程

xferlog_file=/var/log/vsftpd.logftp 传输日志的路径和名字默认是/var/log/vsftpd.log

xferlog_std_format=YES 是否使用标准的ftp xferlog模式

connet_from_port_20=YES 是否确信商品传输来自20

chown_uploads=YES 设定是否改变匿名上传的文件的拥有者

chown_username=username 设定匿名上传的文件的的拥有者

idle_session_timeout=600 设置默认的断开不活跃session的时间

data_connection_timeout=120 设置数据传输超时时间

ascil_upload_enable=YES

ascil_download_enable=YES 是否使用ascil码方式上传和下载文件

userlist_enable=YES 在/etc/vsftpd/user_list 文件中列表出用户不能访问FTP服务器

tcp_wrappers=YES 是否支持tcp_wrappers

[root@accp~]# service vsftpd restart 每当修改完配置,就重启一次

********************************************************

3.建立虚拟用户访问

以上vsftpd 已经安装完毕,在此不做详细说明

安装yum install -y db4-utils-4.7.25-16.el6.x86_64 数据库文件,需要将虚拟用户转换为数据库文件,(这里为RHEL6.0的db4版本文件)

或 yum install -y db4* 全部安装

[root@accp~]# yum install -y db4*

建立账户文件(vim /etc/vsftpd/virtual.file)

[root@accp~]# vim /etc/vsftpd/virtual.file

tom 奇数为用户名,偶数为密码

tigerzhang

john

tigerzhang

将virtual.file 文本内容加载到db数据库

[root@accp~]# cd /etc/vsftpd

[root@accp vsftpd]# db_load -T -t hash -f virtual.file virtual.db

注:在db_load命令中,"-T"选项允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在

文件里的,为了让vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用-T。

"-t " 用来指定转译载入的数据库类型。可以指定的数据类型有Btree、Hash、Queue、Recon数据库,这里选Hash。

"-f"用于指定用户名/密码列表文件,如:virtual.file。参考:"/usr/share/doc/db4-utils-4.3.29/utility/db_load.html"

[root@accp~]# chmod 600 /etc/vsftpd/virtual.* 降低文件权限增强安全性

采用pam验证模块,如果没有可以进行"yum install -y pam*"安装,

[root@accp~]# vim /etc/pam.d/vsftpd.vu

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

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

如果是32位系统则需要把lib64换成lib,否则会报530错误无法登录,也可加"/lib64/security/pam_userdb.so"。

建立系统帐户

[root@accp~]# useradd -d /var/ftp -s /sbin/nologin luce

vsftpd虚拟用户需要有一个对应的系统用户帐号,该帐号无需登录shell,该用户帐号的宿主目录作为所有虚拟用户登录后共同的FTP棣目录,即

luce作为virtual.file文件内的用户映射。

[root@accp~]# chmod 755 /var/ftp 给虚拟用户目录一个权限

修改配置文件

[root@accp~]# vim /etc/vsftpd/vsftpd.conf

chroot_local_user=YES 禁锢在家目录中,增强安全性

guest_enable=YES 启用用户映射功能

virtual_use_local_privs=YES

pam_service_name=vsftpd.vu 修改使用的PAM文件位置(与指定的PAM验证文件名一致)

user_config_dir=/etc/vsftpd/virt_dir给虚拟用户个人vsftp的配置文件一个存放路径,/etc/vsftpd/virt_dir里面的文件都是虚拟用户的专用

配置文件,注意:配置文件名必须和虚拟用户名相同

[root@accp~]# service vsftpd restart 重启服务

[root@accp~]# mkdir /etc/vsftpd/virt_dir

[root@accp~]# cd /etc/vsftpd/virt_dir

[root@accp~]# vim luce 此文件里的配置可以根据需要配置项目

guest_enable=YES (在centos下yes必须为小写字母)

guest_username=luce

local_root=/var/ftp/

idle_session_timeout=600

data_connection_timeout=120

max_clients=10

max_per_ip=5

local_max_rate=100000

1.建立虚拟用户访问

以上vsftpd 已经安装完毕,在此不做详细说明

安装yum install -y db4-utils-4.7.25-16.el6.x86_64 数据库文件,需要将虚拟用户转换为数据库文件,(这里为RHEL6.0的db4版本文件)

或 yum install -y db4* 全部安装

[root@accp~]# yum install -y db4*

建立账户文件(vim /etc/vsftpd/virtual.file)

[root@accp~]# vim /etc/vsftpd/virtual.file

tom 奇数为用户名,偶数为密码

tigerzhang

john

tigerzhang

将virtual.file 文本内容加载到db数据库

[root@accp~]# cd /etc/vsftpd

[root@accp vsftpd]# db_load -T -t hash -f virtual.file virtual.db

注:在db_load命令中,"-T"选项允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在

文件里的,为了让vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用-T。

"-t " 用来指定转译载入的数据库类型。可以指定的数据类型有Btree、Hash、Queue、Recon数据库,这里选Hash。

"-f"用于指定用户名/密码列表文件,如:virtual.file。参考:"/usr/share/doc/db4-utils-4.3.29/utility/db_load.html"

[root@accp~]# chmod 600 /etc/vsftpd/virtual.* 降低文件权限增强安全性

采用pam验证模块,如果没有可以进行"yum install -y pam*"安装,

[root@accp~]# vim /etc/pam.d/vsftpd.vu

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

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

如果是32位系统则需要把lib64换成lib,否则会报530错误无法登录,也可加"/lib64/security/pam_userdb.so"。

建立系统帐户

[root@accp~]# useradd -d /var/ftp -s /sbin/nologin luce

vsftpd虚拟用户需要有一个对应的系统用户帐号,该帐号无需登录shell,该用户帐号的宿主目录作为所有虚拟用户登录后共同的FTP棣目录,即

luce作为virtual.file文件内的用户映射。

[root@accp~]# chmod 755 /var/ftp 给虚拟用户目录一个权限

修改配置文件

[root@accp~]# vim /etc/vsftpd/vsftpd.conf

chroot_local_user=YES 禁锢在家目录中,增强安全性

guest_enable=YES 启用用户映射功能

virtual_use_local_privs=YES

pam_service_name=vsftpd.vu 修改使用的PAM文件位置(与指定的PAM验证文件名一致)

user_config_dir=/etc/vsftpd/virt_dir给虚拟用户个人vsftp的配置文件一个存放路径,/etc/vsftpd/virt_dir里面的文件都是虚拟用户的专用

配置文件,注意:配置文件名必须和虚拟用户名相同

[root@accp~]# service vsftpd restart 重启服务

[root@accp~]# mkdir /etc/vsftpd/virt_dir

[root@accp~]# cd /etc/vsftpd/virt_dir

[root@accp~]# vim luce 此文件里的配置可以根据需要配置项目

guest_enable=YES (在centos下yes必须为小写字母)

guest_username=luce

local_root=/var/ftp/

idle_session_timeout=600

data_connection_timeout=120

max_clients=10

max_per_ip=5

local_max_rate=100000

********************************************************

注意:

1.搭建完服务器后,要注意查看iptables 防火墙 和 setsebool

iptables -F

iptables -X

getsebool -a 查看所有的bool信息

setsebool -P 修改bool信息 将某一个条目改为 "on" 开启。

setsebool -P allow_ftpd_anon_write on

chcon -t public_content_rw_t /var/ftp/mydir 设置上下文

chcon -t public_content_rw_t/var/ftp/mydir 更改目录的条目

特此声明,由于在下是一个刚出道的学生,以上实验是自己在VMware里搭建的服务,并且运行正常。如有问题望君能及时分享提出宝贵修改意见,以供

能够学习参考,谢谢!!!

本文出自 “雕琢棱角” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: