open×××+Mysql+PAM构建强大的***系统
open×××+Mysql+PAM构建强大的***系统
本次为新的生产环境部署系统而采用了这个方案,陆续会将实际的生产架构整理出来.由于涉及到公司的各种敏感信息,已经将IP做了替换中途可能有出入 敬请谅解。等我找时间画图出来一并奉上。
如果有根本上的问题,请大家指正。
本次为了测试使用了如下的软件版本:
epel-release-6-8
.noarch.rpm
lzo-2
.03.
tar
.gz
open***-2.2.2.
tar
.gz
open***-2
.0.7.
tar
.gz
open***-2
.2.1-
install
.exe
1 安装epel第三方源:
1
2
|
wget http: //mirror .neu.edu.cn /fedora/epel/6/i386/epel-release-6-8 .noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
|
2 安装各种依赖关系:
1
|
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2 -devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
|
3 安装
1
2
|
yum install pam_krb5 pam_mysql pam pam-devel
yum install mysql mysql-server mysql-devel mysql-libs
|
4 安装lzo:
1
2
|
wget http: //www .oberhumer.com /opensource/lzo/download/lzo-2 .03. tar .gz
cd lzo-2.03 && . /configure && make && make install
|
5 添加路径:
1
2
3
4
5
6
7
8
9
|
cat >> /etc/ld .so.conf<<EOF
/lib
/lib64
/usr/lib
/usr/lib64
/usr/local/lib
/usr/local/lib64
EOF
ldconfig
|
6 安装open***:
1
2
3
4
5
6
7
8
|
tar -zxvf open***-2.2.2. tar .gz
cd open***-2.2.2/
. /configure --prefix= /usr/local/open*** && make && make install
mkdir -p /etc/open***
cd /root/open***-2 .2.2
cp -R easy-rsa /etc/open***
cd /etc/open***/easy-rsa/2 .0/
cp vars vars_bak
|
7 修改vars的内容信息:
1
2
3
4
5
6
7
|
vim vars
###最下面修改内容:
export KEY_COUNTRY= "CN"
export KEY_PROVINCE= "BJ"
export KEY_CITY= "beijing"
export KEY_ORG= "beijingidc"
export KEY_EMAIL= "你的邮箱地址"
|
8 生成服务器和客户端需要的key文件:
1
2
3
4
5
6
|
source . /vars
. /clean-all
. /build-ca ca
. /build-key-server server
. /build-dh
/usr/local/open***/sbin/open*** --genkey --secret keys /ta .key
|
9 创建mysql用于***的账号存放:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
##启动mysql:
service mysqld restart
###创建数据验证信息:
mysql> create database ***;
Query OK, 1 row affected ( 0.00 sec)
mysql> GRANT ALL ON ***.* TO ***@localhost IDENTIFIED BY '***123' ;
Query OK, 0 rows affected ( 0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected ( 0.00 sec)
mysql> use ***;
Database changed
mysql> CREATE TABLE ***user (
-> name char( 20 ) NOT NULL,
-> password char( 128 ) default NULL,
-> active int ( 10 ) NOT NULL DEFAULT 1 ,
-> PRIMARY KEY (name)
-> );
Query OK, 0 rows affected ( 0.30 sec)
mysql> insert into ***user (name,password) values( 'user1' ,password( '123456' ));
Query OK, 1 row affected ( 0.02 sec)
|
10 创建pam用于验证:
1
2
3
4
5
6
7
8
|
###创建pam验证配置文件:
vim /etc/pam .d /open***
auth sufficient pam_mysql.so user=*** passwd =***123 host=localhost db=*** table=***user usercolumn=name passwdcolumn=password where=active=1 sqllog=0 crypt=2
account required pam_mysql.so user=*** passwd =***123 host=localhost db=*** table=***user usercolumn=name passwdcolumn=password where=active=1 sqllog=0 crypt=2
#crypt(0) -- Used to decide to use MySQL's PASSWORD() function or crypt()
#0 = No encryption. Passwords in database in plaintext. NOT recommended!
#1 = Use crypt
#2 = Use MySQL PASSWORD() function
|
11 测试pam和mysql的连接:
1
2
|
yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-lib cyrus-sasl-gssapi
/etc/init .d /saslauthd restart
|
12 open*** 2.0以上验证会出问题,需要编译低版本的模块:
1
2
3
4
5
6
7
|
wget http: //down1 .chinaunix.net /distfiles/open***-2 .0.7. tar .gz
tar -zxvf open***-2.0.7. tar .gz
cd open***-2.0.7/
. /configure
cd plugin /auth-pam/
make
cp open***-auth-pam.so /etc/open***/
|
13 测试连接:
1
2
3
|
###显示如下内容即为正常:
[root@localhost 2.0] # testsaslauthd -u user1 -p 123456 -s open***
0: OK "Success."
|
14 创建并修改open***的配置文件:
1
|
cp /opt/src/open***-2 .2.2 /sample-config-files/server .conf /etc/open***/
|
15 配置文件的内容如下(取出了所有的注释部分)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
vim server.conf
###内容如下:
port 1194
proto udp
dev tun
ca /etc/open***/easy-rsa/2 .0 /keys/ca .crt
cert /etc/open***/easy-rsa/2 .0 /keys/server .crt
key /etc/open***/easy-rsa/2 .0 /keys/server .key
dh /etc/open***/easy-rsa/2 .0 /keys/dh1024 .pem
tls-auth /etc/open***/easy-rsa/2 .0 /keys/ta .key 0
server 10.8.0.0 255.255.255.0
ifconfig -pool-persist ipp.txt
push "redirect-gateway def1"
push "dhcp-option DNS 10.8.0.1"
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
status open***-status.log
log open***.log
verb 3
client-cert-not-required
username-as-common-name
plugin . /open***-auth-pam .so /usr/local/open***/sbin/open***
|
16 开启内核路由转发:
1
2
3
|
vim /etc/sysctl.conf
net.ipv4.ip_forward = 0 改成 net.ipv4.ip_forward = 1
sysctl -p
|
17 设置防火墙的端口转发:
1
2
3
|
###iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 服务器的ip
iptables -t nat -A POSTROUTING -s 10.8.0.0 /24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.8.0.0 /24 -j SNAT --to- source 192.168.80.151
|
18 保存并重启iptables:
1
2
|
service iptables save
service iptables restart
|
19 创建启动脚本:
1
|
cp -f /root/open***-2 .2.2 /sample-scripts/open*** .init /etc/init .d /open***
|
1
2
3
4
5
6
|
vim /etc/init .d /open***
###编译安装的需要将第69行改成:
open***_locations= "/usr/local/open***/sbin/open*** /usr/sbin/open*** /usr/local/sbin/open***"
chkconfig --add open***
chkconfig open*** on
/etc/init .d /open*** start
|
------------------至此服务端配置完成---------------
下载open***客户端:
1
|
http: //swupdate .open***.org /community/releases/open***-2 .2.1- install .exe
|
客户端的安装配置:
在服务端操作将ca.crt ca.key ta.key 拷贝到客户端的conf目录下面:
C:\Program Files (x86)\Open×××\config
新建文件以.o*** 为结尾,并输入以下内容(remote服务器外网网卡地址):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
client
dev tun
proto udp
remote 192.168.80.151 1194 ##服务端的IP
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
tls-auth ta.key 1
ns-cert- type server
comp-lzo
verb 5
auth-user-pass
|
拨号-->输入mysql里面添加的用户名:user1 123456 -->OK
右下角出现的2个小电脑 变成绿色的 即表示连接到open***服务器上,在本地cmd执行ipconfig
查看是否得到了open*** 设置的网段地址。
本文出自 “振兴的空间” 博客,请务必保留此出处http://renzhenxing.blog.51cto.com/728846/1341147
转载于:https://blog.51cto.com/ljl2013/1343615
open×××+Mysql+PAM构建强大的***系统相关推荐
- .Net Core 环境下构建强大且易用的规则引擎
1. 引言 1.1 为什么需要规则引擎 在业务的早期时代,也许使用硬编码或者逻辑判断就可以满足要求.但随着业务的发展,越来越多的问题会暴露出来: 逻辑复杂度带来的编码挑战,需求变更时改变逻辑可能会引起 ...
- 未来客:人人都可以构建软件或系统
01 背景 随着云计算.人工智能.大数据.5G等新兴技术的快速发展,催化了数字化认知的普及度,越来越多的企业希望借助技术的力量加速数智化转型. 通过更加敏捷和强大的应用系统推动企业的商业创新速度.后疫 ...
- python怎么另起一行阅读答案_使用Python+Dlib构建人脸识别系统(在Nvidia Jetson Nano 2GB开发板上)...
Nvidia Jetson Nano 2GB开发板是一款新的单板机 售价59美元 运行带有GPU加速的人工智能软件.在2020年 你可以从一台售价59美元的单板计算机中获得令人惊叹的性能 让我们用它来 ...
- 虚幻引擎构建光照失败的原因_如何在虚幻引擎4中构建实时动态封面系统
虚幻引擎构建光照失败的原因 by David Nadaski 大卫·纳达斯基(David Nadaski) 如何在虚幻引擎4中构建实时动态封面系统 (How to build a real-time ...
- 基于Yocto构建嵌入式Linux系统U-boot、kernel内核、rootfs文件系统
前言 Yocto 是一个很强大的构建工具,其功能不仅仅是用来获取BSP源码和简单地编译源码,开发者还可以使用Yocto对其 开发板添加各种第三方开发库,而不需要每次重新从零开始编译源码,解决第三方依赖 ...
- step by step 构建嵌入式Linux系统平台
前些日子写的一些文章,大家可以看看... 为了适应目前嵌入式系统操作平台在性能.成本.可靠性等各方面的要求,论述了以Linux作为操作系统平台的优势,分析了以PC104卡和CompactFlash卡构 ...
- AI:2023年6月9日北京智源大会演讲分享之基础模型前沿技术论坛—《工程化打造AI中的CPU》、《构建一个AI系统:在LLM上应用带有RLHF来推进定制》、《多模态预训练的进展回顾与展望》、《扩展大
AI:2023年6月9日北京智源大会演讲分享之基础模型前沿技术论坛-<工程化打造AI中的CPU>.<构建一个AI系统:在LLM上应用带有RLHF来推进定制>.<多模态预训 ...
- 使用Python+Dlib构建人脸识别系统(在Nvidia Jetson Nano 2GB开发板上)
Nvidia Jetson Nano 2GB开发板是一款新的单板机,售价59美元,运行带有GPU加速的人工智能软件. 在2020年,你可以从一台售价59美元的单板计算机中获得令人惊叹的性能,让我们用它 ...
- Figma: 如何在 Web 上构建一个插件系统
原文:https://www.figma.com/blog/how-we-built-the-figma-plugin-system/ 翻译:https://juejin.cn/post/684490 ...
最新文章
- 用日志记录LINQ中的所有增删改的SQL语句的方法
- 【错误记录】p7zip 交叉编译 Android 版本 NDK 报错 ( error: case value evaluates to -2 , which cannot be narrowed )
- java servlet 作用_servlet的作用,servlet有什么用?
- Redhat、CentOS进单用户模式进行维护
- python快递分拣小程序_python英语单词测试小程序代码实例
- python 布尔值为f我的_python – 为什么我没有得到布尔值?
- tensorRT 使用过程中的Bug记录
- Arbitrage——判断正环Bellman-Ford/SPFA
- 基础知识—循环语句-for
- 《RabbitMQ 实战指南》第一章 RabbitMQ 简介
- 限免!百名 AI 大咖,20 大技术和行业论坛,邀你加入群聊
- MySQL数据库中,将一个字段的值分割成多条数据显示
- 计算机网络知识学习(核心:网络协议)-- 应用层
- spark的集群安装
- 六种实现元素水平居中
- Flume自定义文件命名格式(RollFileSink)
- 合肥耀之阳电商:网店运营的基础知识
- 城通网盘仿蓝奏网盘源码
- php不改写mysql函数_利用php修改mysql数据库表前缀
- UserWarning: findfont: Font family [‘sans-serif‘] not found. Falling back to DejaVu Sans
热门文章
- 盛金公式解一元三次方程_【国际数学竞赛】高次方程求根
- echarts柱图根据值显示不同颜色_视频 | Origin画3D柱图,这篇讲透了!
- 几何画板手机版_运用几何画板解决动点最值问题(二)
- vue怎么vw布局好用_vue cli3项目的pc自适应布局_vw
- 语言nomogram校准曲线图_预测模型的概率校准
- 如何删除 eclipse 中多余的 Tomcat server?为什么产生这种 bug?
- java中paint方法和paintComponent方法的不同
- php百度坐标转腾讯坐标,PHP腾讯与百度坐标转换
- 蓝牙耳机声音一顿一顿的_线控耳机党阵地转移成功,OPPO这款TWS耳机体验满分...
- Nvidia CUDA初级教程4 GPU体系架构概述