User:Doooo/OpenVPN-zh
From Gentoo Wiki
Jump to:navigation
Jump to:search
初始化要求
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服务端配置文件.
# 服务器监听端口
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客户端配置文件.
# 客户端声明
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作为配置文件并不会创建到服务的符号链接. 这两种方法您都可以选择.