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 installgcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2bzip2-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 installpam_krb5 pam_mysql pam pam-devel
yum installmysql mysql-server mysql-devel mysql-libs

4 安装lzo:

1
2
wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz
cdlzo-2.03 && ./configure&& make&& makeinstall

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
cdopen***-2.2.2/
./configure--prefix=/usr/local/open***&& make&& makeinstall
mkdir-p /etc/open***
cd/root/open***-2.2.2
cp-R easy-rsa /etc/open***
cd/etc/open***/easy-rsa/2.0/
cpvars vars_bak

7 修改vars的内容信息:

1
2
3
4
5
6
7
vim vars
###最下面修改内容:
exportKEY_COUNTRY="CN"
exportKEY_PROVINCE="BJ"
exportKEY_CITY="beijing"
exportKEY_ORG="beijingidc"
exportKEY_EMAIL="你的邮箱地址"

8 生成服务器和客户端需要的key文件:

1
2
3
4
5
6
source./vars
./clean-all
./build-caca
./build-key-serverserver
./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, 1row affected (0.00sec)
mysql> GRANT ALL ON ***.* TO ***@localhost IDENTIFIED BY '***123';
Query OK, 0rows affected (0.00sec)
mysql> flush privileges;
Query OK, 0rows affected (0.00sec)
mysql> use***;
Database changed
mysql> CREATE TABLE ***user (
-> name char(20) NOT NULL,
-> password char(128defaultNULL,
-> active int(10) NOT NULL DEFAULT 1,
-> PRIMARY KEY (name)
-> );
Query OK, 0rows affected (0.30sec)
mysql> insert into ***user (name,password) values('user1',password('123456'));
Query OK, 1row affected (0.02sec)

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 installcyrus-sasl cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-lib cyrus-sasl-gssapi
/etc/init.d/saslauthdrestart

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
cdopen***-2.0.7/
./configure
cdplugin/auth-pam/
make
cpopen***-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-source192.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-typeserver
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构建强大的***系统相关推荐

  1. .Net Core 环境下构建强大且易用的规则引擎

    1. 引言 1.1 为什么需要规则引擎 在业务的早期时代,也许使用硬编码或者逻辑判断就可以满足要求.但随着业务的发展,越来越多的问题会暴露出来: 逻辑复杂度带来的编码挑战,需求变更时改变逻辑可能会引起 ...

  2. 未来客:人人都可以构建软件或系统

    01 背景 随着云计算.人工智能.大数据.5G等新兴技术的快速发展,催化了数字化认知的普及度,越来越多的企业希望借助技术的力量加速数智化转型. 通过更加敏捷和强大的应用系统推动企业的商业创新速度.后疫 ...

  3. python怎么另起一行阅读答案_使用Python+Dlib构建人脸识别系统(在Nvidia Jetson Nano 2GB开发板上)...

    Nvidia Jetson Nano 2GB开发板是一款新的单板机 售价59美元 运行带有GPU加速的人工智能软件.在2020年 你可以从一台售价59美元的单板计算机中获得令人惊叹的性能 让我们用它来 ...

  4. 虚幻引擎构建光照失败的原因_如何在虚幻引擎4中构建实时动态封面系统

    虚幻引擎构建光照失败的原因 by David Nadaski 大卫·纳达斯基(David Nadaski) 如何在虚幻引擎4中构建实时动态封面系统 (How to build a real-time ...

  5. 基于Yocto构建嵌入式Linux系统U-boot、kernel内核、rootfs文件系统

    前言 Yocto 是一个很强大的构建工具,其功能不仅仅是用来获取BSP源码和简单地编译源码,开发者还可以使用Yocto对其 开发板添加各种第三方开发库,而不需要每次重新从零开始编译源码,解决第三方依赖 ...

  6. step by step 构建嵌入式Linux系统平台

    前些日子写的一些文章,大家可以看看... 为了适应目前嵌入式系统操作平台在性能.成本.可靠性等各方面的要求,论述了以Linux作为操作系统平台的优势,分析了以PC104卡和CompactFlash卡构 ...

  7. AI:2023年6月9日北京智源大会演讲分享之基础模型前沿技术论坛—《工程化打造AI中的CPU》、《构建一个AI系统:在LLM上应用带有RLHF来推进定制》、《多模态预训练的进展回顾与展望》、《扩展大

    AI:2023年6月9日北京智源大会演讲分享之基础模型前沿技术论坛-<工程化打造AI中的CPU>.<构建一个AI系统:在LLM上应用带有RLHF来推进定制>.<多模态预训 ...

  8. 使用Python+Dlib构建人脸识别系统(在Nvidia Jetson Nano 2GB开发板上)

    Nvidia Jetson Nano 2GB开发板是一款新的单板机,售价59美元,运行带有GPU加速的人工智能软件. 在2020年,你可以从一台售价59美元的单板计算机中获得令人惊叹的性能,让我们用它 ...

  9. Figma: 如何在 Web 上构建一个插件系统

    原文:https://www.figma.com/blog/how-we-built-the-figma-plugin-system/ 翻译:https://juejin.cn/post/684490 ...

最新文章

  1. 用日志记录LINQ中的所有增删改的SQL语句的方法
  2. 【错误记录】p7zip 交叉编译 Android 版本 NDK 报错 ( error: case value evaluates to -2 , which cannot be narrowed )
  3. java servlet 作用_servlet的作用,servlet有什么用?
  4. Redhat、CentOS进单用户模式进行维护
  5. python快递分拣小程序_python英语单词测试小程序代码实例
  6. python 布尔值为f我的_python – 为什么我没有得到布尔值?
  7. tensorRT 使用过程中的Bug记录
  8. Arbitrage——判断正环Bellman-Ford/SPFA
  9. 基础知识—循环语句-for
  10. 《RabbitMQ 实战指南》第一章 RabbitMQ 简介
  11. 限免!百名 AI 大咖,20 大技术和行业论坛,邀你加入群聊
  12. MySQL数据库中,将一个字段的值分割成多条数据显示
  13. 计算机网络知识学习(核心:网络协议)-- 应用层
  14. spark的集群安装
  15. 六种实现元素水平居中
  16. Flume自定义文件命名格式(RollFileSink)
  17. 合肥耀之阳电商:网店运营的基础知识
  18. 城通网盘仿蓝奏网盘源码
  19. php不改写mysql函数_利用php修改mysql数据库表前缀
  20. UserWarning: findfont: Font family [‘sans-serif‘] not found. Falling back to DejaVu Sans

热门文章

  1. 盛金公式解一元三次方程_【国际数学竞赛】高次方程求根
  2. echarts柱图根据值显示不同颜色_视频 | Origin画3D柱图,这篇讲透了!
  3. 几何画板手机版_运用几何画板解决动点最值问题(二)
  4. vue怎么vw布局好用_vue cli3项目的pc自适应布局_vw
  5. 语言nomogram校准曲线图_预测模型的概率校准
  6. 如何删除 eclipse 中多余的 Tomcat server?为什么产生这种 bug?
  7. java中paint方法和paintComponent方法的不同
  8. php百度坐标转腾讯坐标,PHP腾讯与百度坐标转换
  9. 蓝牙耳机声音一顿一顿的_线控耳机党阵地转移成功,OPPO这款TWS耳机体验满分...
  10. Nvidia CUDA初级教程4 GPU体系架构概述