• 我的linux学习日记day12


    FTP,即:文件传输协议(File Transfer Protocol),基于客户端/服务器模式,默认使用20、21端口号,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发出的相关FTP命令与参数。

    FTP协议有以下两种工作模式:

    主动模式(PORT):FTP服务器主动向客户端发起连接请求。
    被动模式(PASV):FTP服务器等待客户端发起连接请求(FTP的默认工作模式)。
    vsftpd是一款运行在Linux操作系统上的FTP服务程序,具有很高的安全性和传输速度。
    vsftpd有以下三种认证模式:

    匿名开放模式:是一种最不安全的认证模式,任何人都可以无需密码验证而直接登陆。
    本地用户模式:是通过Linux系统本地的账户密码信息进行认证的模式,相较于匿名开放模式更安全,而且配置起来简单。
    虚拟用户模式:是这三种模式中最安全的一种认证模式,它需要为FTP服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在服务器系统中实际上是不存在的,仅供FTP服务程序进行认证使用。

    安装:

    yum -y install vsftpd
    setsebool -P ftpd_full_access=on

    1、修改配置文件,带注释的是需要修改和新增的配置
    vim /etc/vsftpd/vsftpd.conf

    anonymous_enable=YES   #启用匿名访问模式
    anon_umask=022   #匿名用户上传文件的umask值
    anon_upload_enable=YES   #允许匿名用户上传文件
    anon_mkdir_write_enable=YES   #允许匿名用户创建目录
    anon_other_write_enable=YES   #允许匿名用户重命名、删除等操作
    anon_root=/data/anon   #匿名用户的FTP根目录
    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_port=2231   #vsftpd服务监听的端口号
    listen=NO
    listen_ipv6=YES
    pam_service_name=vsftpd
    userlist_enable=YES
    tcp_wrappers=YES
    pasv_min_port=45000   #PASV模式最小端口号
    pasv_max_port=49000   #PASV模式最大端口号
    mkdir -p /data/anon/pub
    chown -R ftp /data/anon/pub/

    2、创建并授权匿名用户FTP根目录

    3、启动vsftpd服务,并加入开机启动

    systemctl start vsftpd
    systemctl enable vsftpd

    三、本地用户模式

    1、修改配置文件,删除之前的匿名模式配置内容,带注释的是需要修改和新增的配置

    anonymous_enable=NO   #关闭匿名访问模式
    local_enable=YES
    write_enable=YES
    local_umask=022
    local_root=/data/user   #指定本地用户的FTP根目录
    chroot_local_user=YES   #将用户权限禁锢在FTP目录
    allow_writeable_chroot=YES   #允许对FTP根目录执行写入操作
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    listen_port=2231
    listen=NO
    listen_ipv6=YES
    pam_service_name=vsftpd
    userlist_enable=YES
    tcp_wrappers=YES
    pasv_min_port=45000
    pasv_max_port=49000

    2、创建本地用户,并指定家目录

    useradd -d /data/user1 -s /sbin/nologin user1
    echo "123456" | passwd --stdin user1

    3、重启vsftpd服务

    systemctl restart vsftpd

    四、虚拟用户模式

    1、创建用于FTP认证的用户数据库文件

    vim /etc/vsftpd/testuser.txt
    test
    123456
    mike
    123456

    2、创建虚拟用户映射的系统本地用户和FTP根目录

    useradd -d /data/ftproot -s /sbin/nologin virtualftp
    chmod -Rf 755 /data/ftproot/

    3、建立用于支持虚拟用户的PAM文件

    vim /etc/pam.d/vsftpd.vu
    
    auth     required     pam_userdb.so  db=/etc/vsftpd/testuser
    account  required     pam_userdb.so  db=/etc/vsftpd/testuser

     4、为两个虚拟用户设置不同的权限,mike拥有所有权限,而test只有读取权限。

    mkdir /etc/vsftpd/testusers_dir
    touch /etc/vsftpd/testusers_dir/test
    vim /etc/vsftpd/testusers_dir/mike
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES

    5、修改配置文件,删除之前的匿名模式配置内容,带注释的是需要修改和新增的配置

    anonymous_enable=NO
    anon_umask=022
    local_enable=YES
    guest_enable=YES   #开启虚拟用户模式
    guest_username=virtual   #指定虚拟用户对应的系统用户
    allow_writeable_chroot=YES   #允许对FTP根目录执行写入操作
    write_enable=YES
    local_umask=022
    local_root=/data/ftproot
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    listen_port=2231
    listen=NO
    listen_ipv6=YES
    pam_service_name=vsftpd.vu   #指定PAM文件
    userlist_enable=YES
    tcp_wrappers=YES
    user_config_dir=/etc/vsftpd/vusers_dir   #指定虚拟用户配置文件目录
    pasv_min_port=45000
    pasv_max_port=49000

    TFTP

    占用端口号69,UDP协议

  • 相关阅读:
    提交一个spark程序及spark执行器
    前端如何让服务器主动向浏览器推送数据
    h5页面移动端iPhoneX适配方法
    详说tcp粘包和半包
    mysql配置文件 /etc/my.cnf 详细解释
    【todo】MVCC原理及与锁之间的关系
    【todo】innodb表锁的底层实现原理
    【todo】innodb行锁的底层实现原理
    【todo】mysql binlog
    [todo] spring 事务的传播性
  • 原文地址:https://www.cnblogs.com/miracle1989/p/12989672.html
Copyright © 2020-2023  润新知