CentOS7部署ldap认证Open***

一、说明

***直译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道,Open***无疑是Linux下开源***的先锋,提供了良好的性能和友好的用户GUI;平时同事出差在外面连接公司,获取公司资源;2020由于新型肺炎导致春节假期延长,有条件的公司都实行在家办公,那么请问怎么保证各部门同事能在家办公?如何保障同事出差在外也能连接公司获取需要的资源?答案显然是使用***,本文主要讲部署open***和windows客户端使用。

环境:
需要有windows域环境做ldap认证
server:CentOS7.6 X64
client: win7
软件: open***-2.4.8-1.el7.x86_64 open***-auth-ldap-2.0.3-17.el7.x86_64

二、密钥无密码Open***部署

1、软件包安装

yum install easy-rsa openssh-server lzo lzo-devel openssl openssl-devel open*** NetworkManager-open*** libgcrypt libgpg-error libgcrypt-devel open***-auth-ldap  openldap-clients -y

2、配置open***

复制默认配置文件

# cp /usr/share/doc/open***-2.4.8/sample/sample-config-files/server.conf /etc/open***

修改server.conf

cat /etc/open***/server.conf |egrep ‘(^$|^;^#)‘

local 172.16.0.207 #本机ip
port 1194 #运行端口
proto udp # 运行协议 tcp较慢
dev tun # #采用路由隧道模式
ca ca.crt
cert server.crt
key server.key # 服务器密钥
dh dh2048.pem # 密钥交换协议文件
topology subnet
server 192.168.11.0 255.255.255.0 #给客户端分配地址池,注意:不能和***服务器内网网段相同
ifconfig-pool-persist ipp.txt
push "route 0.0.0.0 0.0.0.0" # 定义网关
push "route 192.168.11.0 255.255.255.0" #推送***服务器内网网段给客户端
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 172.16.0.1" # 推送dns配置
keepalive 10 120 #存活时间,10秒ping一次,120 如未收到响应则视为断线
tls-auth ta.key 0 # 第二个参数在服务器端应该为‘0‘,在客户端应该为‘1‘。
cipher AES-256-CBC # 选择一个密码加密算法
comp-lzo #传输数据压缩
max-clients 100 #最多允许 50 客户端连接
persist-key
persist-tun
status open***-status.log
log open***.log
verb 3
mute 20     # 相同类别的信息只有前20条会输出到日志文件中
explicit-exit-notify 1

3、easy-rsa配置证书密钥

# wget https://github.com/Open***/easy-rsa/archive/release/2.x.zip
# unzip easy-rsa-release-2.x.zip
# unzip
# yum install unzip
# unzip 2.x.zip
# cd easy-rsa-release-2.x/
# cd easy-rsa/
# mkdir /etc/open***/easy-rsa
# cp 2.0/* /etc/open***/easy-rsa/
# cd /etc/open***/easy-rsa/
# cat vars
export EASY_RSA="`pwd`"
export OPENSSL="openssl"
export PKCS11TOOL="pkcs11-tool"
export GREP="grep"
export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
export KEY_DIR="$EASY_RSA/keys"
echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR
export PKCS11_MODULE_PATH="dummy"
export PKCS11_PIN="dummy"
export KEY_SIZE=2048
export CA_EXPIRE=3650
export KEY_EXPIRE=3650
export KEY_COUNTRY="CN"        # 修改部分
export KEY_PROVINCE="SH"       # 修改部分
export KEY_CITY="SJ"                 # 修改部分
export KEY_ORG="ICKEY"         # 修改部分
export KEY_EMAIL="[email protected]"  # 修改部分
export KEY_OU="YunWei"        # 修改部分
export KEY_NAME="EasyRSA"

4、创建证书

# cp  /etc/open***/easy-rsa/openssl-1.0.0.cnf  /etc/open***/easy-rsa/openssl.cnf
# source ./vars
# ./clean-all
# ./build-ca    #之前已配置好相关参数,故执行命令后,按回车键,一直到结束即可。
# 创建服务端证书
# ./build-key-server server    #创建通用名(common name)为"server"的证书文件;按回车键进行,在提示输入密码的地方,设置一个密码如[email protected],最后输入两次“y”确认
# 生成防***的key文件
# open*** --genkey --secret keys/ta.key  # 生成ta.key文件(防DDos***、UDP淹没等恶意***)
## 创建客户端证书
# ./build-dh    #创建秘钥文件,耗时1分钟左右
# ls   /etc/open***/easy-rsa/keys/
# cd  /etc/open***/easy-rsa/keys
# cp  dh2048.pem  ca.crt  server.crt  server.key  ta.key   /etc/open***
# ./build-key client         #创建一个通用名(common name)为client的客户端证书;创建客户端证书文件,按回车进行,提示输入密码的地方,输入之前设置的证书密码,
# ls /etc/open***/easy-rsa/keys/

5、启动open***

# systemctl status open***@server.service
# systemctl enable open***@server.service
# systemctl start open***@server.service
# systemctl status open***@server.service

此时系统已经开放udp 1194端口

三、防火墙路由配置

1、做端口映射

将服务器的udp 1194端口在公司出口防火墙上做端口映射为udp 1194或其他端口;

2、open***本身防火墙配置

建议将iptables关闭,并手动添加一条规则

# iptables -t nat -A POSTROUTING -s 192.168.11.0/24  -j MASQUERADE
# echo 1 > /proc/sys/net/ipv4/ip_forward
# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

重启open***服务
# systemctl restart open***@server.service

四、windows客户端配置

1、客户端下载与安装

windows客户端下载地址
https://open***.net/community-downloads/
以下是win7
https://swupdate.open***.org/community/releases/open***-install-2.4.8-I602-Win7.exe
win10:
https://swupdate.open***.org/community/releases/open***-install-2.4.8-I602-Win10.exe

一路next 最后会弹出如下图 提示安装虚拟网卡驱动 钩选并安装 即可如图

2、配置客户端

安装好open***客户端软件后,将open***服务器端/etc/open***/easy-rsa/keys目录下的 ta.key,client.key,client.crt,ca.crt证书复制到客户端的安装目录的config文件夹下,然后从客户端的sample-config文件夹内拷贝client.o*** 到config文件夹下,编辑client.o***
C:\Program Files\Open***\config\cliet.o***配置如下:

client
dev tun
proto tcp
remote "你的防火墙映射出来的公网ip" 1194
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 1 cipher AES-256-CBC
comp-lzo
verb 3 mute 20

保存配置后双击桌面的Open***GUI即完成登录;

以上是基于证书密钥登录open***;

五、基于LDAP认证

1、服务器端修改

# cat /etc/open***/auth/ldap.conf
<LDAP>
        URL             ldap://172.16.0.26:389
                # cat ldap.txt |grep CN=Administrator |head -n 1
        BindDN          "CN=Administrator,CN=Users,DC=PKEY,DC=LOCAL"
        Password        PASSWORD
        Timeout         15
        TLSEnable       no
        FollowReferrals no
</LDAP>

<Authorization>
        BaseDN          "OU=PKEY,DC=PKEY,DC=LOCAL"    #查出来后范围最大化
        SearchFilter    "(&(sAMAccountName=%u)(memberof=CN=my***,OU=open***,OU=PKEY,DC=PKEY,DC=LOCAL))"
        RequireGroup    false
        <Group>
                BaseDN      "OU=open***,OU=PKEY,DC=PKEY,DC=LOCAL"
                SearchFilter    "(cn=open***)"
                MemberAttribute     "member"
        </Group>
</Authorization>

说明:
以上BaseDN部分通过这个工具测试得到;另外open*** 这个ou域上需要有,my***是open***下的安全组,即加到这个open***下的my***组中的用户可以通过认证登录open***,不加入这个组则不行;

ldapsearch -LLL -x -h 172.16.0.26 -D "[email protected]" -W -b "dc=pkey,dc=local" "*" >/tmp/ldap.txt

# cat ldap.txt |grep my***   #
memberOf: CN=my***,OU=open***,OU=PKEY,DC=PKEY,DC=LOCAL

2、修改server.conf配置

server.conf配置文件只需要在之前的基础上添加以下三行即可

# cat server.conf |egrep -v ‘(^$|^;|^#)‘ |tail -n 6
log         open***.log
verb 3
plugin /usr/lib64/open***/plugin/lib/open***-auth-ldap.so "/etc/open***/auth/ldap.conf"    #ldap认证需要添加
client-cert-not-required  # ldap认证需要添加
username-as-common-name   # ldap认证需要添加
mute 20

重启open***服务
systemctl restart open***@server.service

3、客户端配置

此时客户端配置只需要修改
C:\Program Files\Open***\config\client.o***配置文件即可,最终配置如下:

client
dev tun
proto udp
remote  "你的防火墙映射出来的公网ip" 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
#cert client.crt    ## 结合了ldap注释
#key client.key      ## 结合了ldap注释
auth-user-pass     # 结合了ldap认证需要添加
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-CBC
comp-lzo
verb 3
mute 20

此时再次运行Open***GUI会弹出如下图所示:

连接成功后任务栏右下角出现如下图标:

如果认证失败请到服务器上
tail -fn 100 open***.log 通过提示排查;
如以上的ldap.conf中配置错误;或用户没有加到open***下的my***组会出现如下错误提示:

**LDAP user "donyc" was not found.**
Wed Feb  5 22:47:27 2020 101.80.125.78:34260 PLUGIN_CALL: POST /usr/lib64/open***/plugin/lib/open***-auth-ldap.so/PLUGIN_AUTH_USER_PASS_VERIFY status=1
Wed Feb  5 22:47:27 2020 101.80.125.78:34260 PLUGIN_CALL: plugin function PLUGIN_AUTH_USER_PASS_VERIFY failed with status 1: /usr/lib64/open***/plugin/lib/open***-auth-ldap.so
Wed Feb  5 22:47:27 2020 101.80.125.78:34260 TLS Auth Error: Auth Username/Password verification failed for peer

open***是全平台支持的;其他客户端请自行到官方网站下载;到此一个在家或出差办公的神器部署完成!
以此献给疫情期间需要的人,如有问题请联系我~谢谢~

原文地址:https://blog.51cto.com/dyc2005/2469425

时间: 2024-07-30 05:00:20

CentOS7部署ldap认证Open***的相关文章

centos7.2 LDAP(TLS)+autofs+ssh

写前先祝福下勒布朗·詹姆斯 网上搜了很多关于centos7.2部署ldap的文章,这里也写一下自己的 实验环境系统:CentOS Linux release 7.2.1511 (Core)内核:3.10.0-327.el7.x86_64服务端IP:192.168.10.16客户端IP:192.168.10.17 第一步 selinux和firewalld [[email protected] opt]# getenforce Permissive [[email protected] opt]#

LDAP认证是什么?企业必须要认证LDAP吗?

鉴于最近不少朋友在我网站留言像我资讯关于LDAP认证的相关知识,今天抽空集中给大家讲解下到底什么是LDAP认证,以及企业要不要做LDAP认证呢? 什么是LDAP认证? LDAP认证是通过WSS3.0加上轻量目录LDAP协议搭建的一种认证方式,使用https加密传输,主要用于做文档管理.LDAP认证就是把用户数据放在LDAP服务器上,通过LDAP服务器上的数据对用户进行认证处理,好比采用关系型数据库存储用户信息数据进行用户认证的道理一样. 企业是否要做LDAP身份认证? ①LDAP数据库是对读操作

CentOS7部署Kubernetes集群

CentOS7部署Kubernetes集群 简介 Kubernetes是什么? Kubernetes一个用于容器集群的自动化部署.扩容以及运维的开源平台. 通过Kubernetes,你可以快速有效地响应用户需求: a.快速而有预期地部署你的应用 b.极速地扩展你的应用 c.无缝对接新的应用功能 d.节省资源,优化硬件资源的使用 我们希望培育出一个组件及工具的生态,帮助大家减轻在公有云及私有云上运行应用的负担. Kubernetes特点: a.可移植: 支持公有云,私有云,混合云,多重云(mult

centos7部署MongoDB数据库复制集(超详细)

centos7部署MongoDB数据库复制集(超详细)重点:复制集概述:复制集实现原理:复制集的应用案例:一.概述:组成:Mongodb复制集(副本集replica set)由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Secondary通过oplog来同步Primary的数据,保证主节点和从节点数据的一致性,复制集在完成主从复制的基础上,通过心跳机制,一旦primary节点出现宕

Nginx 结合Python Ldap认证用于Kibana权限登陆

参考及依赖 https://github.com/nginxinc/nginx-ldap-auth http://nginx.org/ nginx-1.14.2 http_auth_request_module nginx-ldap-auth python2.7 python-ldap Nginx支持ldap 部署nginx,注意需要http_auth_request_module支持 wget http://nginx.org/download/nginx-1.14.2.tar.gz tar

Centos7 部署社交网站(discuz论坛)

Centos7 部署社交网站(discuz论坛) 操作环境: 192.168.80.100 : svn192.168.80.101 : nginx192.168.80.102 : mariadb192.168.80.103 : php192.168.80.104 : nfs注意:为了防止不必要的错误,五台虚拟机都要联网,并且防火墙和selinux都要关闭systemctl stop firewalld //临时关闭防火墙setenforce 0 //临时关闭selinux 实验所需软件包(没有的

生产环境中CentOS7部署NET Core应用程序

NET Core应用程序部署至生产环境中(CentOS7) 阅读目录 环境说明 准备你的ASP.NET Core应用程序 安装CentOS7 安装.NET Core SDK for CentOS7. 部署ASP.NET Core应用程序 配置Nginx 配置守护服务(Supervisor) 这段时间在使用Rabbit RPC重构公司的一套系统(微信相关),而最近相关检验(逻辑测试.压力测试)已经完成,接近部署至线上生产环境从而捣鼓了ASP.NET Core应用程序在CentOS上的部署方案,今天

关于AD域在通过LDAP认证登录时密码修改后还可使用旧密码正常登录问题解决方法

最近一直在做一个LDAP的管理认证登录平台,但是发现在Active Directory中修改用户账号密码后,LDAP认证还可以正常通过认证,并登录系统,这是什么原因了? 在查看相关资料后发现,系Active Directory原因造成:那么应该如何解决这个问题了,可以通过修改旧密码的生命周期时间可以解决此问题: 具体原因: ?域用户成功更改密码使用 NTLM 后,旧密码仍然可用于网络访问用户可定义的时间段.此行为允许帐户,如服务帐户,登录到多台计算机来访问网络,而密码更改会传播. ?密码的扩展寿

SVN使用LDAP认证

完成了openldap的配置之后,为了更进一步的进行用户统一身份认证,所以需要配置SVN使用openldap进行认证,这样的话只需要维护ldap中的用户数据,然后在SVN上进行服务授权即可完成SVN的用户权限分配.同样的,这个配置也适合于其他的软件,比如vsftpd,ssh,openvpn等,下面开始配置SVN使用ldap认证. 1.安装sasl SASL全称Simple Authentication and Security Layer,是一种用来扩充C/S模式验证能力的机制. SASL是一个