考慮到我們做集群的時候需要用到可能有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
- 啟動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
厲害,干貨,學習了。
Server端和Client端都是單網卡還是雙網卡的?
這也是點對點的連接嗎?