IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    AWS EC2 Linux7 64位ftp服务器搭建-vsftpd安装及配置[原创-简洁版]

    admin发表于 2016-06-30 03:14:41
    love 0

    vsftpd作为FTP服务器,在Linux系统中是非常常用的。下面我们介绍如何在centos系统上安装vsftp。
    什么是vsftpd
    vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。
    OK !现在进入安装配置。
    安装vsftpd
    1、以管理员(root)身份执行以下命令

    yum install vsftpd

    2、设置开机启动vsftpd ftp服务

    [root@ip~ vsftpd]$ systemctl enable vsftpd
    ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service'

    3、启动vsftpd服务

    systemctl start vsftpd


    管理vsftpd相关命令

    #停止
    systemctl stop vsftpd
    #重启
    systemctl restart vsftpd

    配置vsftpd服务器, 修改的几个关键点如下:
    默认的配置文件是/etc/vsftpd/vsftpd.conf,你可以用文本编辑器打开。

    vi /etc/vsftpd/vsftpd.conf
    
    ### 以下除了注释基本都是默认项
    
    anonymous_enable=NO   ## 禁止匿名访问
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    
    listen=YES          ## 注意这里,确认自己的服务器IPv4打开此项
    #listen_ipv6=YES    ## 注意这里,确认自己的服务器IPv6打开此项
    
    pam_service_name=vsftpd
    userlist_enable=YES
    tcp_wrappers=YES
    
    local_root=/adeaz/ftp ## 默认会入到ftp user的根目录,可以不指定
    
    ascii_download_enable=YES
    ascii_upload_enable=YES
    userlist_deny=NO
    
    #### 设置:限制用户目录的访问权限
    chroot_list_enable=YES    
    chroot_list_file=/etc/vsftpd/chroot_list
    allow_writeable_chroot=YES
    
    
    
    ### 设置:主被动模式参数
    port_enable=YES       ## default=YES, 默认情况下主动模式被打开
    pasv_enable=YES       ## 开启被动模式
    
    ### 设定在PASV模式下,建立数据传输所可以使用port范围的上下界,default=0 表示任意(1024 – 65535端口)
    pasv_min_port=1024    ## 注意EC2 Security Group配置要对应20-21 和 1024-1048
    pasv_max_port=1048    ## 注意EC2 Security Group配置要对应20-21 和 1024-1048
    
    ### 让服务器出面发布"假"消息去欺骗客户端, 我们只需要在vsftpd的配置文件中加入如下两行即可
    pasv_addr_resolve=YES   ## 允许vsftpd去欺骗客户
    pasv_address=<外网IP>   ## 必须项,填写当前服务器的外网IP (或解析到外网的域名)

    第一:添加允许访问ftp服务器的用户列表

    vi /etc/vsftpd/user_list  ## 在最后增加一行,输入ftpUserName 就是你刚才建立的ftp的用户名

    重启vsftpd和配置开机启动

    第二:添加限制用户在根目录

    ### chroot_list_enable=YES 并且 chroot_local_user=NO(系统默认就是NO), 两参数配合使用,详细看下面表格
    ### 1. 所有用户都不被限制其主目录下 
    ### 2. 使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制
    sudo touch /etc/vsftpd/chroot_list ## 用于指定用户列表文件,该文件用于控制哪些用户可以切换到用户目录的上级目录。

    接下来添加ftp用户

    #user为ftp的用户名, 用户目录问 /var/www/ftp
    sudo useradd -s /sbin/nologin -d /var/www/ftp -g ftp user  ## 添加用户并指定根目录和所属的组
    sudo passwd user             ## 修改密码
    sudo chmod 755 /var/www/ftp  ## 设置目录权限

    在EC2控制台中设置Security Group 增加ftp所需端口,例如:
    TCP: 20-21端口和被动模式的1024-1048端口,下面是我添加的Security Group参考:
    aws20150807112526

    • chroot_local_user #是否将所有用户限制在主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外的)
    • chroot_list_enable #是否启动限制用户的名单 YES为启用  NO禁用(包括注释掉也为禁用)
    • chroot_list_file=/etc/vsftpd/chroot_list #是否限制在主目录下的用户名单,至于是限制名单还是排除名单,这取决于chroot_local_user的值,我们可以这样记忆: chroot_local_user总是一个全局性的设定,其为YES时,全部用户被锁定于主目录,其为NO时,全部用户不被锁定于主目录。那么我们势必需要在全局设定下能做出一些“微调”,即,我们总是需要一种“例外机制“,所以当chroot_list_enable=YES时,表示我们“需要例外”。而”例外“的含义总是有一个上下文的,即,当”全部用户被锁定于主目录“时(即chroot_local_user=YES),”例外”就是:不被锁定的用户是哪些;当”全部用户不被锁定于主目录”时(即chroot_local_user=NO),”例外”“就是:要被锁定的用户是哪些。这样解释和记忆两者之间的关系就很清晰了!

    对于chroot_local_user与chroot_list_enable的组合效果,可以参考下表:

    chroot_local_user=YES chroot_local_user=NO
    chroot_list_enable=YES 1.所有用户都被限制在其主目录下

    2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制

    1.所有用户都不被限制其主目录下

    2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制

    chroot_list_enable=NO 1.所有用户都被限制在其主目录下

    2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户

    1.所有用户都不被限制其主目录下

    2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户

     

    相关参考:
    http://www.iitshare.com/installation-and-configuration-of-vsftpd.html
    http://www.chilltouch.com/2013/06/aws-ec2-ftp
    http://desert3.iteye.com/blog/1685734
    Centos 安装FTP配置目录权限,iptables设置ftp服务



沪ICP备19023445号-2号
友情链接