设置OpenVPN服务器与OpenLDAP认证在Ubuntu 10.04 LTS

设置OpenVPN服务器与OpenLDAP的身份验证  Ubuntu 10.04 LTS   OpenVPN或打开虚拟专用网络,是一个工具...

在Ubuntu 10.04 LTS上设置OpenVPN服务器,以验证OpenLDAP

OpenVPN或开放式虚拟专用网络是一种在不在同一本地网络上的计算机组之间和之间创建网络“隧道”的工具。 如果您在本地网络上有服务并需要远程访问但不希望这些服务可以公开访问,这将非常有用。 通过与OpenSSL集成,OpenVPN可以加密所有的VPN流量,以提供机器之间的安全连接。

iRedmail的OpenLDAP后端可让您集成各种应用程序,实现集中式帐户管理。 本教程将介绍如何将OpenVPN集成到Ubuntu 10.04上的iremail ldap后端中; 密码将存储在ldap中,您可以通过webmail更改密码。

本教程基于Ubuntu 10.04,所以建议您使用SSH设置最小的Ubuntu 10.04系统; 确保您安装所有更新。 安装iremail 0.6.1并选择openldap作为后端,如本教程所示:

1安装OpenVPN

安装OpenVPN和ldap支持:

apt-get install openvpn openvpn-auth-ldap

安装dnsmasq:

要通过VPN转发DNS流量,您需要安装dnsmasq软件包:

apt-get install dnsmasq

2 easy-rsa

OpenVPN软件包提供了一组名为“easy-rsa”的加密相关工具。 这些脚本默认位于/ usr / share / doc / openvpn / examples / easy-rsa /目录中。 但是,为了正常运行,这些脚本应位于/ etc / openvpn目录中。

cp -R /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn

配置公钥基础架构变量

在为OpenVPN生成公钥基础设施之前,我们必须配置easy-rsa脚本将用于生成脚本的几个变量。 这些变量设置在/etc/openvpn/easy-rsa/2.0/vars文件末尾附近。 以下是相关值的示例:

根据您的环境编辑/etc/openvpn/easy-rsa/2.0/vars。

export KEY_COUNTRY="CN"
export KEY_PROVINCE="BJ"
export KEY_CITY="BeiJing"
export KEY_ORG="iRedMail"
export KEY_EMAIL="www@example.com"

初始化公钥基础设施(PKI)

按顺序发出以下命令来内部化证书颁发机构和公钥基础结构:

cd /etc/openvpn/easy-rsa/2.0/
chmod +rwx *
source ./vars
./clean-all
./pkitool --initca

生成证书

生成证书颁发机构可以为服务器生成私钥。 此脚本还将提示您提供更多信息。 默认情况下,此密钥的公用名称为“服务器”。 您可以在使用备用值有意义的情况下更改这些值。 要完成此操作,请发出以下命令:

./pkitool --server server

“Diffie Hellman参数”管理OpenVPN服务器使用的密钥交换和认证方法。 发出以下命令生成这些参数:

./build-dh

重新安置安全密钥

需要将服务器的密钥和证书重新定位到/ etc / openvpn目录,以便OpenVPN服务器进程可以访问它们。 这些文件是:

  • ca.crt
  • ca.key
  • dh1024.pem
  • server.crt
  • server.key

cp keys/{ca.crt,ca.key,server.crt,server.key,dh1024.pem} /etc/openvpn/

这些文件不需要离开你的服务器。 维护对这些文件的完整性和控制对您的服务器的完整性至关重要。 如果您需要移动或备份这些密钥,请确保它们已被加密和保护。

3为LDAP认证配置OpenVPN支持

找到cn = vmail密码

在安装iremail期间随机创建vmail密码。 您可以在/etc/postfix/ldap_virtual_mailbox_domains.cf中找到密码:

cat /etc/postfix/ldap_virtual_mailbox_domains.cf

bind_dn         = cn=vmail,dc=example,dc=com
bind_pw         = GDp9BH32x3zWf8xOtr86IKLcV0ffVW #cn=vmail password

配置OpenVPN认证OpenLDAP

按顺序发出以下两个命令,以创建/ etc / openvpn / auth文件夹,并将OpenVPN auth LDAP的示例文件复制到/ etc / openvpn / auth目录。

mkdir /etc/openvpn/auth
cp /usr/share/doc/openvpn-auth-ldap/examples/auth-ldap.conf /etc/openvpn/auth

现在编辑/etc/openvpn/auth/auth-ldap.conf


<LDAP>
# LDAP server URL
URL             ldap://localhost
# Bind DN (If your LDAP server doesn't support anonymous binds)
BindDN                cn=vmail,dc=example,dc=com
# Bind Password cn=vmail password
Password      GDp9BH32x3zWf8xOtr86IKLcV0ffVW

# Network timeout (in seconds)
Timeout         15

</LDAP>

<Authorization>
# Base DN
BaseDN          "o=domains,dc=example,dc=com"
# User Search Filter
SearchFilter    "(&(objectClass=mailUser)(accountStatus=active)(enabledService=vpn))"
# Require Group Membership
RequireGroup    false
</Authorization>

4配置OpenVPN

我们现在需要配置我们的服务器文件。 / usr / share / doc / openvpn / examples / sample-config-files目录中有一个示例文件。 发出以下命令序列以检索示例配置文件并将其移动到所需的目录:

cd /usr/share/doc/openvpn/examples/sample-config-files
gunzip -d server.conf.gz
cp server.conf /etc/openvpn/

现在编辑/etc/openvpn/server.conf

push "redirect-gateway def1"
push "dhcp-option DNS 10.8.0.1"
##Add it at the bottom line
plugin /usr/lib/openvpn/openvpn-auth-ldap.so /etc/openvpn/auth/auth-ldap.conf
client-cert-not-required

5为邮件用户启用VPN服务

使用phpLDAPadmin或其他工具为现有的邮件用户添加LDAP值。

登录phpLDAPadmin:

查找现有邮件用户www@example.com

为用户启用VPN服务www@example.com