vsftp的安装与配置
- 格式:pptx
- 大小:671.39 KB
- 文档页数:8
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 是主配置文件。
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配置的一般方法。
1.在suse linux下安装vsftpd服务器2.进入computer/yast/软件/软件管理,输入vsftpd进行查找,选择安装即可。
3.若要卸载vsftpd,按照步骤二勾选vstpd为回收站标志点击接受即可4.运行/etc/init.d/vsftpd start 即可开启vsftpd服务程序,restart为重启,stop为关闭。
或service vsftpd start5.经过上述配置,vsftpd搭建完毕。
当你用非本机访问该服务器是,会出现访问失败,这是由于防火墙没有放开20、21 ftp端口。
首先进入computer/yast/安全和用户/防火墙/允许服务/高级选项中添加访问端口在tcp端口输入框中输入(20 21)。
注意:中间有空格6.继续尝试访问,访问仍然失败。
说明此时ftp服务器为主动访问模式,需要在终端上输入命令:modprobe這個指令來載入ip_conntrack_ftp 及ip_nat_ftp7.匿名用户可上传文件配置8.vsftpd配置文件:/etc/vsftpd/vsftpd.confanonymous_enable=YES#全局写变量write_enable=YESanon_upload_enable=YESanon_mkdir_write_enable=YES#容许匿名用户除了新建和上传外的其他权限,如:删除、更名。
anon_other_write_enable=YES#配置匿名用户登录目录anon_root=/data建立目录,给匿名用户写权限mkdir /data/uploadchmod 777 /home/upload然后service vsftpd restart就ok了。
vsftpd配置⽂件详解1.默认配置:1>允许匿名⽤户和本地⽤户登陆。
anonymous_enable=YESlocal_enable=YES2>匿名⽤户使⽤的登陆名为ftp或anonymous,⼝令为空;匿名⽤户不能离开匿名⽤户家⽬录/var/ftp,且只能下载不能上传。
3>本地⽤户的登录名为本地⽤户名,⼝令为此本地⽤户的⼝令;本地⽤户可以在⾃⼰家⽬录中进⾏读写操作;本地⽤户可以离开⾃家⽬录切换⾄有权限访问的其他⽬录,并在权限允许的情况下进⾏上传/下载。
write_enable=YES4>写在⽂件/etc/vsftpd.ftpusers中的本地⽤户禁⽌登陆。
2.配置⽂件格式:vsftpd.conf 的内容⾮常单纯,每⼀⾏即为⼀项设定。
若是空⽩⾏或是开头为#的⼀⾏,将会被忽略。
内容的格式只有⼀种,如下所⽰option=value要注意的是,等号两边不能加空⽩。
3.匿名⽤户(anonymous)设置anonymous_enable=YES/NO(YES)控制是否允许匿名⽤户登⼊,YES 为允许匿名登⼊,NO 为不允许。
默认值为YES。
write_enable=YES/NO(YES)是否允许登陆⽤户有写权限。
属于全局设置,默认值为YES。
no_anon_password=YES/NO(NO)若是启动这项功能,则使⽤匿名登⼊时,不会询问密码。
默认值为NO。
ftp_username=ftp定义匿名登⼊的使⽤者名称。
默认值为ftp。
anon_root=/var/ftp使⽤匿名登⼊时,所登⼊的⽬录。
默认值为/var/ftp。
注意ftp⽬录不能是777的权限属性,即匿名⽤户的家⽬录不能有777的权限。
anon_upload_enable=YES/NO(NO)如果设为YES,则允许匿名登⼊者有上传⽂件(⾮⽬录)的权限,只有在write_enable=YES时,此项才有效。
当然,匿名⽤户必须要有对上层⽬录的写⼊权。
【实验6】FTP服务器的安装和配置一、实验目的:1.掌握红帽企业版下vsftpd服务器的安装和配置。
二、【实验环境】1.虚拟机软件VM Ware 6.0,Redhat Enterprise Linux虚拟机或光盘镜像文件。
2.2台以上机器组成的局域网。
三、【实验原理】(一)FTP服务简介Transfer Procotol,文件传输协议)是专门用来传输文件的协议。
实现了服务器和客户机之间的文件传输和资源再分配,是普遍采用资源共享方式之一。
(二)Vsftpd简介Linux下实现FTP服务的软件很多,最常见的是vsftpd、Wu-和Proftp等。
在Red Hat Enterprise Linux 5 中默认安装的FTP软件是vsftpd。
(三)Vs说明Vsftpd服务的配置文件有:/etc/vs、/etc/vs和/etc/vs。
/etc/vs是FTP服务的主配置文件。
主要参数的意义如下:Anonymous_enable=yes (允许匿名登陆)Dirmessage_enable=yes (切换目录时,显示目录下.message的内容)Local_umask=022 (FTP上本地的文件权限,默认是077)Connect_form_port_20=yes (启用FTP数据端口的数据连接)*Xferlog_enable=yes (激活上传和下传的日志)Xferlog_std_format=yes (使用标准的日志格式)Xperlog_file = /var/log/vs (设置日志文件的名称和路径)(欢迎信息)Pam_service_name=vsftpd (验证方式)*Listen=yes (独立的VSFTPD服务器)*Anon_upload_enable=yes (是否允许匿名用户上传)Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)Write_enable=yes (开放本地用户写的权限)Anon_other_write_enable=yes (匿名帐号可以有删除的权限)Anon_world_readable_only=no (放开匿名用户浏览权限)Ascii_upload_enable=yes (启用上传的ASCII传输方式)Ascii_download_enable=yes (启用下载的ASCII传输方式)Banner_ (用户连接后欢迎信息使用的是此文件中的相关信息)Idle_session_timeout=600(秒) (用户会话空闲时限)Data_connection_timeout=120(秒)(将数据连接空闲2分钟断)Accept_timeout=60(秒)(将客户端空闲1分钟后断)Connect_timeout=60(秒)(中断1分钟后又重新连接)Local_max_rate=50000(bite)(本地用户传输率50K)Anon_max_rate=30000(bite)(匿名用户传输率30K)Pasv_min_port=50000 (将客户端的数据连接端口改在pasv_min_port=30000 (建立资料联机所可以使用port 范围的上界,0表示任意。
vsftpd配置详解1 安装vsftpd组件安装完后,有/etc/vsftpd/vsftpd.conf ⽂件,是vsftp的配置⽂件。
[root@bogon ~]# yum -y install vsftpd2、FTP主动模式与FTP被动模式的端⼝说明FTP是仅基于TCP的服务,不⽀持UDP。
与众不同的是FTP使⽤2个端⼝,⼀个数据端⼝和⼀个命令端⼝(也可叫做控制端⼝)。
通常来说这两个端⼝是21(命令端⼝)和20(数据端⼝)。
但FTP⼯作⽅式的不同,数据端⼝并不总是20。
这就是主动与被动FTP的最⼤不同之处。
FTP协议有两种⼯作⽅式:PORT⽅式和PASV⽅式,中⽂意思为主动式和被动式。
(⼀) FTP主动模式主动⽅式的FTP是这样的:客户端从⼀个任意的⾮特权端⼝N(N>1024)连接到FTP服务器的命令端⼝,也就是21端⼝。
然后客户端开始监听端⼝N+1,并发送FTP命令“port N+1”到FTP服务器。
接着服务器会从它⾃⼰的数据端⼝(20)连接到客户端指定的数据端⼝(N+1)。
针对FTP服务器前⾯的防⽕墙来说,必须允许以下通讯才能⽀持主动⽅式FTP:1. 任何⼤于1024的端⼝到FTP服务器的21端⼝。
(客户端初始化的连接)2. FTP服务器的21端⼝到⼤于1024的端⼝。
(服务器响应客户端的控制端⼝)3. FTP服务器的20端⼝到⼤于1024的端⼝。
(服务器端初始化数据连接到客户端的数据端⼝)4. ⼤于1024端⼝到FTP服务器的20端⼝(客户端发送ACK响应到服务器的数据端⼝)简明概括:PORT(主动)⽅式的连接过程是:客户端向服务器的FTP端⼝(默认是21)发送连接请求,服务器接受连接,建⽴⼀条命令链路。
当需要传送数据时,客户端在命令链路上⽤PORT命令告诉服务器:“我打开了XXXX端⼝,你过来连接我”。
于是服务器从20端⼝向客户端的XXXX端⼝发送连接请求,建⽴⼀条数据链路来传送数据。
FTP服务器配置
---Windows Server 2003
一.安装FTP
1.打开添加、删除程序
2.点击“添加或删除Windows组件”
3.双击“应用程序服务器”
4.双击“Internet信息服务(IIS)”
5.选择“文件传输协议(FTP)服务”6.点“确定”完成安装
二.配置FTP服务
1.打开“Internet信息服务(IIS)管理器”
2.选择“默认FTP站点”---“新建”---“虚拟目录”
3.新建虚拟目录TPLM
4.选择TPLM---点击鼠标右键---属性
5.选择上传文件存放位置(如图:这里选择D:\ExeFile)
7.选择默认FTP站点---点击右键---属性
8.安全帐户为服务器计算机的某个用户(FTP站点及其它按默认设置、)
(此用户为解决方案mObject.BL. SysConfig的FTP用户)
static private string _springClient = "ClientSpringcnf.xml";
static private string _ftpServer = "ftp://172.16.182.182/tplm/";
static private string _ftpUser = "Administrator"; static private string _ftpPassword = "Ksec@tplm";。
Linux Vsftp 编译安装方案1.上传tar包以vsftpd-2.3.5.tar.gz 为例。
2.解压tar包执行命令解压文件# tar -xzvf vsftpd-2.3.5.tar.gz3.执行编译和安装操作(make && make install)3.1进入解压的文件# cd /root/vsftpd-2.3.53.2 编译#make常见问题:/usr/bin/ld: cannot find -lcap解决办法:由于缺少-l 后的文件cap(一般是库文件libcap.so)或者文件存在软连接指向错误,所以需要重新指向。
可以通过查看解压文件下的Makefile 文件和vsf_findlibs.sh 文件确定文件位置。
这里可以查看vsf_findlibs.sh。
#vim vsf_findlibs.sh然后在文件中找到lcap的位置/lcap发现需要libcap.so文件。
接着我们确定该文件的位置:执行命令:#locate libcap.so这里存在两个,/lib64/libcap.so.2和/lib64/libcap.so.2.16,通过查看文件具体信息:#ll /lib64/ |grep libcap.so发现libcap.so.2.16才是源文件,libcap.so.2是一个软链接。
由于缺少libcap.so,所以创建libcap.so的软链接,指向之前的源文件libcap.so.2.16。
格式为:#ln 源文件软链接文件名因此就有:#ln libcap.so.2.16 libcap.so然后执行命令#ll /lib64/ |grep libcap.so 看到就有:3.3 安装make install这时候发现需要将vsftpd.conf文件复制到/etc目录下,否则会找不到这个配置文件的。
#cp vsftpd.conf /etc否则会报如下错:启动vsftp #/usr/local/sbin/vsftpd /etc/vsftpd.conf运行的时候后面加上vsftpd.conf文件,里面的listen=YES查看版本信息:sftp连接本机:编译未解决常见问题:版本vsftpd-2.1.0:版本vsftpd-3.0.2:。
一、前言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,当然也还是需要继续修改配置文件的。
Vsftp服务的安装和配置准备工作安装vsftp# yum install vsftpd安装完成后使用命令查看# rpm -ql vsftpd一、创建匿名用户访问FTP服务器启动服务:service vsftpd start此时匿名用户即可进行登录一种在windows下使用cmd登录ftp x.x.x.x #输入FTP服务器IP地址然后使用anonymous或者ftp登录如果需要给匿名用户上传权限,需要编辑配置文件:# vim /etc/vsftpd/vsftpd.conf将下列2个选项中前面的#去掉anon_upload_enable=YESanon_mkdir_write_enable=YESxferlog_file=/var/log/vsftpd.log #日志文件需要手动创建ascii_upload_enable=YESascii_download_enable=YES并添加以下命令anon_other_write_enable=YES重启服务后# service vsftpd restart匿名用户即可上传文件和创建文件夹注:如果需要自行设置匿名用户的共享文件夹目录的可在配置文件中添加如下参数anon_root=/xx/xx另请给共享出的文件夹设置为777权限否则无法写入文件二、创建本地用户登录编辑配置文件:annoymous_enable=NO #设定不允许匿名访问local_enable=YES #设定本地用户可以访问。
注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问。
chroot_local_user=YES #使用户不能离开主目录xferlog_file=/var/log/vsftpd.log #日志文件需要手动创建ascii_upload_enable=YES #允许使用ASCII模式上传ascii_download_enable=YES #设定支持ASCII模式的上传和下载功能。
Centos6.7搭建Vsftp实现虚拟用户登陆前言:1.需求用户可以访问FTP上传下载删除等权限,2.禁止用户访问除自己目录以外的所有目录———由此用到chroot_list限制虚拟用户一.安装:1.安装Vsftpd服务相关部件:[root@KcentOS5 ~]# yum -y install vsftpd*2.确认安装PAM服务相关部件:[root@KcentOS5 ~]# yum -y install pam*开发包,其实不装也没有关系,主要的目的是确认PAM。
3.安装DB4部件包:这里要特别安装一个db4的包,用来支持文件数据库。
[root@KcentOS5 ~]# yum -y install db4*4.准备环境,防火墙添加允许vi /etc/sysconfig/iptables #编辑防火墙配置文件,添加下面红色部分进入iptables,说明:21端口是ftp服务端口;6000到7000是Vsftpd被动模式需要的端口,可自定义一段大于1024的tcp端口-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 6000:7000 -j ACCEPT :wq! #保存退出5.关闭selinux或者不关闭selinux添加selinux允许(1)关闭selinx:vi /etc/selinux/config#SELINUX=enforcing #注释掉#SELINUXTYPE=targeted #注释掉SELINUX=disabled #增加:wq! #保存退出setenforce 0 #使配置立即生效(2)不关闭seliux添加允许:查询selinux使用命令开启所有跟FTP有关的:例如:setsebool -P ftp_home_dir 1 然后重启vsftpd。
Centos7搭建FTP服务详细过程一、安装VSFTP1.为了方便后续操作,现将用户切换到root用户 su -2.查看是否已经安装vsftpd方法一:[root@localhost ~]#rpm -q vsftpdvsftpd-3.0.2-22.el7.x86_64方法二:[root@localhost ~]# vsftpd -vyum安装vsftpd[root@localhost ~]# yum -y install vsftpd3.安装完成后,查看位置[root@localhost ~]# whereis vsftpdvsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz 4.直接启动VSFTP服务[root@localhost ~]# systemctl start vsftpd.service[root@localhost ~]#5.查看是否启动成功[root@localhost ~]# netstat -npal|grep vsftpdtcp6 0 0 :::21 :::* LISTEN 4432/vsftpd可以看到服务已经启动,端口为21,pid为4432关闭防火墙6.关闭SELinux限制,添加防火墙白名单①设置关闭SELinux对ftp的限制[root@localhost ~]# getsebool -a | grep ftpftp_home_dir --> onftpd_anon_write --> offftpd_connect_all_unreserved --> offftpd_connect_db --> offftpd_full_access --> onftpd_use_cifs --> offftpd_use_fusefs --> offftpd_use_nfs --> offftpd_use_passive_mode --> offhttpd_can_connect_ftp --> offhttpd_enable_ftp_server --> offsftpd_anon_write --> offsftpd_enable_homedirs --> offsftpd_full_access --> offsftpd_write_ssh_home --> offtftp_anon_write --> offtftp_home_dir --> off[root@localhost ~]# setsebool -P ftpd_full_access on②将ftp加入防火墙白名单firewall-cmd --permanent --zone=public --add-service=ftp firewall-cmd --reload查看防火墙状态:firewall-cmd --list-all二、配置修改1.修改配置文件[root@localhost ~]# cd /etc/vsftpd/[root@localhost vsftpd]# vim vsftpd.conf不允许匿名访问(不登录默认访问某目录/var/ftp)anonymous_enable=NO允许ascii文件上传和下载ascii_upload_enable=YESascii_download_enable=YES将用户限制在为其配置的主目录chroot_local_user=YESchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list三、匿名登录匿名登陆如果设置anonymous_enable=NO表示可以匿名登陆,保存后重新启动vsftp服务systemctl restart vsftpd.service),即可以匿名登陆ftp服务(ftp ipaddr),密码是空,对应目录是/var/ftp,如果你在配置里面配置了anonymous_enable=NO,匿名就无法登录。
Vsftp安装配置手册(完整版)一,前言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目录[copy to clipboard] [ - ]code:# 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,当然也还是需要继续修改配置文件的。