sudo gzip -d /etc/openvpn/server.conf.gz
编辑/etc/openvpn/server.conf中确保以下行指向您在上一节中创建的证书和密钥。
root@ubuntu:/etc/openvpn# cat server.conf |grep -v \
local 192.168.100.252 ##OpenVPN Server 服务器的IP port 1194 ##通信端口
proto udp ##也可以使用tcp端口,但传输速度可能没有udp快,建议保持沉默 dev tun ##tun模式一般用DHCP分发IP,另一种tap模式,一般是从IP段中指派IP ca /etc/openvpn/ca.crt ##强烈建议写绝对路径
cert /etc/openvpn/acttao.crt ##强烈建议写绝对路径
key /etc/openvpn/acttao.key # This file should be kept secret dh /etc/openvpn/dh2048.pem ##强烈建议写绝对路径
server 10.8.0.0 255.255.255.0 ##配置VPN使用的网段,OpenVPN会自动提供基于该网段的DHCP服务,但不能和任何一方的局域网IP段重复,保证唯一性
ifconfig-pool-persist ipp.txt ##存储分发IP记录,确保下次登录还获得一样的IP push \ ##若客户端希望所有的流量都通过VPN传输,则可以使用该语句,其会自动改变客户端的网关为VPN服务器(推荐关闭) push \push \
duplicate-cn #此处设置一个证书可以多个用户同时登陆
client-to-client ##默认OpenVPN客户端之间是不能互通的,注释掉就可以了。 keepalive 10 120
comp-lzo ##使用lzo压缩的通讯,服务端与客户端都必须配置 max-clients 100 ##最大连接数 user nobody group nogroup persist-key persist-tun
status openvpn-status.log ##日志文件 verb 3e
这是起码的,你必须通过配置来获得一个工作OpenVPN服务器。您也可以使用该样本server.conf中的文件中的所有默认设置。现在启动服务器。你会发现日志和错误信息在您的系统日志(/var/log/syslog)里面可以查看到。
root@server:/etc/openvpn# service openvpn start * Starting virtual private network daemon(s)...
* Autostarting VPN 'server' [ OK ]
现在,可以查看到OpenVPN创建了一个tun0的接口:
root@server:/etc/openvpn# ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 [...]
配置虚拟网卡tun0可以通过eth0网卡进行NAT转发数据包 vim /etc/default/ufw
DEFAULT_FORWARD_POLICY=\修改成
DEFAULT_FORWARD_POLICY=\ACCEPT\
vim /etc/sysctl.conf #net.ipv4.ip_forward=1 修改成
net.ipv4.ip_forward=1
sysctl -p 执行一下命令使修改生效
添加几条策略
ufw allow 22/tcp
iptables -A INPUT -p udp –-dport 1194 -j ACCEPT 或(ufw allow 1194/udp)
iptables -A FORWARD -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
防止系统重启后iptables不生效
iptables-save -c >/etc/ufw/iptables.save
echo \
4. 客户端配置
有带和不带图形用户界面的各种不同的OpenVPN客户端实现。你可以阅读更多有关在后面的部分客户。现在我们使用OpenVPN客户端的Ubuntu这是相同的可执行文件服务器。所以,你必须在客户机上重新安装OpenVPN的包:
sudo apt-get install openvpn
这一次的client.conf样本配置文件复制到/etc/openvpn/。
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/
复制客户端密钥,你在上面的部分,例如要在/etc/openvpn /然后编辑
/etc/openvpn/client.conf创建,以确保以下行指向这些文件的CA证书。 如果client.conf在/etc/openvpn下的文件/可以省略路径。
ca ca.crt
cert client1.crt key client1.key
你必须至少指定OpenVPN服务器的名称或地址,确保关键字的客户端是在config,这就是使得客户端模式。
client
remote 14.127.233.98 1194
##14.127.233.98是OpenVPN Server 映射出去的公网IP(192.168.100.252的1194端口在防火墙做了映射)
此外,client.conf不在/etc/openvpn目录下时,请确保您指定的服务器复制的密钥文件名
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client1.crt key /etc/openvpn/client1.key ##强烈建议用绝对路径,这样不容易出错。
现在启动OpenVPN客户端:
root@client:/etc/openvpn# service openvpn start * Starting virtual private network daemon(s)...
* Autostarting VPN 'client' [ OK ]
检查它是否创造了一个tun0的接口:
root@client:/etc/openvpn# ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.6 P-t-P:10.8.0.5 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
检查是否可以ping OpenVPN服务器:
root@client:/etc/openvpn# ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_req=1 ttl=64 time=0.920 ms
OpenVPN服务器总是使用客户端网络中的第一个可用的IP地址,只有该IP可侦测。 例如,如果你配置了一个/ 24的客户端网络掩码,.1地址将被使用。 点对点解决您在ifconfig输出中看到上面通常不回答ping请求。 检查你的路由表:
root@client:/etc/openvpn# netstat -rn Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.8.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.8.0.1 10.8.0.5 255.255.255.255 UGH 0 0 0 tun0
192.168.42.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.42.1 0.0.0.0 UG 0 0 0 eth0
5. 故障排查
如果完成了上面操作的还启动不了服务或连接不了,检查:
1. 2. 3. 4. 5. 6.
检查您的系统日志,例如:tail / var/log/syslog
请检查您是否配置了正确的client.conf和server.conf中指定的密钥文件的名称 不可以在客户端连接到服务器的机器,也许是防火墙阻止访问 客户端和服务器必须使用相同的协议和端口,如UDP端口1194
客户端和服务器必须使用相同的配置对于压缩,看比赛 - LZO配置选项
客户端和服务器必须使用相同的方面配置桥接与路由模式,请参阅服务器与服务器桥接配置选项
举例:
5.1 错误一:
Jul 6 13:01:10 ubuntu ovpn-server[2767]: Options error: --server and --server-bridge cannot be used together Jul 6 13:01:10 ubuntu ovpn-server[2767]: Use --help for more information. 原因: Server.conf配置文件中 server 10.8.0.0 255.255.255.0 不能与下面的一起使用 server-bridge 10.8.0.1 255.255.255.0 10.8.0.50 10.8.0.100 server-bridge 5.2 错误二:
Jul 6 13:02:07 ubuntu ovpn-server[2813]: Options error: --server-bridge directive only makes sense with --dev tap Jul 6 13:02:07 ubuntu ovpn-server[2813]: Use --help for more information. 原因: Server.conf配置文件中 server-bridge 10.8.0.1 255.255.255.0 10.8.0.50 10.8.0.100 server-bridge 只能配合tap用 dev tap ;dev tun (tun注释掉) 6. 客户端软件的实现
6.1 Linux的网络管理器图形用户界面的OpenVPN
许多Linux发行版,包括Ubuntu桌面变种配有网络管理器,一个漂亮的GUI来配置您的网络设置。它也可以管理你的VPN连接。请确保您有安装包的网络管理员,OpenVPN的。在这里,您会看到安装程序将安装所有其他所需的软件包,以及:
root@client:~# apt-get install network-manager-openvpn Reading package lists... Done Building dependency tree Reading state information... Done
The following extra packages will be installed:
liblzo2-2 libpkcs11-helper1 network-manager-openvpn-gnome openvpn Suggested packages: