OpenVPN 配置和使用
简介 OpenVPN
OpenVPN 是一个基于 OpenSSL 库的应用层 VPN 实现。和传统 VPN 相比,它的优点是简单易用。详细信息可以参考 http://www.openvpn.net。 这里简单介绍一下基于 CA ,采用数字证书认证,可以划分多个网段的 OpenVPN 配置方法。 Note 1: VNN 和 OpenVPN 很像。 Note 2: 这个东西对于突破国内网络封锁,保护通信自由很有意义,值得大力推广。 安装 OpenVPN Linux 下的安装 首先,Kernel 必须支持 TUN/TAP 设备。在 2.6.x 内核中,对应的 Kernel 选项是 “Universal TUN/TAP device driver support”。 确认 Kernel 支持 TUN/TAP 后,可以下载 OpenVPN 编译并安装。这一步很 easy,不多说了。 Windows 下的安装 从 http://www.openvpn.se 下载安装包安装,这里的安装包带一个 Client GUI 工具,很好用。 配置 OpenVPN 配置 OpenVPN Server 只说明在 Linux 下的配置。Windows 类似。创建 /etc/vpn/server.conf,内容如下: port 1494 proto udp dev tun ca ca.crt cert server.crt key server.key dh dh1024.pem server 10.1.0.0 255.255.255.0 push "route 10.1.0.0 255.255.255.0" push "route 10.1.1.0 255.255.255.0" client-config-dir /etc/vpn/ccd route 10.1.1.0 255.255.255.0 client-to-client keepalive 10 120 user nobody group nobody persist-key persist-tun log-append openvpn.log verb 3 其中 ca.crt, server.key,server.crt 可以用以前贴出的 ca 工具创建,dh1024.pem 用 OpenVPN 自带的工具创建。 这个配置文件创建了两个网段:10.1.0.* 和 10.1.1.*,VPN 服务器将从这两个网段中给 Client 分配 IP 地址。VPN Server 自身 IP 将是 10.0.0.1。 “client-config-dir”指明 Client 的专有配置文件目录。在这个目录下可以针对特定用户建立配置文件。例如,要为用户 abc 指定一个 IP 地址(如10.1.1.5)而不是让 VPN Server 自动分配,可以在配置目录/etc/vpn/ccd下建立一个 abc 文件,内容如下: ifconfig-push 10.1.1.5 10.1.1.6 那么 VPN Server 就会自动给 abc 用户分配 10.1.1.5 这个地址。注意第一个IP地址 的最后一个数字(这里是 5)必须是 4*n + 1 的数。 问题是,VPN Server 怎么知道哪个用户是 abc 呢?它是 Client 数字证书中的 Common Name 域来判断的。就是说,在连接协商时如果 Client 端数字证书的 Common Name 是 abc,那么 VPN Server 就找配置目录下 abc 这个文件。 配置 OpenVPN Client 在 Client 机器上 OpenVPN 安装目录的 config 目录下建立如下 client.ovpn 文件: client dev tun proto udp remote vpn_server_ip 1494 ca ca.crt cryptoapicert "SUBJ: abc" nobind persist-key persist-tun verb 2 修改 remote 一行填上对应 VPN Server 的 IP 和 端口。ca.crt 和服务端 ca.crt 一样,必须把这个 ca.crt 也放在 config 目录下。 关键是 cryptoapicert "SUBJ: abc" 上一篇:使用Rsync和SSH实现Snapshot型增量备份 下一篇:使用 lsof 查找打开的文件 更多相关文章
|
推荐文章
精彩文章
|