`
sd8089730
  • 浏览: 258605 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

OpenVPN 安装过程

 
阅读更多

Ubuntu 下建立OPENVPN 服务器/WINDOWS 客户端
 
 断断续续大半月时间,虽然耗时不少,但也少有收获,终于还是将它搞定---OPENVPN。
网上的例子实在多不胜数,虽我阅资不少,但可惜大多都是成分残缺,要就是有中心无重点,要就是有重点无中心(官网?算了吧,以我的英文程度,或许奥巴马都讲不赢我),看得我梦里看花,不知所云云...Ubuntu 论坛虽然也有几篇是关于架设VPN的文章,可惜我百般尝试,照搬照弄,但也以失败告终....
所以在此分享成果,也当作笔录以便日后翻阅,也望能帮助同样困惑的你,此文若能帮助一二,小弟无幸欢欣。
构建环境:Ubuntu 10.10
以下步骤建议在root 下进行,除去权限之闷!!
#由于Ubuntu 是不建议实用root的,所以若想使用root的话,必先在你当前用户下,在终端中输入:sudo passwd root 更改root密码!
第一步;运行终端,安装OPENVPN
sudo apt-get install openvpn
 
第二步;配置OPENVPN
终端下输入
sudo cp -a /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa/
sudo ln -s easy-rsa/keys /etc/openvpn/keys  #其实这个是快捷方式的意思
sudo mkdir /var/lib/openvpn/
然后编辑 vars 文件(由于我是懒人,对VI命令又不常用,所以不如直接找到文件打开进行编辑来的快,谁让可爱的Ubuntu是图形界面叻)
 
主要编辑以下部分,注意KEY_COUNTRY 和 KEY_PROVINCE 都以两个大写字母表示
export KEY_COUNTRY=""   #这里国家
export KEY_PROVINCE=""  #省份
export KEY_CITY=""      #城市
export KEY_ORG=""       #机构
export KEY_EMAIL=""     #Email
编辑完后保存!
终端输入命令进入 cd /etc/openvpn/easy-rsa/ #进入刚COPY的目录进行配置!
输入以下命令
source ./vars
./clean-all
./build-ca 
./build-key-server server 
./build-key client
./build-dh
注意:./build-key-server 与 ./build-key 使用默认选项即可。
若日后需添加新的客户端,直接运行以下命令
source ./vars
./build-key client2
./build-key client3
./build-key client3......
     
第三步;进行服务器文件的配置
终端下输入:
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gunzip server.conf.gz #运行这条记得路径是在 /etc/openvpn/ 中!
#以上是将实例文件copy然后解压到我们所在的配置的文件夹 /etc/openvpn/ 中!(或输入cd  .. 返回上一层目录)
打 server.conf 开进行配置
由于注解太多,所以删除了不少边幅,但不妨碍运行,作为参考修改!当然你也可以复制~
#OpenVPN的监听地址
local xxx.xxx.xxx.xxx
#OpenVPN的监听端口
port 1194
#使用UDP Server
proto udp
#使用tun通道
dev tun
#相对路径 /etc/openvpn
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
 
dh keys/dh1024.pem
#OpenVPN的子网地址
server 10.8.0.0 255.255.255.0
#客户端的Internet访问使用OpenVPN通道
push "redirect-gateway def1"
#Windows客户端会使用此DNS地址
push "dhcp-option DNS 208.67.222.222"   #这样填DNS需根据实际
push "dhcp-option DNS 208.67.220.220"  
#记录客户端分配的ip地址情况,如果OpenVPN服务重启,
#客户端重新连接的时候会按照此文件分配原先的地址。
ifconfig-pool-persist /var/lib/openvpn/ipp.txt
#每10秒ping一次,120秒内客户端没有动作就断开连接
keepalive 10 120
#客户端之间可以互相访问
client-to-client
#对OpenVPN链接进行压缩,客户端的配置文件必须同时使用
comp-lzo
#OpenVPN的用户和用户组
user nobody
group nobody
#如果user和group的用户和用户组没有访问key的权限
#避免产生权限不足的bug
persist-key
persist-tun
#日志文件
status /var/lib/openvpn/status.log
#日志文件的记录级别
verb 3
 
以上为server.conf 的配置主要
 
然后运行OPENVPN!
运行OPENVPN 有两种方式:
第一种:
终端下输入:openvpn /etc/openvpn/server.conf
 
若如上显示,那么恭喜你,你的OPENVPN已在运行当中了!
按 Ctrl+C 可以停止运行.
第二种:
在终端下输入:sudo openvpn service openvpn
 
当提示如上时,那么OPENVPN已经运行当中了。
相对而言,第一种运行比较直观看到OPENVPN的运行详细,所以用于测试较好!而第二种就是直接运行,相当于直接投入使用。
 
配置到这里,客户端已经是可以进行连接的了,但是连接上却是不能上网的,因为还需要设置数据转发!!
在终端中输入如下命令
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
这时候即可~!
后来我发现存在一个问题,就是但我重启Ubuntu后,发现客户端连上后上不了网,之后我再重新输入
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
这时候又可以正常上网,所以我估计是Ubuntu关机后把这条命令给消了(不知道其他人会不会有这个现象),所以我将这条命令放到开机启动时运行,找到 /etc/rc.lcacl 并打开
 
将命令写上(注意位置!),那么下次开机的时候它就会自动运行这条命令,那么就不用担心重启后客户端上不了网了。
 
第二部分 客户端配置
我现在知道为什么网上的文章大多都省略佐客户端不讲或讲个大概了,写到这里我有点手软了,所以请容休息半刻,吃个吉仔先~
**********************************************************************************************************
好,吃完,吉仔有点酸--继续.....
客户端环境:Windows XP sp3 (版本?当然是中国式正版啦!)
首先在刚才我们在配置OPENVPN 的时候,配置过客户端文件(别问我不知什么时候配置过),现在是用它们的时候了
它们在这里
 
就以上这个三个文件,将其复制打包,发送或传输等等方法将其送到客户端机上,这里提供两种方法
1,打包后,用Email发送。
2,用 这个,不会用问百度兄或GOOGLE弟,报个名上去就帮到你。
 
然后到OPENVPN 官网下载 windows client
下载链接:http://openvpn.net/release/openvpn-2.1.3-install.exe  
版本 openvpn-2.1.3
下载完后直接安装!基本无他,反正是GUI,一路NEXT便是~
这时候桌面多了 ,当然还有右下角的这个
 
进入:C:\Program Files\OpenVPN\sample-config
 
将 连同配置的那三个客户端文件一并复制到以下路径
C:\Program Files\OpenVPN\config
 
 
双击对 进行配置
同上,修修边幅,让世界变得更加美好~!!
以下是配置内容:
 
#号和;号都是注释

# 定义是一个客户端
client

# 定义使用路由IP模式,与服务端一致
;dev tap
dev tun

# 定义Windows下使用的网卡名称,linux不需要
;dev-node 我的连接

# 定义使用的协议,与服务端一致
;proto tcp
proto udp

# 指定服务端地址和端口,可以用多行指定多台服务器
# 实现负载均衡(从上往下尝试)
remote 192.168.35.88 1194  (因为我在内网测试,所以地址为私有,若公网进行端口映射后,填公网IP即可)
;remote my-server-2 1194

# 若上面配置了多台服务器,让客户端随机连接
;remote-random

# 解析服务器域名
# Keep trying indefinitely to resolve the
# host name of the OpenVPN server.  Very useful
# on machines which are not permanently connected
# to the internet such as laptops.
resolv-retry infinite

# 客户端不需要绑定端口
# Most clients do not need to bind to
# a specific local port number.
nobind

# 也是为了让Openvpn也nobody运行(安全)
# 注意:Windows不能设置
user nobody
group nobody

# Try to preserve some state across restarts.
persist-key
persist-tun

# 若客户端通过HTTP Proxy,在这里设置
# 要使用Proxy,不能使用UDP为VPN的通讯协议
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]

# 无线网络有很多多余的头文件,设置忽略它
;mute-replay-warnings

# 重点,就是指定ca和客户端的证书
# 注意,下面的两个号是连在一起的,之间没有空格
ca ca.crt
cert client.crt
key client.key
# 如果服务端打开了PAM认证模块,客户端需要另其有效
;auth-user-pass

# 一些安全措施
# Verify server certificate by checking
# that the certicate has the nsCertType
# field set to "server".  This is an
# important precaution to protect against
# a potential attack discussed here:
http://openvpn.net/howto.html#mitm
#
# To use this feature, you will need to generate
# your server certificates with the nsCertType
# field set to "server".  The build-key-server
# script in the easy-rsa folder will do this.
;ns-cert-type server

# If a tls-auth key is used on the server
# then every client must also have the key.
;tls-auth ta.key 1

# Select a cryptographic cipher.
# If the cipher option is used on the server
# then you must also specify it here.
;cipher x

# 使用lzo压缩,与服务端一致
comp-lzo

# Set log file verbosity.
verb 3

# Silence repeating messages
;mute 20
 
然后保存!
 
现在运行OpenVPN GUI,打开后其图标出现在菜单栏右下角   ,对其右击,选择 Connect

它会弹个框出来显示其连接的运行状态,所以莫惊讶~
 
 
直到它隐藏后,右下角OPENVPN图标变绿,且气泡提示所分配到的IP
 
 
然后 PING 下 VPN SERVER 等地址,看能否PING通,若 PING 通了
 
那么就大功告成~!!可以开香槟庆祝下~


如果有提示说 找不到 ca 或者其他文件 请修改为 绝对路径
端口冲突的话 还是 可以使用

 

分享到:
评论

相关推荐

    linux交叉编译器3.4.5

    3. **安装过程**: 要安装交叉编译器3.4.5,首先需要下载提供的压缩包文件,然后解压到一个适当的目录(如`/opt`)。接下来,遵循以下步骤: - **配置**:运行配置脚本,指定目标体系结构和安装路径。例如,对于...

    欧拉系统(openEuler-22.03)安装深信服EasyConnect软件提示segmentation fault解决方案

    当用户尝试在openEuler-22.03上安装并运行EasyConnect时,可能会遇到“segmentation fault”错误,这是典型的C/C++程序运行时异常,通常表示程序试图访问内存中无效的位置,可能是由于库文件不匹配或缺失导致的。...

    ARM9平台上的嵌入式Linux系统移植研究

    移植过程中,不仅要确保U-Boot能够在ARM9处理器上正确执行,还要实现YAFFS2文件系统映像的烧写功能,这是为了能够在NAND Flash上构建Linux系统环境。 ##### 3. Linux内核移植与根文件系统构建 移植Linux内核至ARM9...

    老男孩linux笔记下

    在Linux系统中安装软件包,尤其是像MySQL这样的大型软件,需要提前加大虚拟内存以加快编译过程,并且最好提前下载相关的软件包,以便在实际安装过程中能够减少网络因素带来的不确定性影响。 MySQL安装过程中,首先...

    httest-2.4.9-win.zip

    httest是一款强大的开源HTTP测试工具,专为网络服务器和Web应用程序的性能和负载测试而设计。... **httest简介** ...通过熟练掌握httest的使用,可以在开发和维护过程中发现并解决潜在的问题,提高服务质量。

    linux加入windows域之完美方案

    ### Linux加入Windows域之完美...需要注意的是,在配置过程中务必仔细检查所有步骤,特别是DNS设置和时间同步等,这些都是保证系统顺利加入域的关键因素。此外,还可以通过进一步优化配置来提高系统的稳定性和安全性。

    sslh:应用协议多路复用器(例如,在同一端口上共享SSH和HTTPS)

    实现了针对HTTP,TLS / SSL(包括SNI和ALPN),SSH,OpenVPN,tinc,XMPP,SOCKS5的探针,并且可以识别可以使用正则表达式测试的任何其他协议。 一个典型的用例是允许在端口443上提供多种服务(例如,从公司防火墙...

    p2p:P2P云项目允许用户构建其专用网络

    或者您可以尝试make all为了为Linux,Windows和MacOS构建P2P跑步MacOS用户应安装并使用以下行创建config.yaml文件: iptool: /sbin/ifconfig Windows用户应从OpenVPN套件安装驱动程序p2p由守护程序管理,该守护程序...

    darwin启动引导软件

    OpenCore是目前更受欢迎的选择,它支持多种操作系统(包括macOS、Windows和Linux)的安装,并提供了高级配置选项。Clover是早期的替代方案,同样具有多系统支持功能。 七、安全启动与Apple T2芯片 Apple的T2安全...

    pzem004t-to-emoncms:工作程序从pzem004t读取值并将其发送到EmonCMS

    硬件具有串行USB电缆的PZEM004t 树莓派或类似软件EmonCMS服务(可以是emonpi) worker.py所需的Python软件包可选或服务带有pivpn的可选OPENVPN服务 安装$ pip3 install -r requirements.txt $将config_example.json...

    Endian Firewall Community-开源

    具有防病毒支持的各种协议(HTTP,FTP,POP3,SMTP)的应用程序级代理,针对电子邮件流量(POP和SMTP)的病毒和垃圾邮件过滤,对网络流量的内容过滤以及“无忧” VPN解决方案(基于OpenVPN和IPsec)。

    Project-Fog::cloud::cloud::cloud:Project Fog:cloud::cloud::cloud:

    屏幕截图 自动化功能: ★自动删除过期的用户帐号★自动断开多登录用户(不包括Openvpn)。 ★每次重启都自动配置防火墙(torrent等的保护。) ★自动重新连接功能(请参阅菜单) ★自动更新防火墙(如果更改,删除...

    AudiculaPi:AudiculaPi-Raspberry Pi的微型媒体服务器-开源

    AudiculaPi-基于OpenWrt / ...Shairport * Avahi * OpenVPN *带mjpeg-streamer的WebCAM视频流* NTP客户端/服务器* WLAN客户端和/或访问点* ...无数其他小工具,请使用由OpenWrt存储库支持的基于Web的数据包管理器!

    StarryType

    在安装字体时,用户只需将文件复制到系统指定的字体文件夹,即可在各种应用程序中选择并使用StarryType。 值得注意的是,版权问题在字体使用中不容忽视。虽然StarryType可能是一个免费字体,但在商业项目中使用时,...

    BashCheatSheet:此存储库包含一些bash脚本,我在设置新的Ubuntu服务器时使用了一些时间,以及一些docker快捷方式

    重击备忘单该存储库包含一些bash脚本,我在设置新的Ubuntu服务器时曾用过几次。 该脚本包含以下应用程序的安装码头工人LetsEncrypt OpenVPN 传播UFW

    baseOS:基于USB的操作系统,具有选择性的数据永久性和块级加密功能

    基本操作系统 baseOS是基于squashfs的操作系统,具有选择性的数据永久性和块级... 随附tor,openvpn和袜子支持。 截至本自述之时。 baseOS的构建脚本尚未经过严格测试。 如果要测试baseOS,则应从release分支下载。

    open-balena:用于管理连接的物联网设备的开源软件

    我们的《是启动和运行openBalena安装并成功将应用程序部署到设备的最直接途径。 兼容性 当前版本的openBalena具有以下最低版本要求: balenaOS v2.58.3 balena CLI v12.38.5 如果要从先前的op

    最新路由换IP软件.软件是最新发布的路由换IP软件

    它可能利用PPTP、L2TP、OpenVPN等协议建立一个新的网络连接,从而获取新的IP地址。 2. **内存占用**:软件声明几乎不占用内存,这意味着它优化了内部算法和资源管理,降低了运行时对系统资源的需求,使得用户可以在...

    OpenAnyconnect Cookie Tray (Uni Lincoln)-crx插件

    此简单扩展旨在与林肯大学的Cisco VPN安装的AnyConnect门户一起使用。 它所做的全部工作是从中提取VPN cookie,以生成供openconnect用于OSXLinux的命令行。 它是开源的,可从...

Global site tag (gtag.js) - Google Analytics