通过openvpn搭建点对点vpn服务 下载本文

内容发布更新时间 : 2024/12/24 8:34:29星期一 下面是文章的全部内容请认真阅读。

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