采用用户名密码认证的话,在客户端只需要ca.crt文件即可。这样只是客户端验证了服务端的合法性,而缺少了服务器对客户端合法性的验证,安全性有所降低。

1、用户名密码验证:

在上一篇的基础上,服务端配置文件里添加下列内容可实现基于checkpsw.sh脚本验证用户名密码的方式。

   #use username & passwd to login
   script-security 3 system
   auth-user-pass-verify /etc/open***/checkpsw.sh via-env
   client-cert-not-required                                #不需要客户端证书
   username-as-common-name

下面是checkpsw.sh脚本的内容:

#!/bin/sh
###########################################################
# checkpsw.sh (C) 2004 Mathias Sundman <mathias@open***.se>
# This script will authenticate Open××× users against
# a plain text file. The passfile should simply contain
# one row per user with the username first followed by
# one or more space(s) or tab(s) and then the password.

PASSFILE="/etc/open***/psw-file"
LOG_FILE="/etc/open***/open***-password.log"
TIME_STAMP=`date "+%Y-%m-%d %T"`
###########################################################
if [ ! -r "${PASSFILE}" ]; then
 echo "${TIME_STAMP}: Could not open password file \"${PASSFILE}\" for reading." >> ${LOG_FILE}
 exit 1
fi
CORRECT_PASSWORD=`awk '!/^;/&&!/^#/&&$1=="'${username}'"{print $2;exit}' ${PASSFILE}`
if [ "${CORRECT_PASSWORD}" = "" ]; then
 echo "${TIME_STAMP}: User does not exist: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE}
 exit 1
fi
if [ "${password}" = "${CORRECT_PASSWORD}" ]; then
 echo "${TIME_STAMP}: Successful authentication: username=\"${username}\"." >> ${LOG_FILE}
 exit 0
fi
echo "${TIME_STAMP}: Incorrect password: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE}

exit 1

2、创建create-user脚本用来在/etc/open***/psw-file文件里批量添加用户名密码,格式如下

client1 pass1

脚本内容:

#!/bin/sh
for ((i=1;$i<65;i++))
do
echo "client$i pass$i">>/etc/open***/psw-file     #将用户名密码信息输出到psw-file文件
done

注:我们在上一篇的server.conf里定义了“server 10.8.0.0 255.255.0.0”,即客户端的可用IP从10.8.1.0-10.8.254.254。又因为win下虚拟网卡必须采用/30段的IP。30段的子网段划分如下:0-3,4-7,8-11 ... 252-255,共分为64段,除去网络号和网关每段能用的IP地址为1、2;5、6;9、10...253、254.所以10.8.1.0、10.8.2.0、...10.8.254.0每一段都只能给64个客户端用,所以,次open***服务器共可支持给254*64个客户端分配IP。

3、指定客户端ip

在server.conf里注释掉以下两行

;client-config-dir /etc/open***/ccd
;route 10.8.0.0 255.255.255.252,

在ccd里创建以用户名为名的文件,例如client1,添加如下内容

ifconfig-push 10.8.0.5 10.8.0.6

这里:大量客户端配置文件就需要一批量方式生成配置文件并添加内容。创建ccd-client脚本,内容如下:

#!/bin/bash
IP_PRE=10.8.0.
FILE_PRE=client
for i in {1..64}
do
file_name=$FILE_PRE$i
ip_end1=$(($i*4-3))
ip_end2=$(($i*4-3+1))
ip1=$IP_PRE$ip_end1
ip2=$IP_PRE$ip_end2
echo "ifconfig-push $ip1 $ip2" > $file_name
done

IP_PRE1=10.8.1.
for i in {1..64}
do
file_name=$FILE_PRE$(($i+64))
ip_end1=$(($i*4-3))
ip_end2=$(($i*4-3+1))
ip1=$IP_PRE1$ip_end1
ip2=$IP_PRE1$ip_end2
echo "ifconfig-push $ip1 $ip2" > $file_name
done

此脚本生成的客户端控制文件内容如下图

有了这三个脚本,就可以完成批量生成用户名密码、批量在ccd目录里添加客户配置文件、以及对用户名和密码的验证过程。

这次部署中:参考了几篇文章,启发不小,链接如下

http://www.360doc.com/content/11/1123/22/4171006_166878811.shtml
http://blog.chinaunix.net/uid-24250828-id-3536671.html
http://hi.baidu.com/opwrt/item/9e0373d6115ac42838f6f761

转载于:https://blog.51cto.com/kaifly/1368125

大用户量下Open***部署方案(二)相关推荐

  1. SQL Server 大数据群集 部署(二)工具篇

    SQL Server 大数据群集 部署(二)工具篇 在进行部署大数据群集之前,先要安装一系列的工具,下表列出了常用的大数据群集工具以及如何安装它们: 工具 Required Description 安 ...

  2. 保密文件服务器,文件服务器部署方案之二:简单共享

    文件服务器部署方案之二:简单共享 万华数据 二. 简单共享 文件共享是办公环境中最常见的网络架构,小到几个人的工作组,大到数千人的文件交换中心,都可能使用这种模式交换数据. 对于使用加密文件的文件服务 ...

  3. Win2003下Exchange2003部署图解之二

               2.安装Windows支持工具         然后安装Windows支持工具,这些工具在后续步骤中会用到,在Windows2003操作系统光盘下的SUPPORT TOOL文件下 ...

  4. 如何解决多机房、多网络下的物联网部署方案?

    [CSDN 编者按]随着物联网的迅速发展,场景联动越来越普遍,那么敲门砖的连接服务该如何实现呢?本文作者作为360 IoT 云连接服务技术负责人,他从结合自身的实际开发经验,详解连接服务的设计方案,以 ...

  5. Sonar Qube连续代码质量管理(二)Sonar Qube7.6在Windows环境下安装部署和服务启停

    继续上篇内容,对Sonar Qube7.6在Windows 10环境下安装部署操作步骤进行分解,后期将会考虑在Linux上部署. 一.启动服务 进入到D:\DevelopSoft\Sonar\sona ...

  6. 网站服务器架构部署方案发展

    转载博客园--致敬原作者(林点林一)原文链接:http://www.cnblogs.com/linyidian/p/9703412.html 任何一个大型网站均是根据用户的积累以及随之而来的用户数量增 ...

  7. AI 框架部署方案之模型部署概述

    0 概述 模型训练重点关注的是如何通过训练策略来得到一个性能更好的模型,其过程似乎包含着各种"玄学",被戏称为"炼丹".整个流程包含从训练样本的获取(包括数据采 ...

  8. 大数据环境下的存储系统构建:挑战、方法和趋势

    大数据环境下的存储系统构建:挑战.方法和趋势 陈游旻, 李飞, 舒继武 清华大学计算机科学与技术系,北京 100084 摘要:互联网规模的迅速扩展促使全球数据总量呈现爆炸式的增长.物联网.电子商务等新 ...

  9. 802.11无线网络部署方案对比分析

    802.11无线网络部署方案对比分析 目前随着802.11无线网络的快速发展,较大规模的项目,无数AP数量将会比较多,配置.管理及维护问题将会日益突出,另外,像WiFi电话等对无线漫游.信号强度.传输 ...

  10. 用友和金蝶ERP产品私有云部署方案

    用友和金蝶ERP产品私有云部署方案 [摘要] 用友 金蝶 私有云 部署 架构图 用友和金蝶ERP产品私有云部署方案 一. 前言 此文档用于用友.金蝶ERP服务端在云环境下部署说明.用友产品包括U8+. ...

最新文章

  1. 《漫画线性代数》读书笔记 用矩阵解方程组
  2. 关于html5的几个新标签在IE9之前不支持的解决办法
  3. 枣庄三中高考2021成绩查询,2021枣庄中考成绩查询系统入口
  4. Android list转xml
  5. 不思议迷宫c语言基础,不思议迷宫——新手入门所学
  6. (40)Gulp中使用BootStrap
  7. Git的使用教程(一)
  8. 记忆化搜索--poj 1597 Function Run Fun
  9. 《An Introduction to Ray Tracing》——2.2 Ray/Sphere Intersection And Mapping
  10. 如何 设置CTEX WinEdt 改变默认的 PDF viewer
  11. 映泰主板G31安装centos系统启动不了解决办法
  12. 受微软信任的交叉证书将在2021年4月到期,代码签名证书将无法签内核驱动,安信教你如何才能再给驱动签名
  13. 微信小程序数据拼接_微信小程序数据处理
  14. 11个优秀的交互设计作品集
  15. 【坐标系统】高斯克吕格平面直角坐标系(笔记)
  16. android dialog设置背景图片,如何为Dialog设置背景图片?
  17. 汇编语言简明教程 实验报告
  18. 第三届中国移动开发者大会(MDCON.2015)
  19. STC89C52RC控制WS2812B LED 调色调光(一)
  20. 华为北京研究所第一届黑客马拉松比赛-基于Android防止儿童走失

热门文章

  1. (转载)Silverlight同步(Synchronous)调用WCF服务
  2. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十七) 完美精灵之八面玲珑(WPF Only)①...
  3. Linux学习笔记(8)文件搜索与帮助(find)
  4. RXJAVA之Subject
  5. 【新版】Android技术博客精华汇总
  6. 多线程CountDownLatch和Join
  7. nmon和nmon analyser使用方法
  8. windows命令行快速启动软件
  9. adb.exe可能被其他程序关闭_苹果说关闭后台 反而会缩短电池寿命?!
  10. Netty4.0学习笔记系列之五:自定义通讯协议