利用open***組建lan to lan ***。優點:不須要網絡設備支持***,與點到點ipsec ***具備一樣的功能linux
公司局域網與aws雲內網對接實戰:vim
1、linux作open servercentos
安裝gcc、openssl、lzo服務器
1.yum install openssl*網絡
2. yum install gccapp
3.下載lzodom
http://www.oberhumer.com/opensource/lzo/download/最新版tcp
http://www.oberhumer.com/opensource/lzo/download/lzo-2.09.tar.gzide
tar -xvzf lzo-2.06.tar.gzui
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="XXXX@XXXX.COM"
#export KEY_EMAIL=mail@host.domain
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。