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.net/openvpn/openvpn-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网关是否通
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
·VPN技术 (943篇文章)
·Linux集群技术 (7455篇文章)
·SSL VPN详细知识介绍专题 (943篇文章)
·体验Linux的音影世界 (7209篇文章)
·Linux驱动大全 (7806篇文章)
·Linux下的路由的配置与应用 (10580篇文章)
·Linux命令简介 (8806篇文章)
·Linux防火墙 (8679篇文章)
·Linux日志专题 (7571篇文章)
·Linux服务器的安全性能 (17829篇文章)
·Linux集群技术 (7455篇文章)
·SSL VPN详细知识介绍专题 (943篇文章)
·体验Linux的音影世界 (7209篇文章)
·Linux驱动大全 (7806篇文章)
·Linux下的路由的配置与应用 (10580篇文章)
·Linux命令简介 (8806篇文章)
·Linux防火墙 (8679篇文章)
·Linux日志专题 (7571篇文章)
·Linux服务器的安全性能 (17829篇文章)
·Red Hat Enterprise Linux AS 4 Update 3 ( (7371次浏览)
·Linux下的FTP服务器配置 (3068次浏览)
·Linux入门时必学60个文件处理命令 (3067次浏览)
·清爽漂亮 Ubuntu 7.04 新手指南 (3019次浏览)
·Linux系统中如何实现远程控制 (2834次浏览)
·RedHat7.2下ADSL双网卡共享上网实战 (2829次浏览)
·linux下安装软件的办法 (2775次浏览)
·菜鸟大学堂:一步一步配置WEB服务器 (2654次浏览)
·Linux下用vsftpd构建FTP服务器 (1102次浏览)
·Windows外衣Linux心 红旗桌面版详测 (1081次浏览)
·Linux下的FTP服务器配置 (3068次浏览)
·Linux入门时必学60个文件处理命令 (3067次浏览)
·清爽漂亮 Ubuntu 7.04 新手指南 (3019次浏览)
·Linux系统中如何实现远程控制 (2834次浏览)
·RedHat7.2下ADSL双网卡共享上网实战 (2829次浏览)
·linux下安装软件的办法 (2775次浏览)
·菜鸟大学堂:一步一步配置WEB服务器 (2654次浏览)
·Linux下用vsftpd构建FTP服务器 (1102次浏览)
·Windows外衣Linux心 红旗桌面版详测 (1081次浏览)
·更好用的Linux:Mandriva 2008正式发布 10-12
·Debian下系统时间比正常时间快8小时的问题 10-12
·开源空间:交叉编译Linux内核(2.6.22.6) 10-12
·新手学堂:类Linux中各种各样的编程语言 10-12
·用Tftp向目标板烧写Linux的系统内核过程 10-11
·RedHat Linux9.0 安装过程 10-11
·7大最有影响力的GNU/Linux发行版 10-11
·Linux系统下的C语言开发都需要学些什么 10-11
·Linux 技巧: 用cron 和at 调度作业 10-11
·各种Linux操作系统版本安装图解教程下载 10-11
·Debian下系统时间比正常时间快8小时的问题 10-12
·开源空间:交叉编译Linux内核(2.6.22.6) 10-12
·新手学堂:类Linux中各种各样的编程语言 10-12
·用Tftp向目标板烧写Linux的系统内核过程 10-11
·RedHat Linux9.0 安装过程 10-11
·7大最有影响力的GNU/Linux发行版 10-11
·Linux系统下的C语言开发都需要学些什么 10-11
·Linux 技巧: 用cron 和at 调度作业 10-11
·各种Linux操作系统版本安装图解教程下载 10-11
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
站内频道文章精选
百度推荐,商机无限
搜索您感兴趣的内容



