热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

CentOS编译安装vsftpd-2.2.2

Vsftp(VerySecureFTP)是一种在Unix/Linux中非常安全且快速稳定的FTP服务器,目前已经被许多大型站点所采用,如ftp.redhat.com,ftp.kde.org,ftp.gnome.org.等。Linux下很多服务器为什么要用vsftpdvsftpd是“verysecureFTPdaemon
   Vsftp(Very Secure FTP)是一种在Unix/Linux中非常安全且快速稳定的FTP服务器,目前已经被许多大型站点所采用,如ftp.redhat.com, ftp.kde.org, ftp.gnome.org.等。
  Linux下很多服务器为什么要用vsftpd
      vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特 征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等
(1)、查看是否安装了vsFTPd软件
       1、[root@linuxsir001 root]# rpm -qa | grep vsftpd
如果没有任何显示,说明没有把vsFTPd安装上,如果出现的是下面的这样的提示,就证明已经安装上了。
       2、[root@linuxsir001 root]# rpm -qa | grep vsftpd
vsftpd-2.2
Vsftpd的实现有三种方式:
    1、匿名用户形式:在默认安装的情况下,系统只提供匿名用户访问
    2、本地用户形式:以/etc/passwd中的用户名为认证方式
3、虚拟用户形式:支持将用户名和口令保存在数据库文件或数据库服务器中。相对于FTP的本地用户形式来说,虚拟用户只是FTP服务器的专有用户,虚拟用户只能访问FTP服务器所提供的资源,这大大增强系统本身的安全性。相对于匿名用户而言,虚拟用户需要用户名和密码才能获取FTP服务器中的文件,增加了对用户和下载的可管理性。对于需要提供下载服务,但又不希望所有人都可以匿名下载;既需要对下载用户进行管理,又考虑到主机安全和管理方便的FTP站点来说,虚拟用户是一种极好的解决方案。

安装以及配置:
这个需要注意是否安装了pam。前面我们看到账户使用了pam认证,那么必须有pam的支持。(否则自己建立的账号将无法登录)
(1)、yum install pam-devel  db4-utils
用ldd命令可以看到vsftpd是否加载了pam:  ldd  /usr/local/sbin/vsftpd(等装好vsftpd 后使用此命令查看一下。)
****************************
[root@localhost home]# ldd  /usr/local/sbin/vsftpd
        linux-gate.so.1 =>  (0x00557000)
        libpam.so.0 => /lib/libpam.so.0 (0x008a7000)    #看到此行,表示pam安装成功。
        libdl.so.2 => /lib/libdl.so.2 (0x00249000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x004af000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x00516000)
        libutil.so.1 => /lib/libutil.so.1 (0x0080c000)
        libcap.so.1 => /lib/libcap.so.1 (0x00509000)
        libc.so.6 => /lib/libc.so.6 (0x00101000)
        libaudit.so.0 => /lib/libaudit.so.0 (0x0088b000)
        /lib/ld-linux.so.2 (0x0042f000)
**************************** ****

安装
wget  ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.2.2.tar.gz
tar xvzf vsftpd-2.2.2.tar.gz
cd vsftpd-2.2.2
make
make install
cp vsftpd.conf  /etc/     //vsftp存放路径
********************************如果存在的话,此下两步就不需要设置了
useradd nobody    //增加匿名用户
mkdir /var/ftp     //设置共享目录
********************************可以看到,安装的时候是不需要configure的。
****

启动和关闭

启动vsftpd:   /usr/local/sbin/vsftpd  &
关闭vsftpd    pkill vsftpd   或者   killall -9 vsftpd
(vsftpd的日志文件存放在/var/log/目录下,查看vsftpd.log可以查询vsftpd日志,默认情况下是打开的)
-----------------------------
 ****启动中报错
 报错: (1)、500 OOPS: vsftpd: both local and anonymous access disabled!
 解决办法:
    查找vsftpd 配置文件,将local_enable=YES 前的#号去除,  重新启动vsftpd
启动好了,以后输入ftp://192.168.1.131  匿名用户就可以访问了。
*****************配置文件存放在(/etc/vsftpd.conf)
禁止匿名用户访问。    anonymous_enable=NO      把anonmous_enable=YES改成NO(禁掉匿名链接,不安全)
*********匿名用户配置
通过以上的几个步骤匿名用户就可以访问了:(只有查看的权限,详细配置说明文件如下,如果配置文件出错,重新复制一份新的配置文件)
anonymous_enable=YES    //读权限
anon_upload_enable=YES   //增加上传权限
anon_mkdir_write_enable=YES  //增加创建目录的权限
anon_umask=022
*************
umask是unix操作系统的概念,umask决定目录和文件被创建时得到的初始权限
umask = 022 时,新建的目录 权限是755,文件的权限是 644
umask = 077 时,新建的目录 权限是700,文件的权限时 600
vsftpd的local_umask和anon_umask借鉴了它
默认情况下vsftp上传之后文件的权限是600,目录权限是700
想要修改上传之后文件的权限,有两种情况
(1)、如果使用vsftp的是本地用户,则要修改配置文件中的 local_umask 的值
(2)、如果使用vsftp的是虚拟用户,则要修改配置文件中的 anon_umask 的值
允许本地用户登录并允许其上传文件。
local_enable=YES      把local_enable=YES前的注释去掉(打开本地用户连接的权限)
write_enable=YES      把write_enable=YES前的注释去掉(打开本地用户的写权限)
    3.将本地用户锁定在主目录中,不允许切换到上一级目录中。    chroot_local_user=YES
    4.设置本地用户上传的文件或文件夹的umask值。
local_umask=022(默认值为077) umask的值设为022表示,上传的如果是文件将权限改为644,如果是文件夹将权限改为755。在上传网页时,如果设置为077,就会出现用户没有权限(Permission denied)访问网页的问题,所以建议将umask的值设为022。
*********************************************************************************匿名用户(只能查看)
*******************

常见的配置
(1)、限制vsFTP服务器限制链接数,以及每个IP最大的链接数?
max_clients=100   //vsftpd最大连接数
max_per_ip=5   //每个IP最大的链接数
(如果配置的文件中没有以上两个,在配置文件最后加入以上两句话就可以了) (2)、限制传输速度
anon_max_rate=81920      //这是匿名的速度
local_max_rate=81920    //这是vsFTP服务器上本地用户的速度
注:这个数字的单位是byte,所以我们要计算一下。比如我想让匿名用户和vsFTP上的用户都以80KB下载,所以这个数字应该是1024x80=81920
(3)、如何让绑定IP到vsFTPd
listen_address=192.168.0.2(对应的ip地址)
(4)、修改vsfptd目录
    1、 对于ftp这个用户的管理,我们应该查看/etc/passwd ,然后修改ftp用户那行:  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
修改成:  ftp:x:14:50:FTP User:/opt/ftp:/sbin/nologin  (其中:/opt/ftp是你修改的ftp目录)
    2、 创建此目录,并且为此目标增加权限
         mkdir /opt/ftp     和    chomd 755 /opt/ftp    和   chown -R root:root /opt/ftp
错误代码提示及常用命令:
(1)、530 Login incorrect.    用户名或者密码不正确
(2)、530 permission denied    用户权限不够 (3)、把一个用户增加到一个组里面 :  命令如:    adduser -g  组 用户
(4)、查看这个用户包括或者属于哪个组:  命令如:  groups   用户

推荐阅读
author-avatar
Yao2524_420
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有