通过openvpn搭建点对点vpn服务
更新时间:2024-04-11 19:01:01 阅读量: 综合文库 文档下载
openvpn搭建点对点vpn服务
需求:
总部一台服务器架设openvpn服务,分支通过openvpn连接到总部,然后实现各个分支及总部实现互访。 拓扑:
一.服务器端安装及配置(总部)
服务器环境:centos 6.5 mini 内网IP:192.168.10.1 外网IP:172.16.0.1
1.安装前准备
# 关闭selinux setenforce 0
sed -i '/^SELINUX=/c\\SELINUX=disabled' /etc/selinux/config
# 安装openssl和lzo,lzo用于压缩通讯数据加快传输速度 yum -y install opensslopenssl-devel yum -y install lzo
# 安装epel源
rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm sed -i 's/^mirrorlist=https/mirrorlist=http/' /etc/yum.repos.d/epel.repo
2.安装及配置OpenVPN和easy-rsa
# 安装openvpn和easy-rsa yum -y install openvpn easy-rsa
# 修改vars文件
cd /usr/share/easy-rsa/2.0/ vimvars
# 修改注册信息,比如公司地址、公司名称、部门名称等。 export KEY_COUNTRY=\export KEY_PROVINCE=\export KEY_CITY=\export KEY_ORG=\
export KEY_EMAIL=\export KEY_OU=\# 初始化环境变量 sourcevars
# 清除keys目录下所有与证书相关的文件
# 下面步骤生成的证书和密钥都在/usr/share/easy-rsa/2.0/keys目录里 ./clean-all
# 生成根证书ca.crt和根密钥ca.key(一路按回车即可) ./build-ca
# 为服务端生成证书和密钥(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次) ./build-key-server server
# 每一个登陆的VPN客户端需要有一个证书,每个证书在同一时刻只能供一个客户端连接,下面建立2份
# 为客户端生成证书和密钥(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次)(想用密码认证此步骤可以不要)
./build-key client1 ./build-key client2
# 创建迪菲·赫尔曼密钥,会生成dh2048.pem文件(生成过程比较慢,在此期间不要去中断它) ./build-dh
# 生成ta.key文件(防DDos攻击、UDP淹没等恶意攻击) openvpn --genkey --secret keys/ta.key
3.创建服务器端配置文件
# 在openvpn的配置目录下新建一个keys目录 mkdir /etc/openvpn/keys
# 将需要用到的openvpn证书和密钥复制一份到刚创建好的keys目录中
cp /usr/share/easy-rsa/2.0/keys/{ca.crt,server.{crt,key},dh2048.pem,ta.key} /etc/openvpn/keys/ # 复制一份服务器端配置文件模板server.conf到/etc/openvpn/
cp /usr/share/doc/openvpn-2.3.2/sample/sample-config-files/server.conf /etc/openvpn/ # 编辑server.conf
vim /etc/openvpn/server.conf port 1194
# 改成tcp,默认使用udp,如果使用HTTP Proxy,必须使用tcp协议 prototcp devtun
# 路径前面加keys,全路径为/etc/openvpn/keys/ca.crt ca keys/ca.crt cert keys/server.crt
key keys/server.key # This file should be kept secret dh keys/dh2048.pem
# 默认虚拟局域网网段,不要和实际的局域网冲突即可 server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt
# 可以让客户端之间相互访问直接通过openvpn程序转发,根据需要设置 client-to-client
# 如果客户端都使用相同的证书和密钥连接VPN,一定要打开这个选项,否则每个证书只允许一个人连接VPN duplicate-cn keepalive 10 120
tls-auth keys/ta.key 0 # This file is secret comp-lzo persist-key persist-tun
# OpenVPN的状态日志,默认为/etc/openvpn/openvpn-status.log status openvpn-status.log
# OpenVPN的运行日志,默认为/etc/openvpn/openvpn.log log-append openvpn.log
# 改成verb 5可以多查看一些调试信息 verb 5
client-cert-not-required #仅使用密码方式验证
plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-pam.so login #通过linux自身账号做验证 username-as-common-name
4.linux创建用户及密码
useradd user –M –s /sbin/nologin passwd user
5.配置内核和防火墙,启动服务 # 开启路由转发功能
sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf sysctl -p
# 总部服务器iptables配置
[root@router-zb ~]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Sat Apr 8 17:14:30 2017 *nat
:PREROUTING ACCEPT [110:13995] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0]
-A POSTROUTING -m policy --dir out --pol none -j MASQUERADE -A POSTROUTING -s 192.168.10.0/24 -o eth1 -j MASQUERADE COMMIT
# Completed on Sat Apr 8 17:14:30 2017
# Generated by iptables-save v1.4.7 on Sat Apr 8 17:14:30 2017 *filter
:INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [16949:1162959]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 1194 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -i eth1 -o eth2 -j ACCEPT -A FORWARD -i eth2 -o eth1 -j ACCEPT -A FORWARD -i tun+ -o eth2 -j ACCEPT -A FORWARD -i eth2 -o tun+ -j ACCEPT -A FORWARD -i eth1 -o tun+ -j ACCEPT -A FORWARD -i tun+ -o eth1 -j ACCEPT -A FORWARD -i tun+ -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
# 启动openvpn并设置为开机启动
serviceopenvpn start chkconfigopenvpn on
6.创建客户端配置文件
# 复制一份client.conf模板命名为client.ovpn
cp /usr/share/doc/openvpn-2.3.2/sample/sample-config-files/client.conf client.ovpn # 编辑client.ovpn vimclient.ovpn client devtun
# 改为tcp prototcp
# OpenVPN服务器的外网IP和端口 remote172.16.0.1 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt
ns-cert-type server # 去掉前面的注释 tls-authta.key 1 comp-lzo verb 3
二.分支端安装及配置
1.安装openvpn参考总部服务器
2.复制client.ovpn文件到/etc/openvpn/目录下
#添加pass.txt文件 vim pass.txt user password :wq
# 编辑client.ovpn vimclient.ovpn
client devtun # 改为tcp prototcp
# OpenVPN服务器的外网IP和端口 remote172.16.0.1 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt
ns-cert-type server # 去掉前面的注释 tls-authta.key 1 comp-lzo verb 3
auth-user-pass /etc/openvpn/pass.txt (windows系统将文件放在config文件下只需填写auth-user-pass pass.txt)
连接openvpn:
openvpn --config /etc/openvpn/client.ovpn
3.分支服务器iptables配置
[root@router-fz001 ~]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Sat Apr 8 19:15:36 2017 *filter
:INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [152:15808]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -i eth2 -o tun+ -j ACCEPT -A FORWARD -i tun+ -o eth2 -j ACCEPT -A FORWARD -i eth2 -j ACCEPT -A FORWARD -i tun+ -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
# Completed on Sat Apr 8 19:15:36 2017
# Generated by iptables-save v1.4.7 on Sat Apr 8 19:15:36 2017 *nat
:PREROUTING ACCEPT [48:4412]
:POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 192.168.20.0/24 -o eth1 -j MASQUERADE COMMIT
# Completed on Sat Apr 8 19:15:36 2017 分支如果需要开机自动启动openvpn服务 vim /etc/rc.local
三.总部openvpn服务器配置路由
1.总部访问分支路由
vim /etc/openvpn/server.conf # EXAMPLE: Suppose the client
# having the certificate common name \# also has a small subnet behind his connecting # machine, such as 192.168.40.128/255.255.255.248. # First, uncomment out these lines: client-config-dirccd
route 192.168.20.0 255.255.255.0
route 192.168.30.0 255.255.255.0 #添加总部到各个分支的路由
编辑保存后需要在/etc/openvpn/下建立ccd文件夹 创建一个名叫20的文件 vim 20
iroute 192.168.20.0 255.255.255.0 #到分支1的路由 :wq
到各个分支的路由文件需要分别建立 总部路由表:
2.分支访问总部及分支互访
# Push routes to the client to allow it
# to reach other private subnets behind # the server. Remember that these # private subnets will also need # to know to route the OpenVPN client # address pool (10.8.0.0/255.255.255.0) # back to the OpenVPN server.
push \push \
push \ #这个路由表会推送给每个连接分支(凡是vpn想访问的必须要添加进来) #添加后vpn拨入后路由表会看到去往各处的路由 分支路由表
分支客户端访问总部服务器:
traceroute 中间有一跳是交给总部vpntun接口的
总部服务器访问分支:
traceroute 中间有一跳是交给分支vpntun接口的
正在阅读:
通过openvpn搭建点对点vpn服务04-11
各国语言我爱你01-12
基于单片机的直流电机速度控制系统毕业论文05-30
幼儿园毕业园长寄语_幼儿园寄语03-27
劳务合同范本通用版03-24
XX单位清明节祭扫烈士墓活动方案x04-04
竞标报价表08-11
新闻格式02-18
2015年福建造价员考试复习重点04-20
《C#程序设计》课程教学大纲12-03
- 《江苏省环境水质(地表水)自动监测预警系统运行管理办法(试行)》
- 安乐死合法化辩论赛立论稿(浙大新生赛)
- 公共科目模拟试卷公务员考试资料
- 我国固定资产投资FAI对GDP的影响
- 大学生创新创业训练计划项目申请书大创项目申报表
- 完美版—单片机控制步进电机
- 2013资阳中考化学试题
- 18.两位数减一位数退位(397道)
- 工程量计算规则
- 二年级操行评语(下)
- 第3章 流程控制语句
- 浅基桥墩加固技术
- 课题研究的主要方法
- 5100软件说明书 - 图文
- 车间技术员年终总结
- 关于印发《中铁建工集团开展项目管理实验室活动方案》的通知
- 经典诵读结题报告
- 地下水动力学习题答案
- 2018年全国各地高考数学模拟试题平面解析几何试题汇编(含答案解
- 街道办事处主任2018年度述职述廉报告
- 搭建
- openvpn
- 通过
- 服务
- vpn
- 2015—2017高考政治全国卷大题汇总含答案解析
- 渗硼技术的发展现状以及在模具上的应用
- 南开大学16秋学期《操作系统原理》在线作业
- 清华简《说命》上篇解析
- 中国石化专业技术人员英语学习参考用书(高级)
- 东北大学15秋学期《机器人技术》在线作业1 答案
- 巡检报告模板--Sun主机模板
- 内蒙古六大优势特色产业发展成就展布展实施方案解读
- 十年探索时期人民信访制度建设研究
- 洞穴奇案的十四种判决完整归纳
- 广告语赏析与个性广告语设计
- 临床医学概论试题
- 山东省高级人民法院《关于确定盗窃罪执行具体数额标准的通知》新
- 第11讲 外部影响
- (较好)初二不等式复习题
- 通过校本培训,促进青年教师成长的研究结题报告(06.2.24王国人
- 小学五年级数学口算千题
- 资兴市无公害蔬菜项目建设规划
- 中华成语千字文全文
- 新《统计法》研究(1)