[原创] Configure OpenVPN on Ubuntu

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
zubinhe
帖子: 10
注册时间: 2008-10-07 15:10

Re: [原创] Configure OpenVPN on Ubuntu

#16

帖子 zubinhe » 2009-09-04 11:33

我配成功,也成功连接到OPENVPN SERVER,但是客户端就是没有网关IP,因此无法通过VPN服务器上网。

路由表里的默认网关还是我的本地的网关,求解,谢谢...
beyondlion
帖子: 193
注册时间: 2008-11-13 7:59

Re: [原创] Configure OpenVPN on Ubuntu

#17

帖子 beyondlion » 2009-12-15 21:36

zzsu 写了:我理解,OpenVPN的配置根据实现分三种方式:
  • 单机 - - 站点
    站点 - - 站点
    单机 - - 单机
本文的描述适合单机 - - 站点实现方式,也可以理解为移动用户连回公司网络。

目录
  • 1. 安装
    2. 设置认真机构,产生证书
    3. 配置Server端
    4. 配置Client端
1. 安装
Ubuntu中安装OpenVPN极其简单:

代码: 全选

sudo apt-get install openvpn
在Windows中安装则建议使用 OpenVPN GUI for Windows的Installation Package,其中包括了OpenVPN本身以及在Windows中使用方便的图形界面。

2. 设置认真机构,产生证书
参考OpenVPN的Howto进行操作,一般不会有什么问题。
在Ubuntu中大致这样操作,将目录 /usr/share/doc/openvpn/examples/easy-rsa/2.0 复制的你的家目录,修改vars使其符合你的实际情况(国家、省份、城市、公司、机构、邮件地址),然后运行

代码: 全选

./vars
./clean-all
./build-ca
./build-key-server <servername>
./build-key <clientname>
./build-dh
注意:这只是第一次产生证书的正确操作,其中 build-ca 创建根证书,若你没有清除全部VPN Server/Client的打算,你不应该再次运行此命令;创建的全部证书及私钥都在当前目录的 keys 下面,而命令 clean-all 将清除 keys 下面全部内容,因此 cliean-all 只在 build-ca 前运行一次。
随后添加 Server 证书或 Client 证书只需运行

代码: 全选

./vars
./build-key-server <servername>
or
./build-key <clientname>
3. 配置Server端
从示例中解压 server.conf

代码: 全选

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz  /etc/openvpn/
sudo gzip -d /etc/openvpn/server.conf.gz
将相关证书、私匙拷贝的 /etc/openvpn
  • ca.crt
    server.crt
    server.key
    dh1024.pem
修改 server.conf
关键一:取消注释 push "route a.b.c.d 255.255.255.0",并将地址和掩码替换为办公网络的地址和掩码
目的是为客户端加一条路由,这样客户端才有可能访问到办公网络中出VPN Server之外的其它主机(有很多VPN客户端直接添加默认路由,这样客户端的所有连接请求都被路由到 VPN 通道内,结果是客户端此时不能访问VPN,而此项添加指定地址的路由不会导致这一问题)
关键二:取消注释 push "dhcp-option DNS a.b.c.d" 和 push "dhcp-option WINS a.b.c.d", 并将地址替换为实际的 DNS 和 WINS 服务器的地址,最好 DNS 服务器能将外部域名的解析要求转发的外部 DNS 服务器
目的是客户端连接VPN后仍能访问Internet,(若推过来的DNS不能解析外部域名,则即使客户端的路由配置正确,想通过域名访问Internet也不可能)
Server端其它设置
配置服务器,运行包转发:

代码: 全选

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
关键三:若VPN Server不是办公网络的默认网关,则想办法在默认网关上添加到 10.8.0.0/24 的路由项目,网关为服务器的内部 IP 地址。
关键一中的操作只是能够让客户端知道去往公司网络的包如何路由,而关键三的操作是为了让公司网络里的主机知道去往VPN Client的包如何路由。
对于Netscreen 25(screenos 5.3.0r3.0),Network - Routing - Destination - [trust-vr]New - IP/mask [10.8.0.0]/[24] - 选 [Gateway], Interface [ethernet1], Gateway IP Address [Internal IP of VPN Server]

4. 配置Client端
在Ubuntu中,
4.1.1 从示例中拷贝client.conf

代码: 全选

sudo cp //usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/
4.1.2 将相关证书、私钥拷贝到/etc/openvpn:
  • ca.crt
    client.crt
    client.key
4.1.3 修改/etc/openvpn/client.conf:
在 remote my-server-1 1194 这一行,将 my-server-1 换成 VPN Server 的外部IP
关键四:在结尾添加两行

代码: 全选

up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
目的是根据Server推过来的 dhcp-option 更新域名解析设置

4.1.4 其它设置:
关键五:安装resolvconf软件包

代码: 全选

sudo apt-get install resolvconf
关键四中设置的脚本需要使用此软件。

在Windows中,
4.2.1 将client.ovpn拷贝的config目录
4.2.2 将证书和相关私匙拷贝到config目录
  • ca.crt
    client.crt
    client.key
4.2.3 将client.ovpn中的my-server-1改为VPN Server的外部IP

欢迎指正!
愿意共同探讨你遇到的问题。
:em11 收藏
头像
hamaburg
帖子: 284
注册时间: 2006-06-30 12:52

Re: [原创] Configure OpenVPN on Ubuntu

#18

帖子 hamaburg » 2010-03-18 11:24

:em06 非常感谢
按照lz的文档 实验成功,
中间也 source 了一下

代码: 全选

. ./vars 
在达拉斯 64M 内存 xen vps 安装服务端 配置成功
下一步继续加压 64M 内存vps :em06 :em06 :em06
hlhao9527
帖子: 16
注册时间: 2009-05-01 20:38

Re: [原创] Configure OpenVPN on Ubuntu

#19

帖子 hlhao9527 » 2010-03-18 13:05

能连上 windows ip 10.0.14 掩码10.8.0.13 网关无 dhcp 10.8.0.12 dns正常
安楼主server配置的求解! :em06
头像
hamaburg
帖子: 284
注册时间: 2006-06-30 12:52

Re: [原创] Configure OpenVPN on Ubuntu

#20

帖子 hamaburg » 2010-03-30 15:32

在lz的结构上继续添加 NAT 实现 更方便的 虫兑 忒 访问。

设备:
公网vps. OS. ubuntu9.04 server 公网ip 66.A.B.C
办公室 主机 OS ubuntu9.04 desktop 内网ip 192.168.0.25 gw 192.168.0.254

按照LZ的步骤假设好 openvpn.能互相ping通
公网vps 10.8.0.1 办公室主机 10.8.0.6

调整 内网主机 路由。

代码: 全选

#/etc/init.d/openvpn stop
#route del default
#route add 66.A.B.C gw 192.168.0.254
#/etc/init.d/openvepn start
#route add default gw 10.8.0.6
添加NAT

代码: 全选

#ifconfig eth0:0 192.168.100.254
#iptables -t nat -A POSTROUTING  -s 192.168.100.0/24 -o tun0 -j MASQUERADE
公网vps添加NAT

代码: 全选

# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
再把一台 无线路由WAN 口设置到 192.168.100.0/24地址网关指 .100.254,连接到这个无线路由wifi的设备就可以直接的 虫兑忑了
:em11
头像
nio
帖子: 74
注册时间: 2006-06-30 7:00
联系:

Re: [原创] Configure OpenVPN on Ubuntu

#21

帖子 nio » 2010-03-30 18:41

如果你的主机不支持MASQUERADE,比如有些VPS主机

用下面这个:

代码: 全选

#iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 你的外网IP
头像
男菜鸟
帖子: 1365
注册时间: 2008-12-16 14:01
来自: 漂在江湖

Re: [原创] Configure OpenVPN on Ubuntu

#22

帖子 男菜鸟 » 2010-03-30 19:48

mark!!
aigt_meng
帖子: 21
注册时间: 2008-07-31 16:45

Re: [原创] Configure OpenVPN on Ubuntu

#23

帖子 aigt_meng » 2010-04-05 11:26

謝謝樓主好文~~ :em11
djstava
帖子: 56
注册时间: 2007-12-27 10:13
来自: shanghai

Re: [原创] Configure OpenVPN on Ubuntu

#24

帖子 djstava » 2010-04-08 10:33

我想通过openVPN播墙出去访问android官网,上述方法是否可行?
Lenovo x200 AP5 p8400
Open Source,Share,Free
Blog:http://djstava.cublog.cn
头像
hamaburg
帖子: 284
注册时间: 2006-06-30 12:52

Re: [原创] Configure OpenVPN on Ubuntu

#25

帖子 hamaburg » 2010-04-14 15:34

djstava 写了:我想通过openVPN播墙出去访问android官网,上述方法是否可行?
这个方法当然没问题。 :em11

Android 也被墙了? :em20 :em20
头像
hamaburg
帖子: 284
注册时间: 2006-06-30 12:52

Re: [原创] Configure OpenVPN on Ubuntu

#26

帖子 hamaburg » 2010-06-09 13:40

hamaburg 写了:在lz的结构上继续添加 NAT 实现 更方便的 虫兑 忒 访问。

设备:
公网vps. OS. ubuntu9.04 server 公网ip 66.A.B.C
办公室 主机 OS ubuntu9.04 desktop 内网ip 192.168.0.25 gw 192.168.0.254

按照LZ的步骤假设好 openvpn.能互相ping通
公网vps 10.8.0.1 办公室主机 10.8.0.6

调整 内网主机 路由。

代码: 全选

#/etc/init.d/openvpn stop
#route del default
#route add 66.A.B.C gw 192.168.0.254
#/etc/init.d/openvepn start
#route add default gw 10.8.0.6
添加NAT

代码: 全选

#ifconfig eth0:0 192.168.100.254
#iptables -t nat -A POSTROUTING  -s 192.168.100.0/24 -o tun0 -j MASQUERADE
公网vps添加NAT

代码: 全选

# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
再把一台 无线路由WAN 口设置到 192.168.100.0/24地址网关指 .100.254,连接到这个无线路由wifi的设备就可以直接的 虫兑忑了
:em11
在此基础上添加一台机器 ##vmware虚拟机 vz的没捣鼓好 估计要ip neighbour 命令或者 ip link
网卡桥接到交换机
网卡添加 3个ip
分别连接三个网段:
192.168.0.0/24 ; 192.168.100.0/24; 192.168.200.0/24
.0.254 网段为原有网关, .100.254 为vpn网关 .200.0 网段连接到wifi 路由的wan口

写个脚本放 /etc/rc.local

代码: 全选

cat /root/script/routeinit.sh
#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ifconfig eth0 192.168.0.253 up
ifconfig eth0:1 192.168.100.253 up
ifconfig eth0:2 192.168.200.254 up
route del default
route add default gw 192.168.0.254 
route add -host 66.A.B.C gw 192.168.0.254
route add -net 58.0.0.0 netmask 255.0.0.0 gw 192.168.0.254 dev eth0
route add -net 59.0.0.0 netmask 255.0.0.0 gw 192.168.0.254 dev eth0
route add -net 60.0.0.0 netmask 255.0.0.0 gw 192.168.0.254 dev eth0
route add -net 61.0.0.0 netmask 255.0.0.0 gw 192.168.0.254 dev eth0
route add -net 121.0.0.0 netmask 255.0.0.0 gw 192.168.0.254 dev eth0
route add -net 202.0.0.0 netmask 255.0.0.0 gw 192.168.0.254 dev eth0
route add -net 210.0.0.0 netmask 255.0.0.0 gw 192.168.0.254 dev eth0
route add -net 211.0.0.0 netmask 255.0.0.0 gw 192.168.0.254 dev eth0
route add -net 218.0.0.0 netmask 255.0.0.0 gw 192.168.0.254 dev eth0
route add -net 219.0.0.0 netmask 255.0.0.0 gw 192.168.0.254 dev eth0
route add -net 220.0.0.0 netmask 255.0.0.0 gw 192.168.0.254 dev eth0
网段比较粗糙 有些东南亚的ip 没有完全分开。
日后慢慢调整
在添加一条nat

代码: 全选

iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -j MASQUERADE
再将 wifi的wan口ip设置为 192.168.200. 段 网关指向 192.168.200.254 就可以实现 流量分离
国外的ip 走vpn 国内的走原有出口

推得 脸铺 你的管子 都正常访问
芯狼 白督 速度飞快 :)
:em11
头像
萝卜兔
帖子: 481
注册时间: 2009-11-10 9:33
来自: 光驱

Re: [原创] Configure OpenVPN on Ubuntu

#27

帖子 萝卜兔 » 2010-07-02 21:24

要西!!!够我折腾了 :em11 :em11 :em11
机箱里面有萝卜
xiaoyong
帖子: 515
注册时间: 2006-05-20 10:38

Re: [原创] Configure OpenVPN on Ubuntu

#28

帖子 xiaoyong » 2010-08-20 14:21

mark
头像
seazzn
帖子: 17
注册时间: 2010-08-27 11:54

Re: [原创] Configure OpenVPN on Ubuntu

#29

帖子 seazzn » 2010-09-01 15:09

正在学习,先感谢一下楼主 :em05
xiaoyong
帖子: 515
注册时间: 2006-05-20 10:38

Re: [原创] Configure OpenVPN on Ubuntu

#30

帖子 xiaoyong » 2010-09-12 23:12

在笔记本电脑上通过openvpn连上提供商业性vpn,如何把笔记本电脑变成wifi无线热点呢,以便android手机能够更新market?
回复