华盛传媒:OpenVPN:简单、功能强大的VPN软件 !

来源:百度文库 编辑:第一文库网 时间:2020/01/25 19:15:54
OpenVPN:简单、功能强大的VPN软件 !


2003年05月31日下午16时10分46秒[root@gugong vpn]# rpm -qi openvpn
Name : openvpn Relocations: (not relocateable)
Version : 1.4.1 Vendor: Gugong
Release : 1 Build Date: 2003年05月30日 星期五 14时57分24秒
Install Date: 2003年05月30日 星期五 14时57分55秒 Build Host: gugong.szxxxx.net
Group : 系统环境/守护进程 Source RPM: openvpn-1.4.1-1.src.rpm
Size : 232776 License: GPL
Signature : (none)
Packager : Gugong
URL : http://sourceforge.net/projects/openvpn/
Summary : 一个 Free 的 VPN 程序。
Description :
OpenVPN 是一个强大、高度可配置的 VPN (Virtual Private Network)系统守护
程序,它能够在 Internet 网上用作安全地连接两个或者更多的私下的网络。




安装和下载我的 rpm 包,在这里:

http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=geninfo&did=888









这里假设你有两台 ADSL 上网的机器
(均须有正式的[动态]域名,若没有,下面只能输 IP 地址了 !!):

www.foo.com
www.bar.com



在 www.foo.com 上运行:
openvpn --remote www.bar.com --dev tun1 --ifconfig 10.4.0.1 10.4.0.2
--comp-lzo &

那么,在 www.foo.com 上就有了这个『ifconfig 的输出』:
eth0 Link encap:Ethernet HWaddr 00:50:DF:07:55:D0
inet addr:192.168.10.1 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3324 errors:0 dropped:0 overruns:0 frame:0
TX packets:129 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:417688 (407.8 Kb) TX bytes:22036 (21.5 Kb)
Interrupt:10 Base address:0xc000

eth1 Link encap:Ethernet HWaddr 00:50:DF:07:56:22
inet addr:192.168.1.6 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:70630 errors:0 dropped:0 overruns:0 frame:0
TX packets:60324 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:48361030 (46.1 Mb) TX bytes:25539278 (24.3 Mb)
Interrupt:11 Base address:0xe000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:193 errors:0 dropped:0 overruns:0 frame:0
TX packets:193 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:20959 (20.4 Kb) TX bytes:20959 (20.4 Kb)

ppp0 Link encap:Point-to-Point Protocol
inet addr:61.141.197.127 P-t-P:218.17.90.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:69707 errors:0 dropped:0 overruns:0 frame:0
TX packets:59293 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:46772015 (44.6 Mb) TX bytes:24158758 (23.0 Mb)

tun1 Link encap:Point-to-Point Protocol
inet addr:10.1.0.1 P-t-P:10.1.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1299 Metric:1
RX packets:7074 errors:0 dropped:0 overruns:0 frame:0
TX packets:4408 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:8890390 (8.4 Mb) TX bytes:242643 (236.9 Kb)



然后:

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A INPUT -p udp --dport 5000 -j ACCEPT
route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.1.0.1




在 www.bar.com 上运行:

openvpn --remote www.foo.com --dev tun1 --ifconfig 10.4.0.2 10.4.0.1
--comp-lzo &

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A INPUT -p udp --dport 5000 -j ACCEPT
route add -net 192.168.10.0 netmask 255.255.255.0 gw 10.1.0.2



现在 10.4.0.1 和 10.4.0.2 都可以互相 ping 通 了 !!!


我就可以在 www.foo.com 上直接连接躲在 www.bar.com 后面的 我的本人的机器:

www.foo.com 的输出:

[root@www root]# traceroute 192.168.0.16
traceroute to 192.168.0.16 (192.168.0.16), 30 hops max, 38 byte packets
1 10.1.0.2 (10.1.0.2) 89.596 ms 88.797 ms 87.436 ms
2 192.168.0.16 (192.168.0.16) 88.216 ms 89.091 ms 88.902 ms








SAMBA 也照样可以访问:

[root@www openvpn]#
[root@www openvpn]# smbclient \\\\192.168.0.16\\gugong -U gugong
added interface ip=192.168.10.1 bcast=192.168.10.255 nmask=255.255.255.0
added interface ip=192.168.1.6 bcast=192.168.1.255 nmask=255.255.255.0
Password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.2.7a-security-rollup-fix]
smb: \> cd freeswan
smb: \freeswan\> ls
. D 0 Mon May 26 08:59:15 2003
.. D 0 Sat May 31 16:11:05 2003
freeswan-module-2.00_2.4.20_13.7-0.i386.rpm 869268 Mon May 26 08:59:48 2003
freeswan-allkeys 135315 Mon May 26 08:59:28 2003
freeswan-userland-2.00_2.4.20_13.7-0.i386.rpm 936979 Mon May 26 09:00:28 2003

50464 blocks of size 131072. 10982 blocks available
smb: \freeswan\>



可以在 192.168.0.16 上看到:

2003年05月31日下午16时36分37秒[root@gugong openvpn]# smbstatus

Samba version 2.2.7a-security-rollup-fix
Service uid gid pid machine
----------------------------------------------
gugong gugong gugong 6713 firewall (10.1.0.1) Sat May 31 16:33:09 2003

No locked files

2003年05月31日下午16时36分45秒[root@gugong openvpn]# traceroute 10.1.0.1
traceroute to 10.1.0.1 (10.1.0.1), 30 hops max, 38 byte packets
1 192.168.0.1 (192.168.0.1) 1.008 ms 0.602 ms 0.482 ms
2 10.1.0.1 (10.1.0.1) 87.342 ms 85.946 ms 85.659 ms



10.1.0.1 其实是 www.foo.com 的 tun1 的 IP 地址。
而我的机器是通过 www.bar.com (其 tun1 的地址是:10.1.0.2 ) 作 MASQ 出去的。


等于就是在局域网里面了 !


我这里写的是最简单的情况,只是 “点对点”,而且没有用到加密和认证 !!

经我测试:

使用了 lzo 压缩,压缩后从 www.foo.com 访问内网内的机器(在 www.bar.com Linux
的防火墙后)竟然比正常访问 www.bar.com 只少 1-2k Bs 的速率 !!

而不使用 lzo 压缩,速率会减半 !!!


我所提供的下载文件里面有配置例子,是直接使用 /etc/init.d/openvpn
来启动的,其读取在 /etc/openvpn 目录下的配置文件。
 from:   http://www.lootan.net/gugong/gugong/html/OpenVPN.php