美文网首页
FTP服务器搭建(Centos7)

FTP服务器搭建(Centos7)

作者: simuty | 来源:发表于2017-02-23 09:22 被阅读755次

    FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。

    第一部分 安装环境, 介绍配置

    1.1 安装vsftpd

    vsftpd(very secure FTP daemon) 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。

    非常高的安全性需求
    带宽限制
    良好的可伸缩性
    创建虚拟用户的可能性
    IPv6支持
    中等偏上的性能
    分配虚拟 IP 的可能性
    高速
    
    1.1.1 查看是否安装vsftp
    rpm -qa | grep vsftpd
     
    
    1.1.2 如果没有安装:
    yum -y install vsftpd
    
    1.2 安装位置与基本配置

    安装完成之后,前往'/ect/vsftpd'目录下,

    [root@localhost ~]# cd /etc/vsftpd
    [root@localhost vsftpd]# ls
    ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
    
    
    1.2.1 ftpusers

    黑名单, ftpusers不受任何配制项的影响.

    通常为了安全考虑,管理员不希望一些拥有过大权限的帐号(比如root)登入FTP,以免通过该帐号从FTP上传或下载一些危险位置上的文件从而对系统造成损坏。
    
    
    1.2.2 user_list

    白名单

    与 vsftpd.conf 中的userlist_enable和userlist_deny两个配置项紧密相关的. 可以有效,也可以无效.

    1. 当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的用户都会被拒绝登入;
    2. 当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用户才会被准许登入(user_list之外的用户都被拒绝登入);
    3. 另外需要特别提醒的是:使用白名单后,匿名用户将无法登入!除非显式在user_list中加入一行:anonymous
    4. 
    
    1.2.3 vsftpd.conf 配置文件

    匿名权限控制

    anonymous_enable=YES   #是否启用匿名用户
    no_anon_password=YES   #匿名用户login时不询问口令
    
    
    
    ################服务器功能选项###############
    xferlog_enable=YES    #开启日记功能
    xferlog_std_format=YES   #使用标准格式
    log_ftp_protocol=NO    #当xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用.
    pasv_enable=YES    #允许使用pasv模式
    pasv_promiscuous+NO    #关闭安全检查,小心呀.
    port_enable=YES    #允许使用port模式
    prot_promiscuous    #关闭安全检查
    tcp_wrappers=YES    #开启tcp_wrappers支持
    pam_service_name=vsftpd   #定义PAM 所使用的名称,预设为vsftpd。
    nopriv_user=nobody    #当服务器运行于最底层时使用的用户名
    pasv_address=(none)    #使vsftpd在pasv命令回复时跳转到指定的IP地址.(服务器联接跳转?)
    
    #############用户连接选项#################
    
    max_clients=100    #可接受的最大client数目
    max_per_ip=5    #每个ip的最大client数目
    connect_from_port_20=YES   #使用标准的20端口来连接ftp
    listen_address=192.168.0.2   #绑定到某个IP,其它IP不能访问
    listen_port=2121    #绑定到某个端口
    ftp_data_port=2020    #数据传输端口
    pasv_max_port=0    #pasv连接模式时可以使用port 范围的上界,0 表示任意。默认值为0。
    pasv_min_port=0    #pasv连接模式时可以使用port 范围的下界,0 表示任意。默认值为0。
    
    
    ##############数据传输选项#################
    anon_max_rate=51200  #匿名用户的传输比率(b/s)
    local_max_rate=5120000  #本地用户的传输比率(b/s)
    
    ##############安全选项#################
    Idle_session_timeout=600 #(用户会话空闲后10分钟)
    Data_connection_timeout=120 #(将数据连接空闲2分钟断)
    Accept_timeout=60  #(将客户端空闲1分钟后断)
    Connect_timeout=60  #(中断1分钟后又重新连接)
    Local_max_rate=50000  #(本地用户传输率50K)
    Anon_max_rate=30000  # (匿名用户传输率30K)
    Pasv_min_port=50000  # (将客户端的数据连接端口改在
    Pasv_max_port=60000  #50000—60000之间)
    Max_clients=200   #(FTP的最大连接数)
    Max_per_ip=4   #(每IP的最大连接数)
    Listen_port=5555  #(从5555端口进行数据连接)
    
    

    1.2.3
    1.2.3
    1.2.3
    1.2.3

    1.2.4 vsftpd_conf_migrate.sh

    第二部分 FTP基本使用

    2.1 查看配置项

    cat /etc/vsftpd/vsftpd.conf |grep -v '^#';
    

    更多详细配置选项前往--VSFTPD全攻略

    2.1常用命令

    安装

    yum -y install vsftpd
    
    

    vsftpd服务

    启动服务
    systemctl start vsftpd.service
    重启服务
    systemctl restart vsftpd.service
    重启服务
    systemctl stop vsftpd.service
    查看状态
    service vsftpd status
    验证vsftpd状态
    systemctl list-dependencies vsftpd
    
    

    第三部分 实例

    3.1 需求

    建立基于虚拟用户的FTP服务器,并根据以下要求配置FTP服务器

    1. 创建用户123, 密码456;
    2. 默认目录: /var/789, 有读写权限;
    3. 只能ftp不能telnet;
    4. 限制用户只能访问/var/789,不能访问其他路径
    创建目录
    # mkdir /var/789
    chmod -R 777 /var/ftp/789
    
    
    # useradd 123
    # passwd 123
    在此提示密码过短,修改/etc/pam.d/system-auth文件,输入abc后在此输入,方法成功
    
    //更改用户123的主目录为/var/789
    usermod -d /var/789 123
    //限定用户123不能telnet,只能ftp
    usermod -s /sbin/nologin 123
    
    启动服务
    systemctl start vsftpd.service
    
    

    3.2 需求

    [案例] 建立基于虚拟用户的FTP服务器,并根据以下要求配置FTP服务器。
    (1)配置FTP匿名用户的主目录为/var/ftp/anon。下载带宽限制为100kB/s
    (2)建立一个名为abc,口令为xyz的FTP账户。下载带宽限制为500kB/s。
    (3)设置FTP服务器同时登录到FTP服务器的最大链接数为100;每个IP最大链接数为3;用户空闲时间超过限值为5分钟。

    创建目录
    # mkdir /var/ftp/anon
    
    # useradd abc
    # passwd abc
    在此提示密码过短,修改/etc/pam.d/system-auth文件,输入abc后在此输入,方法成功
    
    编辑配置文件
    vim /etc/vsftpd/vsftpd.conf
    
    #LOCAL用户
    anonymous_enable=YES
    anon_root=/var/ftp/anon
    anon_max_rate=100
    local_enable=YES
    local_max_rate=500
    max_clients=100
    max_per_ip=3
    connect_timeout=300
    
    下面是用虚拟用户来实现
    vim /etc/vsftpd/vuser
    内容如下
    tom
    123
    生成数据库文件
    db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db
    chmod 600 /etc/vsftpd/vuser.db
    vim /etc/pam.d/vsftpd
    
    注释掉原来的内容
    然后加入
    auth        required    pam_userdb.so   db=/etc/vsftpd/vuser
    account     required    pam_userdb.so   db=/etc/vsftpd/vuser
    最后编辑VSFTPD.CONF加入下面两句
    guest_enable=YES
    guest_username=abc
    
    
    

    x.0 错误

    之前出现的问题, 客户端可以 ping 通服务器地址, FTP 服务为开启状体, 但是就是连接不上, 原因是因为 防火墙开启

    1. centos7的防火墙是firewall:
    systemctl stop firewalld.service #停止firewall
    systemctl disable firewalld.service #禁止firewall开机启动
    
    

    附录

    x.1 添加用户命令---useradd

    *useradd 选项 用户名

    -c comment 指定一段注释性描述。
    -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
    -g 用户组 指定用户所属的用户组。
    -G 用户组,用户组 指定用户所属的附加组。
    -s Shell文件 指定用户的登录Shell。
    -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
    
    

    x.2 删除用户命令---userdel

    userdel 选项 用户名*

    -f:强制删除用户,即使用户当前已登录; 
    -r:删除用户的同时,删除与用户相关的所有文件。
    
    

    参考
    vsftpd中关于ftpusers和user_list两个文件的说明以及vsftpd.conf中的userlist_enable和userlist_deny两个配置项的解释
    VSFTPD全攻略
    Linux怎样创建FTP服务器--修改用户默认目录
    linux如何设置一般用户密码必须达到一定强度?还有3月强制更改一次密码?
    CentOS修改用户密码,过短解决方法

    更多精彩内容请关注“IT实战联盟”哦~~~


    IT实战联盟.jpg

    相关文章

      网友评论

          本文标题:FTP服务器搭建(Centos7)

          本文链接:https://www.haomeiwen.com/subject/htbvwttx.html