Linux下配置vsftpd和虚拟用户 成功

来源:互联网 发布:数据库系统导论 编辑:程序博客网 时间:2024/06/17 13:54

 

Linux下配置vsftpd和虚拟用户成功

 

1.      检查vsftpd驱动是否安装正常

2.      确认安装PAM服务相关部件

3.      创建一个虚拟库的文件叫什么都可以放在那里都行

4.      需要生成一个数据库文件才可以

5.      创建一个用户 用来做虚拟用户使用 (这个用户一定不能设置密码)

6.      修改vsftpd.conf文件

7.      为你文本库的用户和账号创建目录

8.      创建通过验证虚拟用的文件

9.      给虚拟用户配置权限文件

10.  检查配置所有虚拟用户所使用的文件权限

 

上面这10个问题都解决那么高级安全的虚拟用户就不成问题

 

问题1:检查vsftpd驱动是否安装正常

Linux下配置vsftpd和虚拟用户 <wbr>成功rpm –qa | grepvsftpd 检查是否安装了vsftpd驱动程序

 

问题2 确认安装PAM服务相关部件

Linux下配置vsftpd和虚拟用户 <wbr>成功pam-devel*******.rpm

rpm –qa | greppam* 检查一下是否安装了这个

rpm –ivhpam-devel ********.rpm 把这1个安装上OK 这里一般不需要

问题3:创建一个虚拟库的文件叫什么都可以放在那里都行

Linux下配置vsftpd和虚拟用户 <wbr>成功vim/etc/vsftpd/www 创建了一个www的文件

这里的账户只能为小写之母

如果大写了 失败

 Linux下配置vsftpd和虚拟用户 <wbr>成功Linux下配置vsftpd和虚拟用户 <wbr>成功Linux下配置vsftpd和虚拟用户 <wbr>成功Linux下配置vsftpd和虚拟用户 <wbr>成功Linux下配置vsftpd和虚拟用户 <wbr>成功Linux下配置vsftpd和虚拟用户 <wbr>成功Linux下配置vsftpd和虚拟用户 <wbr>成功

所有的ID135..

 

 

对应的密码为 2 4 6..

 Linux下配置vsftpd和虚拟用户 <wbr>成功

 

 

 

问题4:需要生成一个数据库文件才可以(命令如下)

Linux下配置vsftpd和虚拟用户 <wbr>成功db_load这个命令可能没有需要到光盘或ISO找到以下安装包

            db4-utils*******.rpm安装一下就有了

db_load –T –t hash –f/etc/vsftpd/www /etc/vsftpd/userwww.db

这里的文件名我随便用的 没什么关系的

 

问题5 创建一个用户 用来做虚拟用户使用 (这个用户一定不能设置密码)

Linux下配置vsftpd和虚拟用户 <wbr>成功useradd -d /web-s /sbin/nologin ftpserver 创建了一个叫ftpserver的用户 不需要设置密码

 

问题6 修改vsftpd.conf文件

Linux下配置vsftpd和虚拟用户 <wbr>成功首先我们在修改文件之前先要做个备份cp vsftpd.confvsftpd.bak

 

vim /etc/vsftpd/vsftpd.conf(具体配置请参照我的vsftpd.conf文件)

 

 

主动模式和被动我全开了

 Linux下配置vsftpd和虚拟用户 <wbr>成功

 

 

 

 

Linux下配置vsftpd和虚拟用户 <wbr>成功

 

 

 

 

这个是为ftp创建的用户

 Linux下配置vsftpd和虚拟用户 <wbr>成功Linux下配置vsftpd和虚拟用户 <wbr>成功

设定虚拟用户的权限符合他们的宿主用户

user_config_dir=/etc/vsftpd/vconf代表用户的权限目录

 

问题7 为你文本库的用户和账号创建目录

Linux下配置vsftpd和虚拟用户 <wbr>成功我选择的目录在 /web/

mkdir/web/admin888   mkdir /web/ftp009

mkdir/web/usernameftp   mkdir/web/gaoyuhaha

mkdir/web/dongxiaolei   mkdir/web/dongdaoli

mkdir /web/liujian

别望了这个否则没有写入权限 chown –R ftpserver.ftpserver /web

问题8创建通过验证虚拟用的文件

Cp /etc/pam.d/vsftpd/etc/pam.d/vsftpd.vu

复制一份验证文件

vim /etc/pam.d/vsftpd.vu 把上面的全部注释

在下面加入这两行

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/userwww
account required /lib/security/pam_userdb.so db=/etc/vsftpd/userwww

注意:如果是64位的LinuxRedHat 请注意就不是上面的写法了

auth required /lib64/security/pam_userdb.so  db=/etc/vsftpd/userwww
account required /lib64/security/pam_userdb.so   db=/etc/vsftpd/userwww

 

问题9 给虚拟用户配置权限文件

Linux下配置vsftpd和虚拟用户 <wbr>成功因为你在vsftpd.conf文件中有这一条语句  “权限” 所以我们要创建这样的目录及文件

user_config_dir=/etc/vsftpd/vconf代表用户的权限目录

cd /etc/vsftpd/mkdir vconf 创建vconf目录

 

接下来给每个用户都要创建一个权限的文件这个文件要和虚拟用户名称相同

 

首先我们先创建一个虚拟用户的模版文件叫做vsftpd.mb

 

 

vim/etc/vsftpd/vsftpd.mb 这个文件是个模版文件没有什么意思

Linux下配置vsftpd和虚拟用户 <wbr>成功

然后我们可以执行命令

cp vsftpd.mb admin888 cp vsftpd.mbftp009

cp vsftpd.mb gaoyuhaha  cpvsftpd.mb dongdaolei

cp vsftpd.mb dongdaoli  cpvsftpd.mb liujian

这样我拥有了所有的用户权限配置文件复制完成后要编辑每个用户的文件

local_root=/web/相对的用户目录/修改对应的目录名 及个人的相关权限

 

问题10 检查配置所有虚拟用户所使用的文件权限

Linux下配置vsftpd和虚拟用户 <wbr>成功ll /web/在次检查一个这下面的文件是否有权限 ftpserver 宿主用户700

检查/etc/pam.d/vsftpd.vu 这个文件是否输入正确

检查/etc/vsftpd/vsftpd.conf 中的验证文件是不是vsftpd.vu

检查每一个虚拟用户的的目录是否设置正确

检查每一个虚拟用户的权限文件里的验证文件是不是vsftpd.vu

检查一下防火墙是否关闭或设置成功

如果以上都已经搞定 那么

service vsftpd start

chkconfig vsftpd on

 

ftp127.0.0.1   ID:admin888  passwod:123456 OK

 

Linux下配置vsftpd和虚拟用户 <wbr>成功

被限速的原因

 ftp127.0.0.1   ID:dongxiaolei  passwod:123456 OK

 

Linux下配置vsftpd和虚拟用户 <wbr>成功

Linux下配置vsftpd和虚拟用户 <wbr>成功

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


这样就表示成功了  可是我们需要搭建一个更安全的服务器 

 

 

 

 

在我前面的配置中都是把防墙关掉的 还有把 SElinux也是关掉的这里就是要把这里的这些全部打开 在配置

启动防火墙 iptables 我先声明(我这里的防火墙配置只针对FTP的主动模式)

service iptables start 启动防火墙

chkconfig iptables on 开机启动

iptables -t filter -A INPUT -m state --stateESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A INPUT -m state --state INVALID -jDROP 
iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -t filter -P INPUT DROP 

iptables -t filter -A OUTPUT -m state --state ESTABLISHED,RELATED-j ACCEPT 
iptables -t filter -A OUTPUT -p tcp --sport 20:21 -j ACCEPT
iptables -t filter -P OUTPUT DROP

service iptables save

SElinux FTP配置先简介绍一下

getsebool -a|grep ftp 查询一下 sestatus
//
如果你想匿名共享文件
chcon -R -t public_content_t /var/ftp

//如果你想建立一个目录,你可以上传文件
chcon -t public_content_rw_t /var/ftp/incoming

你还必须打开布尔allow_ftpd_anon_write
setsebool -P allow_ftpd_anon_write=1

/如果你是一个ftpd服务器这台机器,并希望允许用户访问他们的家庭 
setsebool -P ftp_home_dir 1

//如果你想运行ftpd作为守护进程
setsebool -P ftpd_is_daemon 1

//你可以禁用系统保护的ftpd守护进程
setsebool -P ftpd_disable_trans 1

如果你启动了SElinux 的话要执行以下的几条命令才可以成功

//setsebool使用-P参数,无需每次开机都输入这个命令
# setsebool -P allow_ftpd_anon_write on
具有上传权限
# setsebool -P ftp_home_dir 1
开启访问目录
# chcon –R -t public_content_rw_t /web
配置写的权限
# service vsftpd restart
重起vsftpd服务器

 

这才是一个完整的vsftpd的安全配置

 

 

Vsftpd.conf的介绍

监听地址与控制端口
listen_address=192.168.168.168
设定监听的IP地址
listen_port=21
设定端口号
主动模式
port_enable=YES
开启主动模式
connect_from_port_20=YES
开启20端口
#ftp_date_port=6666
如果有需要还可以自己设定端口但需要把上面的20端口注释掉
被动模式
pasv_enable=YES
启动被动模式
pasv_min_port=30000
设定被动模式以多少端口开始如果是0则表示随机
pasv_max_port=30999
设定被动模式以多少端口结束如果是0则表示随机
ASCII传送模式
这两个都选择YES表示可以使用ASCII传送模式
ascii_upload_enable=YES
说实在的我也不是很明白这个有什么用
ascii_download_enable=YES
超时选项
idle_session_timeout=600
空闲用户会话的超时时间,如果超出这个时间没有数据的传送或命令的输入,就会强迫断开点位为秒600秒后断开
data_connection_timeout=120
定义数据传送过程中被阴塞的最长时间
accept_timeout=60
接受建立连接的超时设定。单位为秒,默认为60
connect_timeout=60
响应主动方式的数据联机的超时设定,单位为秒,默认为60
负载控制
max_clients=10
独立模式下并发连接数
max_per_ip=5
定义了每个IP地址大的并发连接数
anon_max_rate=1000
设定匿名用户的最大数据传输速度以Byte/s 1000 = 1kb 
local_max_rate=1000
设定本地用户的最大数据传输速度以Byte/s 1000 = 1kb 
匿名用户设置
anonymous_enable=NO
控制是否允许匿名用户登录。YES是允许,NO不允许,默认值为YES
no_anon_password=NO
控制匿名用户登录时是否需要密码。YES不需要,NO需要,默认值为NO
ftp_username=ftp
指定匿名用户与本地的哪个账号相对应,该用户的家目录即为匿名用户访问FTP服务器的时根目录,默认是ftp
anon_root=/var/ftp
配置匿名用户的目录默认为/var/ftp
anon_world_readable_only=YES
允许匿名用户下载默认为YES
anon_upload_enable=YES
允许匿名用户上传默认为YES。要上传还需要两个参数write_enable=YES 目录权限
anon_mkdir_write_enable=YES
允许匿名用户创建目录默认为YES
chown_uploads=YES
指定匿名用户上传的所有权赋予chown_username指定的用户
chown_username=whoever
指定赋予匿名用户上传权限的用户不要用root
本地用户设置
local_enable=YES
是否允许本地用户登录
chroot_local_user=YES
锁定用户在自身目录下
chroot_list_user=YES
表示可切换到家目录以外的目录
local_umask=022
权限设定为777 - 022= 755 的权限
local_root=/web
指定本地用户登录vsftpd服务器时切换到的目录
虚拟用户设置
guest_enable=YES
启动虚拟用户
guest_username=ftpserver
设定虚拟用户
virtual_use_local_privs=YES
虚拟用户是否继承ftpserver的权限
user_config_dir=/etc/vsftpd/vconf
设置虚拟用户的权限目录
用户登录控制
ftpd_banner=Welcome to blah FTPservice ^_^
登录时的欢迎界面
tcp_wrappers=YES
vsftpd中使用TCP_wrappers远程访问控制机制,默认为YES
文件操作控制
download_enable=YES
是否允许下载默认是YES
chown_uploads=YES
指定匿名用户上传的所有权赋予chown_username指定的用户
chown_username=root
指定赋予匿名用户上传权限的用户不要用root 
write_enable=YES
客户登录哦允许使用删除、重命名、断点续传 

日志处理
xferlog_enable=YES
记录日志 
xferlog_std_format=YES
用标准格式 
xferlog_file=/var/log/vsftpd.log
需要自己创建日志文件 

原创粉丝点击