OpenVPN使用用户名/密码验证方式
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使用用户名/密码验证方式的更多相关文章
- WCF用户名密码验证方式
WCF使用用户名密码验证 服务契约 namespace WCFUserNameConstract { [ServiceContract] public interface IWcfContract { ...
- 【WCF】使用“用户名/密码”验证的合理方法
我不敢说俺的方法是最佳方案,反正这世界上很多东西都是变动的,正像老子所说的——“反(返)者,道之动”.以往看到有些文章中说,为每个客户端安装证书嫌麻烦,就直接采用把用户名和密码塞在SOAP头中发送,然 ...
- WebService 用户名密码验证
原文:WebService 用户名密码验证 在项目开发的过程中,WebService是经常要用的,当调用WebService方法时,需要经过服务的验证才可以调用,一般就是用户名/密码验证,还有一个就是 ...
- WCF服务安全控制之netTcpBinding的用户名密码验证【转】
选择netTcpBinding WCF的绑定方式比较多,常用的大体有四种: wsHttpBinding basicHttpBinding netTcpBinding wsDualHttpBinding ...
- 自定义实现wcf的用户名密码验证
目前wcf分为[传输层安全][消息层安全]两种,本身也自带的用户名密码验证的功能,但是ms为了防止用户名密码明文在网络上传输,所以,强制要求一旦使用[用户名密码]校验功能,则必须使用证书,按照常理讲, ...
- WCF的用户名+密码认证方式(转)
概述 今天在做Master Data Service(后面简称MDS)项目时需要通过WCF来使用MDS的API,从而对MDS的数据进行操作.在这个过程中,遇到了一个棘手的问题,就是在客户端调用Web ...
- WCF 安全性之 自定义用户名密码验证
案例下载 http://download.csdn.net/detail/woxpp/4113172 客户端调用代码 通过代理类 代理生成 参见 http://www.cnblogs.com/woxp ...
- 【WCF】Silverlight+wcf+自定义用户名密码验证
本文摘自 http://www.cnblogs.com/virusswb/archive/2010/01/26/1656543.html 在昨天的博文Silverlight3+wcf+在不使用证书的情 ...
- Python实现LDAP用户名密码验证
网上借鉴了不少东西,下面是python代码,备份后用. 思路,因为每个用户的组都不一样,这样就导致了dn不一致的情况, 据需要先根据用户名获取该用户的dn,然后再bind用户名和密码进行验证. 反正是 ...
随机推荐
- 使用JS实现前端缓存
在前端浏览器中,有些数据(比如数据字典中的数据),可以在第一次请求的时候全部拿过来保存在js对象中,以后需要的时候就不用每次都去请求服务器了.对于那些大量使用数据字典来填充下拉框的页面,这种方法可以极 ...
- sql 首写字母查询姓名(字段)
来自网上大神,不知道是谁,挂不上链接 /////////////////////// 1.生成方法函数 create function f_GetPy(@str nvarchar(4000)) ret ...
- jmeter(四)Sample之http请求
启动jmeter,建立一个测试计划 这里再次说说怎么安装和启动jmeter吧,昨天下午又被人问到怎样安装和使用,我也是醉了:在我看来,百度能解决百分之八十的问题,特别是基础的问题... 安装:去官网下 ...
- 微信扫描打开APP下载链接提示代码优化
上一次我发了一篇文章叫“微信打开网址添加在浏览器中打开提示”,里面我发出来了三个代码,分别是纯JS.js+html.jQuery+HTML代码.今天来一个简化版带可以关闭的按钮操作.使用的是纯JS+H ...
- 深入理解Java:内部类
什么是内部类? 内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用public ...
- Linux 中 Oracle dmp 文件导入导出
a. 用户名 system 密码 manager 导出到D:/daochu.dmp中 exp system/manager@SID file=d:/daochu.dmp full=y b. 将数据库中 ...
- Android开发自学笔记(Android Studio)—4.5 ProgressBar及其子类
一.前言 ProgressBar本身代表了进度条组件,它还派生出了两个常用的组件:SeekBar和RatingBar,他们的使用方法类似,只是显示界面有一定的区别.我们看一下API文档中的说明: 从图 ...
- javascript 中断函数的使用 setInterval()——返回顶部
方法名称:gotop() 功能描述:点击某个元素,调用方法gotop(),固定间隔,滚动至屏幕顶部 日期 :2016.06.06 16:02 author :cyh2009@live.com < ...
- java-collections.sort异常Comparison method violates its general contract!
转载:http://www.tuicool.com/articles/MZreyuv 异常信息 java.lang.IllegalArgumentException: Comparison metho ...
- deepin 15.3 安装数据库MariaDB10.0
直接终端执行安装命令即可 sudo apt-get install mariadb-server -y 查询DB编码 #进入数据库 mysql -uroot -p #显示默认编码 show varia ...