# openVPN+LDAP AD认证,组权限管理
# openVPN+LDAP AD认证,组权限管理
原创内容http://www.cnblogs.com/elvi/p/7661178.html
# openVPN+LDAP AD认证,组权限管理 #环境 centos6 #关闭selinux、防火墙 #vim /etc/sysconfig/network #修改hostname #vim /etc/hosts #添加hostname名称 #更换阿里源 yum -y install wget vim mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo #安装epel包 #yum install epel-release #EPEL源 yum -y install http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm yum makecache #生成缓存 ntpdate ntp.shu.edu.cn ##同步时间 # 安装openssl和lzo,lzo用于压缩通讯数据加快传输速度 #yum -y install openssl openssl-devel #yum -y install lzo #yum -y install openvpn easy-rsa # 安装openvpn和easy-rsa yum -y install openssl openssl-devel lzo openvpn easy-rsa # 修改vars文件 cd /usr/share/easy-rsa/2.0/ cp vars vars.bak vim vars # 修改注册信息,比如公司地址、公司名称、部门名称等。 export KEY_COUNTRY="CN" export KEY_PROVINCE="ShangHai" export KEY_CITY="ShangHai" export KEY_ORG="elven" export KEY_EMAIL="me@elven.me" export KEY_OU="elven" # 初始化环境变量 source vars # 清除keys目录下所有与证书相关的文件 ./clean-all # 生成根证书ca.crt和根密钥ca.key(一路按回车即可,存放目录/usr/share/easy-rsa/2.0/keys) ./build-ca # 服务端证书和密钥(一路按回车,提示y/n时,输入y再按回车,一共两次) ./build-key-server server # 为客户端生成证书和密钥(一路按回车,提示y/n时,输入y再按回车,一共两次) ./build-key client # 创建迪菲·赫尔曼密钥,会生成dh2048.pem文件(生成过程慢,不要去中断它) ./build-dh # 生成ta.key文件(防DDos攻击、UDP淹没等恶意攻击) openvpn --genkey --secret keys/ta.key ###创建服务器端配置文件 # 在openvpn的配置目录下新建一个keys目录 mkdir /etc/openvpn/keys # 将需要用到的openvpn证书和密钥复制一份到刚创建好的keys目录中 cp /usr/share/easy-rsa/2.0/keys/{ca.crt,server.{crt,key},dh2048.pem,ta.key} /etc/openvpn/keys # 复制一份服务器端配置文件模板server.conf到/etc/openvpn/ cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn/ # 查看server.conf里的配置参数 grep '^[^#;]' /etc/openvpn/server.conf # 编辑server.conf cp /etc/openvpn/server.conf /etc/openvpn/server.conf.bak vim /etc/openvpn/server.conf #-------- port proto tcp dev tun ca keys/ca.crt cert keys/server.crt key keys/server.key # This file should be kept secret dh keys/dh2048.pem server 192.168.98.0 255.255.255.0 #虚拟网段 ifconfig-pool-persist ipp.txt push "route 192.168.98.0 255.255.255.0" push "route 192.168.0.0 255.255.255.0" push "route 172.16.11.0 255.255.255.0" push "dhcp-option DNS 172.16.11.12" push "dhcp-option DNS 172.16.11.14" ;push "redirect-gateway def1 bypass-dhcp" #使客户端所有网络通信通过vpn client-to-client duplicate-cn keepalive tls-auth keys/ta.key # This file is secret comp-lzo persist-key persist-tun status openvpn-status.log log-append openvpn.log verb #-------- ###配置内核和防火墙,启动服务 # 开启路由转发功能 sysctl - sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf sysctl -p # 配置防火墙,别忘记保存 iptables -I INPUT -p tcp --dport -m comment --comment "openvpn" -j ACCEPT iptables -t nat -A POSTROUTING -s -j MASQUERADE service iptables save # 启动openvpn并设置为开机启动 service openvpn start chkconfig openvpn on netstat -anpt |grep vpn #查看网络端口 #service iptables restart #service openvpn restart #客户端配置文件 #cp /usr/share/doc/openvpn-*/sample/sample-config-files/client.conf client.ovpn vim /etc/openvpn/client.ovpn # client.ovpn client dev tun proto tcp #remote remote resolv-retry infinite nobind persist-key persist-tun ca ca.crt #cert client.crt #key client.key remote-cert-tls server tls-auth ta.key comp-lzo verb auth-user-pass #密码认证 ######################## # 开启客户端 openvpn /etc/openvpn/client.ovpn & pkill openvpn #关闭进程 #client keys mkdir /etc/openvpn/kk # 客户端需要的证书复制到刚创建好的目录 cp /usr/share/easy-rsa/2.0/keys/{ca.crt,client.{crt,key},ta.key} /etc/openvpn/kk #Windows客户端 #将OpenVPN服务器上的client.ovpn、ca.crt、client.crt、client1.key、ta.key上传到Windows客户端安装目录下的config文件夹 #############Ldap openvpn-auth-ldap认证(推荐) cd /etc/openvpn yum install openvpn-auth-ldap -y vi /etc/openvpn/auth/ldap.conf #--- ### OpenVPN LDAP 认证 <LDAP> URL ldap://172.16.11.14:389 #认证用户密码 BindDN "CN=ldap,OU=Dev,OU=Tech,OU=XLH_users,DC=test,DC=cn" password " #设置网络超时时间 Timeout TLSEnable no FollowReferrals no </LDAP> <Authorization> BaseDN "DC=test,DC=cn" SearchFilter "(&(sAMAccountName=%u)(memberof=CN=vpn,OU=role,OU=XLH_users,DC=test,DC=cn))" #SearchFilter "(sAMAccountName=%u)" RequireGroup false #使用AD组权限 <Group> BaseDN "OU=role,OU=XLH_users,DC=test,DC=cn" SearchFilter "(|(cn=vpn))" #MemberAttribute "member" MemberAttribute uniqueMember </Group> </Authorization> #--- vim /etc/openvpn/server.conf # openvpn-auth-ldap plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so "/etc/openvpn/auth/ldap.conf cn=%u" client-cert-not-required username-as-common-name service openvpn restart ############################################## #@ checkpsw.sh 密码文件认证 vim /etc/openvpn/checkpsw.sh ## chmod +x /etc/openvpn/checkpsw.sh vim /etc/openvpn/psw-file aa1 qq1 vim /etc/openvpn/psw-file vim /etc/openvpn/server.conf # ---- checkpsw.sh script-security system auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env client-cert-not-required username-as-common-name service openvpn restart ############################################## #合并证书到配置文件中,仅供参考 vim client.ovpn #ca ca.crt 注释证书文件 #在最后面添加以下内容: </key> key-direction <tls-auth> ta.key文件内容 </tls-auth> ################ Python脚本 Ldap 认证 cd /etc/openvpn echo elven >>/etc/openvpn/authfile.conf #openvpn Ldap授权用户文件 echo test2 >/etc/openvpn/user.conf #Ldap认证用户 echo w1w1 >>/etc/openvpn/user.conf #yum install python-ldap vim /etc/openvpn/check_credit.py #openvpn-Ldap.py chmod +x /etc/openvpn/check_credit.py python check_credit.py user.conf vim /etc/openvpn/server.conf # openvpn-Ldap.py auth-user-pass-verify /etc/openvpn/check_credit.py via-file client-cert-not-required username-as-common-name script-security ##############################################
# openVPN+LDAP AD认证,组权限管理的更多相关文章
- Spark SQL Thrift Server 配置 Kerberos身份认证和权限管理
转载请注明出处:http://www.cnblogs.com/xiaodf/ 之前的博客介绍了通过Kerberos + Sentry的方式实现了hive server2的身份认证和权限管理功能,本文主 ...
- springboot(十四):springboot整合shiro-登录认证和权限管理
这篇文章我们来学习如何使用Spring Boot集成Apache Shiro.安全应该是互联网公司的一道生命线,几乎任何的公司都会涉及到这方面的需求.在Java领域一般有Spring Security ...
- Springboot-shiro-redis实现登录认证和权限管理
Springboot-shiro-redis实现登录认证和权限管理 在学习之前: 首先进行一下Apache Shiro和Shiro比较: Apache Shiro是一个功能强大.灵活的,开源的安全框架 ...
- Spring boot 入门(四):集成 Shiro 实现登陆认证和权限管理
本文是接着上篇博客写的:Spring boot 入门(三):SpringBoot 集成结合 AdminLTE(Freemarker),利用 generate 自动生成代码,利用 DataTable 和 ...
- spring-boot(八) springboot整合shiro-登录认证和权限管理
学习文章:springboot(十四):springboot整合shiro-登录认证和权限管理 Apache Shiro What is Apache Shiro? Apache Shiro是一个功能 ...
- (转)Spring Boot (十四): Spring Boot 整合 Shiro-登录认证和权限管理
http://www.ityouknow.com/springboot/2017/06/26/spring-boot-shiro.html 这篇文章我们来学习如何使用 Spring Boot 集成 A ...
- Spring Boot(十四):spring boot整合shiro-登录认证和权限管理
Spring Boot(十四):spring boot整合shiro-登录认证和权限管理 使用Spring Boot集成Apache Shiro.安全应该是互联网公司的一道生命线,几乎任何的公司都会涉 ...
- spring boot(十四)shiro登录认证与权限管理
这篇文章我们来学习如何使用Spring Boot集成Apache Shiro.安全应该是互联网公司的一道生命线,几乎任何的公司都会涉及到这方面的需求.在Java领域一般有Spring Security ...
- Spring Cloud之路:(七)SpringBoot+Shiro实现登录认证和权限管理
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/sage_wang/article/details/79592269一.Shiro介绍1.Shiro是 ...
随机推荐
- ip完整验证详情
不想跳坑就看一下 之前一直不太会写正则表达式,很多要用到正则表达式的都直接百度,像上次要用正则表达式验证是否是合法的ip地址,然后就上网找,结果就是没找到一个对的,今天就为大家贡献一下,写个对的,并做 ...
- phalcon——HTTP 请求
(一般在控制器方法中使用) 获取值: (1)直接获取值: $customerName = $this->request->getPost("name"); (2)自动添 ...
- Problem L
Problem Description 在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图: L&qu ...
- 蓝桥杯-算法训练--ALGO-6 安慰奶牛
问题描述Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N个牧场,牧场被连续地编号为1到N.每一个牧场都是一个奶牛的家.FJ计划除去P条道路中尽可能多的道路,但 ...
- http 500错误怎么解决方法
出现500错误的原因是很多的,一般来说,如果程序出错,那么在浏览器内会返回给用户一个友好的错误提示,统一称之为服务器500错误. 解决的方法就是您必须在http中能够正确的获得错误信息,方法为:请打开 ...
- wordpress搬家到 linode 步骤简析
1. 购买并安装系统 购买就不说了哈,英文不好的自己搜教程. 然后是安装系统 linode 系统安装: 购买完成后登录,进入找到购买的vps ,点击 Dashboard (控制面板) 进入后点击 面板 ...
- linux学习笔记二
进程(process)是程序实体运行的过程,是系统进行资源分配和调度的独立单位,或者说是一个程序在处理机上的一次执行活动. 区分一下进程和程序 1.0 程序是一个静态指令的集合:而进程是一个程序的动态 ...
- Scanner扫描器
扫描器 : Scanner 接收用户在键盘上的输入内容 是Java自带的一个工具,但是默认情况下没有在我们写的程序中使用三个步骤:1. 导入扫描器 : 导入类文件 import java.u ...
- 走进Spark生态圈:环境的安装与配置
什么是Spark? Apache Spark 是一种大规模数据处理的快速通用引擎,使用基于内存的处理方式,较与MapReduce而言,解决了其shuffle多次IO操作带来的效率低问题,从而达到快速的 ...
- .net core 在视图中快速获取路由(Areas、Controller、Action)
我们在.net core中,经常碰到需要获取当前的Areas.Controller.Action,于是小编就扩展了Html,这样即可使用 Html.***来获取这些信息. 具体扩展类如下: publi ...