在 NetBSD 上安装和配置 OpenVPN

关于 OpenVPN 在 Linux 上的安装配置都写烂了,搜索一下到处都有,但是 NetBSD 上的资料并不多,VPSee 在这里简单记录一下在 NetBSD 上配置 OpenVPN 的过程,步骤和流程都是和 Linux 一样的,只不过具体操作的细节不同,相信我们的客户和熟悉 Linux 上 OpenVPN 的朋友能很快用我们的 64MB NetBSD VPS 架设一台经济实惠的个人用 OpenVPN 服务器出来。以下步骤在我们的 NetBSD VPS 上执行通过:

安装 OpenVPN Server

源码安装 OpenVPN 服务器(如果自己 /usr/ 下没有 pkgsrc 这个目录的话参考这篇文章:下载 pkgsrc 去下载解压一个):

# cd /usr/pkgsrc/net/openvpn
# make install clean clean-depends

拷贝 openvpn 启动配置文件到 NetBSD 的启动配置目录下,然后编辑 /etc/rc.conf 以便系统启动的时候自动运行 NetBSD:

# cp  /usr/pkg/share/examples/rc.d/openvpn /etc/rc.d

# vi /etc/rc.conf 
openvpn=YES

拷贝创建认证需要的一些脚本到 openvpn 的配置目录:

# cp /usr/pkg/share/openvpn/easy-rsa/* /usr/pkg/etc/openvpn/

给 vars 文件加写权限,然后做一些必要的编辑和定制:

# chmod +w /usr/pkg/etc/openvpn/vars
# vi /usr/pkg/etc/openvpn/vars

因为 vars 脚本需要 bash 才能运行,所以要先在 NetBSD 上安装 bash:

# cd /usr/pkgsrc/shells/bash2
# make install clean clean-depends

安装完 bash 后切入到 bash shell,然后运行:

# bash
bash-2.05b# source /usr/pkg/etc/openvpn/vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /usr/pkg/etc/openvpn/keys

现在开始创建 certificate authority (CA):

# cd /usr/pkg/etc/openvpn/
# ./build-ca

给服务器创建 certificates 和 private key:

# ./build-key-server server

给客户端创建 keys:

# ./build-key client

创建 Diffie Hellman 密钥,Diffie–Hellman 是一种安全协议,可让双方在没有任何对方预先信息的条件下通过不安全隧道创建一个密钥,并且这个密钥可用在后续的通讯中来加密通讯内容。OpenVPN 必须要 Diffie Hellman 密钥:

# ./build-dh

拷贝 OpenVPN Server 的样例配置文件到 openvpn 的配置文件目录(如果客户端不幸需要通过 http 代理访问 openvpn server 的话,可以在 server.conf 做一些设置,具体看:用代理连接 OpenVPN 的问题):

# cp /usr/pkg/share/examples/openvpn/config/server.conf /usr/pkg/etc/openvpn/

启动 OpenVPN 服务器,首次启动出错是因为没有找到 dh1024.pem 文件,把 dh1024.pem 等文件从 /usr/pkg/etc/openvpn/keys 里拷到上级目录后再次启动就成功了:

# /etc/rc.d/openvpn start
Starting openvpn.
Aug  4 20:20:19  openvpn[1266]: Cannot open dh1024.pem for DH parameters: error:02001002:system library:fopen:No such file or directory: error:2006D080:BIO routines:BIO_new_file:no such file

# mv /usr/pkg/etc/openvpn/keys/* /usr/pkg/etc/openvpn/

# /etc/rc.d/openvpn start
Starting openvpn.
add net 10.8.0.0: gateway 10.8.0.2

查看 OpenVPN 服务器正常启动后是否生成 tun 设备:

# ifconfig -a
tun0: flags=8051 mtu 1500
        inet 10.8.0.1 -> 10.8.0.2 netmask 0xffffffff
        inet6 fe80::216:3eff:fe55:4f16%tun0 ->  prefixlen 64 scopeid 0x3

在内核打开 IP 转发功能,并把 IP 转发写到启动文件:

# sysctl -w net.inet.ip.forwarding=1

# vi /etc/sysctl.conf
net.inet.ip.forwarding=1

安装 OpenVPN Client

OpenVPN 客户端软件有多种、有支持 Linux, MacOS X 和 Windows 的、有图形界面的、也有命令行的,根据自己系统和喜好挑一个客户端,在 Mac 上 VPSee 推荐开源的 Tunnelblick,不同客户端的配置都差不多,主要是把服务器上的 ca.crt, client.crt, .csr, .key 等文件拷到客户端,然后调整一下客户端的配置以连接上服务器。

连接测试

连接后就会在客户端的日志看到类似这样的成功连接信息:

tunnelblick

评论 (1 Comment)

  1. 客户端应该是不需要.csr文件的==

发表评论