將兩個局域網用openvpn連接起來

考慮到我們做集群的時候需要用到可能有20臺機器,可能我的要求跟別人的不一樣的,我需要做20臺左右的集群,不僅僅是會,而且需要非常熟練的搭建,最后通過腳步一鍵自動化部署安裝。 目前我有兩臺電腦,一臺可以運行7臺,另一臺可以運行12臺左右,剛好可以滿足的我的要求,但是我兩臺電腦都是設置的nat模式的網絡,為什么我非要配置nat模式呢,根據集群架構思想,為了保證架構安全,集群全部在內網做。還有一個優點就是做nat模式可以自由遷移電腦,搭建的集群還能運行,如果是橋接模式就不行了,現在的狀況就是有兩臺的電腦虛擬機nat模式,如何連接起來一起工作,研究了很久,居然可以用openvpn可以解決。下面來具體介紹如何搭建openvpn

1. 制作yum源和epe源,這個就不詳細說了,我用的是阿里云的源,去阿里云的幫助文檔也可以找到制作方法,很簡單的,別忘記了

yum clean  all

yum repolist

2、安裝openvpn和證書制作工具easy-rsa

yum install -y openssl openssl-devel lzo lzo-devel pam pam-devel automake pkgconfig openvpn easy-rsa

3、配置openvpn 拷貝配置文件

cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf  /etc/openvpn/

4.編輯openvpn主配置文件

vim /etc/openvpn/server.conf

主要修改以下幾個配置,把前邊的分號注釋去掉,其中DNS配置項,改成阿里公共DNS地址

proto udp //使用udp協議,還有一個tcp協議,允許http代理
dev tap  //使用tap設備
server 192.168.44.0  255.255.255.0 //配置網關
push "route 192.168.43.0 255.255.255.0" //配置路由
#vpn的內網地址段,與NAT轉發規則相對應,openvpn在使用tun路由模式時,分配給client端分配的IP地址段  
push "redirect-gateway def1 bypass-dhcp" //開啟自動分配地址
//設置dns解析
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4" 
//設置運行時使用的用戶和用戶組
user nobody
group nobody
log         openvpn.log //開啟日志
explicit-exit-notify 0 //默認是1 默認的意思使用udp協議,這里我們改成0

5、配置證書文件

mkdir -p  /etc/openvpn/easy-rsa/keys   
cp  -a  /usr/share/easy-rsa/2.0/*  /etc/openvpn/easy-rsa/    
vi   /etc/openvpn/easy-rsa/vars

修改以下配置的內容,自定義設置各項值就可以。

export KEY_COUNTRY="CN"
export KEY_PROVINCE="BJ"
export KEY_CITY="Bei Jing"
export KEY_ORG="mabang" #定義所在的組織
export KEY_EMAIL="626612631@qq.com"
export KEY_OU="magedu"  #定義所在的單位
export KEY_NAME="vpnserver"#定義openvpn服務器的名稱
export KEY_CN="magedu" 這行配置,前邊默認的“#”號注釋去掉。

制作證書 openvpn

cp  /etc/openvpn/easy-rsa/openssl-1.0.0.cnf  /etc/openvpn/easy-rsa/openssl.cnf
cd /etc/openvpn/easy-rsa    #切換工作目錄
source ./vars    #讓配置文件生效
./clean-all 
./build-ca    #之前已配置好相關參數,故執行命令后,按回車鍵,一直到結束。

創建服務端證書

./build-key-server server   
#按回車鍵進行,在提示輸入密碼的地方,設置一個密碼如123456在An optional company name處輸入如:srayban
最后輸入兩次“y”回車

創建客戶端證書

./build-dh     #創建秘鑰文件,等待命令執行完。
ls   /etc/openvpn/easy-rsa/keys/       #可以看到,目錄中已經創建好了證書文件。
cd  /etc/openvpn/easy-rsa/keys
cp  dh2048.pem  ca.crt  server.crt  server.key   /etc/openvpn/
cd  /etc/openvpn/easy-rsa
./build-key client     
#創建客戶端證書文件,按回車進行,提示輸入密碼的地方,輸入之前設置的證書密碼,123456
An optional company name處輸入先前設置的公司名字(srayban)。
【一定要和先前輸入的一樣哦.,其他參數如果前面設置了,也要保持一致噢】 
#另外注意:有多少個客戶端就需要
./build-key client 多少次,當然client名字需不同。

ls /etc/openvpn/easy-rsa/keys/    #可以看到,生成了客戶端的證書文件

6、設置iptables,firewalld、路由轉發

  • [ ] iptables 設置
yum install -y iptables-services
systemctl enable iptables
systemctl stop firewalld   #關閉Centos7默認的 firewall防火墻
systemctl start iptables   #啟動iptables
iptables  -F     #清空默認的iptables規則 設置iptables NAT轉發規則
iptables -t nat -A POSTROUTING -s 192.168.43.0/24  -j MASQUERADE 
iptables -A INPUT -p TCP --dport 1194 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
service i.ptables save   #保存防火墻規則
echo 1 > /proc/sys/net/ipv4/ip_forward     #臨時開啟路由轉發
vi  /etc/sysctl.conf  
#編輯配置文件,添加以下配置,設置永久路由轉發
net.ipv4.ip_forward = 1
  • [√] firewalld 設置

在CentOS 7中,iptables防火墻已經被firewalld所取代,需要使用如下方法:首先啟動firewalld,先查看防火墻狀態

systemctl status firewalld.service
如果防火墻沒有啟動,啟動防火墻

service firewalld start

查看有哪些服務已經在列表中允許通過:
# firewall-cmd --list-services
dhcpv6-client http https ssh



可以看到已經有了dhcpv6-client, http, https, ssh四項,接下來添加openvpn:
# firewall-cmd --add-service openvpn 
success
# firewall-cmd --permanent --add-service openvpn 
success


檢查一下:
# firewall-cmd --list-services
dhcpv6-client http https openvpn ssh

最后添加masquerade:

# firewall-cmd --add-masquerade 
success
# firewall-cmd --permanent --add-masquerade 
success

以下命令用于確認masquerade是否添加成功:
# firewall-cmd --query-masquerade
yes
  • [ ] 允許IP轉發

在sysctl中開啟IP轉發

vim /etc/sysctl.conf

# Controls IP packet forwarding
net.ipv4.ip_forward = 1
  1. 啟動OpenVPN服務

啟動OpenVPN服務器并添加自動啟動項:

sysctl -p

systemctl -f enable openvpn@server.service      #設置啟動文件

systemctl start openvpn@server.service  #啟動openvpn的命令
systemctl enable openvpn@server.service  #開機自啟動

至此服務端搭建完成。

8、openvpn客戶端(電腦、手機)連接vpn 把服務器上的三個客戶端證書文件,下載到本地電腦配置vpn客戶端。

/etc/openvpn/easy-rsa/keys/ca.crt 
/etc/openvpn/easy-rsa/keys/client.crt 
/etc/openvpn/easy-rsa/keys/client.key

安裝好openvpn客戶端軟件后,把證書文件,存放到openvpn安裝目錄的config文件夾下。
從sample-config文件夾下,拷貝客戶端的配置文件client.ovpn 到config文件夾下。
編輯config文件夾下的配置文件client.ovpn,
修改remote my-server-1 1194 這行配置,
指定openvpn服務器的ip地址,默認為你服務器的外網IP。
可以添加 push route 61.139.2.69 #電信DNS地址
配置好后,點擊openvpn的客戶端圖標,連接vpn。
openvpn的圖標顯示綠色后,表示已經連接上vpn了。

然后在本地電腦進行測試,連接vpn后,可以訪問ECS服務器的內網,
通過ECS服務器連接公網。 本地電腦用瀏覽器上網,顯示的ECS服務器的公網ip。
在客戶端ping一下服務器IP,查看響應情況。 最后,百度輸入IP,查看本機IP,
發現你的IP已經變成服務器IP就表明VPN搭建成功了。

如果你要讓別人連VPN呢?難道也把那么多配置文件發給別人,太麻煩了,
所以可采取如下策略,將ca.crt、client.crt、client.key全部拷貝到Client.ovpn里,
這樣只需這一個文件即可連接

原創文章,作者:srayban,如若轉載,請注明出處:http://www.www58058.com/74524

(10)
sraybansrayban
上一篇 2017-05-01 09:39
下一篇 2017-05-01 16:32

相關推薦

  • 第四周 博客作業

    grep useradd cp

    Linux干貨 2017-12-28
  • 1、安裝配置介紹

    http://note.youdao.com/yws/public/redirect/share?id=b90faa657ee452edb27ab1a13fc7b0bc&type=false

    Linux干貨 2016-08-08
  • 馬哥教育網絡班21期+第11周課程練習

    1、詳細描述一次加密通訊的過程,結合圖示最佳。 首先發送方用單向加密的方法提取數據的特征碼,用自己的私鑰加密這段特征碼,并附加到數據的后面。 發送方用對稱加密算法把數據及特征碼整個進行加密。 發送方用接收發的公鑰加密對稱密鑰并附加到數據后面。 接收方用私鑰解密對稱密鑰。 接收方用對稱密鑰解密出數據及加密的特征碼。 接收方用發送方的公鑰解密特征碼,并用相同的算…

    Linux干貨 2016-10-09
  • 基于ansible role實現LAMP平臺批量部署

    前言 作為運維人員,當面對幾十臺或上百臺服務器需要修改某個參數或部署某個平臺,你將從何入手呢?ansible的出現很好的解決了這一困擾,ansible基于Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程序部署、批量運行命令等功能。本文帶來的是基于Ansible Role…

    Linux干貨 2015-06-11
  • N25第二周作業

    一、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。     (1).cat:cat命令可以用來合并文件,也可以用來在屏幕上顯示整個文件的內容。     2.語法:cat [選項] [文件]…     3.選項: &nbsp…

    Linux干貨 2016-12-26
  • 馬哥教育網絡20期+第8周練習博客

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋:鏈接層設備,基于MAC地址過濾。 集線器:物理層設備,基本都屬于半雙工模式。集線器與網橋在現在的局域網中基本都不用了。 二層交換機:基本MAC轉發數據,功能齊全的可支持VLAN等功能。常見的有100/1000M、16口/24口/48口。 三層交換機:功能齊全的交換機,具備都…

    Linux干貨 2016-08-01

評論列表(2條)

  • PowerMichael
    PowerMichael 2017-05-02 08:15

    厲害,干貨,學習了。

  • kemenkai
    kemenkai 2017-05-19 16:16

    Server端和Client端都是單網卡還是雙網卡的?
    這也是點對點的連接嗎?

欧美性久久久久