OpenVPN+AD+Google authenticator 安装、配置

一、      网络环境如下

1.OpenVPN Server


外网卡eth1配置

IP:121.12.x.y

MASK:255.255.255.128

GateWay:121.12.x.1


LAN eth0卡配置

IP:192.168.38.87

MASK:255.255.255.0

DNS:192.168.38.1


远程拨号DHCP池:

172.16.0.0  -172.16.0.127

掩码:255.255.255.128

2.内网三层交接口IP:192.168.38.254

二、网络配置注意点

1.  OpenVPN Server内网卡上配置反向路由(eth0为内网口,eth1为外网口)

vi/etc/sysconfig/network-scripts/route-eth0

添加如下内容:192.168.0.0/16 via 192.168.38.254

2.  VPN Server防火墙配置(eth0为内网口,eth1为外网口)

#开放外网口UDP 1194OpenVPN

iptables -I INPUT -i eth1 -p udp --dport 1194 -j ACCEPT

#内网口全部接受

iptables -I INPUT -i eth0 -j ACCEPT

#影响所有有出主动出去的返回包

iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#默认策略拒绝所有

iptables -A INPUT -j DROP

iptables -I OUTPUT -o eth1 -p udp --sport 1194 -j ACCEPT

iptables -I OUTPUT -o eth0 -j ACCEPT

iptables -A OUTPUT -j DROP

#接受外网口ping(允许ping入)

iptables -I INPUT -p icmp --icmp-type echo-request -j ACCEPT

#允许ping

iptables -I OUTPUT -p icmp -m icmp--icmp-type echo-reply -j ACCEPT

iptables -I OUTPUT -p icmp --icmp-type echo-request -j ACCEPT

保存配置/sbin/iptables-save

说明:配置外网卡开放了udp端口1194;内网卡全开放同时开启了ping

3.在三层交换机配置路由

iproute 172.16.0.0 255.255.255.128 192.168.38.87

三、服务器软件安装

1.建议停用SELinux 及开启IP转发

vi /etc/selinux/config

修改前:SELINUX=enforcing

修改后:SELINUX=disabled

开启系统的路由功能    echo "1" >/proc/sys/net/ipv4/ip_forward

然后重启服务器

2. Googele authenticator安装

准备打包的软件环境

yum -y install git gcc \

libtool autoconf \

automake pam-devel \

rpm-build qrencode-libs;

抓取源代码,打包

git clone https://github.com/google/google-authenticator-libpam.git

cd google-authenticator-libpam

./bootstrap.sh

./configure

make dist

cp google-authenticator-*.tar.gz~/rpmbuild/SOURCES/

上面这一步如果提示~/rpmbuild目录不存在,则先把下一步执行一次然后再试

下面这一步会确保有~/rpmbuild目录

rpmbuild -ba contrib/rpm.spec

# 成功以后,编好的rpm包路径在:

/root/rpmbuild/RPMS/x86_64/google-authenticator-1.03-1.el6.x86_64.rpm

进入 cd /root/rpmbuild/RPMS/x86_64/

安装:rpm -ivh google-authenticator-1.03-1.el6.x86_64.rpm

3. OpenVPN安装

准备打包的软件环境

正常yum是没有openvpn、easy_rsa的安装包,需要另外添加yum安装源:epel源

rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm

yum -y install openvpn \

pam_ldap \

openvpn-auth-ldap \

pamtester \

lzo \

openssl \

zlib;

4. 证书配置

mkdir/etc/openvpn/easy-rsa

cp/usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa/

vi/etc/openvpn/easy-rsa/vars修改vars中的以下信息,并保存

内容如下:

export KEY_COUNTRY="CN"

export KEY_PROVINCE="GD"

export KEY_CITY="ZS"

export KEY_ORG="NEO"

export KEY_EMAIL="[email protected]"

exportKEY_OU=“NEO”

进入cd /etc/openvpn/easy-rsa/

source ./vars初始化

./clean-all清理证书(此步骤第一次可以省去)

./build-ca创建根证书   在keys下生成ca.crt   ca.key

./build-key-serverNEO创建服务器端证书   在keys下生成neo.crt  neo.csr neo.key

./build-keyNEO-client创建客户端证书  在keys下生成neo-client.crt  neo-client.csr  neo-client.key

./build-dh生成diffiehellman参数   在keys下生成dh2048.pem

四、服务器软件配置

1.用户认证配置

vi/etc/pam_ldap.conf

内容如下:

host 192.168.38.1 192.168.38.8

base dc=nccn,dc=int

uri ldap://192.168.38.1/

binddncn=ldapuser,ou=Special,ou=ZS,ou=NEOUsers,dc=nccn,dc=int

bindpw ldapuser账号密码

pam_login_attributesAMAccountName

2.OpenVPN配置

vi /etc/openvpn/server.conf

内容如下:

port 1194

proto udp

dev tun

ca /etc/openvpn/easy-rsa/keys/ca.crt

cert /etc/openvpn/easy-rsa/keys/neo.crt

key /etc/openvpn/easy-rsa/keys/neo.key

dh /etc/openvpn/easy-rsa/keys/dh2048.pem

server 172.16.0.0 255.255.255.128

ifconfig-pool-persist ipp.txt

push "route 192.168.0.0 255.255.0.0"

push "dhcp-option DNS 192.168.38.1"

client-to-client

#keepalive 10 120

comp-lzo

max-clients 100

log /etc/openvpn/openvpn.log

log-append /etc/openvpn/openvpn.log

client-cert-not-required

username-as-common-name

plugin/usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so /etc/pam.d/openvpn

vi/etc/pam.d/openvpn

内容如下:

auth    required    pam_google_authenticator.so nullokforward_pass debug

auth    required    pam_ldap.so use_first_pass debug

account    required   pam_unix.so

第一行的 forward_pass 参数使得一次读入系统密码(ldap,也就是 AD 密码)和 google authenticator 的密码,然后把系统密码扔给后续的pam(也就是带有 use_first_pass 参数的pam模块)处理

第二行的 use_first_pass 上面已有讲到(前两行都带 debug 参数完全是调试的需要,生产环境可以不用)

第三行是必须的,否则 openvpn 登录不上

3. 添加VPN服务为自启动

chkconfig --add openvpn

chkconfig openvpn on

service openvpn start

五、VPN Client配置

1. Googele authenicator以及用户初始化:

useradd ldapuser

su ldapuser

google-authenticator    全部回答”Y”

2. 安装手机端

使用app商店查找Googeleauthenicator,进行安装

在手机客户端扫码或者输入账号名和此账号的   secretkey 

完成后,每隔36000就会生成一个新6位码:

3. 验证是否成功

pamtester openvpn ldapuser authenticate

4. 电脑端OpenVPN Client配置

从OpenVPN服务器上的 /etc/openvpn/easy-rsa/keys/位置下载ca.crt到windows

同时在windows下生成一个叫client.ovpn的配置文件,内容如下:

client

dev tun

proto udp

remote 121.12.x.y 1194

ca ca.crt

verb 3

auth-user-pass

comp-lzo

在Windows OPENVPN客户端(此软件安装略)上,点“+”号

导入client.ovpn文件

即可进行测试拨号

下面成功显示

查看一下系统IP

查看网络路由表:

上面表示VPN拨号成功

后续

编写一脚本自动建VPN账号和发邮件给VPN 用户

修改/etc/nail.rc (/etc/mail.rc)

Set [email protected]maildomain.com smtp=mail.maildomain.com set smtp-auth-user=notice smtp-auth-password=password set smtp-auth=login

说明:

from是发送的邮件地址

smtp是发生的外部smtp服务器的地址

smtp-auth-user是外部smtp服务器认证的用户名

smtp-auth-password是外部smtp服务器认证的用户密码

smtp-auth是邮件认证的方式

vi vpnuseradd

内容(其中:OpenVPN Client Setting Manual.pdf是OpenVPN用户端操作手册):

----------------------

#!/bin/bash

echo "please input openvpnusername:"

read a

if test-e /home/$a

then echo "this vpn user is exist!"

else

useradd $a

su -c \

"google-authenticator -t -f -d -w17 -r 3 -R 30 -q" \

$a

echo "Below is $a ‘s new secretkey:" >gs-temp

echo "  " >>gs-temp

head -1 /home/$a/.google_authenticator>>gs-temp

echo "   ">>gs-temp

echo "1. Please follow the attachment Manual to do!" >>gs-temp

echo "2. Any question, please call IT NO.xxxx !" >>gs-temp

mail -s "Google_authenticatorKey" -a OpenVPN\ Client\ Setting\ Manual.pdf [email protected] <gs-temp

fi

------------------------------

chmod755 vpnuseradd    (chmod vpnuseradd 为可执行文件)

时间: 2024-11-02 01:44:27

OpenVPN+AD+Google authenticator 安装、配置的相关文章

OpenVPN学习笔记——客户端安装配置

OpenVPN服务器端部署完成后,就需要配置客户端的使用了,下面分别以Windows和Linux为例进行客户端的安装和配置. 1.Windows客户端 1)安装OpenVPN GUI for Windows客户端 OpenVPN在windows上的客户端叫做OpenVPN GUI for windows,需要安装该软件包才能连接VPN,所以我先下载并安装该软件.软件官网被墙了,所以需要翻墙才能下载,软件的安装没有什么特殊的地方,只需要点击下一步直到完成即可.(补充一点,我的笔记本是windows

部署VMware vSphere 5.5 (6-3) 安装配置AD域控制器

部署VMware vSphere 5.5 实施文档 ############################################################################### ## ver1.0 2014-09-09 ## ## 本文内容来自中国专利信息中心-基础系统处-张阳郑榕鹏 ## ## 如有转载,请务必保留本文链接及版权信息. ## ## QQ:962903 353961396 ## ## E-mail:[email protected] \ [ema

Centos系统下OpenVPN安装配置

由于最近公司的一个客户需求通过VPN来访问国外的业务,这个事情由我来负责但我从来都没有做过于是就各种百度.google一顿狂找OpenVPN方面的资料.根据网上查找到的资料结合自己的理解总结如下文档,给大家在这里分享下. 一.安装OpenVPN前的准备工作 1.安装OpenVPN版本 Centos6.3 64位 客户端系统Win7 64位  服务端IP:114.26.162.35 2.服务端软件版本 openvpn-2.0.9tar.gz lzo-2.03.tar.gz 3.客户端安装软件版本

openvpn安装配置过程

前言 之前为了方便远程办公时访问公司的内部系统,如:svn.OA.wiki.禅道等等:通通在防火墙上做了端口映射.然后 有个内部系统被黑了,各种弱口令没办法.果断关闭端口映射,看来还是得搭建个VPN服务器,vpn设备感觉大材小用.马上就想到了开源的openvpn, 下面就来介绍openvpn的安装配置过程. openvpn简介 官方网站:https://openvpn.net 打不开请爬墙 openssl原理:http://www.178linux.com/archives/2704 参考书生的

OPENVPN安装配置教程总结 centosX64

1.安装openvpn依赖组件 2.安装openvpn 3.初始化CA证书 4.生成CA证书,生成server证书,生成client证书 5.编辑/etc/sysctl.conf,添加路由规则. 6.生成Diffie Hellman参数 7.将server 证书 dh1024.pem ca证书copy到 /etc/openvpn 8.将server.conf 复制到 /etc/openvpn目录下并依据自己要求编辑此配置文件 9.配置启动脚本启动server 端 10.配置客户端,连接客户端 详

centos 安装配置openvpn

centos6.5 openvpn安装配置首先检查selinux是否关闭 getenforce 0 返回 disabled 表示关闭# 安装openssl和lzo,lzo用于压缩通讯数据加快传输速度yum -y install openssl openssl-develyum -y install lzo 1.安装openvpn 和easy-rsa(生成证书) yum -y install openvpn 报错 错误:软件包:pkcs11-helper-1.08-1.el6.rf.x86_64

openvpn+mysql安装配置

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

Openvpn安装配置参考示例收藏版

1.配置安装环境: [[email protected] ~]# yum install -y gcc gcc-c++ pam-devel openssl penssl-devel [[email protected] ~]# yum install -y lrzsz    (SecureCRT 上传下载) 2.关闭SELINUX.清除防火墙设置 [[email protected] ~]#vi /etc/selinx/config #     disabled - No SELinux pol

CentOS上安装配置OpenVPN

CentOS6.7上安装配置OpenVPN 安装配置openvpn服务端 1.安装依赖 ntpdate pool.ntp.org yum -y install lzo lzo-devel-devel gcc pam-devel gcc-c++ 2.安装openvpn mkdir tools cd tools wget http://swupdate.openvpn.org/community/releases/openvpn-2.3.2.tar.gz tar xf openvpn-2.3.2.t