1、安装openvpn 和easy-rsa(该包用来制作ca证书)

(1)安装epel 仓库源

wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release-6-8.noarch.rpm

(2)安装openvpn

yum install openvpn

(3)在github 上,下载最新的easy-rsa

https://github.com/OpenVPN/easy-rsa 下载包
mkdir openvpn
cd openvpn
unzip easy-rsa-3.0.5.zip
mv easy-rsa-3.0.5 easy-rsa

2、配置/etc/openvpn/ 目录

(1)创建目录,并复制easy-rsa 目录

cp -a easy-rsa /etc/openvpn/

(2)配置,编辑vars文件,根据自己环境配置

cd /etc/openvpn/easy-rsa/easyrsa3
cp vars.example vars
cd /etc/openvpn/easy-rsa/easyrsa3
vim vars
set_var EASYRSA_REQ_COUNTRY     "CN"
set_var EASYRSA_REQ_PROVINCE    "ZheJiang"
set_var EASYRSA_REQ_CITY        "HangZhou"
set_var EASYRSA_REQ_ORG         "ethnicity"
set_var EASYRSA_REQ_EMAIL       "ops
set_var EASYRSA_REQ_EMAIL       "ops@ethnicity.cn"
set_var EASYRSA_REQ_OU          "My OpenVPN"

3、创建服务端证书及key

进入
/etc/openvpn/easy-rsa/easyrsa3/目录

① 初始化

cd /etc/openvpn/easy-rsa/easyrsa3/
./easyrsa init-pki

② 创建根证书

 ./easyrsa build-ca

注意:在上述部分需要输入PEM密码 PEM pass phrase,输入两次,此密码必须记住,不然以后不能为证书签名。还需要输入common name 通用名,这个你自己随便设置个独一无二的。

③ 创建服务器端证书

./easyrsa gen-req server nopass

该过程中需要输入common name,随意但是不要跟之前的根证书的一样

④ 签约服务端证书

 ./easyrsa sign server server

该命令中.需要你确认生成,要输入yes,还需要你提供我们当时创建CA时候的密码。如果你忘记了密码,那你就重头开始再来一次吧

⑤ 创建Diffie-Hellman,确保key穿越不安全网络的命令

./easyrsa gen-dh

4、创建客户端证书

① 进入root目录新建client文件夹,文件夹可随意命名,然后拷贝前面解压得到的easy-ras文件夹到client文件夹,进入下列目录

mkdir client
cp /etc/openvpn/easy-rsa client/
cd client/easy-rsa/easyrsa3/

② 初始化

./easyrsa init-pki //需输入yes 确定

③ 创建客户端key及生成证书(记住生成是自己客户端登录输入的密码)

./easyrsa gen-req ethnicity //名字自己定义

④ 将的到的qingliu.req导入然后签约证书

a. 进入到
/etc/openvpn/easy-rsa/easyrsa3/

 cd /etc/openvpn/easy-rsa/easyrsa3/

b. 导入req

./easyrsa import-req /root/client/easy-rsa/easyrsa3/pki/reqs/ethnicity.req ethnicity

c. 签约证书

./easyrsa sign client ethnicity

//这里生成client所以必须为client,along要与之前导入名字一致

上面签约证书跟server类似,就不截图了,但是期间还是要输入CA的密码

5、把服务器端必要文件放到etc/openvpn/ 目录下

ca的证书、服务端的证书、秘钥

cp /etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt /etc/openvpn/
cp /etc/openvpn/easy-rsa/easyrsa3/pki/private/server.key /etc/openvpn/
cp /etc/openvpn/easy-rsa/easyrsa3/pki/issued/server.crt /etc/openvpn/
cp /etc/openvpn/easy-rsa/easyrsa3/pki/dh.pem /etc/openvpn/

6、把客户端必要文件放到root/openvpn/ 目录下

客户端的证书、

cp /etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt /root/client/
cp /etc/openvpn/easy-rsa/easyrsa3/pki/issued/along.crt /root/client/
cp /root/client/easy-rsa/easyrsa3/pki/private/along.key /root/client

7、为服务端编写配置文件

 vim /etc/openvpn/server.conf
local 0.0.0.0
port 1194
proto tcp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
server 10.222.1.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
client-to-client
keepalive 10 120
comp-lzo
max-clients 100
push "route 172.19.208.0 255.255.240.0"
user openvpn
group openvpn
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log         /var/log/openvpn/openvpn.log
#plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so login
plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so "/etc/openvpn/auth/ldap.conf %u"
client-cert-not-required
username-as-common-name
script-security 3
verb 3

ldap配置文件

cat  /etc/openvpn/auth/ldap.conf
<LDAP>URL             ldap://172.19.220.168:389BindDN          cn=admin,dc=ethnicity,dc=cnPassword        xxxxxxxTimeout         15TLSEnable       noFollowReferrals no
</LDAP>
<Authorization>BaseDN          "ou=People,dc=ethnicity,dc=cn"SearchFilter   "uid=%u"RequireGroup    true<Group>BaseDN          "ou=Group,dc=ethnicity,dc=cn"SearchFilter    "(objectclass=groupOfUniqueNames)"MemberAttribute uniqueMember</Group>
</Authorization>

8、iptables 设置nat 规则和打开路由转发

iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -j MASQUERADE
iptables -vnL -t nat
vim /etc/sysctl.conf //打开路由转发
net.ipv4.ip_forward = 1
sysctl -p

9、开启openvpn 服务

openvpn /etc/openvpn/server.conf 开启服务
ss -nutl |grep 1194

添加用户的脚本

cat add_user.sh
#!/bin/bash
user=$1
cd  /root/client/easy-rsa/easyrsa3/
./easyrsa init-pki
./easyrsa gen-req  $user
rm -rf /etc/openvpn/easy-rsa/easyrsa3/pki/reqs/$user.req
cd /etc/openvpn/easy-rsa/easyrsa3/
./easyrsa import-req /root/client/easy-rsa/easyrsa3/pki/reqs/$user.req $user
./easyrsa sign client $user
cp -r /etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt /root/client/
cp /etc/openvpn/easy-rsa/easyrsa3/pki/issued/$user.crt /root/client/
cp /root/client/easy-rsa/easyrsa3/pki/private/$user.key /root/client

最后附件client的配置

cat client.ovpn
client
dev tun
proto tcp
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
comp-lzo
remote-cert-tls server
route-delay 2
cipher AES-256-CBC
remote xxxxxx1194
ca /etc/openvpn/client/ca.crt
auth-user-pass /etc/openvpn/client/pass.txt
auth-nocache

/etc/openvpn/client/pass.txt 账号密码在两行

CentOS搭建Open服务(集成openldap认证)相关推荐

  1. LDAP落地实战(三):GitLab集成OpenLDAP认证

    上一篇文章介绍了svn集成OpenLDAP认证,版本控制除了svn外,git目前也被越来越多的开发者所喜爱,本文将介绍GitLab如何集成openldap实现账号认证 GitLab集成OpenLDAP ...

  2. Centos搭建FTP服务

    前言: Centos 搭建FTP服务学习记录 FTP简介 FTP简称"文件传输协议",用于Internet上的控制文件的双向传输. 在FTP中常遇到两个概念: 下载和上传 &quo ...

  3. zabbix集成openldap认证

    环境 centos7.9 zabbix 5.0 LTS openldap zabbix服务器上运行如下命令: php -m|grep ldap #查看模块是否开启 zabbix web页面配置 LDA ...

  4. CentOS 搭建 Vsftpd 服务,一次性成功,收藏了!

    点击下方"民工哥技术之路",选择"设为星标" 回复"1024"获取独家整理的学习资料! 文件传输协议 FTP 文件传输协议(FTP)是一种基 ...

  5. Centos搭建ARK服务器之路

    最近ark打折,买了之后和小伙伴准备一起搭建服务器来玩,然后就查了下资料,因为本人服务器是centos的 利用剩余空间弄了个服务器,然后发现,ark服务器真耗内存啊-- 然后实在看不懂的,本人的服务器 ...

  6. CentOS搭建云服务平台

    原文博客:Doi技术团队 链接地址:https://blog.doiduoyi.com/authors/1584446358138 初心:记录优秀的Doi技术团队学习经历 目录 文章目录 目录 前言 ...

  7. 基于Linux CentOS搭建FTP服务

    vsftpd(very secure FTP daemon)是一款在Linux发行版中最受推崇的FTP服务器.vsftpd支持匿名访问和本地用户模式两种访问方式.匿名访问方式任何用户都可以访问搭建的F ...

  8. centos搭建rsync服务!

    为什么80%的码农都做不了架构师?>>>    rsync是Unix下的一款应用软件,它能同步更新两处计算机的文件与目录,并适当利用差分编码以减少数据传输.rsync中一项与其他大部 ...

  9. gitlab集成openldap认证

    配置文件 cat /etc/gitlab/gitlab.rb gitlab_rails['ldap_enabled'] = true gitlab_rails['ldap_servers'] = YA ...

最新文章

  1. VISTA IIS Worker Process 已停止工作 解决办法
  2. Android中使用Room时怎样存储带list集合的对象
  3. cocos2d-x 3.2 移植到android
  4. import是引进外部函数吗_CMake之引入外部项目的三种方法
  5. mysql自动更新时间的触发器
  6. java onkeydown_java笔记 js onkeypress与onkeydown 事件区别详细说明
  7. 剑破冰山—Oracle开发艺术 目录
  8. 【老生谈算法】matlab实现追赶法算法——追赶法算法
  9. MB1504的程序实践与调试
  10. 实现写邮箱html页面,HTML写的第一个邮箱登陆界面
  11. 检验检测系统管理服务器,检验检测管理平台
  12. Android 中this的用法
  13. css3-文字添加边框
  14. 进程间通信之FIFO
  15. SpringBoot+logback优雅的配置日志!
  16. 安卓分析工具GameGurdian使用说明
  17. luckysheet实现在线编辑Excel
  18. 编译原理 LL1文法的判断和句子识别
  19. signature=f89e259b8a982ede42b69434f81f5bc3,利用 cDNA-AFLP技术鉴定马铃薯晚疫病菌小种特异无毒基因候选表达序列...
  20. android 如何刷机,安卓怎么刷机_安卓刷机图解_刷机大师教程

热门文章

  1. ArcGIS 网络分析 warning : the delay impedance of locationXX in Facilities exceeds the cutoff impedance
  2. unity转身代码_3DRPG游戏怎么控制人物转身
  3. 学java编程语言_为什么要学Java编程语言?
  4. 离散系统的零极点分布图
  5. Qt 6.2 LTS 与 Qt 5.15 LTS 的功能对比
  6. 第二次作业网络问卷制作
  7. linux3.x 驱动程序,Arm Linux3.x的设备树 - 龙芯开源社区
  8. 万向区块链蜂巢学院:王爽:隐私计算—数据经济、数据要素的基石
  9. 软件测试培训机构怎么选?这些你要知道、能省很多钱。
  10. python测试框架让case并发执行_《Flink官方文档》Python 编程指南测试版