如何在 CentOS 6.4 linux 上安装和配置 openVPN 服务器

开放式VPN 是一个开源软件应用程序,它实现 虚拟专用网络 (VPN) 创建安全的技术 点对点 连接 在路由或桥接配置和远程访问设施中。 它使用使用 SSL/TLS 进行密钥交换的自定义安全协议。 它能够穿越网络地址转换器 (NAT) 和防火墙。

开放式VPN 允许对等方使用预先共享的密钥、证书或用户名/密码相互验证。 在多客户端-服务器配置中使用时,它允许服务器使用签名和证书颁发机构为每个客户端发布身份验证证书。 它广泛使用 OpenSSL 加密库,以及 SSLv3/TLSv1 协议,并包含许多安全和控制功能。 关于 OpenVPN 的更多信息

在 CentOS 5.x/6.0/6.1/6.2/6.3/6.4/6.5 上安装 OpenVPN

在我们开始之前,您需要拥有 企业 Linux 的额外包 (埃佩尔) 在您的服务器上启用存储库。
在 CentOS 5.x/6.x 上启用 Epel 存储库

# yum update

验证 Tun/Tap 是否已安装:

# cat /dev/net/tun

应该返回类似的行:

cat: /dev/net/tun: File descriptor in bad state

安装开放式VPN 来自 EPEL 的包裹:

# yum install openvpn -y

在 CentOS 5.x/6.0/6.1/6.2/6.3/6.4/6.5 上配置 OpenVPN

将示例 openVPN 配置文件复制到 /etc/opnvpn

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

编辑 /etc/openvpn/server.conf 文件

# nano /etc/openvpn/server.conf

取消注释导致我们客户端系统上的流量通过的“推送”参数 开放式VPN.

push "redirect-gateway def1 bypass-dhcp"

还取消注释以下行:

user nobody group nobody push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4"

使用 easy-rsa 生成密钥和证书

现在我们已经完成了配置文件的修改,我们将生成所需的密钥和证书。 创建所需的文件夹并复制文件。

 # mkdir -p /etc/openvpn/easy-rsa/keys

下载所需的脚本和证书:

# cd /tmp # wget https://github.com/downloads/OpenVPN/easy-rsa/easy-rsa-2.2.0_master.tar.gz # tar -xvf easy-rsa-2.2.0_master.tar.gz # cp /tmp/easy-rsa-2.2.0_master/easy-rsa/2.0/* /etc/openvpn/easy-rsa

将文件放在所需位置后,我们将编辑“vars”文件,该文件为easy-rsa 脚本提供所需信息。

# nano /etc/openvpn/easy-rsa/vars

我们希望修改位于文件底部的“KEY_”变量。 变量名称具有相当的描述性,应填写适用的信息。
完成后,“vars”文件的底部应类似于以下内容:
KEY_COUNTRY="US"
KEY_PROVINCE="CA"
KEY_CITY="SanFrancisco"
KEY_ORG="Lin tut"
KEY_EMAIL="[email protected]"
[email protected]
KEY_CN=changeme
KEY_NAME=changeme
KEY_OU=changeme
PKCS11_MODULE_PATH=changeme

我们现在将切换到我们的工作目录并根据上面提供的信息构建我们的证书颁发机构或 CA。

cd /etc/openvpn/easy-rsa source ./vars ./clean-all ./build-ca

现在我们有了我们的 CA,我们将创建我们的证书 开放式VPN 服务器。 当被问到 构建密钥服务器, 回答 yes 提交。

./build-key-server server

我们还需要生成我们的 Diffie Hellman 密钥交换 文件使用 build-dh 脚本并将我们所有的文件复制到 /etc/openvpn 如下:

./build-dh cd /etc/openvpn/easy-rsa/keys cp dh1024.pem ca.crt server.crt server.key /etc/openvpn

为了允许客户端进行身份验证,我们需要创建客户端证书。 您可以根据需要重复此操作以为每个客户端或设备生成唯一的证书和密钥。 如果您计划拥有多个证书对,请务必使用描述性文件名。

cd /etc/openvpn/easy-rsa ./build-key client

路由配置和启动 OpenVPN 服务器

在 sysctl 中启用 IP 转发:

nano -w /etc/sysctl.conf  # Controls IP packet forwarding net.ipv4.ip_forward = 1

应用我们新的 sysctl 设置。

# sysctl -p # service openvpn start # chkconfig openvpn on

创建一个 iptables 规则以允许正确路由我们的 VPN 子网。

# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE # service iptables save

配置 OpenVPN 客户端

最后让我们创建一个 server.ovpn 配置文件。 为方便起见,您可以使用记事本(或任何其他简单的文本编辑器工具)在本地计算机上简单地创建它。 Enter 在该文件中遵循以下内容:
client
dev tun
proto udp
remote ip.add.re.ss 1194 # - Your server IP and OpenVPN Port
resolv-retry infinite
nobind
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
persist-key
persist-tun
ca ca.crt
auth-user-pass
comp-lzo
reneg-sec 0
verb 3

然后用 .ovpn 扩展名保存它。 Save 该文件位于您安装位置的 config 目录中 OpenVPN客户端 在你的电脑里。

另请查看如何在 RHEL/Centos 6.4 Linux 中安装 PPTP VPN 服务器