千家信息网

vsftpd快速配置及配合mysql认证登录

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,vsftpdvsftpd 是"very secure FTP daemon",安全性是它的一个最大的特点,下面来看一下vsftpd的快速配置.vsftpd主要的配置文件:/etc/pam.d/vsft
千家信息网最后更新 2025年02月04日vsftpd快速配置及配合mysql认证登录vsftpd

vsftpd 是"very secure FTP daemon",安全性是它的一个最大的特点,下面来看一下vsftpd的快速配置.

vsftpd主要的配置文件:

/etc/pam.d/vsftpd
/etc/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf

用户类别:

匿名用户:

anonymous 默认账户及家目录 ftp, /var/ftp
/var/ftp 目录属性不可更改
将其匿名子目录的属主属组ftp

anon_upload_enable=YES 开启匿名用户的上传anon_mkdir_write_enable=YES 开启写权限anon_other_write_enable=YES 上传文件的权限是600

系统用户:

至少禁止系统用户访问ftp服务,/etc/vsftpd/ftpusers,PAM(/etc/pam.d/vsftpd);
用户的account认证需要pam_unix.so与/etc/passwd相关
需要依赖于系统账户区别权限

local_umask=022

定义访问用户的黑名单:/etc/pam.d/vsftpd

auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

锁定用户的根目录
虚拟用户:非系统用户,用户账号非为可登录操作系统的用户账号(非/etc/passwd);

一般的默认设定用户通过vsftpd服务访问到的默认路径,是用户自己的家目录;默认可以自己有权限访问的所有路径间切换;

禁锢用户于其家目录中;须将用户撤销对其家目录的读权限

        chroot_local_user=YES

上传下载速率:

                anon_max_rate=0                local_max_rate=0

并发连接数限制:

                max_clients=2000                max_per_ip=50

配置mysql与vsftp的认证:

1.安装开发环境:编译时要先安装与对应的开发环境

            yum install mariadb-server mariadb-devel  pam-devel

2.安装gcc,直接安装开发包组

            yum install  "Devlopment Tools" "Server Platform  Development"

3.编译安装pam_mysql

            ]# tar xf pam_mysql-0.7RC1.tar.gz            ./configure  \            --with-pam=/usr     \            --with-mysql=/usr \            --with-pam-mods-dir=/usr/lib64/security/  #指明模块的村饭路径            make && make install

4.配置vsftpd.conf文件:

            pam_service_name=vsftpd.vusers   #指明pam文件名            guest_enable=YES   #开启来宾模式            guest_username=vuser #来宾用户

5.编写pam文件:README可查看

            auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd 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=vsftpd host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

6.创建msyql表:

            vim /etc/my.cnf            [mysqld]            skip_name_resolve=ON            innodb_file_per_table=ON            log_bin=mysql-bin

授权用户远程登录:

           GRANT ALL ON vsftpd.*  TO vsftpd@'127.0.0.1' IDENTIFIED BY 'vsftpd';           FLUSH  PRIVILEGES;           CREATE DATABASE vsftpd;           use vsftpd;           CREATE TABLE users(           id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,name VARCHAR(100) NOT NULL ,password CHAR(48) NOT NULL UNIQUE KEY(name)           );           INSERT INTO users(               name,password) VALUES ('centos',PASSWORD('centos')),('redhat',PASSWORD('redhat'));

7.创建用户并创建根目录,虚拟用户映射

             mkdir -p /ftproot/vuser             useradd -d /ftproot/vuser vuser             将用户对家目录的写权限             chmod a-w /ftproot/vuser/

8.编辑vsftpd.conf文件

           指明虚拟用户的配置文件路径           user_config_dir=/etc/vsftpd/vusers_config/

9.对每个用户建立配置文件:

           vim /etc/vsftpd/vusers_config/centos           anon_upload_enable=YES           anon_mkdir_write_enable=YES

10.接下来对服务进行访问测试

0