User:Doooo/OpenVPN-zh
From Gentoo Wiki
Jump to:navigation
Jump to:search
初始化要求
KERNEL 确定内核启用 CONFIG_TUN 选项
Device Drivers -> Network device support <*> Universal TUN/TAP device driver support
Cannot load package information. Is the atom net-misc/openvpn correct?
安装
安装 openvpn
root #
emerge -v net-misc/openvpn
安装和配置
服务器配置
如果是初次设置openvpn服务, 我们需要从头开始创建一个 PKI (公共密钥体系).
Note
在本例中, 我们应该将生成的密钥放在
在本例中, 我们应该将生成的密钥放在
/etc/openvpn/exmaple/
目录 Note
这仅会创建一个单独的服务端. 更多 openvpn 实例, 参见 'Gentoo 细节' 部分.
这仅会创建一个单独的服务端. 更多 openvpn 实例, 参见 'Gentoo 细节' 部分.
创建一个openvpn服务端配置文件.
FILE
/etc/openvpn/openvpn.conf
设置一个使用udp协议的openvpn服务端# 服务器监听端口 port 12112 # openvpn协议, 可以是 tcp / udp / tcp6 / udp6 proto udp # tun/tap 设备 dev tun0 # 密钥配置, 使用生成的密钥 ca example/ca.crt cert example/example.crt key example/example.key dh example/dh2048.pem # tls-auth密钥安全认证选项 # tls-auth example/ta.key 0 # OpenVPN网络信息 server 10.100.0.0 255.255.255.0 # persistent device and key settings persist-key persist-tun ifconfig-pool-persist ipp.txt # 推送路由表 push "route 192.168.1.0 255.255.255.0" # push "dhcp-option DNS 192.168.1.1" # 连接 keepalive 10 120 comp-lzo user nobody group nobody # 日志 status openvpn-status.log log /etc/openvpn/openvpn.log verb 4
启动 openvpn 服务端
root #
/etc/init.d/openvpn start
客户端设置
通过安全的方式(比如SSH)将必需的密钥拷贝到客户端
- ca.crt
- client1.csr (in this example)
- client1.crt (in this example)
- client1.key (in this example)
- ta.key (if using tls-auth)
创建一个openvpn客户端配置文件.
FILE
/etc/openvpn/openvpn.conf
使用udp协议的openvpn客户端设置# 客户端声明 client # tun/tap 设备 dev tun0 # 协议类型, 基于服务端设置 proto udp # 服务器地址 remote address.to.server 12112 # 连接 comp-lzo resolv-retry 30 nobind # persistent device and keys persist-key persist-tun # 密钥设置 ca example/ca.crt cert example/client1.crt key example/client1.key # tls-auth选项 # tls-auth exmaple/ta.key 1 # 日志 log /etc/openvpn/openvpn.log verb 4
启动客户端
OpenRC
root #
/etc/init.d/openvpn start
or
systemd
root #
systemctl start openvpn
如果一切顺利,您已经有了一个可用的OpenVPN连接.
Gentoo 细节
初始化脚本运行多个隧道. 这取决于隧道的名字 - 例如 EXAMPLE
使用 OpenRC:
root #
ln -s /etc/init.d/openvpn /etc/init.d/openvpn.EXAMPLE
现在创建 /etc/openvpn/EXAMPLE.conf 作为您的配置文件
root #
/etc/init.d/openvpn.EXAMPLE start
使用 systemd:
创建 /etc/openvpn/EXAMPLE.conf 作为您的配置文件
root #
ln -s /usr/lib/systemd/system/openvpn@.service /etc/systemd/system/openvpn@EXAMPLE.service
root #
systemctl start openvpn@EXAMPLE
您可以使用喜爱的名字替换掉 EXAMPLE 来创建更多隧道. 每一个隧道都有自己的配置文件并且可以独立启动停止. 默认使用openvpn.conf作为配置文件并不会创建到服务的符号链接. 这两种方法您都可以选择.