利用open***组建lan to lan ***。优势:不需要网络设备支持***,与点到点ipsec ***具有同样的功能
公司局域网与aws云内网对接实战:
一、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。