利用open***组建lan to lan ***。优势:不需要网络设备支持***,与点到点ipsec ***具有同样的功能


公司局域网与aws云内网对接实战:


用open***组建lan to lan ***_第1张图片

一、linux做open server

 安装gcc、openssl、lzo

  1.yum install openssl*

   2. yum install gcc

   3.下载lzo

    http://www.oberhumer.com/opensource/lzo/download/最新版

http://www.oberhumer.com/opensource/lzo/download/lzo-2.09.tar.gz

   tar -xvzf lzo-2.06.tar.gz

cd lzo-2.060

./configure -prefix=/usr/local/lzo

make & make install


           4.下载open*** 2.2.2版本 其他版本编译可能会出错

             http://swupdate.open***.org/community/releases/

http://swupdate.open***.org/community/releases/open***-2.2.2.tar.gz


  tar -xvzf open***-2.2.2.tar.gz

cd open***-2.2.2

./configure --prefix=/usr/local/open*** --with-lzo-headers=/usr/local/lzo/include --with-lzo-lib=/usr/local/lzo/lib --with-ssl-headers=/usr/include/openssl --with-ssl-lib=/usr/lib64/openssl

make & make install

       

       5.配置证书

mkdir /etc/open***

cp -R easy-rsa /etc/open***

cd /etc/open***/easy-rsa/2.0/


                 6.设置环境变量

#vim vars

   export KEY_COUNTRY="CN"

export KEY_PROVINCE="JS"

export KEY_CITY="SUZHOU"

export KEY_ORG="canadiansolar.com"

export KEY_EMAIL="[email protected]"

#export [email protected]

export KEY_CN=CSI

export KEY_NAME=IT

export KEY_OU=ENG

export PKCS11_MODULE_PATH=ENG

export PKCS11_PIN=123456

设置环境变量

source ./vars

初始化证书

./clean-all

建立根证书

./build-ca #一路按回车即可

ls keys #可以看到下面ca.crt ca.key文件

生成Diffie-Hellman文件

./build-dh #[注:Generating DH parameters, 1024 bit long safe prime]

keys下面生成dh1024.pem 文件

生成open***服务器证书

./build-key-server server #其中server是CA证书的服务器名字

一路回车

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

然后把刚生成的CA证书和密钥copy到/etc/open***/下

# cd keys

# cp ca.crt ca.key server.crt server.key dh1024.pem /etc/open***/

生成客户端CA证书及密钥

./build-key fei.lu

一路回车

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

在keys目录下生成了fei.lu.crt fei.lu.csr fei.lu.key个客户端证书


拷贝证书到客户端路径

 tar -zcvf ca.tar.gz ca.crt ca.key client1.crt client1.csr client1.key


7.修改open***服务器端配置文件

cp /home/app/open***-2.2.2/sample-config-files/server.conf /etc/open***/



8.修改server.conf

vi /etc/open***/server.conf

;local 192.81.132.15 ##***服务器地址,私有地址

port 1194

proto udp

dev tun

ca /etc/open***/ca.crt

cert /etc/open***/server.crt

key /etc/open***/server.key # This file should be kept secret

dh /etc/open***/dh1024.pem

server 10.5.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

##push "redirect-gateway def1"  ##若是拨号上外网,则打开。 组建2地局域网不要打开。

push "route 10.0.0.0 255.255.255.0"          ##推送***服务端网段地址给***客户端

client-config-dir /etc/open***/ccd/

route 10.244.0.0 255.255.0.0                            ##设置到***客户端的路由

push "dhcp-option DNS 8.8.8.8"

push "dhcp-option DNS 8.8.4.4"

client-to-client

duplicate-cn

keepalive 10 120

comp-lzo

user nobody

group nobody

persist-key

persist-tun

status /var/log/open***-status.log

log         /var/log/open***.log

log-append  /var/log/open***.log


8.1  

   vi /etc/open***/ccd/aws_client

  ## 创建名字与客户端证书名字一样

   iroute 10.244.0.0 255.255.0.0                  ##客户端内网网段

   ifconfig-push 10.5.0.2 10.5.0.1               #***客户端地址为10.5.0.2,网关为10.5.0.1 


9.启动open***

修改完毕后,即可以启动***,--daemon为后台守护进程模型启动

/usr/local/open***/sbin/open*** --daemon --config /etc/open***/server.conf


10.加入开机自动启动

 vi /etc/rc.d/rc.local

/usr/local/open***/sbin/open*** --daemon --config /etc/open***/server.conf   (centos7记得加chmod +x /etc/rc.local)




***客户端如果想访问***服务端内网其他机(均是单网卡环境实现了)

注意事项:

1.*** server端开启路由转发

     vi /etc/sysctl.conf  

net.ipv4.ip_forward = 1   ##修改为1

      2.初始化路由转发

      sysctl -p   

3.访问***服务端其他机器如10.0.0.115,有两种方法:

第一种方法: ①将***服务端其他机(如10.0.0.115)加一条路由***网段路由网关指向***server的ip。(或者直接把将10.0.0.115的原始默认网关有192.168.1.254 改为***服务器的地址 10.0.0.30)

              route add -net 10.5.0.0/24 gw 10.0.0.30

添加永久路由: vi /etc/rc.local 添加:route add -net 10.5.0.0/24 gw 10.0.0.30   (centos7记得加chmod +x /etc/rc.local)

               

             ②***server端开启地址转换,将***地址转换为eth0外网卡出口地址(即外网IP)

               iptables -t nat -A POSTROUTING -s 10.5.0.0/24 -o eth0 -j MASQUERADE         #将***出去的地址修改为eth0接口地址

                       

注意:此方法必须开启防火墙,缺点是每台内网机器上都要添加路由一条***网段路由指向***server


第二种方法:server端原始网关192.168.1.254(一般是三层交换机)上加一条到***网段的路由,指向***服务器。

                                route add -net 10.5.0.0/24 gw 192.168.1.100

注意:此方法无需开启防火墙,路由器自动转换地址。


防火墙总表:

***server端如果启用了防火墙,开放端口

-A INPUT -p udp -m udp --dport 1194 -m comment --comment open*** -j ACCEPT

 -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT       

-A FORWARD -i tun+ -j ACCEPT       #放通tun的转发    (必开)

-A FORWARD -i eth0 -j ACCEPT        #放通eth0的转发  (必开)


-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ##默认就有   (必开)

-A INPUT -p icmp -j ACCEPT                                            #默认就有

-A INPUT -j REJECT --reject-with icmp-host-prohibited  ##默认就有放最后

-A FORWARD -j REJECT --reject-with icmp-host-prohibited   ##默认就有放最后


:POSTROUTING ACCEPT [0:0]

-A POSTROUTING -s 10.5.0.0/24 -o eth0 -j MASQUERADE       #(必开)

-

-------------------------------------------------------


 ***服务端(aws)想访问客户端内网机器,需做如下设置

1.服务端设置

 vi /etc/sysctl.conf 

net.ipv4.ip_forward = 1   ##修改为1

初始化

sysctl -p

重点设置vi /etc/open***/server.conf

client-config-dir /usr/local/open***/ccd/          

route 10.244.0.0 255.255.0.0      ##推送客户端子网走***  (必填)

 

mkdir /usr/local/open***/ccd/

vi /usr/local/open***/ccd/client1  ##client1的名字与客户端证书名字一样

iroute 10.244.0.0 255.255.0.0               把客户端子网添加到ccd下的cliient1文件中   (必填)

ifconfig-push 10.5.0.2 10.5.0.1    ##(可选)为客户端client1锁定IP为10.5.0.2 网关为10.5.0.1


2.***客户端其他服务器设置:添加到服务端子网(AWS)的路由,网关指向***服务器(***客户端)IP

route add -net 10.0.0.0/24 gw 10.244.1.156

##永久添加路由vi /etc/rc.local   route add -net 10.0.0.0/24 gw 10.244.1.156 

2.1 ***客户端(***服务器客户端10.244.1.156)防火墙设置:


-A FORWARD -i tun+ -j ACCEPT  (必填)

-A FORWARD -i eth0 -j ACCEPT  (必填)


:POSTROUTING ACCEPT [0:0]

:OUTPUT ACCEPT [1:60]

-A POSTROUTING -s 10.5.0.0/24 -o eth0 -j MASQUERADE    #转发***网段地址为eth0出口地址  (必填)



-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT   ##默认

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT    ##默认

-A INPUT -p icmp -j ACCEPT   ##默认

-A INPUT -i lo -j ACCEPT     ##默认



注意:aws控制台必须 disable source/destionation check。