Centos7搭建Open×××

環境準備

yum -y install epel-release #安裝EPEL源
yum install easy-rsa openssh-server lzo openssl openssl-devel open*** NetworkManager-open*** open***-auth-ldap #安裝Open×××和組件

配置Open×××

cp /usr/share/doc/open***-*/sample/sample-config-files/server.conf /etc/open*** #複製open***配置文件到主目錄
#默認配置文件修改內容太多,修改配置麻煩,我們先備份一下默認配置文件,然後新建一個配置文件
cd /etc/open***
mv server.conf server.conf.bak
vim server.conf

配置文件參考及解釋、

port 1194 #Open*** 服務器監聽端口
proto tcp #設置用TCP還是UDP協議。使用udp一般不會有DoS×××,而且能能防止端口被掃描,能保證更安全。
dev tun #推薦tun
#定義open***運行時使用哪一種模式,open***有兩種運行模式一種是tap模式,一種是tun模式。
#tap模式也就是橋接模式,通過軟件在系統中模擬出一個tap設備,該設備是一個二層設備,同時支持鏈路層協議。
#tun模式也就是路由模式,通過軟件在系統中模擬出一個tun路由,tun是ip層的點對點協議。
#具體使用哪一種模式,需要根據自己的業務進行定義。
ca ca.crt #定義open***使用的CA證書文件,該文件通過build-ca命令生成,CA證書主要用於驗證客戶證書的合法性。
cert server.crt #定義open***服務器端使用的證書文件。
key server.key #定義open***服務器端使用的祕鑰文件,該文件必須嚴格控制其安全性。
dh dh2048.pem #指定 Diffie hellman parameters(密鑰交換算法協議)
server 10.8.0.0 255.255.255.0 #配置 ××× 使用的網段,Open××× 會自動提供基於該網段的 DHCP 服務,但不能和任何一方的局域網段重複,保證唯一 。server 端 ip 默認會設爲10.8.0.1的地址。
ifconfig-pool-persist ipp.txt #維持一個客戶端和 virtual IP 的對應表,以方便客戶端重新連接可以獲得同樣的 IP
push "redirect-gateway def1 bypass-dhcp" #重定向客戶端的網關到open***服務器
push "route 192.168.0.0 255.255.255.0" #向客戶端推送的路由信息,假如客戶端的IP地址爲10.8.0.2,要訪問192.168.1.0網段的話,使用這條命令就可以了。可以添加多條路由
push "dhcp-option DNS 192.168.0.7" #向客戶端推送的DNS信息
push "dhcp-option DNS 192.168.0.8" #向客戶端推送的DNS信息
cipher AES-256-CBC #選擇一種連接加密算法,Server端和Client端必須一樣
user nobody
group nobody
#定義open***運行時使用的用戶及用戶組,建議加上這兩條配置更安全
client-to-client #這條命令可以使客戶端之間能相互訪問,默認設置下客戶端間是不能相互訪問的
duplicate-cn #定義open***一個證書在同一時刻是否允許多個客戶端接入,默認沒有啓用。
keepalive 10 120 #設置服務端檢測的間隔和超時時間 每 10 秒 ping 一次,如果 120 秒沒有迴應則認爲對方已經 down
comp-lzo #啓用允許數據壓縮,客戶端配置文件也需要有這項
persist-key #通過keepalive檢測超時後,重新啓動×××,不重新讀取keys,保留第一次使用的keys。
persist-tun #通過keepalive檢測超時後,重新啓動×××,一直保持tun或者tap設備是linkup的。否則網絡連接,會先linkdown然後再linkup。
status open***-status.log #把open***的一些狀態信息寫到文件中,比如客戶端獲得的IP地址。
log-append open***.log #記錄日誌,每次重新啓動open***後追加原有的log信息。
verb 3 #設置日誌要記錄的級別。 
#0 只記錄錯誤信息。 
#4 能記錄普通的信息。 
#5 和 6 在連接出現問題時能幫助調試 
#9 是極端的,所有信息都會顯示,甚至連包頭等信息都顯示(像tcpdump)
mute 20 #相同信息的數量,如果連續出現 20 條相同的信息,將不記錄到日誌中。
使用easy-rsa生成證書及密鑰
cp -R /usr/share/easy-rsa/ /etc/open***
vim /etc/open***/easy-rsa/2.0/vars #自定義內容,可以不更改直接使用
export KEY_COUNTRY="CN" #所屬國家
export KEY_PROVINCE="SC" #所屬省份
export KEY_CITY="CD" #所屬城市
export KEY_ORG="aierpf.cn" #所屬組織 
export KEY_EMAIL="[email protected]" #管理員郵箱地址
export KEY_OU="Aierpf" #所屬機構
cd /etc/open***/easy-rsa/2.0 #進入證書目錄
source ./vars #使vars文件生效
./clean-all #清除之前生成的所有證書。注:如果執行./clean-all 就會清空/etc/open***/easy-rsa/2.0/keys/下所有文件
服務端證書
cd /etc/open***/easy-rsa/2.0 #進入證書目錄
./build-ca #生成服務端ca證書
#生成過程中部分需要手動輸入:(如果有要求輸入而下面沒有的話可以直接回車) 
#Organizational Unit Name (eg, section) [changeme]:master
#Common Name (eg, your name or your server's hostname) [changeme]:server //生成證書的名字,
./build-key-server server #生成服務器端祕鑰key,後面的server是服務器名,自定義
#注:缺省配置一路回車,最後面兩個選項一定要選擇“y”,否則生成的是空證書
客戶端證書
./build-key client #生成客戶端key ,後面的client是客戶端名,可自定義
#這裏和生成服務端key時的操作相似,只是有一點不同, #Common Name (eg, your name or your server's hostname) [client]:client 這裏生成的客戶端證書,不同的client必須有不同的證書,即名字不同
生成Differ Hellman參數 ,DH驗證文件
./build-dh
#注:生成diffie hellman參數用於增強open***安全性生成需要漫長等待,可以去休息一會兒
cp /etc/open***/easy-rsa/2.0/keys/dh2048.pem ca.crt server.crt server.key /etc/open***/ #複製證書文件到open***根目錄,也可以在server.conf裏面指定相關文件的絕對路徑
防火牆配置和開啓路由轉發功能
firewall-cmd --permanent --add-port=1194/tcp #添加open***端口
firewall-cmd --permanent --add-masquerade #開啓轉發
firewall-cmd --reload #動態重啓防火牆
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf #添加net.ipv4.ip_forward = 1到/etc/sysctl.conf文件最後一行,如果已存在,修改或者無視
sysctl -p #使修改立即生效

啓動並設置開啓自動啓動open***服務

systemctl start open***@server
systemctl enable open***@server

Windows客戶頓設置

  1. 將服務端生成的部分證書放在客戶端***安裝路徑下的config文件夾中,可以用過winscp這個軟件進行拷貝,需要拷貝的證書:ca.crt、client.crt、client.key ,文件位於服務器的/etc/open***/easy-rsa/2.0/keys中
  2. 在客戶端***安裝路徑下找到sample-config文件夾,在文件夾中找到client.o***文件,將其複製到上層目錄中的config文件夾中
  3. 修改config文件夾中的client.o***文件,以記事本的方式打開
    client
    #定義這是一個client,配置從server端pull拉取過來,如IP地址,路由信息之類,Server使用push指令推送過來。
    dev tun
    #定義open***運行的模式,這個地方需要嚴格和Server端保持一致。
    proto tcp
    #定義open***使用的協議,這個地方需要嚴格和Server端保持一致。
    remote X.X.X.X 1194
    #設置Server的IP地址和端口,這個地方需要嚴格和Server端保持一致。
    resolv-retry infinite
    #始終重新解析Server的IP地址(如果remote後面跟的是域名),保證Server IP地址是動態的使用DDNS動態更新DNS後
    #Client在自動重新連接時重新解析Server的IP地址。這樣無需人爲重新啓動,即可重新接入×××。
    cipher AES-256-CBC #選擇一種連接加密算法,Server端和Client端必須一樣
    nobind
    #定義在本機不邦定任何端口監聽incoming數據。
    persist-key
    persist-tun
    ca ca.crt
    #定義CA證書的文件名,用於驗證Server CA證書合法性,該文件一定要與服務器端ca.crt是同一個文件。
    cert client.crt
    #定義客戶端的證書文件
    key client.key
    #定義客戶端的密鑰文件。
    comp-lzo
    #啓用允許數據壓縮,這個地方需要嚴格和Server端保持一致
    verb 3
    #設置日誌要記錄的級別。

    啓動客戶端

  4. 在開始中找到open***文件夾,點擊open*** gui,這是右下角會有一個鎖的圖形
  5. 右擊右下角鎖的圖形,選擇connet,過一會我們會發現連上open***了,服務端給我們非配了一個之前設置的局域網的ip
  6. 此時在網絡連接中我們發現多出了一個本地連接TAP-Windows Adapter V9,此時是出於連接狀態,右下角的那個鎖狀圖形顏色會變成綠色

    PS:目前open***服務器已經搭建完成了,但是有個問題,只要有上述三個證書文件和服務器IP信息,任何人都可以連接服務器,爲了安全考慮,我們可以採取用戶認證的方式管理,詳情見:Open×××使用用戶密碼認證登錄

PS:把證書整合到客戶端配置文件並加密

vim client.o***
刪除或者註釋掉以下幾行內容:
在這裏我把它們註釋掉:
ca ca.crt  改爲:#ca ca.crt
cert client.crt  改爲:#cert client.crt
key client.key  改爲:#key client.key
tls-auth ta.key 1  改爲:#tls-auth ta.key 1
在最後面添加以下內容:
<ca&gt; 
ca.crt文件內容
</ca&gt;
<cert&gt; 
client.crt文件內容
</cert&gt;
<key&gt; 
client.key文件內容
</key&gt;
key-direction 1 
<tls-auth&gt; 
ta.key文件內容
</tls-auth&gt;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章