您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > vsFTPd 服务器
vsFTPd服务器作者:北南南北,正在修订之中来自:LinuxSir.Org摘要:vsFTPD是一款小巧易用FTP服务器程序;本文面向初学者的一点疑问,能让初学者在最短的时间内学会最简单的vsftpd服务器的架设;本文应该算是初学者练手篇;正在更新之中;本文基于vsftpd-2.0.3;欢迎大家共同修订本教程,有些功能的实现,需要大家参与;您可以以留言的形式参与,我会每天把大家的留言整理加入文档;谢谢。目录1、vsFTPd,目前常用FTP服务器套件;2、ftp用户管理解说;2.1、匿名ftp用户和用户组的理解;2.2、匿名ftp用户和ftp用户组是否可以删除;3、vsFTPd的安装;4、vsFTPd的服务器的启动和关闭;4.1、vsFTPd服务器启动和关闭的通用方法;4.2、在Fedora/Redhat/CentOS中vsFTPd服务器的启动和关闭:5、vsFTPd的服务器和防火墙及SELINUX的关系;6、500OOPS:vsftpd:refusingtorunwithwritableanonymousroot7、关于vsFTPd配置文件的说明;8、关于vsFTPd服务器的一些常用功能的实现;8.1、关于匿名上传下载的实现;8.2、关于添加本地用户及打开读写权限示例;8.4、如何实现虚拟路径?8.5、打开vsFTP服务器的日志功能;8.6、如何定制欢迎信息;8.7、硬盘空间有限,如何把帐号ftp默认的路径/var/ftp更改到别处?8.8、如何让vsFTP服务器限制链接数,以及每个IP最大的链接数?8.9、如何限制传输速度?8.10、如何有选择的把用户限制在家目录中呢?+++++++++++++++++++++++++++++++++++++++++++正文+++++++++++++++++++++++++++++++++++++++++++1、vsFTPd,目前常用FTP服务器套件;vsFTPd是一款在Linux发行版中最受推崇的FTP服务器程序;特点是小巧轻快,安全易用;能让其自身特点得发发挥和掌握,也然最主要的是会用;目前在开源操作系统中常用的FTPD套件主要有ProFTPD、PureFTPd和wuftpd等;至于哪个FTP服务器套件更好,哪个是你最熟悉的,哪个就是最好的;2、ftp用户管理解说;FTP服务器对用户的管理,在默认的情况下是根据/etc/passwd及/etc/group来进行的,所以我们一定要了解Linux系统用户和用户组的管理,用户和用户组的管理是一切应用的的基础,有的弟兄不想去了解基础的东西,就想一步成架好各种服务器,事实证明这种学习方法是最不明智的;虽然在您可能在几分钟启动了ftp服务器,但遇到问题时,您不一定能知道是哪里出错;所以基础还是极为重要的;推荐文章:《Linux用户(user)和用户组(group)管理概述》2.1、匿名ftp用户和用户组的理解;当我们访问各大FTP上访问时,可能我们不去想我们以什么身份登录的,如果他的FTP允许匿名登录的话;比如我们在浏览器上打入;:ftp@mirrors.kernel.org我们会发现上面的两行最终都能访问,而且显示的结果也完全一样,最终都跳到地址;那我们访问这个FTP时,是不是有用户和密码呢?是的,也是需要在的,只是在服务器端允许匿名访问,而匿名访问的用户名和密码都是ftp,只是我们因为匿名访问,没有感觉到他有用户名和密码罢了。第二个地址就是以ftp用户,密码也是ftp来访问;如果我们以ftp命令连接mirrors.kernel.org时,我们会发现需要输入用户ftp,密码ftp才能访问;在FTP服务器中,匿名用户的用户名和密码都是ftp;这个用户可以在您的操作系统中的/etc/passwd中能找得到;可能有类似下面的一行;ftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin说明:/etc/passwd是系统用户的配置文件;/etc/group是系统用户组配置文件,您可以通过《Linux用户(user)和用户组(group)管理概述》及其相关文档中了解一些用户管理的一些基础知识;在ftp用户这行中,我们看到七个字段,每个字段写字段之间用:号分割;ftp是用户名x是密码字段,是隐藏的;14是用户的UID字段,可以自己来设定,不要和其它用户的UID相同,否则会造成系统安全问题;50用用户组的GID,可以自己设定,不要和其它用户组共用FTP的GID,否则会造成系统全全问题;FTPUser是用户说明字段;/var/ftp是ftp用户的家目录,可以自己来定义;/sbin/nologin这是用户登录SHELL,这个也是可以定义的,/sbin/nologin表示不能登录系统;系统虚拟帐号(也被称为伪用户)一般都是这么设置。比如我们把ftp用户的/sbin/nologin改为/bin/bash,这样ftp用户通过本地或者远程工具ssh或telnet以真实用户身份登录到系统。这样做对系统来说是不安全的;如果您认为一个用户没有太大的必要登录到系统,就可以只给他FTP帐号的权限,也就是说只给他FTP的权限,而不要把他的SHELL设置成/bin/bash等;关于ftp用户组的理解:我们查看/etc/group的时候,会发现类似这样一条;ftp:x:50:/etc/group是用户组的管理配置文件,上面这行表示用户组ftp,x是密码段,50是GID;我们对照在/etc/passwd中的ftp那行得知ftp用户是属于ftp用户组的,因为ftp用户那行中的GID和ftp用户组的GID是相同的;2.2、匿名ftp用户和ftp用户组是否可以删除在一般情况下是不能把/etc/passwd和/etc/group中有把ftp用户和用户组的行删除的,因为FTP服务器是需要他们来对FTP用户实现管理,在默认的情况下。虽然不能删除,但对/etc/passwd及/etc/group中的ftp用户及ftp用户组的一些相关的东西是能修改的;比如我们可以把ftp用户的家目录改掉,也可以把ftp用户的UID改掉......前提是你对用户管理有所了解,系统用户管理是一切应用基础之一,可能初学Linux的弟兄并不了解用户管理的重要性,但慢慢您就会发现这个道理;3、vsFTPd的安装;在最新的各大发行版中的安装盘中都有vsFTPd的软件包,您用相应发行版提供的软件包管理工具就能安装上;当然您可以到各大发行版的FTP镜像中找到vsftpd的软件包;当然也能用软件包的管理工具在线安装;vsftpd的软件包本来不大,花不了多长时间,两分钟就够了吧;因为本文是初学者教程,我严重推荐您用发行版提供的软件来安装,不推荐您自己来编译源码包的安装方式;如果您用的是Fedora或Redhat系统,可以用下面的命令在线安装;[root@localhost~]#yuminstallvsftpd如果是debian类系统,可以用apt来在线安装;[root@localhost~]#apt-getinstallvsftpd如果您是RPM的系统,也可以找到vsftpd-xxxx.rpm的包来通过rpm命令来安装;[root@localhost~]#rpm-ivhvsftpd*.rpm您可以下载源码包来安装比如我们下载的是vsftpd-2.0.3.tar.gz;[root@localhost~]#tarzxvfvsftpd-2.0.3.tar.gz[root@localhost~]#cdvsftpd-2.0.3[root@localhost~]#make;makeinstall[root@localhost~]#cpvsftpd.conf/etc然后修改/etc/vsftpd.conf,在配置文件的最后一行加入下面一行;listen=yes源码包安装的方法,如果您的系统是RPM包管理的系统,可以删除/etc/xinetd.d/vsftpd这个文件;然后启动xinetd服务器;[root@localhost~]#/etc/init.d/xinetdrestart停止xinetd:[确定]启动xinetd:[确定]vsFTPd运行有两种模式,在RPM包管理的系重审统,大多是由Fedora/Redhat开发而来,对于这样的系统有xinted服务器一说;对于非RPM包管理的系统,一般没有xinted这一说。为了保证本文档的统一,我们都不要用xinetd模式,而用initd运行模式来启动和管理服务器,也就是独立运行模式;至于什么是xinted和inted模式,您可以参考《用vsFTPd自架Linux网络安装服务器》4、vsFTPd的服务器的启动和关闭;vsFTPd服务器启动和关闭是极容易的;我们可以直接把服务器运行调到后台运行;这是几乎所有服务器管理的运行方式;4.1、vsFTPd服务器启动和关闭的通用方法;运行vsftpd命令,要用到root权限,如果您当前操作用户并非是root,可以用su切换到root权限;关于root权限的切换,您有两种方式,一种是su,另一种是sudo;请参考:《Linux系统中的超级权限的控制》vsFTPd服务器的运行;[root@localhost~]#/usr/sbin/vsftpd&[root@localhost~]#/usr/local/sbin/vsftpd&vsFTPd服务器是否运行起来;我们可以通过pgrepvsftpd来查看vsftpd是否运行起来;[root@localhost~]#pgrepvsftpd4248上面显示vsFTPd服务器运行起来了,您可以通过ftp命令、lftp工具或gftp或其它的FTP客户端来测试连接;vsFTPd服务器关闭:我们用pkillvsftpd来杀死vsftpd进程,这样就把vsFTPd关闭,用psgrepvsftpd来查看进程,如果没有进程,证明vsFTPd已经关掉;当然也要用到root权限。[root@localhost~]#pkillvsftpd[root@localhost~]#pgrepvsftpd4.2、在Fedora/Redhat/CentOS中vsFTPd服务器的启动和关闭:在Fedora/Redhat/CentOS中,也可以用下面的方法来启动vsFTPd;当然也要用到root权限;[root@localhostbeinan]#/etc/init.d/vsftpdstart为vsftpd启动vsftpd:[确定]重新启动vsFTPd用下面的命令;[root@localhostbeinan]#/etc/init.d/vsftpdrestart关闭vsftpd:[确定]为vsftpd启动vsftpd:[确定]关掉vsFTPd服务器,应该用下面的命令;[root@localhostbeinan]#/etc/init.d/vsftpdstop关闭vsftpd:[确定]5、vsFTPd的服务器和防火墙及SELINUX的关系;(重要)我在论坛上看到有些弟兄说vsFTPd服务器启动正常,但却不能访问或用户不能上传文件,我感觉应该是防火墙或SELINUX的事;可能FTPD服务器被防火墙或SELINUX的安全机制防住了。所以您必须要让防火墙通过ftp,当然也要让SELINUX通过ftp服务器才行;在Fedora/Redhat/CentOS中,您要设置一下防火墙,可以把防火墙关掉,或者在自定义中让ftp“通过”防火墙;[root@localhost~]#system-config-securitylevel-tui或者运行一下如下的命令,清除防火墙规则(通用);[root@localhostbeinan]#iptables-F关于SELINUX服务器的解说,可能老手或新手对SELINUX都有点麻烦,建议您SELINUX;或者让vsFTPd服务器跳过SELINUX启动;
本文标题:vsFTPd 服务器
链接地址:https://www.777doc.com/doc-1580659 .html