分享
 
 
 

利用openvpn+linux快速建立企业VPN

王朝system·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

openvpn可工作于两种模式:

一种是IP遂道路由模式,主要应用于点对点

一种是基于以太网的遂道桥模式, 应用于点对多点,有多个分支机构

本文介绍的配置实例是第一种

拓扑图:

局域网1: OFFICE主机装redhat9.0 两块网卡

eth1接公网 61.131.58.x ,

eth0接 内网192.168.1.56

vpn 10.1.0.1

A主机 192.168.1.222

局域网2:

HOME主机装redhat9.0两块网卡

eth0 接公网 218.85.158.244

eth1 接内网 192.168.0.235

vpn 10.1.0.2

B主机 192.168.0.45

环境:redhat9.0+lzo+openssl+openvpn

openssl用来进行加密,lzo用来进行数据压缩

下载地址 http://prdownloads.sourceforge.n ... pn-2.0_beta7.tar.gz

http://www.oberhumer.com/opensource/lzo/download/lzo-1.08.tar.gz

先检查openssl是否已安装

rpm –qa | grep openssl

没有请先装openssl, openssl如何安装就不介绍了

我将openvpn-2.0.beta7.tar.gz和lzo-1.08.tar.gz下载到/home

#cd /home

#tar zxvf lzo-1.08.tar.gz

#cd lzo-1.08.

#./comfigure

#make

#make install

#tar zxvf openvpn-2.0_beta7.tar.gz

#cd openvpn-2.0_beta7

#./configure --with-lzo-headers=/usr/local/include --with-lzo-lib=/usr/local/lib

#make

#make install

#mkdir /etc/openvpn

#cd /etc/openvpn

#openvpn --genkey --secret static.key

将static.key从office主机复制到home主机的/etc/openvpn目录中

office#scp static.key root@218.85.158.244:/etc/openvpn

office#cd /home/openvpn-2.0_beta7/sample-config-files

office#cp static-office.conf /etc/openvpn

office#cp firewall.sh /etc/openvpn

office#cp openvpn-startup.sh /etc/openvpn

office#cp office.up /etc/openvpn

修改static-office.conf ,firewall.sh ,openvpn-startup.sh,office.up

我们先来看office主机的这几个配置文件

static-office.conf配置如下:

dev tun0

remote 218.85.158.244 #为对端的公网ip

ifconfig 10.1.0.1 10.1.0.2 #为本端和对端的vpn ip地址

secret /etc/openvpn/static.key #密钥

port 5000

comp-lzo

ping 15

ping 15

ping-restart 45

ping-timer-rem

persist-tun

persist-key

verb 3

office主机的firewall.sh脚本如下:

#!/bin/bash

PRIVATE=192.168.1.0/24

LOOP=127.0.0.1

iptables -P OUTPUT DROP

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -F

iptables -P OUTPUT ACCEPT

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -A INPUT -i eth1 -s  $LOOP -j DROP

iptables -A FORWARD -i eth1 -s  $LOOP -j DROP

iptables -A INPUT -i eth1 -d  $LOOP -j DROP

iptables -A FORWARD -i eth1 -d  $LOOP -j DROP

iptables -A FORWARD -p tcp --sport 137:139 -o eth1 -j DROP

iptables -A FORWARD -p udp --sport 137:139 -o eth1 -j DROP

iptables -A OUTPUT -p tcp --sport 137:139 -o eth1 -j DROP

iptables -A OUTPUT -p udp --sport 137:139 -o eth1 -j DROP

iptables -A FORWARD -s !  $PRIVATE -i eth0 -j DROP

iptables -A INPUT -s  $LOOP -j ACCEPT

iptables -A INPUT -d  $LOOP -j ACCEPT

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

iptables -A INPUT -p tcp --dport http -j ACCEPT

iptables -A INPUT -p tcp --dport ssh -j ACCEPT

iptables -A INPUT -p udp --dport 5000 -j ACCEPT #openvpn默认使用udp 5000端口

iptables -A INPUT -i tun+ -j ACCEPT

iptables -A FORWARD -i tun+ -j ACCEPT #这两句很重要

iptables -A INPUT -i tap+ -j ACCEPT

iptables -A FORWARD -i tap+ -j ACCEPT

iptables -A INPUT -i eth0 -j ACCEPT

iptables -A FORWARD -i eth0 -j ACCEPT

iptables -A OUTPUT -m state --state NEW -o eth1 -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -m state --state NEW -o eth1 -j ACCEPT

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A POSTROUTING -s  $PRIVATE -o eth1 -j MASQUERADE

office.up脚本配置如下:

#!/bin/bash

route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.1.0.2 #此处是对端的vpn ip地址

openvpn-startup.sh脚本配置如下:

#!/bin/bash

dir=/etc/openvpn

 $dir/firewall.sh

modprobe tun

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

openvpn --config /etc/openvpn/static-office.conf

home主机的4个配置文件

static-home.conf如下

dev tun0

remote 61.131.58.194

ifconfig 10.1.0.2 10.1.0.1

secret /etc/openvpn/static.key

port 5000

comp-lzo

ping 15

ping 15

ping-restart 45

ping-timer-rem

persist-tun

persist-key

verb 3

firewall.sh如下

#!/bin/bash

PRIVATE=192.168.0.0/24

LOOP=127.0.0.1

iptables -P OUTPUT DROP

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -F

iptables -P OUTPUT ACCEPT

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -A INPUT -i eth0 -s  $LOOP -j DROP

iptables -A FORWARD -i eth0 -s  $LOOP -j DROP

iptables -A INPUT -i eth0 -d  $LOOP -j DROP

iptables -A FORWARD -i eth0 -d  $LOOP -j DROP

iptables -A FORWARD -p tcp --sport 137:139 -o eth0 -j DROP

iptables -A FORWARD -p udp --sport 137:139 -o eth0 -j DROP

iptables -A OUTPUT -p tcp --sport 137:139 -o eth0 -j DROP

iptables -A OUTPUT -p udp --sport 137:139 -o eth0 -j DROP

iptables -A FORWARD -s !  $PRIVATE -i eth1 -j DROP

iptables -A INPUT -s  $LOOP -j ACCEPT

iptables -A INPUT -d  $LOOP -j ACCEPT

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

iptables -A INPUT -p tcp --dport http -j ACCEPT

iptables -A INPUT -p tcp --dport ssh -j ACCEPT

iptables -A INPUT -p udp --dport 5000 -j ACCEPT

iptables -A INPUT -i tun+ -j ACCEPT

iptables -A FORWARD -i tun+ -j ACCEPT

iptables -A INPUT -i tap+ -j ACCEPT

iptables -A FORWARD -i tap+ -j ACCEPT

iptables -A INPUT -i eth1 -j ACCEPT

iptables -A FORWARD -i eth1 -j ACCEPT

iptables -A OUTPUT -m state --state NEW -o eth0 -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -m state --state NEW -o eth0 -j ACCEPT

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A POSTROUTING -s  $PRIVATE -o eth0 -j MASQUERADE

home.up脚本如下:

#!/bin/bash

route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.1.0.1

openvpn-startup.sh脚本如下:

#!/bin/bash

dir=/etc/openvpn

 $dir/firewall.sh

modprobe tun

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

openvpn --config /etc/openvpn/static-home.conf

最后需要注意的是在office和home主机的/etc/modules.conf都要加上一行:

alias char-major-10-200 tun

在office主机上

office#cd /etc/openvpn

office#./openvpn-startup.sh

office#./office.up

在home主机上

home#cd /etc/openvpn

home#./openvpn-startup.sh

home#./home.up

A主机的default gateway设为192.168.1.56

B主机的default gateway设为192.168.0.235

在A主机上ping 192.168.0.45

在home主机上用tcpdump监听

home#tcpdump -i tun0

应该有echo request和echo reply

不行的话,在home#ping 10.1.0.1看两个vpn网关是否通

http://openvpn.sourceforge.net 上还有howto,faq,examples可参考

欢迎与我交流,

QQ:35907960

Mail:yanypunix@yahoo.com.cn

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有