mysql squid_Linux 实现 squid+mysql认证
作者:陶金 网名: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认证相关推荐
- Mysql —— C语言链接mysql数据库,用户 角色 权限(用户根据角色的不同拥有增删改查的权限、用户有三种认证方式)
db_修改过(用户 角色 权限): 1.新增用户时候id 改为最大id值加一,之前用的select查看出来的记录数加一,删除后再增加会出错: 2.删除用户时候,若该用户创建过其他用户(不能改此用户名. ...
- emq+mysql设置_EMQ--添加mysql认证及mysql插件访问控制
EMQ-百万级分布式开源物联网MQTT消息服务器. MQTT 认证设置 EMQ 消息服务器认证由一系列认证插件(Plugin)提供,系统支持按用户名密码.ClientID 或匿名认证. 系统默认开启匿 ...
- MySQL数据库加密和解密~认证登陆密码(mysql.user)和MySQL不区分大小写
MySQL数据库认证密码有两种方式: 1:MySQL 4.1版本之前是MySQL323加密 2:MySQL 4.1和之后的版本都是MySQLSHA1加密还有函数:AES_ENCRYPT()加密函数和A ...
- 【MySQL 8.0 OCP 1Z0-908认证考试】题库精讲--第三讲mysql8.0安装配置升级(中)
此专题题目较多,因此分为上中下三部分来讲,此为中篇. 完整版题库请到我的资源中下载,此为传送门. https://download.csdn.net/download/kanon_lgt/850104 ...
- 【MySQL 8.0 OCP 1Z0-908认证考试】题库精讲--第三讲mysql8.0安装配置升级(上)
第三讲--mysql8.0安装配置升级专题(上) 此专题题目较多,因此分为上中下三部分来讲,此为上篇. 完整版题库请到我的资源中下载,此为传送门.https://download.csdn.net/d ...
- 【MySQL 8.0 OCP 1Z0-908认证考试】题库精讲--第四讲mysql8.0权限安全审计(上)
此专题题目较多,因此分为上下两部分来讲,此为上篇. 完整版题库请到我的资源中下载,此为传送门. https://download.csdn.net/download/kanon_lgt/8501041 ...
- Node.js数据库与身份验证(MySQL,前后端身份认证:Session 认证机制,JWT认证机制)
目录 MySQL SQL 语句语法 where 条件.and 和 or 运算符.order by 排序.count(*) 函数 在express项目中操作 MySQL 安装与配置 mysql 模块 1 ...
- 【MySQL 8.0 OCP 1Z0-908认证考试】题库精讲--第五讲mysqlbinlog与mysqldump(下)
此专题题目较多,因此分为上下两部分来讲,此为下篇. 完整版题库请到我的资源中下载,此为传送门.https://download.csdn.net/download/kanon_lgt/85010419 ...
- 【MySQL 8.0 OCP 1Z0-908认证考试】题库精讲--第五讲mysqlbinlog与mysqldump(上)
此专题题目较多,因此分为上下两部分来讲,此为上篇. 完整版题库请到我的资源中下载,此为传送门.https://download.csdn.net/download/kanon_lgt/85010419 ...
最新文章
- linux内核层功能 和核心,Linux内核研发工程师
- python集合(set)+常见方法+交叉并补
- Pytorch+CNN+猫狗分类实战
- “人工智能大脑”跳槽记:吴恩达所理解的智能
- 关于坐标系,关于矩阵及线性相关和无关的关系
- Android之screenOrientation属性
- Express 路由模块化以及 Express 应用程序生成器
- 深源恒际医疗票据OCR落地九省市 服务范围覆盖过半市场
- Spring-RestTemplate之urlencode参数解析异常全程分析
- python标准化_数据标准化与Python实现
- python中类的使用_Python第九课-使用 类(class)创造新的数据类型!
- 机器人学中的状态估计 中文版_《机器人学中的状态估计》-05偏差,匹配和外点...
- python凯撒加密带大小写_python实现凯撒加密
- oracle11g和10的区别,同平台升级 oracle 10 到 oracle11g的一些考虑和实际操作
- 基于微信小程序的二手交易平台源码
- 使用SpreadJS迅速开发一套属于自己的欧洲杯赛程小工具
- 练字格子纸模板pdf_十字田字格模板空格40格-练字用书十字格a4打印版下载最新excel版-西西软件下载...
- ubuntu 19.04下交叉编译64位vlc 3.0.8
- R语言中的函数5:purrr:map()
- linux安装tt客户端,timesten的安装与配置(linux)
热门文章
- 期末前端web大作业:用DIV+CSS技术设计的动漫网站
- MarchingCubes算法提取等值面的基本原理
- matlab变量及操作
- linux的简体中文
- Vue + RTP 视频实时监控
- mac按键难回弹(按下去软软的)
- 获取当前时间和一年后时间(中国标准时间)时间处理
- 多传感器融合定位(4-基于滤波的2融合方法)2-使用仿真数据进行imu-gnss eskf和时变系统下的可观测性分析
- 简练软考知识点整理-项目收尾过程组
- 网易我的世界手游服务器怎么发全体信息,网易我的世界手机怎么私聊 | 手游网游页游攻略大全...