OPENVPN+MYSQL认证+客户端配置

安装环境:ubuntu 12.04 x64

一 服务器端

1、安装openvpn及相应包


1

2

[email protected]:~# aptitude install openvpn

[email protected]:~# aptitude install libpam-dev libpam-mysql libmysql++-dev sasl2-bin

2、检查安装


1

2

[email protected]:~# ls /usr/share/doc/|grep openvpn

openvpn ##发现已经存在。

3、生成证书


1

2

3

4

[email protected]:~#cd  /usr/share/doc/openvpn/examples/easy-rsa/2.0/ 

[email protected]:~# . ./vars    ##### 重成环境变量 以下生成的文件都在/usr/share/doc/openvpn/examples/easy-rsa/2.0/keys 下

[email protected]:/usr/share/doc/openvpn/examples/easy-rsa/2.0# ./clean-all ###用来清除之前生成的所有的key

[email protected]:/usr/share/doc/openvpn/examples/easy-rsa/2.0# ./build-ca  ####生成ca.crt  ca.key

4、建立给server用的certificate & key


1

2

3

4

5

6

7

[email protected]:/usr/share/doc/openvpn/examples/easy-rsa/2.0#./build-key-server server 

##“Common Name” 设成 “server”

##会产生以下文件

01.pem

server.crt

server.csr

server.key

5、建立给client用的certificate & key(可以建立多个client)


1

2

3

4

5

6

7

8

9

## “Common Name” 设成 “clinet1” 以此类推

[email protected]:/usr/share/doc/openvpn/examples/easy-rsa/2.0# ./build-key client1

##生成

client1.crt

client1.csr

client1.key

[email protected]:/usr/share/doc/openvpn/examples/easy-rsa/2.0#  ./build-key client2

[email protected]:/usr/share/doc/openvpn/examples/easy-rsa/2.0#  ./build-key client3

##当然,你也可以只生成一个client,我就是这样做的

6、建立 Diffie Hellman parameters 和 ta.key


1

2

[email protected]:/usr/share/doc/openvpn/examples/easy-rsa/2.0#  ./build-dh #建立 Diffie Hellman parameters 会生成dh{n}.pem。

[email protected]:/usr/share/doc/openvpn/examples/easy-rsa/2.0# openvpn --genkey --secret ta.key  #生成ta.key,防止ddos攻击,client和server同时存储

7、拷贝相关文件至/etc/openvpn下。


1

2

[email protected]:/usr/share/doc/openvpn/examples/easy-rsa/2.0# mv keys/* /etc/openvpn/

[email protected]:/usr/share/doc/openvpn/examples/easy-rsa/2.0# mv ta.key /etc/openvpn/ #不要遗漏

8、建立配置文件/etc/openvpn/server.conf


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

local 10.0.9.10 ###本机IP,这是一个内网IP,不过在路由上已经做了IP 的映射到一个外网ip

port 1194##指定端口

proto tcp

dev tun

;tls-server

ca ca.crt

cert server.crt

key server.key

tls-auth ta.key 0

dh dh1024.pem

server 10.8.0.0 255.255.255.0#拨入后的ip段及网关

ifconfig-pool-persist ipp.txt

#push “redirect-gateway”   # 自動將 client 的 default gateway 設成經由 VPN server 出去

keepalive 10 120 # 保持連線,每 10 秒 ping 一次,若是 120 秒未收到封包,即認定 client 斷線

comp-lzo

max-clients 20 # 最多同時只能有十個 client

user nobody

group nogroup # vpn daemon 執行時的身份(在非 Windows 平台中使用)

persist-key

persist-tun

status /etc/openvpn/easy-rsa/keys/openvpn-status.log

verb 3

# 以下二行是將 vpn server 內部的虛擬 ip 機器開放給 client 使用

push "route 10.0.1.0 255.255.255.0"

push "route 10.0.2.0 255.255.255.0"

push "route 10.0.3.0 255.255.255.0"

plugin ./openvpn-auth-pam.so /usr/sbin/openvpn ###这个是用来mysql 认证的,如不需要可注释掉

9、开启操作系统的IP转发设置。


1

2

[email protected]:~# echo 1 > /proc/sys/net/ipv4/ip_forward

[email protected]:~# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

10、建立mysql认证文件。


1

2

3

4

5

6

7

[email protected]:~# vi /etc/pam.d/openvpn

auth sufficient pam_mysql.so user=vpn passwd=vpnjkb host=127.0.0.1:3306 db=vpn \

table=vpnuser usercolumn=name passwdcolumn=password \

where=active=1 sqllog=0 crypt=2 verbose=1

account required pam_mysql.so user=vpn passwd=vpnjkb host=127.0.0.1:3306 db=vpn \

table=vpnuser usercolumn=name passwdcolumn=password \

where=active=1 sqllog=0 crypt=2 verbose=1

11、创建vpn库、授权、建表


1

2

3

4

5

6

7

8

9

10

11

12

13

14

mysql> create database vpn;##创建数据库vpn。

mysql> GRANT ALL ON vpn.* TO [email protected] IDENTIFIED BY ‘vpn123′;##授权localhost上的用户vpn(密码vpn123)有对数据库vpn的所有操作权限。

mysql> flush privileges;##更新sql数据库的权限设置。

mysql> use vpn;##使用刚创建的的vpn数据库。

mysql> CREATE TABLE vpnuser (

-> name char(20) NOT NULL,

-> password char(128) default NULL,

-> active int(10) NOT NULL DEFAULT 1,

-> PRIMARY KEY (name)

-> );

mysql> insert into vpnuser (name,password) values(’soai’,password(’soai’));

##命令解释:

#创建vpn用户,对vpn这个database有所有操作权限,密码为vpn123

#active不为1,无权使用VPN

12、拷贝文件


1

[email protected]:~# cp /usr/lib/openvpn/openvpn-auth-pam.so /etc/openvpn/

13、可选配置


1

2

3

4

#client-cert-not-required #不请求客户的CA证书,使用User/Pass验证

#username-as-common-name #使用客户提供的UserName作为Common Name

#client-to-client #如果让Client之间可以相互看见,去掉本行的注释掉,否则Client之间无法相互访问

#duplicate-cn #是否允许一个User同时登录多次,去掉本行注释后可以使用同一个用户名登录多次

14、下载相关文件给客户端用


1

2

##下载下列文件

client.crt  clinet.key ca.crt    ta.key

二 客户端

1、客户端下载地址:

http://swupdate.openvpn.org/community/releases/openvpn-2.2.2-install.exe ##windows

http://swupdate.openvpn.org/community/releases/openvpn-2.2.2.tar.gz  ##linux or mac

2、创建client.ovpn文件


1

2

3

4

5

6

7

8

9

10

11

12

13

14

client

dev tun

proto tcp

remote  8.8.8.8 1194 #公网ip 和 端口

nobind

persist-key

persist-tun

ca ca.crt

cert client.crt

key client.key

tls-auth ta.key 1

;comp-lzo

verb 3

auth-user-pass

3、把client.ovpn加上之前client.crt  clinet.key ca.crt    ta.key 放入一个config文件夹,并移动至vpn安装的主目录

4、启动客户端,输入用户名密码即可。#用户名密码在服务器端,mysql中添加的用户密码。

时间: 2024-10-12 08:07:50

OPENVPN+MYSQL认证+客户端配置的相关文章

openvpn 为指定客户端配置规则和访问策略

需求:    首先我们的需求是这样,我们在外地有三个分部,分别在上海,南京,无锡.这三个地方的同学们需要通过vpn访问北京办公室内网的某台主机,同时在北京的我们也需要在家里vpn进到办公室里边进行访问.    实现的方法是通过 openvpn server 端指定客户端的专有配置,配置里边可以指定特定客户端的ip地址,之后我可以在iptables的FORWARD链里边,根据指定给客户端的ip地址来指定访问规则,规则的制定是这样的,允许指定ip访问特定主机,然后deny特定主机的所有访问,之后放行

Zabbix 的 MySQL 监控客户端配置

Zabbix监控的方式有四个大方向: 1,Zabbix Agent类型 2,SNMP类型 3,JMX类型 4,IMPI类型 用的多的基本上就两种,Agent类型 和 SNMP类型. Agent类型的item是使用部署在服务端的Agent来获取数据,可以分为主动和被动模式. SNMP是监控服务器以外设备的非常好的方式,比如可以监控网络设备,打印机等,只要是有SNMP功能的,zabbix都可以监控. 今天我们要说的MySQL监控是基于Agent类型的监控. 我们来看看服务端的默认模板: item 有

centos搭建openvpn+mysql数据库认证

一服务器环境 1.系统版本 CentOS release 5.10 (Final) 64bits 2.软件版本 openvpn-2.3.6-1.el5 lzo-2.02-2.el5.1 lzo-devel-2.02-2.el5.1 easy-rsa-2.2.2-1.el5 pam-0.99.6.2-12.el5 pam-devel-0.99.6.2-12.el5 二配置服务器安装前环境 1.打开ip转发功能 echo "net.ipv4.ip_forward = 1">> 

OpenVPN 实战3:OpenVPN+MySQL 实现用户登录认证

大纲 一.前言 二.概述 三.具体配置过程 四.总结 注,实战环境 CentOS 5.5 x86_64,软件版本 OpenVPN 2.1,软件下载:http://yunpan.cn/QzT8fGsX8S75a  访问密码 e8e4. 一.前言 在上一篇博客中我们提出一个问题,下面我们来回顾一下: 前面做的实验都是由服务端先生成客户端证书,然后分发到客户端上,让客户端通过证书连接到服务器上.但有时候,这样的分发是比较麻烦的(也不安全).这样,我们可以考虑另外一种方式: 只在服务端制作客户端证书,而

openvpn+mysql安装配置

科普: 1.当今流行的4种vpn:pptp l2tp(相比pptp支持隧道验证) ipsec(cisco) sslvpn(openvpn). 2.openvpn可用于代理http:不同机房间服务器安装连接等. 以下是本人根据搜集的相关文档,重新整理,以备查阅. ====================================================================================== 实验环境: CentOS release 6.3 x64 外网:

vsftpd基于本地用户和mysql认证配置

虚拟用户认证 vsftp vsftpd软件包仅140KB 官方站点:http://vsftpd.beasts.org/ 主程序:/usr/sbin/vsftpd 服务名:vsftpd 用户控制列表文件 /etc/vsftpd/ftpusers /etc/vsftpd/user_list                    //禁止登录的FTP用户列表, 仅提供一份FTP用户列表,是否禁止登录取决于主配置文件中的设置 主配置文件 /etc/vsftpd/vsftpd.conf ftp的典型消息

OpenVPN安装配置,客户端配置

一.OpenVPN的工作原理 1.虚拟网卡 在Linux2.4版本以上,操作系统支持一个名为tun的设备,tun设备的驱动程序中包含两个部分,一部分是字符设备驱动,一部分是网卡驱动.网卡的驱动把从TCP/IP协议栈收到的数据包结构skb放于tun设备的读取队列,用户进程通过调用字符设备接口read获得完整的IP数据包,字符驱动read函数的功能是从设备的读取队列读取数据,将核心态的skb传递给用户:反过来字符驱动write函数给用户提供了把用户态的数据写入核心态的接口,write函数把用户数据写

CentOS下OpenVPN客户端配置

CentOS下OpenVPN客户端配置 http://liumissyou.blog.51cto.com/4828343/1762683 1,安装 yum install openvpn -y mkdir /etc/openvpn/etc/ <---证书拷贝到这个目录下. 2.启动 openvpn --daemon --askpass --config a_user.ovpn --log-append /var/log/openvpn.log

pfsense之OpenVPN客户端配置指南

问题及方案: 现环境是OpenVPN server端配置在IDC机房服务器上,并为每一个员工新建VPN帐号,员工在其电脑上自行安装客户端,用于连接公司内网.然非技术部门阅读技术文档有力较差,经常性需运维部门协助,考虑到员工多是位于办公室时才需访问内网,故打算在办公室搭建个VPN客户端,员工在公司期间则无需登陆VPN账号即可访问内网. 公司用的是pfsense做网关,故在pfsense上配置VPN客户端即可.以下是客户端配置指南. 一. pfsense 证书管理 1.登录pfsense 2. Ad