欢迎光临
我们一直在努力

【转】将公司内网与云服务器内网打通

现在越来越多的互联网公司选择和使用云服务商的产品,方便便捷的同时也给运维工作增加了不小的挑战。办公网和云服务两个局域网(or任意两个不同局域网),相互隔离。但是在日常运维、研发过程中,需要在办公网访问云服务网络。如果都通过公网ip绕,既不方便,也不安全,但是拉专线到机房成本又非常高,这里我给大家推荐通过现有资源(云服务器)来实现这个目标。

 

这里有3种方案,一种是通过openvpn,一种是IPsecVPN,这两种方法都比较安全,这里不在赘述孰优孰劣。如果公司是固定公网IP的话其实也可以通过建立GRE隧道来实现,但是可能大部分公司都不太满足要求。

OpenVPN 
简述 

OpenVPN 是一个高级的开源 VPN 解决方案,由 “OpenVPN technologies” 支持,并且已经成为开源网络领域里的事实标准。OpenVPN 使用成熟的 SSL/TLS 加密协议。

架构 
【转】将公司内网与云服务器内网打通
OpenVPN架构图 
OpenVPN服务器配置 

系统版本 Centos 6.5,配置要求不限。

安装VPN服务 

我这边用yum安装,当然你也可以自己编译安装(从这个页面下载:http://openvpn.net/index.php/download.html)

# yum install -y openvpn easy-rsa 
初始化VPN服务端 
复制配置文件 
# cp /usr/share/doc/openvpn-2.3.14/sample/sample-config-files/server.conf /etc/openvpn/ 
# cp -r /usr/share/easy-rsa/2.0/* /etc/openvpn/ 
注:openvpn-2.3.14需要改为你安装的OpenVPN版本 
修改配置文件并修改权限 
# cd /etc/openvpn/ 
# vi vars 
将 "export key_SIZE=” 这行,根据情况把1024改成2048或者4096 
# chmod +x vars 
做ssl配置文件软链 
ln -s openssl-1.0.0.cnf openssl.cnf 
证书配置 
生成证书 
# source ./vars 
注意:如果执行 ./clean-all, 会清除/etc/openvpn/keys下所有key文件. 
清除旧key文件 
# ./clean-all 
生成服务端CA证书 
# ./build-ca 
命令行提示内容可以根据具体情况填写,也可以不填写,一路回车. 
生成服务器证书 
# ./build-key-server openvpn.example.com 
生成服务器端密钥证书, 后面这个openvpn.example.com就是服务器名,可以自定义. 

生成DH验证文件 
# ./build-dh 
生成diffie hellman参数,用于增强openvpn安全性(生成需要漫长等待),让服务器飞一会。 
生成客户端Key证书 
# ./build-key client1 
# ./build-key client2 
# ./build-key client3 
(名字任意,建议写成你要发给的人的姓名,方便管理) 
注:这里与生成服务端证书配置类似,中间一步提示输入服务端密码,其他按照提示填写或一路回车即可。 
生成ta.key 文件 
# openvpn --genkey --secret /etc/openvpn/keys/ta.key 
修改配置文件 
# vi /etc/openvpn/server.conf 
# 设置监听IP,默认是监听所有IP 
;local a.b.c.d 
# 设置监听端口,必须要对应的在防火墙里面打开 
port 1194 
# 设置用TCP还是UDP协议? 
;proto tcp 
proto udp 
# 设置创建tun的路由IP通道,还是创建tap的以太网通道,由于路由IP容易控制,所以推荐使用tunnel; 
# 但如果如IPX等必须使用第二层才能通过的通讯,则可以用tap方式,tap也就是以太网桥接 
;dev tap 
dev tun 
# 这里是重点,必须指定SSL/TLS root certificate (ca), 
# certificate(cert), and private key (key) 
# ca文件是服务端和客户端都必须使用的,但不需要ca.key 
# 服务端和客户端指定各自的.crt和.key 
# 请注意路径,可以使用以配置文件开始为根的相对路径, 
# 也可以使用绝对路径 
# 请小心存放.key密钥文件 
ca keys/ca.crt 
cert keys/openvpn.example.com.crt 
key keys/openvpn.example.com.key 
# 指定Diffie hellman parameters. 
(默认是2048,如果生成ca的时候修改过dh参数“export KEY_SIZE”则改为对应的数字) 
dh keys/dh2048.pem 
# 配置VPN使用的网段,OpenVPN会自动提供基于该网段的DHCP服务,但不能和任何一方的局域网段重复,保证唯一 
server 10.20.0.0 255.255.255.0 
# 维持一个客户端和virtual IP的对应表,以方便客户端重新连接可以获得同样的IP 
ifconfig-pool-persist ipp.txt 
# 为客户端创建对应的路由,以另其通达公司网内部服务器 
# 但记住,公司网内部服务器也需要有可用路由返回到客户端 
;push "route 192.168.20.0 255.255.255.0" 
push "route 10.X.0.0 255.255.0.0" (X按照机房网段修改) 
# 若客户端希望所有的流量都通过VPN传输,则可以使用该语句 
# 其会自动改变客户端的网关为VPN服务器,推荐关闭 
# 一旦设置,请小心服务端的DHCP设置问题 
# push "redirect-gateway def1 bypass-dhcp" 
# 用OpenVPN的DHCP功能为客户端提供指定的DNS、WINS等 
#push "dhcp-option DNS 208.67.222.222" 
#push "dhcp-option DNS 208.67.220.220" 
# 默认客户端之间是不能直接通讯的,除非把下面的语句注释掉 
client-to-client 
# 下面是一些对安全性增强的措施 
# For extra security beyond that provided by SSL/TLS, create an "HMAC firewall" 
# to help block DoS attacks and UDP port flooding. 

# Generate with: 
# openvpn --genkey --secret ta.key 

# The server and each client must have a copy of this key. 
# The second parameter should be 0 on the server and 1 on the clients. 
# tls-auth ta.key 0 # This file is secret 
(这句要注释掉) 
# 使用lzo压缩的通讯,服务端和客户端都必须配置 
comp-lzo 
# 输出短日志,每分钟刷新一次,以显示当前的客户端 
status /var/log/openvpn/openvpn-status.log 
# 缺省日志会记录在系统日志中,但也可以导向到其他地方 
# 建议调试的使用先不要设置,调试完成后再定义 
log /var/log/openvpn/openvpn.log 
log-append /var/log/openvpn/openvpn.log 
# 设置日志的级别 

# 0 is silent, except for fatal errors 
# 4 is reasonable for general usage 
# 5 and 6 can help to debug connection problems 
# 9 is extremely verbose 
verb 3 
创建日志目录 
# mkdir -p /var/log/openvpn/ 
启动OpenVPN服务 
启动服务 
# service openvpn start 

如果遭遇启动失败的情况,可以在配置文件中加上一行log-append openvpn.log
再尝试启动,然后到/var/log/openvpn/检查openvpn.log文件来查看错误发生原因。

设置开机自启动 
# chkconfig openvpn on 
开启路由转发功能 
+ 开启路由转发功能 
# vim /etc/sysctl.conf 
找到net.ipv4.ip_forward 把0改成1 
# sysctl -p 

+设置IPtables

做DNAT,保障数据可以正常到达同内网其他主机 
# iptables -t nat -A POSTROUTING -s X.X.0.0/24 -o eth0 -j MASQUERADE 
(X按照机房网段修改) 
# service iptables save 
公司服务器配置 
安装客户端 
# yum install openvpn -y 
将服务器端生成的key(ca.crt,client.crt,client.key,ta.key)下载到 /etc/openvpn/config 
# cd /etc/openvpn/config 
# vi client.ovpn 
client 
dev tun 
proto udp 
remote xxx.xxx.xxx.xxx 1194 
ca ca.crt 
cert xxx.crt 
key xxx.key 
#tls-auth ta.key 0 (这句要注释掉) 
comp-lzo 
user nobody 
group nobody 
persist-key 
persist-tun 
启动服务 
openvpn --daemon --config client.ovpn 

这个时候这台服务器已经和云环境所有的服务器内网打通了~

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《【转】将公司内网与云服务器内网打通》
文章链接:https://www.456zj.com/2463.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址