linux vsftpd怎么使用

linux vsftpd怎么使用,第1张

第一步:下载vsftpd的RPM包
你可以从下面两个地方获得最新的vsftpd的RPM包 Redhat's rpm collection 或者 rpmfindnet为了你的方便, 你也可以使用wget从本站下载vsftpd的rpm包到你的本地电脑
复制代码代码如下:
wget >

FTP有两个过程:控制连接 和 数据连接

控制连接用于传送请求;而数据连接用于传输文件

FTP的工作原理:

FTP协议不像>

一个端口是作为控制连接端口,也就是FTP的21端口,用于发送传送请求给服务器的控制进程以及等待服务器响应(控制连接并不用来传送文件);

另外一个端口用于数据传输端口,端口号为20(仅用PORT模式),是用建立数据传输通道的,主要作用是从客户向服务器发送一个文件,从服务器向客户发送一个文件,从服务器向客户发送文件或目录列表,用来连接客户端和服务器端的数据传送进程。

数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。

快速构建FTP服务器,FTP服务器实现的基本功能是,下面就分几个步骤来搭建一个可以实现功能的简易FTP服务器。
1.安装FTP服务器
如果在安装系统时没有选择安装FTP服务器,可以通过Red Hat中的“添加/删除应用程序”进行安装。具体方法是,选择“主选单”→“”→“添加/删除应用程序”,在d出的界面中选中FTP服务器,单击“更新”即可。
如果无法确认是否安装了该软件,可以使用以下命令查看:
2.启动FTP服务器
套用Red Hat 90的预设范例直接启动VSFTP。
为vsftpd启动vsftpd: [确定]
3.在/var/ftp/pub目录下创建一个名为testtxt的文件
文件内容为“This is a test file”。
4.测试
使用FTP客户端登录到本地服务器,然后以匿名身份(anonymous)登录:
# ftp 127001Connected to 127001 (127001)220 (vsFTPd 113)Name (127001:root): anonymous331 Please specify the passPassword:230 Login successful Have funRemote system type is UNIXUsing binary mode to transfer files
这样就成功地登录到FTP服务器。可以显示服务器目录列表如下:
ftp ls227 Entering Passive Mode (127,0,0,1,63,15)drwxr-xr-x 2 0 0 4096 Dec 04 01:35 pub226 y send OK
切换到pub目录下,并显示目录内容,可以找到刚才创建的文件testtxt:
ftp cd pub250 Directory successfully changedftp ls227 Entering Passive Mode (127,0,0,1,232,34)150 Here comes the directory listing-rw-r--r-- 1 0 0 21 Dec 04 01:35 testtxt226 Directory send OK
下载testtxt文件:
ftp mget testtxtmget testtxt y227 Entering Passive Mode (127,0,0,1,186,210)150 Opening BINARY mode data connection for testtxt (21 bytes)226 File send OK21 bytes received in 00108 secs (19 Kbytes/sec)
查看本机目录内容,可以看到testtxt已成功下载到本机。
ftp !lsa EIO_Binders initrd mnt proc tftpboot ylgtxtbin etc lib mymnt root tmpboot home lost+found myshare sbin usrdev id_dsaspub misc opt testtxt var
尝试上传名为ylgtxt的文件,可以看到请求被拒绝了。
ftp put ylgtxtlocal: ylgtxt remote: ylgtxt227 Entering Passive Mode (127,0,0,1,243,10)550 Permission dend
退出登录:
由测试可以看出,已经可以下载文件,但不能上传文件(也不能在服务器上创建目录和文件)。实际上这是一个专门提供下载服务的匿名FTP服务器。
从上面的步骤可以看出,并不需要做什么配置就可以完成一个简易FTP服务器的架设。这是因为Red Hat已经配置好一个缺省的FTP服务器。不过在实际应用中,大部分情况下这个简易的服务器并不能满足需求。
进一步配置FTP
下面将创建一个能够满足常用需求的FTP服务器。实际应用中,FTP服务器一般要同时提供和功能。此外,出于安全考虑,还需要有用户身份验证、用户权限设置及空间管理等。下面就来搭建这样一个FTP服务器。
1.创建欢迎语
如果希望使用者在进入目录时,能够看到欢迎语或对本目录的介绍,可以通过以下方法来实现。
确定/etc/vsftpd/vsftpdconf文件中dirmessage_enable=YES,默认情况下,Red Hat 90有此设置。接着,在目录中新增名为message的文件。本例在/home/ylg目录下创建一个message文件,其内容为“欢迎来到我的 FTP站点”。
2.更换FTP服务器的默认端口
将预设的21端口改为2121,这样做是基于安全的考虑。更改方法为,使用vi打开/etc/vsftpd/vsftpdconf:#vi /etc/vsftpd/vsftpdconf
在文件最后增加如下一行内容:
3.取消anonymous登录的功能
在vsftpdconf文件中找到如下一行,并将其值改为“NO”:anonymous_enable=YES
4.设定使用者不得更改目录
这样做的目的也是基于安全性的考虑。一般情况下,使用者的预设目录为/home/username。若是不希望使用者在登录后能够切换至上一层目录/home,则可通过以下设置来实现。在/etc/vsftpd/vsftpdconf文件中找到以下三行内容:
#chroot_list_enable=YES# (default follows)#chroot_list_file=/etc/vsftpdchroot_list
将其改为:
chroot_list_enable=YES# (default follows)chroot_list_file=/etc/vsftpd/chroot_list
新增一个文件/etc/vsftpd/chroot_list,文件内容为两个用户名:
5.针对不同的使用者限制不同的速度
假设用户ylg所能使用的最高速度为500Kb/s,用户user1所能使用的最高速度为250Kb/s,可以通过以下方法设置。在/etc/vsftpd/vsftpdconf文件尾部新增以下一行:
增加一个名为/etc/vsftpd/userconf的目录:
在/etc/vsftpd/userconf下新增一个名为ylg的文件,其内容如下所示:
local_max_rate=500000
在/etc/vsftpd/userconf目录下新增一个名为user1的文件,其内容如下所示:
local_max_rate=250000
VSFTP对于速度的限制范围大概在80%到120%之间,也就是限制最高速度为100Kb/s,但实际的速度可能在80Kb/s到120Kb/s之间。如果频宽不足,数值会低于此限制。6.对于每一个联机用户,都以独立的进程来运行。一般情况下,在启动VSFTP时,只会看到一个名为vsftpd的进程在运行。但若是读者希望每一个联机用户都能以独立的进程来呈现,则可通过在/etc/vsftpd/vsftpdconf文件中增加以下一行来实现:
setproctitle_enable=YES
6.保存/etc/vsftpd/vsftpdconf文件,然后重新启动vsftpd:
7.测试刚创建的FTP服务器
以缺省方式登录会被拒绝,因为此时的默认端口号已经更改为2121,所以登录时需指定端口。
此时也不能再使用匿名方式登录:
# ftp 127001 2121Connected to 127001 (127001)220 (vsFTPd 113)Name (127001:root): anonymous331 Please specify the passPassword:530 Login incorrectLogin failed
如果以用户ylg则可以成功登录(指定端口2121),并显示欢迎信息:
# ftp 127001 2121Connected to 127001 (127001)220 (vsFTPd 113)Name (127001:root): ylg331 Please specify the passwordPassword:230-欢迎来到我的FTP站点230 Login successful Have funRemote system type is Using binary mode to transfer files
因为在设置中设定了不能切换目录,所以下列命令无法正确执行:
550 Failed to change y
再来测试一下上传和。首先下载服务器目录中的testtxt文件:
ftp get testtxtlocal: testtxt remote: testtxt227 Entering Passive Mode (127,0,0,1,243,215)150 Opening BINARY mode data connection for testtxt (21 bytes)226 File send OK21 bytes received in 000308 secs (67 Kbytes/sec)
可以通过!ls命令看到本机目录中已成功下载该文件。然后上传本机目录中的ylgtxt文件到服务器:
ftp put ylgtxtlocal: ylgtxt remote: ylgtxt227 Entering Passive Mode (127,0,0,1,133,248)150 Ok to send data226 File receive OK19 bytes sent in 00401 secs (046 Kbytes/sec)
用ls命令查看服务器目录,会发现该文件已成功上传。
为了测试不同连机用户使用的是不同进程,可以使用ps -ef指令

ure-FTPD 和 VSFTPD 都是很优秀的的FTP建站软件,其区别主要在于两者的可扩展性。
VSFTPD 体积小巧,配置比较简单,安全和性能比较出众,但在数据库支持和扩展性方面不佳。
pure-ftpd 是一款功能强大、性能稳定、安全可靠、使用简单等优点,并能够进行web管理的ftp server软件;
如果对用户量和数据量要求不是很高的话,vsftp已经是很好的ftp server;
pure-ftpd 的配置文件,相对简单,支持多种数据库,还可以对每用户独立的上传
下载流量进行限制,对IP地址进行限制、对用户目录文件数及大小单独限制等。
它与 LDAP、TLS、PostgreSQL、MySQL等工具结合,可实现更多扩展应用,表现出强大的功能。
比如,Pure-FTPD 与数据库结合后,可以实现如下功能:
用php编写前台页面管理用户,让用户自己修改密码。这个可以应用于虚拟主机管理界面中;
将用户数据与论坛或网站的用户数据表整合,可以在论坛或网站中实现 FTP 功能;
将用户数据与邮件服务的用户数据表整合,可以实现邮件系统中的网盘功能;
诸如此类应用,等等。
因此可以根据自己需要来自行选择软件;
配置用户少安全性高的服务器可以选用 VSFTPD
配置功能复杂的服务器就可以选用 Pure-FTPD

Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令 rpm -qa |grep vsftpd 来查看是否安装相应的包,如果没有安装那么可以执行 yum -y install vsftpd 来安装,安装之后首先创建ftp用户,比如ftp_test,命令如下:

useradd -s /sbin/nologin -d /home/ftp_test ftp_test

目录尽量不要选择根目录下,这里是/home/ftp_test,并且ftp_test这个目录不要手动创建,否则权限会有问题,执行命令的时候会自动创建,

可以看到权限现在是对于ftp_test用户是可读可写可执行的,其他用户和组下面的都没有任何权限,现在为ftp_test用户创建密码:

passwd ftp_test

执行之后输入2次密码确认就设置好了密码

然后编辑vsftpd配置文件,位置是:vim /etc/vsftpd/vsftpdconf

找到anonymous_enable这个配置项,默认是YES,修改成NO,表示不允许匿名用户登录

现在直接保存配置文件,执行 systemctl start vsftpdservice 启动vsftp服务,然后可以通过命令: systemctl status vsftpdservice 查看ftp服务的运行状态,现在就可以用ftp客户端进行连接了,这里用FileZilla测试,连接正常

现在基本的ftp服务就部署完了,客户端可以正常上传,下载,修改文件;但是这样有个问题就是所有的目录都暴露给客户端了,虽然客户端不能随意修改删除其余的文件,但是因为目录可见,所以总会有一些风险,所以接下来还需要配置让ftp用户只在自己的家目录下面活动,而无法查看其它任何目录,同样是打开配置文件/etc/vsftpd/vsftpdconf,找到chroot_local_user=YES这个配置,默认是注释的,这里去掉注释,表示只让用户在自己的目录里面活动,如果只是保存这一个配置的话,用ftp连接客户端会返回500 OOPS: vsftpd: refusing to run with writable root inside chroot()的错误,即禁止运行在可写的家目录中,因为刚才ftp_test这个目录有w权限,而现在我们使用的vsftpd版本是302 属于比较新的版本,为了安全性做了一些限制,如果你此时想通过 chmod a-w /home/ftp_test 来去掉目录的写权限,那么连接成功是没问题的,但是无法上传文件了,所以网上很多说修改权限的方法是不可取的,正确的做法是应该在下面添加一行配置allow_writeable_chroot=YES表示允许对家目录的写权限,具体配置如下:

配置完这两项以后保存退出,然后执行 systemctl restart vsftpdservice 重启vsftpd服务,现在重新使用ftp连接就成功了,并且任何 *** 作也是没问题的

现在可以看到上面的路径是一个/,对于ftp用户来说也就是根目录了,只能在这个目录下 *** 作,而无法跳出这个目录

以上就是vsftpd服务的基本搭建过程,实际使用时可以分配多个用户

ProFTPD 服务器的管理;
ProFTPD服务器的启动程序是在安装目录的sbin中,也就是proftpd;我们还是以安装目录/opt/proftpd 为准来说明;

[root@localhost ~]# /opt/proftpd/sbin/proftpd
注:服务器的启动;
[root@localhost ~]# pgrep proftpd

注:查看服务器是不是启动起来了;如果没有进程,说明失败;
[root@localhost ~]# pkill proftpd

注:杀死proftpd的进程;也就是关掉服务器;
注意:我们更改proftpdconf后,要重启proftpd ,否则改动不会生效。这时就要用到pkill proftpd ,然后再重启proftpd 服务器;每次改动proftpdconf都要这么做;
下面是几个查看ProFTPD服务器状态的命令,您也可以尝试一下,具体用法自己尝试吧;
[root@localhost ~]# /opt/proftpd/bin/ftpcount

[root@localhost ~]# /opt/proftpd/bin/ftpwho

[root@localhost ~]# /opt/proftpd/bin/ftptop

[root@localhost ~]# /opt/proftpd/bin/


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/13451124.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-09
下一篇 2023-08-09

发表评论

登录后才能评论

评论列表(0条)

保存