vsftpd

vsftpd:

    程序环境:

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

        主程序:/usr/sbin/vsftpd

        Unit File:/usr/lib/systemd/system/vsftpd.service

        文件路径映射:/var/ftp 

            ftp://ftp.magedu.com/pub/a.txt  –> /var/ftp/pub/a.txt

            用户的家目录的映射:访问ftp必须以某个系统用户的身份,此用户的家目录即文档目录;

            匿名用户:anonymous,要映射为一个系统用户,默认ftp;

        

    用户种类:

        匿名用户、系统用户、虚拟用户

    配置vsftpd:

        配置文件:vsftpd.conf

            directive value

            注意:directive之前不能有任何字符;

        匿名用户:

        anonymous_enable=YES

        anon_upload_enable=YES

        anon_mkdir_write_enable=YES

        anon_other_write_enable=YES

        系统用户:

            local_enable=YES

            write_enable=YES

            辅助认证配置文件/etc/vsftpd/ftpusers:

                pam认证的配置文件:/etc/pam.d/vsftpd

                chroot_local_users=YES

    禁锢所有的本地用户于自己的家目录中;但需要事先移除用户对家目录的写权限;

                chroot_list_enable=YES

                chroot_list_file=/etc/vsftpd/chroot_list 

    禁锢指定的文件中的用户于自己的家目录中;但需要事先移除用户对家目录的写权限;

        数据传输日志:

            xferlog_std_format=YES

            xferlog_enable=YES

            xferlog_file=/var/log/xferlog

        控制可登录vsftpd服务的用户列表:

            userlist_enable=YES

                是否启用/etc/vsftpd/user_list文件来可登录的用户;

            userlist_deny={YES|NO}

                YES:黑名单

                NO:白名单

    虚拟用户:

        用户账号存储于何处?

            文件,MySQL,Redis, …

        vsftpd的认证功能托管给pam:

            Pluggable Authencate Module,认证框架,认证库;

            通过模块完成认证功能:/usr/lib64/security/

            pam_mysql模块:

# ./configure –with-pam=/usr –with-mysql=/usr –with-pam-mods-dir=/usr/lib64/security

            # make

            # make install 

            准备数据库:

            mysql> CREATE DATABASE vsftpd;

            mysql> CREATE TABLE vsftpd.users (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name CHAR(30) NOT NULL UNIQUE KEY,password CHAR(48));

            mysql> INSERT INTO vsftpd.users (name,password) VALUES ('tom',PASSWORD('mageedu')),('jerry',PASSWORD('mageedu'));

            mysql> GRANT ALL ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'mageedu';

            mysql> GRANT ALL ON vsftpd.* TO 'vsftpd'@'127.0.0.1' IDENTIFIED BY 'mageedu';

            mysql> FLUSH PRIVILEGES;

            vsftpd通过pam_mysql进行认证的配置文件:/etc/pam.d/vsftpd.mysql

            auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

            account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

            user:连接mysql服务器的用户名,此用户要有权限访问认证vsftpd服务的数据库;

                passwd:上面的用户的密码; 

                host:mysql服务器主机地址;

                db:认证vsftpd服务的数据库名称;

                table:存放了用户和密码的表;

                usercolumn:用户名对应的字段;

                passwdcolumn:密码对应的字段;

                crypt:密码加密方法;

            准备匿名用户映射的系统用户账号:

                # mkdir /ftproot 

                # useradd  -d /ftproot  vuser

                # mkdir /ftproot/{pub,upload}

                # setfacl -m u:vuser:rwx  /ftproot/upload

            配置vsftpd:vsftpd.conf

                pam_service_name=vsftpd.mysql

                guest_enable=YES

                guest_username=vuser

            配置每匿名用户有单独的权限设定

                vsftpd.conf,添加:

                    user_config_dir=/etc/vsftpd/users_conf

                创建目录:

                    # mkdir /etc/vsftpd/vusers_conf

                为每用户提供配置文件:

                    /etc/vsftpd/vusers_conf/{tom,jerry}

                配置权限的指令:

                    anon_upload_enable

                    anon_mkdir_write_enable

                    anon_other_write_enable

原创文章,作者:songzizhe,如若转载,请注明出处:http://www.178linux.com/55874

(0)
songzizhesongzizhe
上一篇 2016-12-05 17:03
下一篇 2016-12-05 17:03

相关推荐

  • 文本处理(1)

    文本处理工具最全整理上半部

    Linux干货 2018-03-15
  • N22-浙江-情歌第一周博客作业

    一、计算机的组成及其功能    计算机有五大组成部分:CPU(控制器和运算器)、内存、输入、输出           CPU:运算、控制、寄存、缓存功能           内存:RAM       &nbsp…

    Linux干货 2016-08-15
  • Find工具实例

      1、显示当前系统上root、fadora或user1用户的默认shell。         [root@localhost ~]# grep -E "^(root|fadora|user1)\>"&n…

    Linux干货 2016-11-27
  • IO重定向和管理及管道

    IO重定向   通常对程序来讲,输入输出数据可以是键盘、鼠标、显示器等;IO重定向就是将原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器输出而是希望输入到某以文件中的可以通过Linux重定向进行这项工作。  IO重定向和FD(File Descriptor)有关。      标准输入(std…

    Linux干货 2016-08-05
  • 第二十六天 iptables 初识

      Iptables是位于用户空间,是linux系统上的防火墙管理配置规则的工具,主要用于添加、删除、管理netfilter的规则,   Netfilter是位于内核中真正的防火墙,由5个钩子组成,也叫五个规则链。 Netfilter的作用:起到过滤封包,转换与映射IP地址和端口,拆分和修改封包内容,追踪封包等功能 Iptabl…

    Linux干货 2016-07-02
  • 一切皆文件

    Linux Linux内一切皆文件;表现之一:硬件设备也通过文件表示 物理终端:/dev/console 虚拟终端: /dev/tty#[1,6] 串行终端:/dev/ttyS# 伪终端: /dev/pts/# 注意:在启动设备之后,在其上关联一个用户接口程序,即可实现与用户交互,交互式程序有两类:GUI(图形化界面)和CLI(命令行界面)。 查看终端设备:…

    Linux干货 2017-04-01