搭建一台VPN服务器实现外部网络连接内部网络

声明

作者:昨夜星辰

博客:http://yestreenstars.blog.51cto.com/

本文由本人创作,如需转载,请注明出处,谢谢合作!

目的

搭建一台VPN服务器实现外部网络连接内部网络。

环境

服务端:CentOS 6.2 32

客户端:Windows XP

服务端配置

# 关闭SELinux
sed -i ‘/^SELINUX\b/s/=.*/=disabled/‘ /etc/selinux/config
setenforce 0

# 安装EPEL源(默认yum源没有openvpn和easy-rsa软件包)
rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/5/i386/epel-release-5-4.noarch.rpm

# 安装openvpn和easy-rsa软件包
yum -y install openvpn easy-rsa

# 切换到/usr/share/easy-rsa/2.0/目录
cd /usr/share/easy-rsa/2.0/
# 初始化环境变量
source vars
# 清除所有与证书相关的文件
./clean-all
# 生成CA相关文件(一路按回车即可)
./build-ca
# 生成服务端相关文件(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次)
./build-key-server server
# 生成客户端相关文件(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次)
./build-key client
# 生成dh2048.pem文件(生成过程时快时慢,在此期间不要去中断它)
./build-dh
# 生成ta.key文件(防DDos攻击)
openvpn --genkey --secret keys/ta.key
# 在openvpn的配置目录下新建一个key目录
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/

# 创建/etc/openvpn/server.conf文件,内容如下
port 1194
proto udp
dev tun
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
push "route 192.168.1.0 255.255.255.0" # 192.168.1.0/24是我这台VPN服务器所在的内网的网段,读者应该根据自身实际情况进行修改
keepalive 10 120
tls-auth keys/ta.key 0 # This file is secret
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3

# 开启路由转发功能
sed -i ‘/net.ipv4.ip_forward/s/0/1/‘ /etc/sysctl.conf
echo 1 > /proc/sys/net/ipv4/ip_forward

# 配置防火墙
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE

# 启动openvpn服务并将其设置为开机启动
service openvpn start
chkconfig openvpn on

客户端配置

# 创建一份客户端文件(命名为client.ovpn),内容如下(读者要注意修改下面的服务端公网IP)
client
dev tun
proto udp
remote 服务端公网IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ns-cert-type server
comp-lzo
verb 3
tls-auth [inline] 1
<ca>
将/usr/share/easy-rsa/2.0/keys/ca.crt的全部内容复制粘贴于此
</ca>
<cert>
将/usr/share/easy-rsa/2.0/keys/client.crt的全部内容复制粘贴于此
</cert>
<key>
将/usr/share/easy-rsa/2.0/keys/client.key的全部内容复制粘贴于此
</key>
<tls-auth>
将/usr/share/easy-rsa/2.0/keys/ta.key的全部内容复制粘贴于此
</tls-auth>

# 从服务端下载client.ovpn,并将其复制到openvpn的安装目录的config目录下,最后,启动openvpn程序,连接服务端,如果能获取到IP,且能ping内网的其他机器就表示配置成功了。

# 最后给出我的client.ovpn的范例文本供读者参考。
client
dev tun
proto udp
remote 192.168.1.88 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ns-cert-type server
comp-lzo
verb 3
tls-auth [inline] 1
<ca>
-----BEGIN CERTIFICATE-----
MIIFEjCCA/qgAwIBAgIJALomSu6uks0gMA0GCSqGSIb3DQEBCwUAMIG2MQswCQYD
VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzEVMBMG
A1UEChMMRm9ydC1GdW5zdG9uMR0wGwYDVQQLExRNeU9yZ2FuaXphdGlvbmFsVW5p
dDEYMBYGA1UEAxMPRm9ydC1GdW5zdG9uIENBMRAwDgYDVQQpEwdFYXN5UlNBMSEw
HwYJKoZIhvcNAQkBFhJtZUBteWhvc3QubXlkb21haW4wHhcNMTQxMTA2MDg1NTA0
WhcNMjQxMTAzMDg1NTA0WjCBtjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRUw
EwYDVQQHEwxTYW5GcmFuY2lzY28xFTATBgNVBAoTDEZvcnQtRnVuc3RvbjEdMBsG
A1UECxMUTXlPcmdhbml6YXRpb25hbFVuaXQxGDAWBgNVBAMTD0ZvcnQtRnVuc3Rv
biBDQTEQMA4GA1UEKRMHRWFzeVJTQTEhMB8GCSqGSIb3DQEJARYSbWVAbXlob3N0
Lm15ZG9tYWluMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArox/60tx
UeGdb/mRGvBK/MH0/egVx1Rv1kDiqXrECJqCM85rMv5h4A3CXFK4jwNDaZz3wybw
9XKpEyPtDfAbWaNaEoZXctEZQzh1Ju8Bhe3laGNmVW+noD+n20sG0E0SAdSmKH7o
BHWGM1xeDNQeKYwQAKuy88WVsH7fFf/wWLyD9p2tTJaxpG88bqNyXeWbEyHyr1g4
3wvmoZs+63hquXuhQSN/dyskYXmhficjY6H/fuTMVGk0to7KmrVeoEEb5ymf1U1W
wPFWErksN+YF8CAueE/vnm1bdJfBAS7Uv/KkDlV0IZ0dHRL5UrVq1k2QW//QsQiX
7YexZCwOjOUuJQIDAQABo4IBHzCCARswHQYDVR0OBBYEFEXeRmSTC9I8kUtgdbzA
Ug06WgYsMIHrBgNVHSMEgeMwgeCAFEXeRmSTC9I8kUtgdbzAUg06WgYsoYG8pIG5
MIG2MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5j
aXNjbzEVMBMGA1UEChMMRm9ydC1GdW5zdG9uMR0wGwYDVQQLExRNeU9yZ2FuaXph
dGlvbmFsVW5pdDEYMBYGA1UEAxMPRm9ydC1GdW5zdG9uIENBMRAwDgYDVQQpEwdF
YXN5UlNBMSEwHwYJKoZIhvcNAQkBFhJtZUBteWhvc3QubXlkb21haW6CCQC6Jkru
rpLNIDAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBJox1vNdG8NvwK
43w/2rKAU85efraEYSxcUydTn5kh2RAi4y0MkZWkieypSAZIYSVUWYwU7RYbLJ02
j7H5TMTt2/h8Xr4jxZjYUB+vmMfVF2hI4kIEDZkf5P/6lLxxJE200bKcgp31Jftn
4lK5di/YZF95c8QHPEuqe04DXrUK0MjdQEYtccg4+R4E+Cfcfvy4N8LEChvdvMtI
q2cnS3NE6/+L0g9wzkVvxXbWnlUzVKzNJ5sUp1yU0eqXIh6sS6HhSCJEe1yHhp+L
bR69o/WHObGiMkc3y+WpP9MLWeoePWEfXCEQ2nqE+AGqGLh5VPmDlEEwc+omS2Xo
JZc3cagw
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
MIIFTzCCBDegAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBtjELMAkGA1UEBhMCVVMx
CzAJBgNVBAgTAkNBMRUwEwYDVQQHEwxTYW5GcmFuY2lzY28xFTATBgNVBAoTDEZv
cnQtRnVuc3RvbjEdMBsGA1UECxMUTXlPcmdhbml6YXRpb25hbFVuaXQxGDAWBgNV
BAMTD0ZvcnQtRnVuc3RvbiBDQTEQMA4GA1UEKRMHRWFzeVJTQTEhMB8GCSqGSIb3
DQEJARYSbWVAbXlob3N0Lm15ZG9tYWluMB4XDTE0MTEwNjA5MDEyOFoXDTI0MTEw
MzA5MDEyOFowga0xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM
U2FuRnJhbmNpc2NvMRUwEwYDVQQKEwxGb3J0LUZ1bnN0b24xHTAbBgNVBAsTFE15
T3JnYW5pemF0aW9uYWxVbml0MQ8wDQYDVQQDEwZjbGllbnQxEDAOBgNVBCkTB0Vh
c3lSU0ExITAfBgkqhkiG9w0BCQEWEm1lQG15aG9zdC5teWRvbWFpbjCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAL6VxW3cZuZ7Y4SY0NTQkA3ftIa/yN2D
DCstzZy5XVq+oGOIzU0vD1SkwrwBERhc5FY/yzYK5OZhAM7tdULQ2EsjB2gSu+ol
00NKxwRcppUFQ7xHleTuyaRg4Y4tNxhfJ9XGDyxM/8ivBrtxolgUKcsJxhWSYhPX
78OAKCIMdxMrmVmB7EkLPrr6C5s41u3NPpKA8VOjJ82JOtYM6qj+BxCqgWbHhEzi
GRyzSR00uTHLfgXp8k9nX7aijYQUKWG6VyN3dmuQlH7xtfEIAUAfn7kFkKjidUO3
WROXl79Q05UvF9VORqzwZKmjtD/MR5rgRg7KHlXBHCuuK67vxpZp0ykCAwEAAaOC
AW0wggFpMAkGA1UdEwQCMAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdlbmVy
YXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUtCoNrhqzLHMbOFJoiOiBq15khs4w
gesGA1UdIwSB4zCB4IAURd5GZJML0jyRS2B1vMBSDTpaBiyhgbykgbkwgbYxCzAJ
BgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuRnJhbmNpc2NvMRUw
EwYDVQQKEwxGb3J0LUZ1bnN0b24xHTAbBgNVBAsTFE15T3JnYW5pemF0aW9uYWxV
bml0MRgwFgYDVQQDEw9Gb3J0LUZ1bnN0b24gQ0ExEDAOBgNVBCkTB0Vhc3lSU0Ex
ITAfBgkqhkiG9w0BCQEWEm1lQG15aG9zdC5teWRvbWFpboIJALomSu6uks0gMBMG
A1UdJQQMMAoGCCsGAQUFBwMCMAsGA1UdDwQEAwIHgDANBgkqhkiG9w0BAQsFAAOC
AQEAFCwWGJGDcOYsF2ByIQXSKUhzCdg+73YpxrdNiRuauTctq9sxOcM5K4upf76l
qI2LmXoKCLLVNhjUvNdxTE2g2iHAobPpaDFiLqxtu17GhQIQE57FMFa/0w1YO4LG
rLAd6NEp1Bpi/NRQ8c1KAMmvA/2Uz/0i840hJWooWOyR9v15tssaxhYx8MopURx4
SVIwef2cQrIE96emu0F037SqEwLc5ofTDjJpEQ+JmK3u0YQYIqJyp0fgBvPPJ7zP
Uvsizp5vxhn0F6ULtYpSsMgzQNljltjxmrBwnIUD85etqH/hf9WTxbZIxbyIdRvk
2j2G50sGzLYQ+f9MFnubIe4tKQ==
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC+lcVt3Gbme2OE
mNDU0JAN37SGv8jdgwwrLc2cuV1avqBjiM1NLw9UpMK8AREYXORWP8s2CuTmYQDO
7XVC0NhLIwdoErvqJdNDSscEXKaVBUO8R5Xk7smkYOGOLTcYXyfVxg8sTP/Irwa7
caJYFCnLCcYVkmIT1+/DgCgiDHcTK5lZgexJCz66+gubONbtzT6SgPFToyfNiTrW
DOqo/gcQqoFmx4RM4hkcs0kdNLkxy34F6fJPZ1+2oo2EFClhulcjd3ZrkJR+8bXx
CAFAH5+5BZCo4nVDt1kTl5e/UNOVLxfVTkas8GSpo7Q/zEea4EYOyh5VwRwrriuu
78aWadMpAgMBAAECggEAXPhu4RLdV53lhC+P3+EGBN6WEA3KjNR6wS2M2eFK+xN2
5lc732UPk3j0TgYvMrVN5g0ksm5KD2BOpqMLytZaTPz/hfNtm+Fr163IvAX+dT+m
NViudIlP8FIadeL0t3zjz9LYYAIH3PwUyqe6TEE5ygQwjyFjms6B9dq0uTdfdwe8
EETpINFRSSEtrxNe/Z8R3prkHBZ/cCfP08oDR8sThw+RqbqxUe0re2SKQxiIgBXU
5DuhCuoD6fdvLW/w/ArbligWOxAfuNNR5t0aSbRKDCacIaIrwrI5tZUxLiXHSTaj
CN++wXQsr/Hs4zHGz0Uyt1X8Cu1d3e3GwlHnVc0KAQKBgQDl1Gl10Jg3ULu1FcLS
nAs1RiTtWOcRP0Xl37ozIhjWY5iUB3SpzpD/pYbJgPnqZf6qwwp1CPdMao/oK4yW
9oQVs7IkdsOxiiq0qrtf/DbBImdxxx8LDpmceW6TEYreiVmjI8ddoNWKaFmqIz4G
1K1rXbCplqoMKFUUHl9PbU5hiQKBgQDUSV4mIBdHMwEGpwUgYr/Yqc0LNdt3HvsO
ZzrxKqFCiB1XE7rc05/2Tt0ll8FSNdlPIwfu3YPUzoU1SCMjb1Q9GrvR9H5DNv24
8wd74ThzOF0xiZUOZwj6X6ZxFvfdUe6hI5h/b0dG7pUw+JSkmnpD7BO+YE1MjjN3
nzqQTnecoQKBgQCyJFiyF0NE7PDxxbJC6OzPGFWbGyPPfInDSgzbgXxbAMvNQZIt
5I0Detvk6HHOO8yPs6oxWQfGVXrB7K+GfAGZiLV2ChBZVs0PSJ8AIVCXlwEzcbIg
MerjHESW/ivznea6ywrHCdk69PM7KyHyzXq2E+LRMJUR41k+xOP/fqwYcQKBgQDI
OU7wnLH3+JZOJPgD3L/f5f+8RBb0WqcmpZ0FXFTvAJzTxYsovv2P/kA9Nc4j8SA+
sObJl+rAq+0eHSTvRhDo9S8TTwxL7zEN4UM8x2dL3WygzYhmJi5koBTHc4djGuT8
3Sr3fwh2UY8rujnQqtcI+0B//irKOxE2EVvWQfw1IQKBgQCJgU0Ef+CDR6R2iImL
69xkwp2umQVDPFCJtlJ5Oqg7CRI4HHo2+ujfDq8hl4ihg0Zq6e+iIrBCBOOFlpLn
xrvhxAv79sB/w5Y3zSwTtqwnpUR65ZKi2X4exza0//yY77LAuGNcG5oKTUhTBDMz
FPnZX9Q0zJevs0+UfAeXvThc9g==
-----END PRIVATE KEY-----
</key>
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
a692b93eeb708a615914f791ef42a2fb
4d14e99055aa297e564366ed272c25d7
116cd7a43d5f9d02c84d566406a3a657
84f1e69c23c3d954b1a19dc4d373b8a3
7c717d397c51e947183a628c4f4a7e98
173a65e0ce9806b2b04f1ce0e45ffacb
67bbca2db49cb3b78c573b85fb3d79c4
bbbf61d9147513957ac4668e541db859
c449eaf04b0d0585dc4c102ca010d91a
5ad275b7fb13e95f0a971a88a7550cb4
3485825fb6304b8537ac9cd6af5fda68
4a0d94d47f3a0478e722f20e0043de1c
c18684f5b68e6f19ad5b302cb9ddc1ca
b326c80c4b6bb235dda607a5fa79fbc8
5da586741a428e2ab390827c5145893a
d78f0bef7c86710ec7752d60cb94cada
-----END OpenVPN Static key V1-----
</tls-auth>
时间: 2024-08-02 02:47:31

搭建一台VPN服务器实现外部网络连接内部网络的相关文章

【技术宅拯救世界】在Windows Server2012上利用OpenVPN搭建自己的VPN服务器

写在前面的话:前段时间利用VPN免流特别火,我本来打算买一个,但后来发现其实都是用的OpenVPN搭建的,正好我手上有一个腾讯的云服务器,我一想不如就自己搭建一个吧,省点钱,结果就这样浪费了两天的时间,最大的问题在于网上关于用windows server搭建的教程异常的少,大部分都是cent os并且是脚本搭建的,我看了好多,看得我一头雾水...总算在我折腾服务器两天之后建好了属于自己的第一个VPN服务器,但是免流那块,四川联通失败,浪费了我两天的时间,但是为了避免以后搭建再次搭建VPN时发生问

5分钟搭建linux pptp vpn服务器(新手无痛版)

0.环境需求: 已经安装好ubuntu系统,可以访问互联网.知道基本的linux命令. 本文以ubuntu 14.04LTS为基础. 1.安装pptpd. 通常pptpd会随ubuntu安装过程默认安装,但有时可能会因为安装设置不同,而没有默认安装. sudo apt-get install pptpd ubuntu强烈建议安装一个synaptic,中文名叫做"新立得",这应该是linux上最好用的包管理器了. 2.设置vpn server和client的虚拟ip地址. client连

如何判断当前网络连接状态(网络是否正常)

众所周知,我们在开发APP时,涉及网络连接的时候,都会想着提前判断一下当前的网络连接状态,如果没有网络,就不再请求url,省去不必要的步骤,所以,这个如何判断?其实很简单. 前提:工程添加:SystemConfiguration.framework 然后在需要判断的类中包含头文件: #import "Reachability.h" 下面是我写的一个方法: #pragma mark - 检测网络连接 + (BOOL)isConnectionAvailable { BOOL isExist

为HT公司搭建一台 web 服务器

1.基本设置(截图) (1)将主机名更改为WEBServer (2)该计算机的内网IP地址为192.168.1.1/24 (3)在本机上搭建DNS服务器,并为本机网站解析名称:www.HT.com,oa.HT.com,web.HT.com,support.HT.com,mail.HT.com,www2.HT.com 二.WWW服务器设置(截图) 1.公司OA站点的配置 利用默认端口配置一个公司内网oa主站,路径为D:\OA文件夹,站点首页名称为default.htm.公司主站的名称为:oa.HT

LOL遇到登录服务器问题,未能连接到网络原因

通过打开各种浏览器,发现只有IE不能上网,QQ之类的都能上网,不能登入LOL 只有IE是出现:远程计算机或设备将不接受连接 这个问题 解决办法是: 1.win+r --> 输入regedit 打开注册表 2.查找Internet Settings(在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings) 3.删除Internet Settings下的Connection文件夹 4.重启IE,完美

2017-3-18 以私有IP形式搭建PPTP VPN 服务器

一直有个需求,我自己买不起服务器,就想让北京的朋友给我一台下架的服务器让我玩,但人家不会浪费公有IP给我,于是我想,路由器不是有公有IP吗,我就搭建一个VPN服务器让我远程连接吧.一般来说,如果是在家访问线上服务器的话,都是使用的OpenVPN,毕竟是基于SSL证书加密的,安全性高,但是非常复杂,不仅仅是服务端,客户端也是需要非常多的步骤和配置文件,于是乎,我就选择了PPTP VPN作为实验品,但是,我依然还有疑惑,服务器没有公网IP,真的就没法远程了吗?之前九州云的细节我还没搞清楚,就走了,现

CentOS 6.5 网络服务器功能的实现①:运用bind搭建基本的DNS服务器

何谓DNS服务?简而言之,DNS服务在互联网中可以实现域名解析(把域名转换成网络可以识别的IP地址). 名词解释①:正向解析:域名解析IP地址:反向解析:IP地址解析域名. DNS服务的正/反向区域解析文档大部分是靠手打出来的,但我们不必惧怕,毕竟在这里我们还是能摸索出一些窍门的. 注意:防火墙和SELinux都会对DNS服务器有一定的影响,为避免不必要的麻烦,在做实验时建议搭建DNS服务器之前,应把防火墙和SELinux关闭. [情景实例] 配置一个常规DNS服务器 ①搭建一台DNS服务器,为

在内网搭建一台服务器实现从外网连接到内网

环境 服务端:CentOS 6.7 32-bit 客户端:Windows XP 服务端配置 # 关闭SELinux sed -i '/^SELINUX\b/s/=.*/=disabled/' /etc/selinux/config setenforce 0 # 安装EPEL源(默认yum源没有openvpn和easy-rsa软件包) rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/5/i386/epel-release-5-4.noarch.rpm

VPN服务器笔记

1.VPN(虚拟专用网):一种利用专用网络来传输私有信息的技术:实现企业内部网络与远程办公室.移动办公用户之间的无缝连接: 2.通过VPN,用户可以跨越公共网络,采用统一的内部IP地址彼此进行通信,访问公司内部的各种信息系统和资源: 3.在该网络拓扑中,企业搭建了一台VPN服务器,分支人员首先访使用VPN客户端连接到这台VPN服务器上,经过验证后,服务器会为客户端分配预先设置好的内网IP地址并建立私有链路,用户即可范围内部数据: 4.PPTPD是Linux下的一款开源代码的VPN服务器软件:支持