创建基于mysql的ftp虚拟用户
2017-10-28 16:53
295 查看
实验环境:需要两台主机
1、一台mariadb server
2、一台ftp server
一、mariadb服务器
1、安装mariadb包
yum install mariadb-devel
2、跑下安全脚本
mysql_secure_installation
3、创建数据库 mysql -uroot -p >create database vsftpd; >use vsftpd >create table ftpusers(name char(30),pass char(50));(创建表) >insert ftpusers values('ftp1',password('centos')),('ftp2',password('magedu'));(添加表内容) >grant select on vsftpd.ftpusers to 'ftp'@'172.17.166.166' identified by 'centos';(给ftp@172.17.166.166授权)二、ftp服务器 1、安装包组以及所需要的包 yum groupinstall "development tools" yum install mysql-devel pam-devel 2、编译安装 pam_mysql-0.7RC1.tar.gz tar xvf pam_mysql-0.7RC1.tar.gz cd pam_mysql-0.7RC1 ./configure --with-pam-mods-dir=/lib64/security --with-pam=/usr make && make install 3、创建用户 useradd -d /app/ftpdir -r -m ftpuser (创建系统用户,使所有用户访问都指向ftpuser) 4、编写模块配置文件 vim /etc/pam.d/vsftpd.mysql
auth required pam_mysql.so user=ftp passwd=centos host=172.17.177.177 db=vsftpd table=ftpusers usercolumn=name passwdcolumn=pass crypt=2 account required pam_mysql.so user=ftp passwd=centos host=172.17.177.177 db=vsftpd table=ftpusers usercolumn=name passwdcolumn=pass crypt=2
其中选项为: auth 表示认证 account 验证账号密码正常使用 required 表示认证要通过 pam_mysql.so模块是默认的相对路径,是相对/lib64/security/路径而言,也可以写绝对路径;后面为给此模块传递的参数 user=vsftpd为登录mysql的用户 passwd=magedu 登录mysql的的密码 host=mysqlserver mysql服务器的主机名或ip地址 db=vsftpd 指定连接msyql的数据库名称 table=users 指定连接数据库中的表名 usercolumn=name 当做用户名的字段 passwdcolumn=password 当做用户名字段的密码 crypt=2 密码的加密方式为mysql password()函数加密 5、更改ftp配置文件 vim /etc/vsftpd/vsftpd.conf pam_service_name=vsftpd.mysql 修改 再加下面行 guest_enable=yes(开启指定用户选项) guest_username=ftpuser(指定用户) user_config_dir=/etc/vsftpd/conf.d/(指定目录,使其每个虚拟用户的权限不同)
6、创建目录 mkdir /etc/vsftpd/conf.d/ cd /etc/vsftpd/conf.d/ vim /etc/vsftpd/conf.d/ftp1 anon_upload_enable=yes(允许ftp1上传文件) vim /etc/vsftpd/conf.d/ftp2 local_root=/app/ftpdir2(指定ftp2的根文件为/app/ftpdir2)
7、设置权限 cd /app chmod 555 /app/ftpdir/(根目录不能有写权限) mkdir /app/ftpdir/upload chown ftpuser /app/ftpdir/upload mkdir /app/ftpdir2 chmod 555 /app/ftpdir2三、测试是否成功 用ftp1登录测试
当看到这个状态时候,证明ftp1测试成功
用ftp2登录测试
当看到这个状态时,证明ftp2也没问题。那么恭喜你,已经成功搭建好基于mysql的ftp!!!!
1、一台mariadb server
2、一台ftp server
一、mariadb服务器
1、安装mariadb包
yum install mariadb-devel
2、跑下安全脚本
mysql_secure_installation
3、创建数据库 mysql -uroot -p >create database vsftpd; >use vsftpd >create table ftpusers(name char(30),pass char(50));(创建表) >insert ftpusers values('ftp1',password('centos')),('ftp2',password('magedu'));(添加表内容) >grant select on vsftpd.ftpusers to 'ftp'@'172.17.166.166' identified by 'centos';(给ftp@172.17.166.166授权)二、ftp服务器 1、安装包组以及所需要的包 yum groupinstall "development tools" yum install mysql-devel pam-devel 2、编译安装 pam_mysql-0.7RC1.tar.gz tar xvf pam_mysql-0.7RC1.tar.gz cd pam_mysql-0.7RC1 ./configure --with-pam-mods-dir=/lib64/security --with-pam=/usr make && make install 3、创建用户 useradd -d /app/ftpdir -r -m ftpuser (创建系统用户,使所有用户访问都指向ftpuser) 4、编写模块配置文件 vim /etc/pam.d/vsftpd.mysql
auth required pam_mysql.so user=ftp passwd=centos host=172.17.177.177 db=vsftpd table=ftpusers usercolumn=name passwdcolumn=pass crypt=2 account required pam_mysql.so user=ftp passwd=centos host=172.17.177.177 db=vsftpd table=ftpusers usercolumn=name passwdcolumn=pass crypt=2
其中选项为: auth 表示认证 account 验证账号密码正常使用 required 表示认证要通过 pam_mysql.so模块是默认的相对路径,是相对/lib64/security/路径而言,也可以写绝对路径;后面为给此模块传递的参数 user=vsftpd为登录mysql的用户 passwd=magedu 登录mysql的的密码 host=mysqlserver mysql服务器的主机名或ip地址 db=vsftpd 指定连接msyql的数据库名称 table=users 指定连接数据库中的表名 usercolumn=name 当做用户名的字段 passwdcolumn=password 当做用户名字段的密码 crypt=2 密码的加密方式为mysql password()函数加密 5、更改ftp配置文件 vim /etc/vsftpd/vsftpd.conf pam_service_name=vsftpd.mysql 修改 再加下面行 guest_enable=yes(开启指定用户选项) guest_username=ftpuser(指定用户) user_config_dir=/etc/vsftpd/conf.d/(指定目录,使其每个虚拟用户的权限不同)
6、创建目录 mkdir /etc/vsftpd/conf.d/ cd /etc/vsftpd/conf.d/ vim /etc/vsftpd/conf.d/ftp1 anon_upload_enable=yes(允许ftp1上传文件) vim /etc/vsftpd/conf.d/ftp2 local_root=/app/ftpdir2(指定ftp2的根文件为/app/ftpdir2)
7、设置权限 cd /app chmod 555 /app/ftpdir/(根目录不能有写权限) mkdir /app/ftpdir/upload chown ftpuser /app/ftpdir/upload mkdir /app/ftpdir2 chmod 555 /app/ftpdir2三、测试是否成功 用ftp1登录测试
当看到这个状态时候,证明ftp1测试成功
用ftp2登录测试
当看到这个状态时,证明ftp2也没问题。那么恭喜你,已经成功搭建好基于mysql的ftp!!!!
相关文章推荐
- 实验:实现基于MYSQL的FTP虚拟用户
- FTP基于PAM和MySQL/MariaDB实现虚拟用户访问控制
- 实验:实现基于mysql的ftp虚拟用户
- ftp服务----基于虚拟用户的创建
- 基于vsftpd+pam+mysql架设ftp并实现虚拟用户登录
- vsftpd + Berkeley DB 创建基于虚拟用户的FTP
- 基于vsftpd+pam+mysql架设ftp并实现虚拟用户登录
- 搭建FTP-----实现基于mysql验证的虚拟用户
- 创建vsftpd服务器基于mysql的虚拟用户认证
- FTP(六)实现基于MYSQL验证的FTP虚拟用户
- FTP服务学习笔记之基于MySQL+PAM的vsftpd虚拟用户
- 创建vsftpd的基于pam_mysql的虚拟用户机制
- FTP基于PAM和MySQL/MariaDB实现虚拟用户访问控制 推荐
- linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建
- linux下创建FTP虚拟用户的配置过程--非系统账户登陆FTP
- Postfix-2.11+Dovecot-2.0.9+MySQL+Cyrus-sasl+Extmail-1.2实现基于虚拟用户的邮件系统架构 推荐
- vsftpd的基于pam_mysql的虚拟用户机制
- FTP(五)创建虚拟用户
- vsftpd+openssl+mysql实现sftp和ftp虚拟用户
- 基于虚拟用户的ftp服务器