使用iRedMail和OpenVPN虚拟电子邮件托管和VPN服务(CentOS 5.4)

使用iRedMail和OpenVPN进行虚拟电子邮件托管和VPN服务,通过针对OpenLDAP(CentOS 5.4)的中央身份验证

iRedMail是一个外壳脚本,可让您在不到2分钟内快速部署全功能邮件解决方案。 iRedMail支持OpenLDAP和MySQL作为后端用于存储虚拟域和用户。

本教程介绍如何将OpenVPN集成到CentOS 5.x上的iremail的ldap后端,让openvpn auth OpenLDAP?密码将存储在ldap中,您可以通过webmail更改密码。

本教程基于CentOS 5.4,所以建议设置一个最低的CentOS 5.4系统,安装iremail 0.6并选择openldap作为后端,如这些教程所示:

1安装OpenVPN

使用EPEL yum存储库安装OpenVPN。

rpm -Uhv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm # <-- For i386
rpm -Uhv http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-3.noarch.rpm # <-- For x86_64

安装OpenVPN和ldap支持:

yum install openvpn openvpn-auth-ldap
chkconfig openvpn on

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

yum install dnsmasq 
/etc/init.d/dnsmasq start
chkconfig dnsmasq on

2 easy-rsa

OpenVPN软件包提供了一组名为“easy-rsa”的加密相关工具。 这些脚本默认位于/ usr / share / doc / openvpn / examples / easy-rsa /目录中。 但是,为了正常运行,这些脚本应位于/ etc / openvpn目录中。 我们还需要将Openvpn配置示例文件复制到/ etc / openvpn

cp -R /usr/share/openvpn/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参数链接

“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配置OpenVPN支持LDAP认证

找到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         = InYTi8qGjamTb6Me2ESwbb6rxQUs5y #cn=vmail password

在/etc/openvpn/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      InYTi8qGjamTb6Me2ESwbb6rxQUs5y
# Network timeout (in seconds)
Timeout         15


# Base DN
BaseDN          "o=domains,dc=example,dc=com"
# User Search Filter
SearchFilter    "(&(objectClass=mailUser)(accountStatus=active)(enabledService=vpn))"

# Require Group Membership
RequireGroup    false

4配置OpenVPN

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

cp /usr/share/doc/openvpn-2.1.1/sample-config-files/server.conf /etc/openvpn/

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

push "redirect-gateway def1"
push "dhcp-option DNS 10.8.0.1"
plugin /usr/lib/openvpn/plugin/lib/openvpn-auth-ldap.so /etc/openvpn/auth/ldap.conf
client-cert-not-required

5为邮件用户启用VPN服务

使用phpLDAPadmin或其他工具为现有邮件用户添加示例LDAP属性和值。

登录phpLDAPadmin:

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

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

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏