您的位置:首页 > 运维架构 > Linux

Linux服务之FTP

2013-10-14 12:46 211 查看
使用linux搭建FTP服务器不仅功能较windows多,而且在安全性上也是值得放心的。那么如何用linux搭建FTP服务器呢?别着急,耐心看完本文,相信你掌握使用linux操作系统搭建FTP服务器的。用linux搭建FTP服务器的方法很多,本文以linux自带的vsftpd来搭建FTP。vsftpd是一个安全、高速、稳定的FTP服务器。



一:安装、启动vsftpd

·vsftpd的安装很简单,按如下步骤依次完成

首先检查系统是否已安装了vsftpd,若没有,放入第二张光盘并挂载光驱,完成后进入/mnt/cdrom/RedHat/RPMS目录。接着查找以vs开头的文件,找到后用rpm -ivh 安装该软件,安装完成后再使用rpm -qa | grep vsftpd 查看是否安装正确。确认无误后进入根目录,卸载光驱,弹出光盘。



提示:我的系统由于使用系统最小化安装,在安装过程中出现

[root@dianxin fly]# rpm -ivh vsftpd-1.1.3-8.i386.rpm

warning: vsftpd-1.1.3-8.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e

error: Failed dependencies:

libcap.so.1 is needed by vsftpd-1.1.3-8

经查资料,系统发现少了libcap.so.1包。插入第一张光盘并安装libcap包后,vsftpd安装成功。

·安装完成后使用service vsftpd start启动vsftpd,这样FTP服务器便搭建完成。但此时还不能访问FTP服务器,因为服务器默认情况下关闭了防火墙,此时我们还需使用service iptables stop命令关闭防火墙,这样客户端才可以访问FTP服务器。

·客户端测试



二:配置vsftpd

虽然vsftpd已经搭建完成,客户机可以访问FTP服务器资源了,但功能实在少的可怜。只有vsftpd的默认功能。此时你一定在想,系统默认功能有哪些呢?呵呵,我把默认的功能列出来

·vsftp默认功能

1>允许匿名用户和本地用户登陆。

2>匿名用户使用的登陆名为ftp或anonymous,口令为空;匿名用户不能离开匿名服务器没目录/var/ftp,且只能下载不能上传。

3>本地用户的登录名为本地用户名,口令为此本地用户的口令;本地用户可以离开自家目录切换至有权访问的其他目录,并在权限允许的情况下进行下载/上传

4>写在文件/etc/vsftpd.ftpusers中的本地用户禁止登陆。

·给匿名用户上传权限

vsftpd的默认功能已经可以满足小型FTP服务器的需求了,不过有时我们需要客户端使用匿名帐户登陆FTP服务器,而且要求客户端可以上传文件到服务器。而默认情况下匿名用户不允许上传文件,此时我们需要修改vsftpd配置文件了

用VI打开/etc/vsftpd/vsftpd.conf(vsftpd的配置文件,FTP的功能强大不强大,主要看在配置文件中的配置),将anon_upload_enable=YES、anon_mkdir_write_enable=YES两个指令前的“#”号删除,并在文件中添加anon_other_write_enable=YES、anon_world_readeable_only=NO两条指令。wq保存后在客户端使用匿名帐户登陆服务器才有上传权限。

其中

anon_uplood_enable=YES表示匿名帐户可以上传文件

anon_mkdir_write_enable=YES表示匿名帐户可以创建目录

anon_other_write_enable=YES表示匿名帐户可以为文件、文件夹进行更名以及删除。

在完成上述三个命令后,便可使用匿名用户对服务器上传文件了。但这样配置后却又不能使用FTP下载文件了,所以加入anon_world_readeable_only=NO,使匿名用户即可上传文件又可下载文件。



文件修改完成后重新启动vsftpd服务,使修改生效。这样客户机才可以使用匿名用户上传下载文件。



·权限的设置

1>控制允许/不允许访问的主机

在vsftpd.conf文件最后一行有一条指令:TCP_wrappers=YES,表示vsftpd服务器与TCP wrappers相结合,进行主机的访问控制。这样客户机在访问vsftpd服务器时,服务器会检查/etc/hosts.allow和/etc/hosts.deny中的设置以决定请求连接的主机是否允许连接到服务器。这两个文件可以起到简易防火墙的功能。

具体设置如下:

想要拒绝某个IP访问此服务器,可以在/etc/hosts.deny文件中加入vsftpd:192.168.0.18:deny

all:all:allow

想要允许某个IP段访问此服务器,可以在/etc/hosts.allow文件中加入

vsftpd:192.168.0:allow

all:all:deny



2>访问速度的限制

在vsftpd.conf文件最后一行加入anon_max_rate= (单位B),这样匿名用户在下载或上传文件是最大速度为设置的值。同理想要对本地用户进行设置,只要加入local_max_rate= (单位B)即可完成对本地用户的速度限制。



3>线程数的限制

在vsftpd.conf文件中加入max_per_ip= (0表示不限制),可以防止一些人使用多线程下载资源,占用服务器的带宽、资源。这样当客户机使用的线程数超过服务器的最大限制时,将出现如图界面。



4>最大客户连接限制

在vsftpd.conf文件中加入max_clients= (0表示不限制),可以防止因客户连接数过多而导致服务器内存占满,死机。当客户机数超过服务器所设置的最大值时,客户端出现如图界面


以上4步输入的指令的截图



·其他功能

1>设置日志记录

有了日志记录,在服务器上可以就查看哪些IP访问了FTP服务器,下载、上传了哪些资源等等,一目了然。vsftpd服务器默认情况下已经开启了日志记录功能,但我们必须对它进行更好的设置。

打开vsftpd.conf文件,删除hferlog_filt=/var/log/vsftpd.log前的“#”号。



这样在重启vsftpd服务后便可在/var/log/vsftpd.log文件中查看日志记录了。



2>设置用户登陆的主目录

默认情况下用匿名用户登陆FTP服务器后会进入/var/ftp目录,而本地用户登陆服务器后进入/home下的用户主目录中。我们可以vsftpd.conf文件中加入local_root=/web,这样在使用本地用户登陆FTP服务器后自动进入/web目录中。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: