51CTO下载RHELvsftp配置范例.docx

上传人:b****6 文档编号:8043063 上传时间:2023-01-28 格式:DOCX 页数:12 大小:316.19KB
下载 相关 举报
51CTO下载RHELvsftp配置范例.docx_第1页
第1页 / 共12页
51CTO下载RHELvsftp配置范例.docx_第2页
第2页 / 共12页
51CTO下载RHELvsftp配置范例.docx_第3页
第3页 / 共12页
51CTO下载RHELvsftp配置范例.docx_第4页
第4页 / 共12页
51CTO下载RHELvsftp配置范例.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

51CTO下载RHELvsftp配置范例.docx

《51CTO下载RHELvsftp配置范例.docx》由会员分享,可在线阅读,更多相关《51CTO下载RHELvsftp配置范例.docx(12页珍藏版)》请在冰豆网上搜索。

51CTO下载RHELvsftp配置范例.docx

51CTO下载RHELvsftp配置范例

目标:

1、常规VSFTPD服务器搭建(很简单的匿名访问)

2、本地用户访问FTP的方式(安全性高)

3、虚拟用户访问方式(安全性最高)

4、chroot安全机制,禁锢用户只在自己的目录下活动,不可切换到别的目录下

5、访问控制机制

1、IP说明:

192.168.0.2——主机名:

vsftpd服务器

192.168.0.3——主机名:

client客户端

2、前期准备

更改主机名称(更改三处):

1、hostname更改,2、hosts更改,3、/etc/sysconfig/network

3、所需软件包如下

使用yum来安装,rpm的方式也是可以的

进入到vsftpd的主配置目录下:

(1)ftpusers是用户控制文件,在这个文件里面的用户,默认是不可以使用vsftpd服务的。

(2)user_list默认功能和第一个一样,但是通过配置,我们可以让只有在第二个文件里的用户才能使用vsftpd服务,这样新加入的用户就不会自动拥有vsftp的使用权,这样可以让vsftpd服务器更加安全

(3)vsftpd_conf_migrate.sh是vsftpd操作的一些变量和设置,这个不用管的

当然,主角就是vsftpd.conf,配置vsftpd,我们操作最多的也就是这个文件了

一、下面开始实现第一个目标(搭建基本的FTP服务器)

我先备份一下vsftpd的主配置文件

以便配置错误之后方便恢复

下面看看vsftpd.conf文件的内容吧

大概就这些内容,可以自己more看一下哈!

默认安装完成vsftpd之后启动服务客户端就可以访问FTP了(匿名访问的方式),

下面我在客户端来访问一下FTP

不用登陆即可访问FTP的pub目录,该目录在FTP服务器的

这样一个简单的FTP服务器就搭建完成了,(关于vsftpd.Conf文件里的详细参数介绍看文章结尾的注意内容)。

二、下面我们来实现第二个实验的目标(本地用户访问FTP的方式)

编辑vsftpd.conf文件,

关闭默认允许的匿名访问的方式

把其YES改为NO即可,重启FTP服务,匿名就不可以访问了

就要求我填写用户名和密码了

添加用户ftp1指定到ftp组,并指定ftp1的shell不可以登陆系统(安全起见)

最后设置用户的密码,

在ftp1的家目录下建立一个test的文件用来测试

现我用ftp1账号现在访问一下

看看是不是可以了,登陆之后是在ftp1的家目录下面,然后我们用Linux客户端来访问一次

登陆成功

登陆后输入“?

”可以查看可以在ftp模式下敲击的命令哦!

看我们在自己的家目录,通过切换之后居然可以切换到/etc下面,当然,这时候就是你下载passwd文件都是没有问题的,这样是很不安全的啦

实现目标四禁锢用户在自己家目录

所以我们启用chroot机制,把用户禁锢在自己的家目录,不允许他乱跑的哦。

我们来编辑vsftpd的主配置文件,来启用cheroot

去掉前面注释#即可,保存

在/etc/vsftpd下添加chroot_list文件,编辑chroot_list添加ftp1用户,一行一个用户(在此

文件内的添加的用户将不能切换目录,视自己的家目录为跟目录)

重新加载vsftpd配置文件。

下面我们重新使用Linux客户端访问以下,看看效果

看看,切换目录失败,说明我们的实验是成功的

下面我使用ftp2用户登陆(ftp2我没有加入到chroot_list文件中,所以正常情况下ftp2登陆之后应该是可以切换目录的)

从上面看到,我们呢使用ftp2用户登陆之后是可以成功切换目录的,现在你知道chroot的的作用了吧,也应该知道这个chroot_list文件的作用了吧。

(注意:

如果你启动了chroot机制,却没有子啊/etc/vsftpd/下建立chroot_list这个文件,那么当你登陆的时候会出现失败的字样具体如下:

421Servicenotavailable,remoteserverhasclosedconnection,所以启用之后一定要建立chroot_list文件的哦)

三、下来我们来实现第三个目标,用虚拟用户访问FTP服务器

这个最重要的是

在/etc/vsftpd/下建立vlogin.txt文件,用来存储虚拟用户的用户名和密码

编辑vlogin.txt这个文件

编辑格式:

奇数行:

用户名

偶数行:

密码

生成数据库

保存虚拟帐号和密码的文本文件无法被系统帐号直接调用哈~我们需要使用db_load命令生成db数据库文件

(注意:

rhel5默认只安装db4-4.3.29-9.fc6.i386.rpm和db4-devel-4.3.29-9.fc6.i386.rpm,

要使用db_load需要将db4-utils-4.3.29-9.fc6.i386.rpm包安装上哈~否则会出现下图的错误:

找不到db_load命令。

修改数据库文件访问权限

数据库文件中保存着虚拟帐号的密码信息,为了防止非法用户盗取哈,我们可以修改该文件的访问权限。

生成的认证文件的权限应设置为只对root用户可读可写,即600

chmod600/etc/vsftpd/vlogin.db

编辑pam文件(编辑的时候一定要认真,出现错误的话客户端登陆会被530的错误提示拒绝登陆)PAM模块配置文件路径为/etc/pam.d/目录,此目录下保存着大量与认证有关的配置文件,并以服务名称命名。

用#注释掉原来的所有参数(如需使用访问控制ftpusers,则不要注释这行即可“authrequired/lib/security/pam_listfile.soitem=usersense=denyfile=/etc/

ftpusersonerr=succeed”)如上图

在最后添加authreguiredpam_userdb.sodb=/etc/vsftpd/vlogin

accountreguiredpam_userdb.sodb=/etc/vsftpd/vlogin

这两行,pam_userdb.so的位置在/lib/security/下面,db=/etc/vsftpd/vlogin中的vlogin为我们生成的db数据文件vlogin.db。

添加一个系统用户来对应虚拟用户,光有虚拟用户是无法登陆的,我们需要让虚拟用户对应一个系统实际的用户,这样所有的用户登陆之后就会进入到系统实际用户的家目录,我们再通过给各个虚拟用户来分配不同的权限(最后讲这个)

这里,-g指定用户的属组为ftp组,-s指定用户的Shell为不可登陆,-d指定用户的家目录为/var/share,它的加目录的权限如下

编辑/etc/vsftpd/vsftpd.conf,

添加如下内容

内容选项解释:

pam_service_name=vsftpd:

配置vsftpd使用的PAM模块为vsftpd

user_config_dir=/etc/vsftpd/vuserconfig:

设置虚拟帐号权限配置的主目录为vuserconfig

guest_enable=yes允许使用虚拟用户登陆FTP

guest_username=ftp3虚拟用户所对应的系统用户为ftp3(我之前添加的)。

max_clients=1:

设置FTP服务器最大接入客户端数为1个(为了方便测试,你可以根据自己的实际情况设定)

max_per_ip=1:

设置每个IP地址最大连接数为1个(为了方便测试,你可以根据自己的实际情况设定)

在/etc/vsftpd/下建立vuserconfig目录,用于存放用户的权限配置文件,以便为各个用户分配不同的权限,

在vuserconfig目录下面建立用户的权限配置文件,配置文件的名称必须要和在vlogin.txt.中添加的用户名一致

看一下ftp6配置文件的内容:

参数详解:

anon_world_readable_only=no允许匿名用户浏览器整个服务器的文件系统write_enable=yes允许在文件系统写入权限

anon_mkdir_write_enable=yes允许创建文件夹

anon_other_write_enable=yes允许用户改名和删除文件的权限

anon_upload_enable=yes开启匿名帐号的上传功能

anon_max_rate=100000限定传输速度为100KB/s(以字节为单位的)

重启服务servicevsftpdrestart/reload

现在使用ftp6虚拟用户登陆可以看到,已经登陆成功

而且已经禁锢用户在家目录下面,切换用户目录失败。

在用户的权限配置文件下编辑不同的权限,那么对应的用户就会拥有不同的权限,

这里就看自己的实际情况了,你也可以在虚拟用户的权限配置文件中添加对应的系统实际用户,虚拟用户可以是

(1)多个虚拟用户————一个实际系统用户

(2)一个虚拟用户————一个系统用户

灵活多变,看自己的实际情况去设置。

四、实现第四个目标访问控制机制

/etc/ftpusers(访问控制文件)

默认是拒绝这些用户登陆的(上面添加ftp6用户)但可以通过修改/etc/pam.d/ftp中的sense值为allow就表示只允许登陆的用户如下:

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

[root@serviceroot]#more/etc/pam.d/ftp

#%PAM-1.0

authrequired/lib/security/pam_listfile.soitem=usersense=denyfile=/etc/

ftpusersonerr=succeed

authrequired/lib/security/pam_unix.soshadownullok

authrequired/lib/security/pam_shells.so

accountrequired/lib/security/pam_unix.so

sessionrequired/lib/security/pam_unix.so

****************************************************************************************************************我们先来分析一下authrequired/lib/security/pam_listfile.soitem=usersense=denyfile=/etc/ftpusersonerr=succeed这一句

其中/lib/security/pam_listfile.so是调用这个模块用来检测登陆进来的用户是不是记记载在/etc/ftpusers中的用户

而item=user很明显是说明要检测的是用户

sense=deny则是处理方法deny就是就是拒绝的意思了

我有个用户名字叫ftp6在默认条件下条件下是可以登陆ftp服务器的我把它加入/etc/ftpusers后看看情况哦

#echo"ftp6">>/etc/ftpusers

有时候你只想允许某部分人登陆ftp服务器那么你可以通过修改/etc/pam.d/ftp中的sense值为allow就表示只允许登陆的用户,那么你在/etc/ftpusers文件加入的用户就表示访问的没在文件内的用户都被拒绝

现在我使用ftp6来登录一下FTP服务器试试

登录失败,说明配置已经生效。

Vsftpd的主配置文件/etc/vsftpd.conf的配置选项解释:

我们要先了解几个关键的配置选项

anonymous_enable=YES//允许匿名用户登陆

local_enable=YES//允许本地用户登陆如果这个不打开的话uid500以下的人都被访问拒绝

write_enable=YES//允许客户端写命令

local_umask=022//本地用户新文件的umask的值就等于ground和other部分的可写部分去掉

anon_upload_enable=YES//允许匿名用户上传文件

anon_mkdir_write_enable=YES//允许匿名用户创建目录这个最好不要打开否则会带来不可预测的后果

dirmessage_enable=YES//允许使用目录的消息

ftpd_banner=Welcometoweihua0722'sFTPservice.//登陆欢迎辞词

ls_recurse_enable=YES//允许使用ls-R命令

listen=YES//监听模式就是要服务器单独运行

FTP原理尝试:

后台进程:

vsftpd类型:

SystemV服务使用端口:

20(ftp-data),21(ftp)所需RPM包:

vsftpd配置文件:

/etc/vsftpd/vsftpd.conf

FTP的主动模式和被动模式很重要

主动模式:

client先连接服务器的21端口(命令端口),然后client开放一个大于1024的端口等待服务器的20端口连接,21号端口的链接建立以后,服务器就用20去连接client开放的端口,简单来说就是服务器主动连客户端啦

基于上面的连接方式,如果client端有个防火墙,服务器的20端口就连接不进入,导致会连接失败。

被动模式:

就是client开启大于1024的X端口连接服务器的21(命令端口),同时开启X+1端口

当21号端口连接成功后,client会发送PASV命令,通知服务器自己处于被动模式,服务器收到这个消息后,就会开放一个大于1024的端口Y通知client,client接到通知后就会用X+1来连接服务器的Y端口,简单的说就是client主动连接服务器

一般我们使用的是主动模式

大家了解被动模式就可以了,当你架设FTP服务器,出现这样的情况,你应该想到可以使用被动模式来解决,当然防火墙一般也支持FTP的追踪模块,会自动识别自己发出的FTP数据请求。

这样制动模式也能返回数据

会遇到的问题

1、500OOPS:

vsftpd:

refusingtorunwithwritableanonymousroot

这表示ftp用户的家目录的权限不对,应该改过才对;

2、有时候会遇到530的错误,一般都是因为你启用了虚拟用户之后编辑pam.d/vsftpd文件导致,内容出现错误的时候就会被拒绝登陆,所有一定要认真。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1