`
tjmzgn
  • 浏览: 156621 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux下用vsftpd构建FTP服务器

阅读更多
在Linux下如何使用vsftpd构建FTP服务器,构建后的FTP服务器有哪些特点?本文将作详细介绍。

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

本文以RedHat Linux 9.0为例介绍一下如何安装和配置vsftpd服务器。

安装服务器程序

程序下载地址:ftp://vsftpd.beasts.org/users/cevans/,目前最新版本为2.0.3,源程序文件名为vsftpd-2.0.3.tar.gz。

1.安装之前的准备:

安装之前我们应该看看用户“nobody”和目录“/usr/share/empty”是否存在,如果不存在需要新建这个用户和目录。

  [root@localhost root]# useradd nobody

  [root@localhost root]# mkdir /usr/share/empty

如果要允许匿名访问,还需要创建ftp用户,并将其主目录设置为/var/ftp。在RedHat Linux 9.0中这些都已默认设置好了,只需要创建一个/var/ftp目录即可。

[root@localhost root]# mkdir /var/ftp

为了安全,目录“/var/ftp”不应该属于用户“ftp”,也不应该有写权限。在此,我们做如下设置:

[root@localhost root]# chown root.root /var/ftp

[root@localhost root]# chmod 755 /var/ftp

2.开始安装:

以管理员身份登录Linux系统,将vsftpd-2.0.3.tar.gz复制到/root目录下。

[root@localhost root]# tar xzvf vsftpd-2.0.3.tar.gz

[root@localhost root]# cd vsftpd-2.0.3

[root@localhost vsftpd-2.0.3]# make

[root@localhost vsftpd-2.0.3]# make install

3.安装后续工作

由于采用源代码方式安装,很多必要的配置文件没有复制到系统中,需要手动复制。

复制配置文件:

[root@localhost vsftpd-2.0.3]# cp vsftpd.conf /etc
复制pam验证文件:(多数使用vsftpd的用户在用源代码安装后都会遇到这样的问题:匿名用户可以登录,而本地用户无论怎样设置都无法登录,原因就在于vsftpd采用了PAM验证的方式,需要复制一个验证文件本地用户才能访问。)

[root@localhost vsftpd-2.0.3]# cp RedHat/vsftpd.pam /etc/pam.d/ftp
vsftpd的配置

vsftpd服务器的配置文件为/etc/vsftpd.conf,其配置选项比较多,在此我只选择几个常用的配置选项介绍。

1.禁止匿名用户访问。

anonymous_enable=NO

2.允许本地用户登录并允许其上传文件。

local_enable=YES

write_enable=YES

要使上述选项生效,必须复制一个pam验证文件到/etc/pam.d,并改名为ftp。当然也可以改为其他名称,但必须修改pam_service_name的值,默认为ftp。

3.将本地用户锁定在主目录中,不允许切换到上一级目录中。

chroot_local_user=YES

4.禁止某些用户通过ftp登录服务器。

  如果设置了local_enable=YES,那么所有的用户包括root也能通过ftp登录服务器,出于安全考虑,需要对某些用户进行限制。

在vsftpd.conf中有三个选项控制:

userlist_deny=YES/NO

userlist_enalbe=YES

userlist_file=/etc/vsftpd.user_list

如果userlist_deny=YES,/etc/vsftpd.user_list中列出的用户名就不允许登录ftp服务器;如果userlist_deny=NO,/etc/vsftpd.user_list中列出的用户名允许登录ftp服务器。

我们只要在/etc目录下创建vsftpd.user_list文件,文件内容为允许登录或禁止登录的用户名,每个用户占一行。

5.禁止用户通过FTP修改文件或文件夹的权限。

chmod_enable=NO(默认值为YES)

6.设置本地用户上传的文件或文件夹的umask值。

local_umask=022(默认值为077)

umask的值设为022表示,上传的如果是文件将权限改为644,如果是文件夹将权限改为755。在上传网页时,如果设置为077,就会出现用户没有权限(Permission denied)访问网页的问题,所以建议将umask的值设为022。

7.添加一个只能从ftp登录服务器,而不能从本地登录的用户。以下创建一个用户ftpuser,不允许从本地登录,并创建该用户的密码。

[root@localhost root]# useradd –g ftp –s /sbin/nologin ftpuser

[root@localhost root]# passwd ftpuser

Changing password for user ftpuser.

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

8.让vsftp服务器限制总的连接数以及每个IP最大的连接数。

#最多同时允许100个客户连接

  max_clients=100

#每个ip地址最多允许开3个线程

  max_per_ip=3

  vsftpd的配置文件中有很多选项,但个人认为,如果是架设一个简单的ftp服务器,以上选项就足够了。
分享到:
评论

相关推荐

    基于Linux系统的FTP服务器的实现.pdf

    本文主要介绍了基于Linux系统的FTP服务器的实现,选择了具有小巧、轻快、安全易用的服务器软件vsftpd,通过对Linux平台下的FTP网络服务原理的分析,利用vsftpd构建FTP服务器,并进行相关安全配置。该FTP服务器具有...

    Linux平台通过nginx和vsftpd构建图片服务器

    因为开发需要,需要在Linux上构建一个独立的图片服务器,此处默认您已安装好Linux系统。系统环境:CentOs6.5,Vmware10 一、Nginx安装 1、nginx安装环境 nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5...

     基于Linux系统的FTP服务器的实现

     为了在Linux系统下实现安全、高效的FTP...通过对Linux平台下FTP网络服务原理的分析,利用vsftpd构建FTP服务器,并进行相关安全配置。实际应用表明,该FTP服务器具有安全、快捷和稳定的特点,达到了较好的效果。

    ftp可登录但是无法下载,上传问题解决

    构建了一个ftp服务器,通过命令ftp可登录,登录后,无法下载,上传,ls也无法执行。 通过 passive 开启和关闭 PASV模式,再ls 也是同样的问题, # 主动模式 $ pftp -v -A -d 211.159.185.xxx Connected to 211...

    linux十二章-虚拟用户访问ftp.mp4

    4.构建本地用户验证的FTP服务器,本地用户为zhangsan lisi wangwu,并将其禁锢到宿主目录中,上传的权限掩码值为022(默认) 4.1 创建本地用户zhangsan、lisi、wangwu。并设置密码。(创建的用户不需要登录操作系统...

    用Linux构建高效FTP服务器方法分享第1/2页

    在众多网络应用中,FTP(文件传输...FTP服务可以根据服务对象的不同分为两类:系统FTP服务器只允许系统上的合法用户使用;匿名FTP服务器(Anonymous FTP Server)允许任何人登录到FTP服务器去获取文件。 FTP的数据传

    构建基于虚拟用户的vsftpd服务器应用

    [root@server ~]# yum install -y vsftpd [root@server ~]# rpm -ql vsftpd /etc/logrotate.d/vsftpd /etc/pam.d/vsftpd /etc/rc.d/init.d/vsftpd /etc/vsftpd /etc/vsftpd/ftpusers /etc/vsftpd/user_list /etc/...

    linux基本操作

    4.1. linux下常用的ftp server 28 4.2. tftp server 28 4.2.1. TFTP介绍 28 4.2.2. 设置HOST主机上的TFTP服务 29 4.3. vsftpd server 29 4.3.1. vsftpd概述 29 4.3.2. 安装vsftpd 30 4.3.3. 依靠xinetd启动 31 4.3.4...

    低清版 大型门户网站是这样炼成的.pdf

    1.2.5 支持集群功能的web服务器tomcat 21 1.2.6 开源数据库服务器之骄子mysql 23 1.2.7 功能强大的flv流媒体服务器red5 24 1.3 门户网站开发指导思想 26 1.4 ssh 2组合框架—门户网站开发之首选 28 1.4.1 mvc...

    Learning-Notes:学习笔记

    ftp服务vsftpd 代理缓存知识 存储结构与磁盘知识 文件共享 用户身份与权限 管道符、重定向与环境变量 定时任务 邮件系统 防火墙 docker docker基础 docker安装 docker仓库知识 docker容器 docker数据管理 docker网络...

Global site tag (gtag.js) - Google Analytics