学派吧-关于Linux CentOS OpenVPN配置概述的具体教程-linux教程

本文概要说明 CentOS 系统下的 OpenVPN 配置。

说明:本文相关配置和说明仅用于示例和操作指引,阿里云不对相关操作结果及由此产生的问题负责。

OpenVPN 配置


  • 准备工作

  • 安装 OpenVPN 服务

  • 配置 OpenVPN 服务(服务端)

  • 启动 OpenVPN

准备工作

1. 使用 工具:update_source.sh 更新 yum 源为阿里云的内网 yum源。

2. 安装依赖的软件包:

bashyum install -y lzo lzo-devel openssl openssl-devel pam pam-devel yum install -y pkcs11-helper pkcs11-helper-devel

确认已经安装完成:

bashrpm -qa lzolzo-devel openssl openssl-devel pam pam-devel pkcs11-helper pkcs11-helper-devel

1-rpm.jpg

安装 OpenVPN 服务

1. 下载 openvpn 的源码包

wget http://oss.aliyuncs.com/aliyunecs/openvpn-2.2.2.tar.gz

2. 使用 rpmbuild 将源码包编译成rpm包来进行安装

rpmbuild -tb openvpn-2.2.2.tar.gz

执行这条命令以后就会正常开始编译了,编译完成以后会在 /root/rpmbuild/RPMS/x86_64 目录下生成 openvpn-2.2.2-1.x86_64.rpm 安装包。

3. 执行rpm -ivh openvpn-2.2.2-1.x86_64.rpm 以rpm包的方式安装:

2-狿瀀洀.jpg

配置 OpenVPN 服务(服务端)

1. 初始化 PKI

cd /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0

进入到 /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0 目录下,找到 vars 证书环境文件,修改以下几行 export 定义的参数值

bashexportKEY_COUNTRY="CN"   所在的国家export KEY_PROVINCE="BJ"  所在的省份exportKEY_CITY="Hangzhou"   所在的城市exportKEY_ORG="aliyun"        所属的组织 export KEY_EMAIL=my@test.com    邮件地址

上述参数的值可以自定义设置,对配置无影响。

2. 生成服务端的证书:

清除并删除 keys 目录下的所有 key

bashln -s openssl-1.0.0.cnf openssl.cnf 做个软链接到openssl-1.0.0.cnf配置文件 source ./vars./clean-all

生成 CA 证书,刚刚已经在 vars 文件中配置了默认参数值,多次回车完成就可以 :

./build-ca

3-buledca.jpg

生成服务器证书,其中 aliyuntest 是自定义的名字,一直回车,到最后会有两次交互,输入 y 确认,完成后会在 keys 目录下保存了 aliyuntest.key、aliyuntest.csr 和 aliyuntest.crt 三个文件。

./build-key-server aliyuntest

4-秿.jpg

3. 创建用户秘钥与证书

./build-key aliyunuser

创建用户名为 aliyunuser 的秘钥和证书,一直回车,到最后会有两次确认,只要按y确认即可。完成后,在 keys 目录下生成 1024 位 RSA 服务器密钥 aliyunuser.key、aliyunuser.crt 和 aliyunuser.csr 三个文件。

4. 生成 Diffie Hellman参 数

./build-dh

执行了./build-dh后,会在 keys 目录下生成 dh 参数文件 dh1024.pem。该文件客户端验证的时候会用到。

5. 将 /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys 目录下的所有文件复制到 /etc/openvpn下:

cp -a /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys/*  /etc/openvpn/

6. 复制 openvpn 服务端配置文件 server.conf 到 /etc/openvpn/ 目录下:

cp -a /usr/share/doc/openvpn-2.2.2/sample-config-files/server.conf  /etc/openvpn/

7. server.conf 配置

配置完成后的内容如下:

bash$ egrep -v "^$|^#|^;" server.conflocal 1.1.1.1  此处请填写用户自己的云服务器的公网IP地址port 1194proto udpdev tunca ca.crtcert aliyuntest.crt   此处crt以及下一行的key,请填写生成服务器端证书时用户自定义的名称key aliyuntest.key  dh dh1024.pemserver 172.16.0.0 255.255.255.0ifconfig-pool-persist ipp.txtpush "redirect-gateway def1 bypass-dhcp"push "dhcp-option DNS 223.5.5.5"  client-to-clientkeepalive 10 120comp-lzouser nobodygroup nobodypersist-keypersist-tunstatus openvpn-status.loglog         openvpn.logverb 3

0.jpg

8. 设置 iptables

设置前请确保 iptables 已经开启,而且 /etc/sysconfig/iptables 文件已存在。然后开启转发:

vi /etc/sysctl.conf

修改以下内容:

net.ipv4.ip_forward = 1

然后使内核参数生效:

sysctl -p

添加 iptables 规则确保服务器可以转发数据包到阿里云内外网:

iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -j MASQUERADE

保存 iptables 配置:

service iptables save

启动 OpenVPN

/etc/init.d/openvpn start

通过 netstat -ano | grep 1194 查看 1194 端口在监听,确保 openvpn 在运行中。

Windows PC 客户端的配置


1.下载 openvpn 客户端

2. 安装:Windows系统下安装,按照默认设置安装完成。

3. 将云服务器中 /etc/openvpn/ 目录下的 aliyunuser.key、aliyunuser.crt 和 aliyunuser.csr 三个文件下载到需要连接 openvpn 的 Windows 客户端上(可以使用 ftp 或者 xftp 工具下载)。

保存路径为 openvpn 软件的安装路径下的 \OpenVPN\config 目录。

4. 配置 client.opvn

将 openvpn 安装路径下的 \OpenVPN\sample-config\ 目录中下的 client.opvn 复制到 openvpn 安装路径下的 \OpenVPN\config 目录,然后修配置文件中的如下参数;

bashproto udp   去掉前面的分号,采用与服务器端相同的udp协议 remote  1.1.1.1  1194   此处将1.1.1.1修改为用户的云服务器的公网IP地址,同时将该行前面的注释分号去掉cert aliyunuser.crt     key aliyunuser.key

5. 到 C:\Program Files (x86)\OpenVPN\bin 目录下,找到 openvpn-gui-1.0.3.exe 文件,右键选择以管理员权限运行(避免普通用户运行导致添加路由失败):

8-.jpg

6. 连接成功后,通过访问阿里云的内网镜像源 http://mirrors.aliyuncs.com/ 确认可以通过 openvpn 访问阿里云内网:

7-.jpg

同时访问 ip.cn,可以查看到此时 Windows PC 端的出口公网 IP 已经变为了云服务器的公网 IP 地址:

6-ipcn.jpg

以上就是关于Linux CentOS OpenVPN配置概述的具体介绍的详细内容,更多请关注学派吧其它相关文章!

主题测试文章,只做测试使用。发布者:云大使,转转请注明出处:https://www.xp8.net/server/2589.html

(0)
打赏 微信扫一扫 微信扫一扫
学派吧-使用Linux Ubuntu服务器VPN配置的教程(图)-linux教程
上一篇 2018年12月12日 下午10:13
学派吧-Linux自动分区工具的示例详细介绍-linux教程
下一篇 2018年12月12日 下午10:13

相关推荐

  • bash scp:未找到命令的解决教程分享

    scp命令用于通过ssh在两台服务器之间传输文件。大多数scp用户在系统中已经可以使用scp命令,但它仍然显示“bash:scp:command not found”。因此注意,scp命令必须在本地和远程系统上都可用才可以避免这个问题。 安装SCP命令包 scp命令来自Red Hat系统上的openssh-clients软件包,openssh-client软…

    2019年3月23日
    6.9K00
  • Linux解压gz文件的命令使用教程及详解

    今天小编给带来一篇linux解压方面的资料 Linux解压gz文件的命令有:gunzip命令、gzip命令、tar命令。下面本篇文章就来带大家了解一下 gz文件是一种压缩文件,以.gz或者.tar.gz(.tgz)为扩展名,在Linux、UNIX和OSX下常见,Linux和OSX都可以直接解压使用这种压缩文件。在Windows下常用压缩软件WinRAR打开g…

    2019年3月13日
    87.5K00
  • Linux中如何使用df命令检查磁盘空间使用信息

    在基于Linux的系统上,我们可以使用df命令来获取有关系统磁盘空间使用情况的详细信息。那么如何使用df命令呢?下面本篇文章就来带大家了解一下Linux中使用df命令检查磁盘空间的方法,希望对大家有所帮助。 Linux df命令 df命令可以用来检查Linux 文件系统中磁盘空间占用情况,即磁盘的使用情况。【视频教程推荐:Linux教程】 如果在没有任何参数…

    2019年3月13日
    3.0K00
  • 学派吧-利用ssh反向代理以及autossh实现从外网连接内网-linux教程

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛。但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使用外网的小土豪就没有办法进入内网。这时能不能有一个办法可以使得通过外网连接到内网的服务器呢?答案是有的,不过这里就需要以下条件:一台在外网能访问到的服务器。 1…

    2018年12月19日
    2.2K00
  • 学派吧-Linux/centos通过端口转发来实现访问内网服务的图文教程-linux教程

    可以通过端口映射的方式,来通过具有公网的云服务器 ECS 访问用户名下其它未购买公网带宽的内网 ECS 上的服务。端口映射的方案有很多,比如 Linux 下的 SSH Tunnel、rinetd,Windows 下的 portmap 等,本文简要介绍 rinetd,和 ssh tunnel 的配置方法。 说明:本文相关配置和说明仅用于示例和操作指引,阿里云不…

    服务器运维 2018年12月12日
    3.5K00

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

工作时间:周一至周五,9:30-18:30,节假日休息

添加微信
添加微信
分享本页
返回顶部