VSftp配置(经典)linux
- 格式:ppt
- 大小:492.50 KB
- 文档页数:43
Linux vsftpd匿名用户开放上传,写入,创建,删除权限
安装vsftpd软件包
编辑配置文件,格式要注意,等于号的前后不能有空格。
一行的结尾也不要有空格。
anonymous_enable=YES 表示开启匿名用户访问
anon_umask=022 设置匿名用户所上传文件的默认权限掩码值
anon_root=/var/ftp 设置匿名用户的FTP根目录,也称为宿主目录。
匿名登录
所在的文件目录,注意ftp后面不要有“/”,否则出错。
anon_upload_enable=yes 是否允许匿名用户上传文件
anon_mkdir_write_enable=yes是否允许匿名用户具有创建目录的写入权限
查看目录属性
将目录pub的属性的属主改为ftp(匿名用户映射的用户),千万不要将ftp这个目录属主改为ftp,否则,用户登录时会出错。
这是vaftpd的一个安全机制。
匿名用户的宿主目录不能更改权限,但是宿主下面的子目录可以更改权限。
再次查看,发现文件的属主为ftp,就是为了得到写权限。
当然,这里也可以改其他用户的写权限,不过这样不是很好,建议改属主。
重启服务
打开我的电脑,在地址栏输入ftp://192.168.100.254默认就是匿名登录
往里面上传文件,发现出错。
因为宿主目录没有写权限
打开pub,这是宿主目录的子目录,拥有写权限,因此可以上传文件
也可以创建文件
删除文件时,发现出错
更改配置文件,允许匿名用户有其他写入权限,如改名,覆盖,删除。
覆盖相当于删除同名文件。
重启服务
选择删除
新建文件夹没有了。
vsftpd FTP服务器架设在windows上完了完server-u,很简单,一个小时就能完成ftp服务器的假设,在liunx下要架设一个ftp就没那么容易了,在网上找了找资料在windows上架设 FTP 首选 Server-u,看看资料,点点下一步,基本上10分钟就能架设一个ftp服务器了,在linux下面架设ftp服务器,确实费了我一番功夫,现在想起来,需要总结的就是看资料的时候一定要全面,并且做好一个资料要看完。
最终我选择了 vsFTPd是一款在Linux发行版中最受推崇的FTP服务器程序。
特点是小巧轻快,安全易用。
vsftpd (号称最安全的ftp 服务器)下面讲下linux 下使用vsftpd 的步骤:1.首先下载需要的软件,双机直接安装:a.vsftpd-2.0.1-5.EL4.5.i386.rpm (在liunx4 的第一张光盘)b.db4-utils-4.2.52-7.1.i386.rpm (在liunx4 的第三张光盘) ,用来加密虚拟用户密码等文件的工具2.启动vsftpd服务在控制台执行 service vsftpd start ,如果没有什么问题,你可以看到服务启动的进程号,如果出现了问题,你可以试着将 gssftp 这个服务停掉,执行service vsftpd stop 因为这个服务或许会造成冲突查看vsftpd服务器启动情况 service vsftpd status3.用客户端工具连接ftp服务器在window操作系统下,打开命令提示符,输入 ftp 133.64.81.164 回车然后使用默认的用户名(ftp)和密码(ftp) ,就可以登录ftp服务器了,或者你也可以使用系统用户的用户名和口令登录ftp服务器。
经过以上3个步骤我们就完成了ftp服务器的假设,但是这里有许多问题a.安全性,匿名用户也可以登录,进行操作b.用户登录以后并没有锁定目录c.用户的权限配置没有体现还有其他的问题,基于这些问题,需要我们了解下 vsftpd的工作原理,上面的操作都是基于一下的3个配置文件的vsftp相关配置文件说明/etc/vsftpd/vsftpd.conf/etc/vsftpd.ftpusers/etc/er_list其中,/etc/vsftpd/vsftpd.conf 是主配置文件。
一、创建匿名FTP服务器的方法1。
增加新用户ftp,设置其主目录对任何用户都无写权限;2。
新建立一个组anonymou,它只能被匿名ftp使用;3.在ftp用户的主目录下创建一个bin目录,它属于root用户,而且对任何用户都不能写;4。
在ftp用户主目录下创建一个etc目录,它属于root用户,而且对任何用户都不能写;5.在ftp用户主目录下创建一个public目录,它属于ftp用户,而且对任何用户都能写。
如果由于安全等原因,您不允许其他用户在您的计算机上具有存储能力,那么您可以将其权限设置成555;6.将ls程序放到已创建的bin目录下,并将其修改成111方式,即对任何用户只能执行;7。
在已创建的etc目录下,创建passwd和group两个文件,并将它们设置成444方式(只读)。
二、创建匿名FTP---—在Unix下用root登录,然后按下列步骤逐步建立FTP服务器.1.建立新组anonymou----#mkgroupanonymou2.建立新用户ftp,且ftp用户属于anonymou组—--—#mkuserpgrp=‘nonymou'home=‘ /u/anonymou’ftp3。
在用户目录下建立相关的目录#cd/u/anonymou#mkdiretc#mkdirbin#mkdirpublic4。
将ls拷贝到/usr/anonymou/bin下,并设置其读写属性#cp/bin/ls./bin#chmod111。
/bin/ls5.创建/u/anonymou/etc/group文件————在该文件中增加一行:anonymou:!:201:6.创建/u/anonymou/etc/passwd文件--—-在该文件中增加一行:ftp:*:213:201::/u/anonymou:/bin/ksh7。
修改/u/anonymou/etc/group文件和/u/anonymou/etc/passwd文件的属性#chmod444/u/anonymou/etc/passwd—--—#chmod444/u/anonymou/etc/group8。
vsftp的配置步骤讲解说明主讲人:杨海艳然后vim /etc/vsftpd/vsftpd.confservice vsftpd restart【案例1】建立基于虚拟用户的FTP服务器,并根据以下要求配置FTP服务器。
(1)配置FTP匿名用户的主目录为/var/ftp/anon。
下载带宽限制为100kB/s(2)建立一个名为abc,口令为xyz的FTP账户。
下载带宽限制为500kB/s。
(3)设置FTP服务器同时登录到FTP服务器的最大链接数为100;每个IP最大链接数为3;用户空闲时间超过限值为5分钟。
mkdir /var/ftp/anonuseradd abcpasswd abcvim /etc/vsftpd/vsftpd.conf主要内容如下anonymous_enable=YESanon_root=/var/ftp/anonanon_max_rate=100000# Uncomment this to allow local users to log in.local_enable=YESlocal_max_rate=500000max_clients=100max_per_ip=3connect_timeout=300以上是本地的LOCAL用户下面是用虚拟用户来实现vim /etc/vsftpd/vuser内容如下tom123生成数据库文件db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.dbchmod 600 /etc/vsftpd/vuser.dbvim /etc/pam.d/vsftpd注释掉原来的内容然后加入auth required pam_userdb.so db=/etc/vsftpd/vuseraccount required pam_userdb.so db=/etc/vsftpd/vuser最后编辑VSFTPD.CONF加入下面两句guest_enable=YESguest_username=abc大家可以自行测试。
VSFTPD配置方法1.安装VSFTPD软件首先,使用以下命令在Linux系统上安装VSFTPD软件:```sudo apt-get install vsftpd```2.配置VSFTPD打开VSFTPD的配置文件,通常位于/etc/vsftpd.conf,使用以下命令:```sudo nano /etc/vsftpd.conf```-设置FTP根目录:``````-允许匿名访问(可选):```anonymous_enable=YES```-关闭匿名上传(可选):```anon_upload_enable=NO```-允许本地用户登录:```local_enable=YES```-限制用户仅访问其主目录:```chroot_local_user=YES```将用户限制在其主目录下,防止访问系统其他部分。
-设置FTP用户的权限:```file_open_mode=0777local_umask=022```file_open_mode设置为0777将文件权限设置为可读写执行,local_umask设置为022保证新创建的文件和文件夹的权限正确。
``````3.重启VSFTPD服务使用以下命令重启VSFTPD服务,使配置生效:```sudo systemctl restart vsftpd```4.配置防火墙如果系统上使用了防火墙,需要修改防火墙规则以允许FTP流量通过。
根据所使用的防火墙软件和具体配置方法来进行相应的设置。
5.创建FTP用户使用以下命令创建一个FTP用户:```sudo adduser ftpuser```将ftpuser替换为你希望创建的FTP用户名。
6.设置FTP用户密码使用以下命令设置FTP用户的密码:```sudo passwd ftpuser```7.连接FTP服务器使用FTP客户端软件连接到配置好的VSFTPD服务器,使用FTP用户的用户名和密码登录即可。
以上就是VSFTPD配置的一般方法。
Linux下的VSFTP服务⿊名单⽩名单的策略配置
龙源期刊⽹ /doc/0da24e879cc3d5bbfd0a79563c1ec5da50e2d6b8.html Linux下的VSFTP服务⿊名单⽩名单的策略配置
作者:帅志军
来源:《科学⼤众》2019年第10期
摘; ;要:⽂件传输协议是专门⽤于⽂件传输的⼀种协议,是在互联⽹中应⽤最为⼴泛的协议之⼀,为了确保⽹络中⽂件共享的安全,必須对⽤户进⾏甄别,所以,建⽴⿊名单⽩名单的策略显得尤为重要。
关键词:VSFTP服务;⿊名单;⽩名单
1; ; VSFTP服务的简介
VSFTP是⼀种基于通⽤公共授权(General Public License,GPL)发布的⼀种服务,其中VS是“Very Secure”的简写,从字⾯上理解可以看出该软件编写的⽬的就是代码的安全性保障,当然除了安全性更强外,⾼速和稳定的特性也是VSFTP的特⾊。
2; ; 任务⼀:设置⽤户⿊名单
具体步骤:(1)在虚拟机中准备两个虚拟Linux操作系统,⼀台为Linux服务器,另⼀
台为Linux客户端,此客户端⽤于测试使⽤。
两个系统都要安装好FTP服务。
Linux(Centos)配置vsftp使⽤账号密码(虚拟⽤户)登录ftp进⾏⽂件上传和修改安装vsftpyum install vsftpd -y安装完成之后进⼊vsftp的配置⽂件夹cd /etc/vsftpd/⽂件夹内容如下[root@VM-0-12-centos vsftpd]# lltotal 20-rw------- 1 root root 125 Oct 1400:10 ftpusers-rw------- 1 root root 361 Oct 1400:10 user_list-rw------- 1 root root 5116 Oct 1400:10 vsftpd.conf-rwxr--r-- 1 root root 338 Oct 1400:10 vsftpd_conf_migrate.sh在当前⽬录下创建⼀个⽤户名和密码的⽂件⽂件名名称为 ftp_user.txtvim /etc/vsftpd/ftp_user.txt再ftp_user.txt⽂件⾥配置⽤户和密码yvioo123456kaifa12345678其中yvioo 是ftp登录的⽤户名123456 是ftp中yvioo⽤户登录的密码kaifa 是ftp登录的⽤户名12345678 是ftp中kaifa⽤户登录的密码以此内推,可以添加多个然后保存退出wq!执⾏命令⽣成虚拟数据库db_load -T -t hash -f /etc/vsftpd/ftp_user.txt /etc/vsftpd/ftp_login.db其中/etc/vsftpd/ftp_user.txt 是上⾯存放⽤户名和密码⽂件的绝对路径/etc/vsftpd/ftp_login.db 这个是⽣成的数据库的路径数据库名称为 ftp_login.db设置⽣成的数据库的访问权限chmod 777 /etc/vsftpd/ftp_login.db编辑账号的pam验证⽂件vim /etc/pam.d/vsftpd在最上⽅增加auth sufficient pam_userdb.so db=/etc/vsftpd/ftp_loginaccount sufficient pam_userdb.so db=/etc/vsftpd/ftp_login其中db=/etc/vsftpd/ftp_login 这个就是上⼀步⽣成的虚拟数据库(⽂件名称根据⾃⼰的来),注意:这⾥不⽤加 .db 后缀如下图所⽰创建⼀个⽂件夹mkdir /home/vsftpd新建⼀个系统⽤户vsftpd⽤户登录终端设为/bin/false(即不能登录系统)useradd vsftpd -d /home/vsftpd -s /bin/false其中vsftpd 这个就是创建的⽤户的⽤户名(这个下⾯配置⽂件⾥会使⽤)/home/vsftpd 就是刚才创建的⽂件夹根据需要创建修改/etc/vsftpd/vsftpd.conf,以下设置vim /etc/vsftpd/vsftpd.conf修改配置#禁⽤匿名登⼊anonymous_enable=YES 改为 anonymous_enable=NO#监听为专⽤模式listen=NO 改为 listen=YES#将ipv6监听注释掉listen_ipv6=YES 改为 #listen_ipv6=YES在配置⽂件底部增加#对⽤户访问只限制在主⽬录不能访问其他⽬录(这个已经有了但是默认是注释的可以取消注释或者直接新增)chroot_local_user=YES#启⽤guestguest_enable=YES#使⽤虚拟账号形式(vsftpd 就是我们上⾯创建的⽤户的⽤户名)guest_username=vsftpd#虚拟账号配置⽬录(这个还没创建我们下⾯再进⾏创建,先这样写)user_config_dir=/etc/vsftpd/user_conf#对vsftpd的⽤户使⽤pam认证(这个就是我们上⾯改的pam验证⽂件的⽂件名,这个默认已经有了,所以不⽤添加,没有的话再添加)pam_service_name=vsftpd#允许本地⽤户登录(这个默认的也有了,没有的话添加上)local_enable=YES然后保存退出接着创建虚拟账号配置⽬录mkdir /etc/vsftpd/user_conf进⼊⽂件夹cd /etc/vsftpd/user_conf/创建⽂件vim /etc/vsftpd/user_config/yvioo其中yvioo 就是我们上⾯ftp_user.txt中配置的ftp的账号的⽤户名(这⾥创建的⽂件名要对应上,如果有多个ftp⽤户就创建多个ftp⽂件对应的⽤户名⽂件,然后在⾥⾯设置权限即可)然后添加write_enable=YESanon_world_readable_only=NOanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESlocal_root=/data/www说明如下#是否允许登陆⽤户有写权限。
FTP,file transfer protocol,这是档案传输的通讯协议,也是一般最常用来传送档案的方式。
读者在使用RedHat9 的时候,可能会感受到ftp server 有一些改变:第一,就是ftp server 只剩下vsftp,原有的wuftp 等都没放入﹔第二,就是vsftp 从XINET D 中独立出来,并将设定档从/etc/vsftpd.conf 之中移到/etc/vsftpd/vsftpd.conf。
社区论坛为什么做这样的改变?可以想见的是vsftp 已有独立运作的能力,不需要XINET D 来做更进一步的管控,并且类似sendmail、httpd、ssh、samba 等,将设定文件的放入/etc 下独立的目录。
FTP 分为两类,一种为PORT FTP,也就是一般的FTP﹔另一类是PASVFTP,分述如下:PORT FTP这是一般形式的FTP,首先会建立控制频道,默认值是port 21,也就是跟port 21 建立联机,并透过此联机下达指令。
第二,由FTP server 端会建立数据传输频道,默认值为20,也就是跟port 20 建立联机,并透过port20作数据的传输。
PASV FTP跟PORT FTP 类似,首先会建立控制频道,默认值是port 21,也就是跟port 21 建立联机,并透过此联机下达指令。
第二,会由client 端做出数据传输的请求,包括数据传输port 的数字。
这两者的差异为何?PORT FTP 当中的数据传输port是由FTP server 指定,而PASV FTP 的数据传输port 是由FTP client 决定。
通常我们使用PASV FTP,是在有防火墙的环境之下,透过client 与server 的沟通,决定数据传输的port。
一:安装一般系统在安装的时候都已经自带了ftp功能,所以对于linux9.0以上的版本系统自动安装了vsftpd,对于linux9.0一下的低版本系统自带的是wu-ftp,如果系统没有安装的话,可以下载软件包安装。
FTP服务器配置(实验环境:两台计算机,一台安装RHEL Server 5,另一台安装Windows XP,用集线器连接)一般而言,用户必须经过身份验证才能登录Vsftpd服务器,然后才能访问和传输FTP 服务器上文件。
Vsftpd服务器用户分为两类:本地用户和匿名用户。
本地用户是在Vsftpd服务器上拥有账号用户。
本地用户输入自己用户名和口令后可登录Vsftpd服务器,并且直接进入该用户主目录。
匿名用户是在Vsftpd服务器上没有账号用户。
如果Vsftpd服务器提供匿名访问功能,那么就可以输入匿名用户名(ftp或anonymous),然后输入用户E-mail地址作为口令进行登录。
甚至不输入口令也可以登录。
当匿名用户登录系统后,进入匿名FTP服务目录/var/ftp。
步骤一、检查所需RPM包是否已经安装在系统中,方法是:rpm –qa |grep vsftpd 检查是否已安装vsftpd软件包步骤二、安装所需RPM包若在步骤一中发现所需RPM包没有安装,则需使用下面命令来安装软件包,否则请转入第三步。
mount /media/cdrom/---------挂载光驱rpm -ivh /media/cdrom/RedHat/RPMS/vsftpd-*---------其中*号可以按TAB键自动补齐步骤三、配置匿名vsftpd服务器vsftpd服务器最重要是主配置文件vsftpd.conf。
vsftpd守护进程运行时首先从vsftpd.conf文件获取配置文件信息,然后配合ftpusers和userlist文件决定可访问用户。
下表列出了与vsftpd服务器相关目录和文件。
下表列出了vsftpd.conf文件中比较常用部分配置参数。
vsftpd服务器默认设置是允许本地用户和匿名用户登录,本地用户默认进入其个人主目录(/home/账户名),并可以切换到其他有权访问目录,还可以上传和下载文件。
匿名用户只能下载/var/ftp/目录下文件。
Linux安装FTP,配置FTP,使⽤FileZilla连接FTP 登陆linux后 1.运⾏以下命令安装 vsftpd。
yum install -y vsftpd2.运⾏以下命令打开及查看etc/vsftpdcd /etc/vsftpdls说明:/etc/vsftpd/vsftpd.conf 是核⼼配置⽂件。
/etc/vsftpd/ftpusers 是⿊名单⽂件,此⽂件⾥的⽤户不允许访问 FTP 服务器。
/etc/vsftpd/user_list 是⽩名单⽂件,是允许访问 FTP 服务器的⽤户列表。
/etc/vsftpd/vsftpd_conf_migrate.sh 是vsftpd操作的⼀些变量和设置3.运⾏以下命令设置开机⾃启动。
systemctl enable vsftpd4.运⾏以下命令启动 FTP 服务。
systemctl start vsftpd5.运⾏以下命令查看 FTP 服务端⼝。
netstat -antup | grep ftp6.创建连接⽤户和密码,执⾏下⾯的命令 创建⽤户:useradd ama 注:ama是⽤户名 设计⽤户密码: passwd ama 注:给⽤户ama设置密码,设置的密码必须是包含⼤⼩写,数字,特殊字符,长度⼤于等于87.修改vsftp(/etc/vsftpd/vsftpd.conf)的配置⽂件 a.运⾏vim vsftpd.conf。
b.按键 “i” 进⼊编辑模式。
c.将是否允许匿名登录 FTP 的参数修改为anonymous enable=NO。
d.将是否允许本地⽤户登录 FTP 的参数修改为local_enable=YES。
e.按键 “Esc” 退出编辑模式,然后按键“:wq” 保存并退出⽂件。
8.重启服务,执⾏下⾯的命令:systemctl restart vsftpd9.给服务器添加安全组(使⽤的是阿⾥云服务器),如下图显⽰:添加端⼝号21F打开 FileZilla,选择SFTP连接⽅式;如下图显⽰:接下来就可以直接操作FTP连接linux。
Linux1 FTP服务器vsFTP所需软件vsFTPd所需要的软件只有一个,即vsFTPd。
该软件很小且简单易用,只需对软件内的配置文件进行修改就可以提供特定的FTP服务,这也正是vsFTP的特色。
在这个软件中,比较重要的配置文件有以下几个:1./etc/vsFTPd/vsFTPd.conf严格来说,整个vsFTPd的配置文件就只有这一个。
该文件的设置是以与bash 变量相同的设置方式来处理的,也就是“参数=设置值”。
注意,等号两边不能有空格。
对于详细的vsFTPd.conf可使用“man 5 vsFTPd.conf”来查阅。
2./etc/pam.d/vsFTPd这是vsFTPd使用PAM模块时的相关配置文件,主要用来身份认证,还有阻止某些用户账号的功能也是通过这个文件来实现的。
用户可以利用cat /etc/pam.d/vsftpd命令,查看一下这个文件,如图8-3所示。
图8-3 查看/etc/pam.d/vsftpd在上面显示的/etc/pam.d/vsftpd文件中,“file=/etc/vsftpd.ftpusers”表明限制用户无法使用vsFTPd,也就是说,限制文件不一定要使用系统默认值,也可在这个文件里进行修改。
3./etc/vsFTPd.FTPusers此文件与上一个文件有关系,也就是PAM模块(/etc/pam.d/vsftpd)所指定的无法登录用户的配置文件。
这个文件的设置很简单,只要将“不想让它登录的账号”写入到这个文件中即可。
写入时,一行一个账号,如图8-4所示。
图8-4 /etc/vsFTPd.FTPusers文件内容绝大部分的系统账号都在这个文件内,也就是说,系统账号默认是没有办法使用vsFTPd的。
如果管理员还想让某些用户无法登录,在这里的配置是最快的。
4./etc/er_list如果/etc/vsFTPd.FTPusers是PAM模块的阻止访问设置项目,那么/etc/er_list则是vsFTPd自定义的阻止访问项目。
1、查询是否安装vsftpd:rpm -qa |grep vsftpd 或者查询当前ftp进程:ps —ef|grep vsftpd已安装显示未安装显示2、下载vsftpd地址: /linux/rpm2html/search.php?query=vsftpd 选择版本后使用wget下载3、安装vsftpd服务器: rpm —ivh vsftpd—*.rpm4、测试是否安装成功[root@379318 ~]# ftp localhostTrying ::1。
ftp:connect to address ::1Connection refused Trying 127.0.0。
1。
..ftp: connect:Connection refusedftp〉bye[root@379318 ~]#匿名访问5、vsftpd服务器的启动、停止、重启、状态service vsftpd startservice vsftpd stopservice vsftpd restartservice vsftpd status6、vsftpd的三个主配置文件/etc/vsftpd/vsftpd.conf //服务器的主配置文件/etc/vsftpd/ftpusers //此文件内的用户都不能访问vsftpd服务器/etc/vsftpd/user_list //可能会被拒绝访问服务喊叫或允许访问7、查看vsftpd.conf的配置参数:vim /etc/vsftpd/vsftpd.confanonymous_enable=YES //启用匿名用户登录(建议设置为NO)local_enable=YES //允许本地用户访问vsftpd服务器write_enable=YES //允许上传download_enable=YES //允许下载anon_upload_enable=YES //允许匿名用户上传anon_mkdir_write_enable=YES //允许匿名用户创建目录和上传anon_other_write_enable=NO //不允许匿名用户删除和改名local_max_rate=20000 //本地用户的最大传输速率,单位是字节/秒anon_max_rate=5000 //匿名用户的最大传输速率,单位是字节/秒local_umask=022 //去掉写的权限file_open_mode=0666 //上传文件的权限xferlog_enable=YES //维护日志文件,详细记录上传和下载操作xferlog_std_format=YES //传输日志文件将以标准的xferlog格式书写,日志文件默认为/var/ log/xferloghide_ids=YES //隐藏文件夹和目录属主port_enable=YES //允许使用主动传输模式pasv_min_port=(1024〈port〈65535) //指定PASV模式可以使用的最小端口pasv_max_port=(1024<port<65535) //指定PASV模式可以使用的最大端口connect_from_port_20=YES //定义FTP传输数据的端口,默认是20ascii_download_enable=NO //设置不可使用ASCII模式下载listen=YES //让FTP工作在独立模式下pam_service_name=vsftpd //用户配置文件认证userlist_enable=YEStcp_wrappers=YES //将使用wrappers作为主机访问控制方式idle_session_timeout=600 //表明空闲时间为600秒data_connection_timeout=120 //表明数据连接超时时间为120秒chroot_local_user=YES //用户登录后不能访问自己目录以外的文件或目录listen_port=4444 //修改FTP服务器的端口号8、设定vsftp在等级3和5为开机运行服务chkconfig -—level 35 vsftpd on9、ftp客户连接常见故障现象现象1:> ftp:connect :连接被拒绝原因:服务没启动解决:# chkconfig vsftpd on现象2:500 OOPS: cannot open user list file原因:不存在文件“/etc/vsftpd/user_list”或文件中不存在该帐户解决:#echo username >〉/etc/vsftpd。
一、前言Vsftp(Very Secure FTP)是一种在Unix/Linux中非常安全且快速稳定的FTP服务器,目前已经被许多大型站点所采用,如,,.等。
Vsftpd的实现有三种方式1、匿名用户形式:在默认安装的情况下,系统只提供匿名用户访问2、本地用户形式:以/etc/passwd中的用户名为认证方式3、虚拟用户形式:支持将用户名和口令保存在数据库文件或数据库服务器中。
相对于FTP的本地用户形式来说,虚拟用户只是FTP服务器的专有用户,虚拟用户只能访问FTP服务器所提供的资源,这大大增强系统本身的安全性。
相对于匿名用户而言,虚拟用户需要用户名和密码才能获取FTP服务器中的文件,增加了对用户和下载的可管理性。
对于需要提供下载服务,但又不希望所有人都可以匿名下载;既需要对下载用户进行管理,又考虑到主机安全和管理方便的FTP站点来说,虚拟用户是一种极好的解决方案。
二、获取最新版的Vsftp程序Vsftp官方下载:ftp:///users/cevans/vsftpd-2.0.3.tar.gz,目前已经到2.0.3版本。
假设我们已经将vsftpd-2.0.3.tar.gz文件下载到服务器的/home/xuchen目录# cd /home/xuchen# tar xzvf vsftpd-2.0.3.tar.gz //解压缩程序# cd vsftpd-2.0.3三、三种方式的实现1、匿名用户形式实现# vi builddefs.h \\编辑builddefs.h 文件,文件内容如下:#ifndef VSF_BUILDDEFS_H#define VSF_BUILDDEFS_H#undef VSF_BUILD_TCPWRAPPERS#define VSF_BUILD_PAM#undef VSF_BUILD_SSL#endif /* VSF_BUILDDEFS_H */将以上undef的都改为define,支持tcp_wrappers,支持PAM认证方式,支持SSL# make //直接在vsftpd-2.0.3里用make编译# ls -l vsftpd-rwxr-xr-x 1 root root 86088 Jun 6 12:29 vsftpd //可执行程序已被编译成功创建必要的帐号,目录:# useradd nobody //可能你的系统已经存在此帐号,那就不用建立# mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立# mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立# useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立# chown root:root /var/ftp# chmod og-w /var/ftp请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin安装vsftp配置文件,可执行程序,man等:# install -m 755 vsftpd /usr/local/sbin/vsftpd-ano# install -m 644 vsftpd.8 /usr/share/man/man8# install -m 644 vsftpd.conf.5 /usr/share/man/man5# install -m 644 vsftpd.conf /etc/vsftpd-ano.conf这样就安装完成了,那么我们开始进行简单的配置# vi /etc/vsftpd-ano.conf ,将如下三行加入文件listen=YESlisten_port=21tcp_wrappers=YESanon_root=/var/ftp //设置匿名用户本地目录,和ftp用户目录必须相同listen=YES的意思是使用standalone启动vsftpd,而不是super daemon(xinetd)控制它(vsftpd 推荐使用standalone方式)# /usr/local/sbin/vsftpd-ano /etc/vsftpd-ano.conf & //以后台方式启动vsftpd注意:每行的值都不要有空格,否则启动时会出现错误,举个例子,假如我在listen=YES后多了个空格,那我启动时就出现如下错误:500 OOPS: bad bool value in config file for: listen测试搭建好的匿名用户方式# ftp 127.0.0.1Connected to 127.0.0.1.220 (vsFTPd 2.0.3)530 Please login with USER and PASS.530 Please login with USER and PASS.KERBEROS_V4 rejected as an authentication typeName (127.0.0.1:root): ftp331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp>; pwd257 "/"ftp>; quit221 Goodbye.#OK,已经完成了,very nice.高级配置细心的朋友可能已经看出来我们只在默认配置文件增加了四行,就实现了FTP连接(也证明了vsftpd的易用性),那么让我们传个文件吧,呀!!传输失败了(见图1)为什么呢?因为vsftpd 是为了安全需要,/var/ftp目录不能把所有的权限打开,所以我们这时要建一个目录pub,当然也还是需要继续修改配置文件的。
Linux1 FTP服务器vsFTP的安装
在安装vsFTP软件之前,首先需要在终端界面下使用rpm命令查看系统是否安装有vsFTPd,如图8-5所示。
图8-5 查看vsFTP是否安装
如果没有任何输出,则表示vsFTP软件还没有安装。
此时,则需要将系统的第2张安装光盘放入光驱中,然后使用mount命令将此光盘挂载到任一个指定的目录下(如,/tmp),如图8-6所示。
图8-6 挂载光盘到/tmp目录
将光盘挂载到指定的目录后,接着可在终端下输入mount命令,查看光盘是否挂载成功,如图8-7所示。
图8-7 查看光盘是否挂载成功
从图8-7所示的最后一行输出可看出系统光盘已被成功挂载到/tmp目录下。
然后我们可以使用find搜索命令,在系统光盘中寻找vsFTP软件包,如图8-8所示。
图8-8 查找vsFTP软件包
由图8-8输出显示,表明已成功找到vsFTP软件包,其路径为/tmp/Server/vsFTPd-2.0.5-10.e15.i386.rpm。
接下来,就可以使用rpm工具对vsFTP 软件包进行安装。
安装软件包时,使用的语法为“rpm –vih 软件包的绝对路径”。
如图8-9所示。
图8-9 安装vsFTP软件包
当vsFTP软件包安装完成后,为了确保正确无误,此时可通过在终端下输入“rpm –qa|grep vsftpd”命令查看软件包安装情况。
当输出中,显示有已安装的vsFTP 软件包时,则证明软件包已成功安装,如图8-10所示
图8-10 查看vsFTP软件包安装情况。