OpenVPN推荐使用证书进行认证,安全性很高,但是配置起来很麻烦。还好它也能像pptp等vpn一样使用用户名/密码进行认证。

不管何种认证方式,服务端的ca.crt, server.crt, server.key, dh1024.pem这四个证书都是要的。使用username/passwd

方式,你需要在服务器配置文件中加入以下语句,取消客户端的证书认证:

client-cert-not-required

然后加入auth-user-pass-verify,开启用户密码脚本:

auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env

加入script-security消除以下警告

script-security  system

checkpsw.sh脚本可以通过网络获取

wget http://openvpn.se/files/other/checkpsw.sh

checkpsw.sh默认从文件/etc/openvpn/psw-file中读取用户名密码。

psw-file中一行是一个账号,用户名和密码之间用空格隔开

username   password

到此服务端就配置完成了。

客户端配置文件中去掉于证书相关的配置,加入

auth-user-pass

打开用户名密码验证。

可以加入auth-nocache可以在断线后防止内存中保存用户名和密码来提高安全性。

这样客户端就配好。

下面提供一个我的服务端配置文件。Linux使用该配置文件作为服务端,ROS的openvpn客户端是可以连接上的。

port
proto tcp
dev tap

#不要求客户端有证书
client-cert-not-required
username-as-common-name

script-security  system
#使用脚本验证密码
auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env

ca   /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key  /etc/openvpn/keys/server.key
dh   /etc/openvpn/keys/dh1024.pem

server 10.8.6.0 255.255.255.0

#保存已有的用户和ip的对应关系
ifconfig-pool-persist ipp.txt

#允许客户端之间互访
client-to-client

keepalive  

user nobody
group nogroup

persist-key
persist-tun

#保存日志
status openvpn-status.log
#日志冗余级别
verb 

OpenVPN使用用户名/密码验证方式的更多相关文章

  1. WCF用户名密码验证方式

    WCF使用用户名密码验证 服务契约 namespace WCFUserNameConstract { [ServiceContract] public interface IWcfContract { ...

  2. 【WCF】使用“用户名/密码”验证的合理方法

    我不敢说俺的方法是最佳方案,反正这世界上很多东西都是变动的,正像老子所说的——“反(返)者,道之动”.以往看到有些文章中说,为每个客户端安装证书嫌麻烦,就直接采用把用户名和密码塞在SOAP头中发送,然 ...

  3. WebService 用户名密码验证

    原文:WebService 用户名密码验证 在项目开发的过程中,WebService是经常要用的,当调用WebService方法时,需要经过服务的验证才可以调用,一般就是用户名/密码验证,还有一个就是 ...

  4. WCF服务安全控制之netTcpBinding的用户名密码验证【转】

    选择netTcpBinding WCF的绑定方式比较多,常用的大体有四种: wsHttpBinding basicHttpBinding netTcpBinding wsDualHttpBinding ...

  5. 自定义实现wcf的用户名密码验证

    目前wcf分为[传输层安全][消息层安全]两种,本身也自带的用户名密码验证的功能,但是ms为了防止用户名密码明文在网络上传输,所以,强制要求一旦使用[用户名密码]校验功能,则必须使用证书,按照常理讲, ...

  6. WCF的用户名+密码认证方式(转)

    概述 今天在做Master Data Service(后面简称MDS)项目时需要通过WCF来使用MDS的API,从而对MDS的数据进行操作.在这个过程中,遇到了一个棘手的问题,就是在客户端调用Web ...

  7. WCF 安全性之 自定义用户名密码验证

    案例下载 http://download.csdn.net/detail/woxpp/4113172 客户端调用代码 通过代理类 代理生成 参见 http://www.cnblogs.com/woxp ...

  8. 【WCF】Silverlight+wcf+自定义用户名密码验证

    本文摘自 http://www.cnblogs.com/virusswb/archive/2010/01/26/1656543.html 在昨天的博文Silverlight3+wcf+在不使用证书的情 ...

  9. Python实现LDAP用户名密码验证

    网上借鉴了不少东西,下面是python代码,备份后用. 思路,因为每个用户的组都不一样,这样就导致了dn不一致的情况, 据需要先根据用户名获取该用户的dn,然后再bind用户名和密码进行验证. 反正是 ...

随机推荐

  1. spring初次体验

    1.BeanFactory:实际上是实例化,配置和管理众多bean的容器.这些bean通常会彼此合作,因而它们之间会相互依赖.BeanFactory使用的配置数据可以反映这些依赖关系中(一些依赖可能不 ...

  2. 如何使用Log4net创建日志及简单扩展

    第一步:在项目中添加对log4net.dll的引用,这里引用版本是1.2.10.0.第二步:程序启动时读取log4net的配置文件.如果是CS程序,在根目录的Program.cs中的Main方法中添加 ...

  3. jQuery基础课程

    环境搭建 搭建一个jQuery的开发环境非常方便,可以通过下列几个步骤进行. 下载jQuery文件库 在jQuery的官方网站(http://jquery.com)中,下载最新版本的jQuery文件库 ...

  4. 【原创】日志文件清理工具V1.0

    最近公司的系统服务器经常出现磁盘空间不足的情况,登陆服务器发现原来是公司的HR系统日志造成的(插个话题:我们公司的HR系统都实施两年多了还没上线,且不说软件功能如何,服务太TMD差劲了,更可气的是软件 ...

  5. ical4j 实现ICS文件的生成和解析

    iCalendar 简介 iCalendar,简称"iCal",是"日历数据交换"的标准(RFC 2445),该标准提供了一种公共的数据格式用于存储关于日历方面 ...

  6. JavaScript零基础学习系列四

    案例分享 对象 具体的东西,在以js的眼光看所有的标签都是标签对象,对象是属性的无序集合. 创建对象有两种方式: 直接量: 构造器:所谓的构造器,其实就是函数,只不过这个函数有些特殊,因为它是用于创建 ...

  7. 基于Emgu CV的人脸检测代码

    这个提供的代码例子是Emgu CV提供的源码里面自带的例子,很好用,基本不需要改,代码做的是人脸检测不是人脸识别,这个要分清楚.再就是新版本的Emgu CV可能会遇到系统32位和64位处理方式有区别的 ...

  8. 虚拟机VMware 12 Pro 永久许可证激活密钥

    热门虚拟机软件VMware Workstation Pro现已更新至v12.5.2.12.0属于大型更新,专门为Win10的安装和使用做了优化,支持DX10.4K高分辨率显示屏.OpenGL 3.3. ...

  9. MapReduce实现手机上网日志分析(分区)

    一.问题背景 实际业务的需要,比如以移动为例,河南的用户去了北京上网,那么他的上网信息默认保存在了北京的基站,那么我们想要查询北京地区的上网日志信息默认也包含了其他地区用户的在本区的上网信息,否则只能 ...

  10. iOS苹果推送功能实现步骤

    1.在钥匙串里 导出推送证书Apple Push notification Services 的 certificate, 命名为cer.p12,放在电脑桌面 ,期间密码设为123456 2.在钥匙串 ...