设为首页 收藏本站
查看: 1188|回复: 0

[经验分享] vsftp搭建文档

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-8-25 09:30:09 | 显示全部楼层 |阅读模式
FTP全名是File Transfer Protocol(文件传输协议) C/S架构
简介:
下面是关于FTP这个服务的属性
(1)FTP服务相关软件
IIS Serv-U Vsftpd proftpd pureftpd
(2)FTP客户端相关软件
ftp命令 CuteFTP FlashFTP LeapFTP Filezilla gftp kuftp
(3)VSFTP的守护进程
/usr/sbin/vsftpd
(4)FTP的启动脚本
/etc/init.d/vsftpd
(5)FTP的端口
TCP协议的20,21端口与客户端进行通信
20用于建立数据连接,传输文件数据。(数据端口)
21用于建立控制连接,并传输FTP控制命令。(命令端口)
(6)用户控制列表文件
/etc/vsftpd/ ftpusers文件中的用户禁止登录FTP服务器(黑名单)
/etc/vsftpd/ user_list文件中的用户可能被禁止或允许登录FTP服务器,具体看vsftpd.conf的设置
(7)工作模式
主动模式:
客户端想服务端21端口发送建立连接请求,需要传输数据时,客户端会通过port命令告诉服务器自己监听的端口,服务器会主动通过20端口与客户端建立数据连接。

  被动模式
客户端想服务端21端口发送建立连接请求,需要传输数据时,
服务器以pasv命令告诉客户我打开了某个端口(非20端口),你来连接我,客户端会像服务器的非20端口建立数据连接
(8)根据传输文件是否进行字符转换分为:
文本模式(又称为ASCII)以文本序列传输数据,用的较多
二进制模式(又称为Binary模式)以二进制序列传输数据


主配置文件
/etc/vsftpd/vsftpd.conf



搭建FTP服务:
1、搭建yum仓库
(1)mount /dev/cdrom /mnt
   (2)cat /etc/yum.repos.d/rhel-debuginfo.repo
[rhel-Server]
name=Red Hat Enterprise Server
baseurl=file:///mnt/Server
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
2、安装
yum -y install vsftpd*

配置选项讲解
实验1
  • 创建测试文件
  • 匿名用户ftp对/var/ftp/pub有写入权限
  • 允许匿名用户浏览
  • 允许用户(匿名,本地,虚拟)有上传权限
  • 允许匿名用户有上传权限
  • 允许匿名用户有上传文件夹权限
  • 禁止匿名用户有删除,覆盖等权限

    (1)查看ftp的默认根路径,默认是有一个pub目录(默认的跟目录),
    [iyunv@Centos2 ~]# ls /var/ftp/
    pub
    (2)备份配置文件
    cd /etc/vsftpd/vsftpd.confg
    cp vsftpd.conf vsftpd.bak
    vim vsftpd.conf
    内容如下
    write_enable=YES
    anon_umask=022
    anonymous_enable=YES
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=NO 是否允许匿名用户有其他写入权(改名,删除,覆盖)
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    listen=YES
    pam_service_name=vsftpd
    userlist_enable=YES
    tcp_wrappers=YES
    (3)启动服务
    service vsftpd start
    (4)改变根目录的属主,如果不改变的话,只能访问,其他权限不能生效。因为我们是以ftp用户的身份访问的,而pub默认的属主属组是root。
    chown ftp /var/ftp/pub

    验证:
    在网络或是计算中输入ftp地址:格式如下图。
    我们会看到默认的pub目录。
    图1

    进入到pub目录下,可以创建和上传测试目录了。如图2

    图2
    注意:(1)修改完配置之后需要重启完服务才能生效
    (2)还需要从新从客户端登陆,否则修改后的配置看不到效果。

    实验2
  • 创建测试帐号u1、u2、u3密码都为“user”
  • 允许本地用户访问
  • 将权限掩码设为077
  • 将本地帐号禁锢在宿主目录中
  • 只允许u1、u2两个用户可以登录

    创建测试用户,并且设置密码
    [iyunv@crushlinux ~]# useradd u1
    [iyunv@crushlinux ~]# echo "user" |passwd --stdin u1
    [iyunv@crushlinux ~]# useradd u2
    [iyunv@crushlinux ~]# echo "user" |passwd --stdin u2
    [iyunv@crushlinux ~]# useradd u3
    [iyunv@crushlinux ~]# echo "user" |passwd --stdin u3

    在配置文件中加入红色部分内容
    [iyunv@crushlinux ~]# vi /etc/vsftpd/vsftpd.conf

    local_enable=YES
    local_umask=077
    chroot_local_user=YES
    write_enable=YES
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    listen=YES
    pam_service_name=vsftpd
    userlist_enable=YES
    userlist_deny=NO
    tcp_wrappers=YES



    将允许登陆的用户加入到白名单中

    vi /etc/vsftpd/user_list
    u1
    u2

    service vsftpd restart

    登陆验证
    格式为:ftp://用户名:密码@ftpIP地址


    登陆上默认是空白的,因为这是用户的家目录。

    用u3用户登陆,会报错误(windows不同系统报错不会完全一致):


    实验3
    构建基于虚拟用户的FTP服务
    创建账号数据
    1.建立虚拟FTP用户的帐号数据库文件
    2.创建FTP根目录及虚拟用户映射的系统用户
    3.建立支持虚拟用户的PAM认证文件
    添加虚拟用户支持
    4.在vsftpd.conf文件中添加支持配置
    5.为个别虚拟用户建立独立的配置文件
    启动服务并测试
    6.重新加载vsftpd配置
    7.使用虚拟FTP账户访问测试

    实验部分
    1.建立虚拟FTP用户的帐号数据库文件用到db_load工具先安装软件包
    rpm -ivh db4-utils-4.7.25-17.el6.x86_64.rpm
    cd /etc/vsftpd/
    2、创建虚拟用户文件
    vim user
    a
    1
    b
    1
    c
    1

    基数行代表用户名,偶数行代表密码

    通过db_load工具创建出Berkeley DB格式的数据库文件
    db_load -T -t hash -f user user.db

        -f 指定数据原文件
    -T允许非Berkeley DB的应用程序使用文本格式转换的DB数据文件
    -t hash读取文件的基本方法
    3、创建虚拟用户对应的系统用户
    useradd -s /sbin/nologin vu
    4、建立支持虚拟用户的PAM认证文件
    vi /etc/pam.d/vsftpd.vu
    加入以下两行
    auth       required     /lib64/security/pam_userdb.so db=/etc/vsftpd/user
    account    required     /lib64/security/pam_userdb.so db=/etc/vsftpd/user
    对应刚才生成user.db的文件
    5、在vsftpd的配置文件中支持虚拟用户
    注意:在做虚拟用户的时候,一定要去掉userlist_deny=NO
    这个选项,否则会显示用户验证失败
    vi /etc/vsftpd/vsftpd.conf
    guest_enable=YES  启用用户映射功能
    guest_username=vu  指定映射的系统用户名称
    pam_service_name=vsftpd.vu  指定新的PAM认证文件
    local_enable=YES
    local_umask=077
    chroot_local_user=YES  如果红色3条配置没有的话就会报错:用户身份验证失败

    virtual_use_local_privs=YES
    如果没有这条配置的话 上传将会显示错误.这条最重要
    还要注意每行配值的末尾不要有空行,否则也会有报错



    6.为个别虚拟用户建立独立的配置文件
    vi /etc/vsftpd/vsftpd.conf   加入下面一行
    user_config_dir=/etc/vsftpd/user_dir用户配置目录支持
    为用户a、b建立独立的配置目录及文件 这一行也是必须有的

    mkdir /etc/vsftpd/user_dir
    vim a
    local_root=/test   规定了a用户的根目录  注意:一定要把目录的属主改为虚拟用户对应的系统用户。


    默认就是所有权限


    总结:本地用户和虚拟用户不能同时登录、因为认证方式只有一种
    本地是pam_service_name =vsftpd
    虚拟是pam_service_name =vsftpd.vu




















    实验4
  • 修改vsftpd服务的监听地址,端口

    • IP为:192.168.200.129
    • 端口为:2121

  • 使用vsftpd服务的被动模式

    • 下限端口为24500
    • 上限端口为24600

  • 限制vsftpd服务的并发数,传输速度

    • 限制并发客户连接最多200
    • 限制每个IP地址的连接数最多50
    • 限制匿名用户传输速率为50KB/s
    • 限制本地用户传输速率为200KB/s
      [iyunv@crushlinux ~]# netstat -naptu |grep "vsftpd"
      [iyunv@crushlinux ~]# vi /etc/vsftpd/vsftpd.conf
      listen=YES
      listen_address=192.168.200.129
      listen_port=2121

      pasv_enable=YES
      pasv_min_port=24500
      pasv_max_port=24600

      max_clients=200
      max_per_ip=50
      anon_max_rate=50000
      local_max_rate=200000

      [iyunv@crushlinux ~]# service vsftpd restart
      [iyunv@crushlinux ~]# netstat -naptu |grep "vsftpd"
      tcp        0      0 192.168.200.129:2121        0.0.0.0:*                   LISTEN      3552/vsftpd   





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-262674-1-1.html 上篇帖子: 自己动手写一个FTP客户端 下篇帖子: vsftp 使用虚拟用户
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表