vsftpd+pam_mysql+mysql

RH5.0enterprise上实现,转载marion的异样足迹。

一、安装相关软件包
mysql-5.0.41
pam_mysql-0.7RC1
vsftpd-2.0.5
openssl-0.98e

1.安装mysql-5.0.41

#groupadd mysql
#useradd -g mysql -s /sbin/nologin -M mysql
#tar zxvf mysql-5.0.41.tar.gz
#cd mysql-5.0.41
#./configure --prefix=/usr/local/mysql --sysconfdir=/etc --enable-thread-safe-client --enable-local-infile --with-charset=gbk --with-extra-charset=all --with-low-memory
#make
#make install
#cp support-files/my-medium.cnf /etc/my.cnf
#cd /usr/local/mysql
#chgrp -R mysql .
#bin/mysql_install_db --user=mysql
#chown -R root .
#chown -R mysql var
#bin/mysqld_safe --user=mysql &
#cd /usr/local/src/mysql-5.0.41
#cp support/mysql.server /etc/rc.d/init.d/mysqld
#chmod 700 /etc/rc.d/init.d/mysqld
#chkconfig --add mysqld
#chkconfig --level 345 mysqld on

测试
#/usr/local/mysql/bin/mysqladmin ping
#/usr/local/mysql/bin/mysqladmin version
#/usr/local/mysql/bin/mysql

添加root密码
#/usr/local/mysql/bin/mysqladmin -uroot -p 旧密码 password '新密码'

修改库文件的搜索路径
#vi /etc/ld.so.conf
添加如下条目:
/usr/local/mysql/lib/mysql

增加库文件及头文件的链接
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql

2.安装openssl-0.9.8e
#tar zxvf openssl-0.9.8e.tar.gz
#cd openssl-0.9.8e
#./config shared zlib
#make
#make test
#make install
mv /usr/bin/openssl /usr/bin/openssl.OFF
mv /usr/include/openssl /usr/include/openssl.OFF
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl

配置库文件搜索路径
#echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
#ldconfig -v

3.安装pam_mysql-0.7RC1

#tar zxvf  pam_mysql-0.7RC1.tar.gz
#cd  pam_mysql-0.7RC1
#./configure --with-mysql=/usr/local/mysql --with-openssl=/usr/local/ssl
#make
#make install
#cp /usr/lib/security/pam_mysql.so /lib/security/

4.安装vsftpd-2.0.5
#mkdir -pv /usr/share/empty   /var/ftp
#useradd -s /bin/false -d /var/ftp ftp
#tar xzvf vsftpd-2.0.5.tar.gz
#cd vsftpd-2.0.5
#make
#make install

安装配置文件
#cp vsftpd.conf /etc

编辑配置文件/etc/vsftpd.conf
添加:listen=YES

启动服务器
#/usr/local/sbin/vsftpd &

#chmod og-w /var/ftp

二、配置

1.准备数据库及相关表

在此,我们建立名为vsftp的数据库来存放相关虚拟用户的帐号

mysql> create database vsftp;

mysql> grant select on vsftp.* to vsftpd@localhost identified by '123456';
mysql> grant select on vsftp.* to vsftpd@127.0.0.1 identified by '123456';

mysql> use vsftp;
mysql> create table users (
    -> id int AUTO_INCREMENT NOT NULL,
    -> name char(20) binary NOT NULL,
    -> passwd char(48) binary NOT NULL,
    -> primary key(id)
    -> );

添加测试的虚拟用户,其密码采取加密存放的方式

mysql> insert into users(name,passwd) values('benet',password('123456'));
mysql> insert into users(name,passwd) values('aptech',password('123456'));

查看结果
mysql> select * from users;
+----+-----------+----------------------------------------------------------------------------+
| id | name    | passwd                                                                              |
+----+-----------+----------------------------------------------------------------------------+
|  1 | benet    | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
|  2 | aptech  | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+----+-----------+----------------------------------------------------------------------------+
3 rows in set (0.00 sec)

2.建立pam认证所需文件

#vi /etc/pam.d/vsftpd.mysql
添加如下两行
auth required /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftp table=users

usercolumn=name passwdcolumn=passwd crypt=2
account required /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftp table=users

usercolumn=name passwdcolumn=passwd crypt=2

3.修改vsftpd的配置文件,使其适应mysql认证

建立虚拟用户映射的系统用户及对应的目录
#useradd -s /sbin/nologin -d /var/ftp2 vsftp
#chmod go+rx /var/ftp2

请确保/etc/vsftpd.conf中已经启用了以下选项
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES

添加以下选项
guest_enable=YES
guest_username=vsftp
listen=YES
pam_service_name=vsftpd.mysql

三、启动vsftpd服务

#/usr/local/sbin/vsftpd &

查看端口开启情况

# netstat -tnlp |grep :21
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      23286/vsftpd

使用虚拟用户登录,验正配置结果,以下为本机的命令方式测试,你也可以在其它Win Box上用IE或者FTP客户端工具登录验正
# ftp localhost
Connected to localhost (127.0.0.1).
220 (vsFTPd 2.0.5)
Name (localhost:root): benet
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,235,31)
150 Here comes the directory listing.
-rw-r--r--    1 0        0          155985 Jun 06 07:16 vsftpd-2.0.5.tar.gz
226 Directory send OK.

转载于:https://blog.51cto.com/yueyang/581007

vsftpd+pam_mysql+mysql相关推荐

  1. vsftpd pam_mysql_vsftpd+mysql+pam虚拟用户无法登录ftp服务器,请给位大侠帮忙!

    "/etc/pam.d/vsftpd文件配置如下: #%PAM-1.0 auth sufficient /lib/security/pam_mysql.so user=vuser passw ...

  2. vsftpd mysql_虚拟主机与vsftpd和MySQL在Debian Etch

    虚拟主机与vsftpd和MySQL在Debian Etch 版本1.0 作者:Falko Timme Vsftpd是Linux最安全最快的FTP服务器之一. 通常,vsftpd配置为与系统用户一起工作 ...

  3. vsftpd+pam+mysql实现ftp构建

    一.安装所需要程序 1.事先安装好开发环境和mysql数据库; 首先配置好yum的server.repo文件 [root@localhost yum.repos.d]# cd [root@localh ...

  4. 使用vsftp虚拟用户实现安全访问控制

    一.ftp连接方式 1.命令连接 ftp在与用户交互时,首先打开的是TCP的21号端口,建立命令连接,这个连接会始终存在,直到用户输入bye的那一刻,才断开命令连接. 2.数据连接 1)主动连接 主动 ...

  5. vsftpd pam mysql_vsftpd+mysql+pam实现基于数据库的安全的ftp服务

    1.方案分析 mysql:存储用户信息的,可以放vsftpd用户的信息 pam:可插入用户认证模块 VSFTPD:安全的ftp服务 2涉及到的知识点: vsftp 软件安装.启动服务,监听端口,配置文 ...

  6. vsftpd的基于pam_mysql的虚拟用户机制实现数据传输

    vsftpd基于mysql服务实现: 查看是maradb中是否有pam-mysql,在目录/lib64/security/下. 没有就编译安装pam-mysql 步骤: 1. # yum -y  gr ...

  7. mysql pam 配置_pam_mysql 安装配置总结 (结合vsftpd)

    前一段时间,论坛里总有朋友问到pam-mysql的安装问题.比较典型的有: vsftp1.2+mysql4.1+pam_mysql0.5在RedHat AS4(32bit)下好像是有bug 还是mys ...

  8. vsftp pam mysql_VSFTP+MySQL+PAM

    Vsftp+MySQL+pam配置手册 一.安装所需软件包 apt-get install vsftpd mysql-server mysql-client libpam-mysql libpam-m ...

  9. vsftp mysql_vsftp mysql安装配置

    二.安装VSFTPD useradd nobody useradd vsftpdguest useradd -d /var/ftp ftp [root@localhost root]# chown r ...

最新文章

  1. 121.买卖股票的最佳时机
  2. 是时候给2020年做个总结了
  3. android listview显示数据库内容
  4. linux安装anaconda3时出现error,the size of ** should be 6*** bytes
  5. Java打印三角形(双层for循环)
  6. 网络编程(一)基础知识
  7. 北京计算机专业非全日制用工招聘系统,北京市公安局招录
  8. ACT的摘要可以告诉我们的内容
  9. ssh无密码登录设置方法以及出现问题 ECDSA host key 和IP地址对应的key不同的解决...
  10. python人脸比对算法_用Python实现一个简单的——人脸相似度对比
  11. xshell4 选中复制,右键粘贴
  12. 00004 死亡阴影.0001:配置文件的Unity包与修改
  13. 微信公众号自动回复如何添加超链接
  14. C++、Java、JavaScript中的正则表达式
  15. Element UI 之 Tabs 栏下拉菜单的实现
  16. Python-定时爬取指定城市天气(一)-发送给关心的微信好友
  17. java智能算法--机器学习包
  18. 6款程序员常用代码对比工具,你用过几款?
  19. 风险价值VaR(Value at Risk)和损失期望值ES(Expected shortfall)的估计
  20. 使用uni-app组件播放视频

热门文章

  1. “物联网”中,少了这项技术,会损失多少,算过吗!
  2. javaEmail发邮件是问号乱码,已解决
  3. hdu5651 xiaoxin juju needs help(逆元)
  4. sprintf 详解
  5. 心灵探索——我为什么会在家工作
  6. Linux 命令(21)—— cd 命令(builtin)
  7. C#将数据库图片显示在pictureBox
  8. English trip EM2-LP-2A Around the world Teacher:Taylor
  9. eclipse 中配置php的 XDebug调试
  10. 微信小程序 canvas 绘图问题