作者:陶金 网名:imtj(www.chinaunix.com)

转载请保留上述信息

--------------------------------------------------------------

我是参考http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=proxy&Number=450046&page=0&view=collapsed&sb=5&o=all&fpart=这位老大的做法做的,但是他的系统是FreeBsd.我是用RedHat AS3 +Squid(RedHat自带) +

MySql(RedHat自带),作的方法是大同小异,但是有些区别,我把他写出来,免得大家跟我 一样走 一些弯路.

(1)安装 squid mysql 可以使用RedHat AS3自带的光盘上的,当然也可以自己编译.下载mysql_auth

(2)tar -zxvf mysql_auth-0.6.tar.gz

cd mysql_auth-0.6

这是我们要修改Makefile,我把我自己的Makefile贴出来

CC = gcc

CFLAGS = -I/usr/include -L/usr/lib/mysql

LDFLAGS = -lmysqlclient

SRC = src

OBJS = $(SRC)/mysql_auth.o $(SRC)/confparser.o $(SRC)/mypasswd.o

INSTALL = /usr/bin/install

CONF = $(SRC)/mysql_auth.conf

all : mysql_auth mypasswd

clean:

rm -rf src/*.o *.o mysql_auth mypasswd

mysql_auth: $(OBJS)

$(CC) -o $@ $(SRC)/mysql_auth.c $(SRC)/confparser.c $(LDFLAGS) $(CFLAGS)

mypasswd: $(OBJS)

$(CC) -o $@ $(SRC)/mypasswd.c $(SRC)/confparser.c $(LDFLAGS) $(CFLAGS)

install:

$(INSTALL) -o nobody -g nogroup -m 755 mysql_auth /usr/local/squid/bin/mysql_auth

$(INSTALL) -o root -g wheel -m 700 mypasswd /usr/local/bin/mypasswd

$(INSTALL) -o nobody -g nogroup -m 600 $(CONF) /usr/local/squid/etc/mysql_auth.conf

$(INSTALL) -o nobody -g nogroup -m 600 $(CONF) /usr/local/squid/etc/mysql_auth.conf.default

主要是修改CFLAGS = -I/usr/include -L/usr/lib/mysql.如果是RPM安装,可以直接按照我说的方式修改

(3)在编译以前,我们要创建目录/usr/local/squid/bin和/usr/local/squid/etc

然后运行make;make intall这样我们的模块就安装成功了.

(4)mysql -u root -p < create_script (创建认证数据库)

输入一个认证的数据

mysql -u root -pxxxx

mysql>insert into data values ('guest', 'guest');

(5)修改/etc/squid/squid.conf

auth_param basic program /usr/local/squid/bin/mysql_auth/mysql_auth(这里要注意确实是输入两次mysql_auth,而不是我写错了,安装说明是输入一次,怎么都不能成功.)

acl normal proxy_auth REQUIRED

http_access allow normal

还有MYSQL认证一定要放在其他的认证前面,不然会无法通过

(6)修改/usr/local/squid/etc/mysql_auth.conf

其实我们真真要修改的地方不多

#

# mysql_auth.conf - an mysql authenticator config file

# this is the default name. you can call this by other name,

# but set up it in mysql_auth-source/src/define.h.

#

# comment: first character in line is '#'

# empty line (EOL at first) allowed

#

# format of parameters and their values:

# parameter - SPACE(S) and/or TAB(S) - value

#

# IMPORTANT: see the mysql_auth-source/scripts/create_script

# this configuration file made by this script

#

# by Ervin Hegedus, 2002, 2003

# hostname

#

# where is the mysql server - the server hostname or IP address;

# first 'hostname' directive, and after space(s) or tab(s) its

# value

#

# default:

hostname localhost(指定数据库主机名)

# user

#

# which user can connect to database

# default:

user squid(指定连接数据库用户)

# password

#

# user's password for database, that store the accounts

# default:

password squid(指定联接数据库密码)

默认会创建:用户名squid 密码squid用户

# database

#

# mysql database name, where accounts places are

# default:

database mysql_auth(指定联接数据库)

# mysql socket

#

# if mysqld doesn't use INET socket, you must to set this parameter

# where is the location of mysqld socket; if mysqld use INET socket,

# put NULL value

# default:

mysqld_socket /var/lib/mysql/mysql.sock(这个地方要注意,默认/tmp/mysqld.sock我们使用RPM安装MYSQL,SOCK不在哪儿,而是我写的这个地方)

# next three directives tells what will the select query,

# like this:

# SELECT * FROM table WHERE user_column LIKE "username" AND password_column LIKE "password"

# where username and password comes from client in HTTP header,

# and user_column and password_column is the columns name in table

# this is an easy way to tune this program to your existing database

# table

#

# the table name, where accounts exist in user-password pair

# default:

table data (指定联接的表)

# user_column

#

# user column name in table

# if you already have a database, what contains user-password

# pair, you can set it here

user_column user (指定联接的用户字断)

# password_column

#

# password column name in table

# like user column name above

password_column password(指定联接用户密码)

# encrypt_password_form

#

# passwords are stored in encrypted form,

# using mysql internal 'password()' function

# this mean, you just storing the passwords encrypted format,

# Squid and clients doesn't use encrypt form!

# The value is case insensitive (YES/yes or not one of these).

# For backward compatibility, default is NO.

encrypt_password_form NO(是否加密数据库)

大家配置这个的时候要注意mysqlq_sock这个配置

(6)配置成功以后大家,从新起动squid

/etc/rc.d/init.d/squid restart

实际上大家这个时候不需要使用SQL命令来添加用户,可是使用/home/mysql_auth-0.6/mypasswd username(输入用户名)

自动提示你输入密码,就可以创建MYSQL认证的用户

是不是很方便了....好了这样就可以成功的配置mysql + squid 认证了!

mysql squid_Linux 实现 squid+mysql认证相关推荐

  1. Mysql —— C语言链接mysql数据库,用户 角色 权限(用户根据角色的不同拥有增删改查的权限、用户有三种认证方式)

    db_修改过(用户 角色 权限): 1.新增用户时候id 改为最大id值加一,之前用的select查看出来的记录数加一,删除后再增加会出错: 2.删除用户时候,若该用户创建过其他用户(不能改此用户名. ...

  2. emq+mysql设置_EMQ--添加mysql认证及mysql插件访问控制

    EMQ-百万级分布式开源物联网MQTT消息服务器. MQTT 认证设置 EMQ 消息服务器认证由一系列认证插件(Plugin)提供,系统支持按用户名密码.ClientID 或匿名认证. 系统默认开启匿 ...

  3. MySQL数据库加密和解密~认证登陆密码(mysql.user)和MySQL不区分大小写

    MySQL数据库认证密码有两种方式: 1:MySQL 4.1版本之前是MySQL323加密 2:MySQL 4.1和之后的版本都是MySQLSHA1加密还有函数:AES_ENCRYPT()加密函数和A ...

  4. 【MySQL 8.0 OCP 1Z0-908认证考试】题库精讲--第三讲mysql8.0安装配置升级(中)

    此专题题目较多,因此分为上中下三部分来讲,此为中篇. 完整版题库请到我的资源中下载,此为传送门. https://download.csdn.net/download/kanon_lgt/850104 ...

  5. 【MySQL 8.0 OCP 1Z0-908认证考试】题库精讲--第三讲mysql8.0安装配置升级(上)

    第三讲--mysql8.0安装配置升级专题(上) 此专题题目较多,因此分为上中下三部分来讲,此为上篇. 完整版题库请到我的资源中下载,此为传送门.https://download.csdn.net/d ...

  6. 【MySQL 8.0 OCP 1Z0-908认证考试】题库精讲--第四讲mysql8.0权限安全审计(上)

    此专题题目较多,因此分为上下两部分来讲,此为上篇. 完整版题库请到我的资源中下载,此为传送门. https://download.csdn.net/download/kanon_lgt/8501041 ...

  7. Node.js数据库与身份验证(MySQL,前后端身份认证:Session 认证机制,JWT认证机制)

    目录 MySQL SQL 语句语法 where 条件.and 和 or 运算符.order by 排序.count(*) 函数 在express项目中操作 MySQL 安装与配置 mysql 模块 1 ...

  8. 【MySQL 8.0 OCP 1Z0-908认证考试】题库精讲--第五讲mysqlbinlog与mysqldump(下)

    此专题题目较多,因此分为上下两部分来讲,此为下篇. 完整版题库请到我的资源中下载,此为传送门.https://download.csdn.net/download/kanon_lgt/85010419 ...

  9. 【MySQL 8.0 OCP 1Z0-908认证考试】题库精讲--第五讲mysqlbinlog与mysqldump(上)

    此专题题目较多,因此分为上下两部分来讲,此为上篇. 完整版题库请到我的资源中下载,此为传送门.https://download.csdn.net/download/kanon_lgt/85010419 ...

最新文章

  1. linux内核层功能 和核心,Linux内核研发工程师
  2. python集合(set)+常见方法+交叉并补
  3. Pytorch+CNN+猫狗分类实战
  4. “人工智能大脑”跳槽记:吴恩达所理解的智能
  5. 关于坐标系,关于矩阵及线性相关和无关的关系
  6. Android之screenOrientation属性
  7. Express 路由模块化以及 Express 应用程序生成器
  8. 深源恒际医疗票据OCR落地九省市 服务范围覆盖过半市场
  9. Spring-RestTemplate之urlencode参数解析异常全程分析
  10. python标准化_数据标准化与Python实现
  11. python中类的使用_Python第九课-使用 类(class)创造新的数据类型!
  12. 机器人学中的状态估计 中文版_《机器人学中的状态估计》-05偏差,匹配和外点...
  13. python凯撒加密带大小写_python实现凯撒加密
  14. oracle11g和10的区别,同平台升级 oracle 10 到 oracle11g的一些考虑和实际操作
  15. 基于微信小程序的二手交易平台源码
  16. 使用SpreadJS迅速开发一套属于自己的欧洲杯赛程小工具
  17. 练字格子纸模板pdf_十字田字格模板空格40格-练字用书十字格a4打印版下载最新excel版-西西软件下载...
  18. ubuntu 19.04下交叉编译64位vlc 3.0.8
  19. R语言中的函数5:purrr:map()
  20. linux安装tt客户端,timesten的安装与配置(linux)

热门文章

  1. 期末前端web大作业:用DIV+CSS技术设计的动漫网站
  2. MarchingCubes算法提取等值面的基本原理
  3. matlab变量及操作
  4. linux的简体中文
  5. Vue + RTP 视频实时监控
  6. mac按键难回弹(按下去软软的)
  7. 获取当前时间和一年后时间(中国标准时间)时间处理
  8. 多传感器融合定位(4-基于滤波的2融合方法)2-使用仿真数据进行imu-gnss eskf和时变系统下的可观测性分析
  9. 简练软考知识点整理-项目收尾过程组
  10. 网易我的世界手游服务器怎么发全体信息,网易我的世界手机怎么私聊 | 手游网游页游攻略大全...