阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Vsftp服务器搭建–虚拟用户使用MySQL 认证

221次阅读
没有评论

共计 6626 个字符,预计需要花费 17 分钟才能阅读完成。

1、使用 yum 方式安装 MySQL
#yum -y install mysql mysql-servermysql-devel
2、启动 MySQL 服务并修改 MySQL 管理员密码
#service mysqldstart
#mysql_secure_installation// 设置一下 root 管理员密码
3、创建 MySQL 为 vsftpd 验证的数据库与表
[root@vsftpd ~]# mysql -u root –p
Enter password:    // 此处输入 vsftpd 为刚刚为 MySQL 设置的管理员密码

mysql> create database vsftpd;  // 创建一个 vsftpd 的数据库
Query OK, 1 rowaffected (0.00 sec)
mysql> use vsftpd;    // 使用 vsftpd 数据库
mysql> create table users (
>id INT NOT NULL AUTO_INCREMENT PRIMARYKEY,
>name CHAR(15) NOT NULL UNIQUE KEY,
>passwordCHAR(48) NOT NULL );  // 创建一个 3 个列位的 users 表,一个 id 用于索引,name 用于账户名,password 用户设置密码
mysql> insert into users(name,password) values (‘Oracle’,password(‘oracle’));  // 添加一个 oracle 账户,密码为 oracle,并加密存储密码,此账户是为了等下登录 FTP 服务器用
4、创建一个 vsftpd 的 MySQL 账户用于检索 vsftpd 数据库
mysql> grant select on vsftpd.* to vsftpd@localhostidentified by ‘vsftpd’;    // 创建一个只有 select vsftpd 数据库下所有表的权限的 MySQL 账户并将密码设为 vsftpd
mysql> flush privileges;  // 只为使权限即时生效
二. 安装并配置 PAM 模块
1、安装依赖库
[root@vsftpd ~]# yum -y install gccgcc-c++ make pam pam-devel openssl openssl-devel
2、下载并安装 pam_mysql
[root@vsftpd ~]# wget http://nchc.dl.sourceforge.net/project/pam-mysql/pam-mysql/0.7RC1/pam_mysql-0.7RC1.tar.gz
[root@vsftpd ~]# tar zxvf pam_mysql-0.7RC1.tar.gz
[root@vsftpd ~]# cd pam_mysql-0.7RC1
[root@vsftpdpam_mysql-0.7RC1]# ./configure –with-openssl
[root@vsftpdpam_mysql-0.7RC1]# make
[root@vsftpd pam_mysql-0.7RC1]# make install
pam 文件默认安装到 /lib 目录下,若系统为 64 位系统,需要将文件复制一份到 /lib64 目录下
[root@vsftpd ~]# cp /lib/security/pam_mysql.*/lib64/security/

3、创建认证文件
[root@vsftpd ~]# vim /etc/pam.d/vsftpd.mysql
auth required /lib64/security/pam_mysql.souser=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=namepasswdcolumn=password crypt=2
account required/lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpdtable=users usercolumn=name passwdcolumn=password crypt=2
注意:这里是 2 行,不可以换行. 另外还要注意里面相应栏位的填写。
特别说明下 crypt 选项
crypt=0:明文密码
crypt=1:使用 crpyt() 函数 (对应 SQL 数据里的 encrypt(),encrypt() 随机产生 salt)
crypt=2:使用 MYSQL 中的 password()函数加密
crypt=3:表示使用 md5 的散列方式
user、passwd 用户名密码当然你也可以随便设置,不过需要在 mysql 里面赋予查询权限。

推荐阅读

玩转 vsftpd 服务器的四大高级配置:http://www.linuxidc.com/Linux/2013-09/90565.htm

vsFTPd 配置教程:http://www.linuxidc.com/Linux/2013-09/90562.htm

Ubuntu 实用简单的 FTP 架设 http://www.linuxidc.com/Linux/2012-02/55346.htm

Ubuntu 上架设 FTP 服务器和 Apache 服务器 http://www.linuxidc.com/Linux/2011-04/35295.htm

Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

RHEL6 平台下 SeLinux 和 vsftpd 的匿名上传的简单案例 http://www.linuxidc.com/Linux/2013-04/82300.htm

Linux 系统 vsftpd 源码安装 http://www.linuxidc.com/Linux/2013-03/81475.htm

vsftpd 的安全配置案例分析 http://www.linuxidc.com/Linux/2012-12/76501.htm

三.vsftpd 的安装与设置
1、使用 yum 方式安装 vsftpd
[root@vsftpd ~]# yum -y install vsftpd
2、备份 vsftpd 的配置文件
[root@vsftpd ~]# cp /etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf.bak
3、修改 vsftpd.conf
将 anonymous_enable 选项改为 anonymous_enable=NO
将 pam_service_name 选项改为 pam_service_name=vsftpd.MySQL  // 这里更改为上面创建的认证文件名
并添加如下:
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/home/share/$USER
guest_enable=YES
guest_username=vsftpd
chroot_local_user=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
4、创建一个 vsftpd 服务的宿主用户 vsftpd 账户 (注:账户可以任意取)
[root@vsftpd ~]# useradd -s /sbin/nologin -d /home/share/vsftpd
5、在 /etc/vsftpd/ 下面创建一个 vsftpd_user_conf 目录
[root@vsftpd ~]# mkdir/etc/vsftpd/vsftpd_user_conf

6、将 MySQL 服务器及 vsftpd 服务器开机启动

[root@vsftpd ~]# chkconfig  –level 35 mysqld on
[root@vsftpd ~]# chkconfig  –level 35 vsftpd on
7、定制虚拟用户配置文件模版
[root@vsftpd ~]# vim/etc/vsftpd/vsftpd_user_conf/userclone.tmp
local_root=/home/share/
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=300
data_connection_timeout=90
max_clients=10
max_per_ip=110
local_max_rate=525000
                  ______________________________________________________
8、复制用户模版给用户
[root@vsftpd ~]#cd /etc/vsftpd/vsftpd_user_conf
[root@vsftpd ~]#cp userclone.tmp Oracle
[root@vsftpd ~]#vimoracle
将 local_root=/home/share/ 改为 local_root=/home/share/oracle

9、开启 iptables 防火墙
[root@vsftpd ~]#iptables -A INPUT -p tcp –dport 21 -j ACCEPT
[root@vsftpd ~]#iptables -A INPUT -p tcp –dport 23 -j ACCEPT
[root@vsftpd ~]#iptables-save > /etc/sysconfig/iptables
[root@vsftpd ~]# service iptables start
iptables: Applyingfirewall rules:                        [OK]
[root@vsftpd ~]#setsebool -P allow_ftpd_full_access 1
// 设置 SElinux 允许 ftp 用户访问
10、创建 oracle 用户登录目录
[root@vsftpd ~]#mkdir /home/share/oracle
[root@vsftpd ~]# chown –R vsftpd:vsftpd /home/share
11、现在可以使用 oracle 用户进行登录了。

1、使用 yum 方式安装 MySQL
#yum -y install mysql mysql-servermysql-devel
2、启动 MySQL 服务并修改 MySQL 管理员密码
#service mysqldstart
#mysql_secure_installation// 设置一下 root 管理员密码
3、创建 MySQL 为 vsftpd 验证的数据库与表
[root@vsftpd ~]# mysql -u root –p
Enter password:    // 此处输入 vsftpd 为刚刚为 MySQL 设置的管理员密码

mysql> create database vsftpd;  // 创建一个 vsftpd 的数据库
Query OK, 1 rowaffected (0.00 sec)
mysql> use vsftpd;    // 使用 vsftpd 数据库
mysql> create table users (
>id INT NOT NULL AUTO_INCREMENT PRIMARYKEY,
>name CHAR(15) NOT NULL UNIQUE KEY,
>passwordCHAR(48) NOT NULL );  // 创建一个 3 个列位的 users 表,一个 id 用于索引,name 用于账户名,password 用户设置密码
mysql> insert into users(name,password) values (‘Oracle’,password(‘oracle’));  // 添加一个 oracle 账户,密码为 oracle,并加密存储密码,此账户是为了等下登录 FTP 服务器用
4、创建一个 vsftpd 的 MySQL 账户用于检索 vsftpd 数据库
mysql> grant select on vsftpd.* to vsftpd@localhostidentified by ‘vsftpd’;    // 创建一个只有 select vsftpd 数据库下所有表的权限的 MySQL 账户并将密码设为 vsftpd
mysql> flush privileges;  // 只为使权限即时生效
二. 安装并配置 PAM 模块
1、安装依赖库
[root@vsftpd ~]# yum -y install gccgcc-c++ make pam pam-devel openssl openssl-devel
2、下载并安装 pam_mysql
[root@vsftpd ~]# wget http://nchc.dl.sourceforge.net/project/pam-mysql/pam-mysql/0.7RC1/pam_mysql-0.7RC1.tar.gz
[root@vsftpd ~]# tar zxvf pam_mysql-0.7RC1.tar.gz
[root@vsftpd ~]# cd pam_mysql-0.7RC1
[root@vsftpdpam_mysql-0.7RC1]# ./configure –with-openssl
[root@vsftpdpam_mysql-0.7RC1]# make
[root@vsftpd pam_mysql-0.7RC1]# make install
pam 文件默认安装到 /lib 目录下,若系统为 64 位系统,需要将文件复制一份到 /lib64 目录下
[root@vsftpd ~]# cp /lib/security/pam_mysql.*/lib64/security/

3、创建认证文件
[root@vsftpd ~]# vim /etc/pam.d/vsftpd.mysql
auth required /lib64/security/pam_mysql.souser=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=namepasswdcolumn=password crypt=2
account required/lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpdtable=users usercolumn=name passwdcolumn=password crypt=2
注意:这里是 2 行,不可以换行. 另外还要注意里面相应栏位的填写。
特别说明下 crypt 选项
crypt=0:明文密码
crypt=1:使用 crpyt() 函数 (对应 SQL 数据里的 encrypt(),encrypt() 随机产生 salt)
crypt=2:使用 MYSQL 中的 password()函数加密
crypt=3:表示使用 md5 的散列方式
user、passwd 用户名密码当然你也可以随便设置,不过需要在 mysql 里面赋予查询权限。

推荐阅读

玩转 vsftpd 服务器的四大高级配置:http://www.linuxidc.com/Linux/2013-09/90565.htm

vsFTPd 配置教程:http://www.linuxidc.com/Linux/2013-09/90562.htm

Ubuntu 实用简单的 FTP 架设 http://www.linuxidc.com/Linux/2012-02/55346.htm

Ubuntu 上架设 FTP 服务器和 Apache 服务器 http://www.linuxidc.com/Linux/2011-04/35295.htm

Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

RHEL6 平台下 SeLinux 和 vsftpd 的匿名上传的简单案例 http://www.linuxidc.com/Linux/2013-04/82300.htm

Linux 系统 vsftpd 源码安装 http://www.linuxidc.com/Linux/2013-03/81475.htm

vsftpd 的安全配置案例分析 http://www.linuxidc.com/Linux/2012-12/76501.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计6626字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中