/etc/open***/server.conf配置文件相關說明
#Open***應該監聽本機的哪些IP地址? #該命令是可選的,如果不設置,則默認監聽本機的所有IP地址。 ;local a.b.c.d #open***默認端口,建議修改 port 1194 #默認啓用udp,如果想讓Open***服務端監聽一個TCP端口而不是UDP端口, #使用proto tcp而不是proto udp proto tcp ;proto udp # 指定Open***創建的通信隧道類型。 # "dev tun"將會創建一個路由IP隧道, # "dev tap"將會創建一個以太網隧道。 # #如果你是以太網橋接模式,並且提前創建了一個名爲"tap0"的與以太網接口進行橋接的虛擬接口, #則你可以使用"dev tap0" # # 如果你想控制***的訪問策略,你必須爲TUN/TAP接口創建防火牆規則。 # # 在非Windows系統中,你可以給出明確的單位編號(unit number),例如"tun0"。 # 在Windows中,你也可以使用"dev-node"。 # 在多數系統中,除非你部分禁用或者完全禁用了TUN/TAP接口的防火牆,否則***將不起作用。 ;dev tap dev tun # 如果你想配置多個隧道,你需要用到網絡連接面板中TAP-Win32適配器的名稱(例如"MyTap")。 # 在XP SP2或更高版本的系統中,你可能需要有選擇地禁用掉針對TAP適配器的防火牆 # 通常情況下,非Windows系統則不需要該指令。 ;dev-node MyTap # 設置SSL/TLS根證書(ca)、證書(cert)和私鑰(key)。 # 每個客戶端和服務器端都需要它們各自的證書和私鑰文件。 # 服務器端和所有的客戶端都將使用相同的CA證書文件。 ca /etc/open***/easy-rsa/2.0/keys/ca.crt cert /etc/open***/easy-rsa/2.0/keys/server.crt key /etc/open***/easy-rsa/2.0/keys/server.key # 該文件應該保密 # 指定迪菲·赫爾曼參數。 # 你可以使用如下名稱命令生成你的參數: # openssl dhparam -out dh1024.pem 1024 # 如果你使用的是2048位密鑰,使用2048替換其中的1024。 dh /etc/open***/easy-rsa/2.0/keys/dh2048.pem topology subnet #如不啓用,默認會自動劃分子網 #這裏配置的是***爲客戶端分配地址的網段, #如果你想使用不同於10.8.0.0/24的一個虛擬IP地址範圍,則修改 server項。 #記住這一虛擬IP地址範圍必須是在你的網絡上沒有使用的,我選擇默認。 # 如果你使用的是以太網橋接模式,請註釋掉該行。更多信息請查看官方手冊頁面。 server 10.8.0.0 255.255.255.0 # 指定用於記錄客戶端和虛擬IP地址的關聯關係的文件。 # 當重啓Open***時,再次連接的客戶端將分配到與上一次分配相同的虛擬IP地址 ifconfig-pool-persist ipp.txt # 該指令僅針對以太網橋接模式。 # 首先,你必須使用操作系統的橋接能力將以太網網卡接口和TAP接口進行橋接。 # 然後,你需要手動設置橋接接口的IP地址、子網掩碼; # 在這裏,我們假設爲10.8.0.4和255.255.255.0。 # 最後,我們必須指定子網的一個IP範圍(例如從10.8.0.50開始,到10.8.0.100結束), #以便於分配給連接的客戶端。 # 如果你不是以太網橋接模式,直接註釋掉這行指令即可。 ;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100 # 該指令僅針對使用DHCP代理的以太網橋接模式, # 此時客戶端將請求服務器端的DHCP服務器,從而獲得分配給它的IP地址和DNS服務器地址。 # 在此之前,你也需要先將以太網網卡接口和TAP接口進行橋接。 # 注意:該指令僅用於Open***客戶端,並且該客戶端的TAP適配器需要綁定到一個DHCP客戶端上。 ;server-bridge #推送路由信息到客戶端,以允許客戶端能夠連接到服務器背後的其他私有子網。 #(簡而言之,就是允許客戶端訪問***服務器自身所在的其他局域網) #記住,這些私有子網也要將Open***客戶端的地址池(10.8.0.0/255.255.255.0)反饋回Open***服務器。 ;push "route 192.168.10.0 255.255.255.0" ;push "route 192.168.20.0 255.255.255.0" # 爲指定的客戶端分配指定的IP地址,或者客戶端背後也有一個私有子網想要訪問***, # 那麼你可以針對該客戶端的配置文件使用ccd子目錄。 # (簡而言之,就是允許客戶端所在的局域網成員也能夠訪問***) # 舉個例子:假設有個Common Name爲"Thelonious"的客戶端背後也有一個小型子網想要連接到***, #該子網爲192.168.40.128/255.255.255.248。 # 首先,你需要去掉下面兩行指令的註釋: ;client-config-dir ccd ;route 192.168.40.128 255.255.255.248 # 然後創建一個文件ccd/Thelonious,該文件的內容爲: # iroute 192.168.40.128 255.255.255.248 #這樣客戶端所在的局域網就可以訪問***了。 # 注意,這個指令只能在你是基於路由、而不是基於橋接的模式下才能生效。 # 比如,你使用了"dev tun"和"server"指令。 # 再舉個例子:假設你想給Thelonious分配一個固定的IP地址10.9.0.1。 # 首先,你需要去掉下面兩行指令的註釋: ;client-config-dir ccd ;route 10.9.0.0 255.255.255.252 # 然後在文件ccd/Thelonious中添加如下指令: # ifconfig-push 10.9.0.1 10.9.0.2 # 如果你想要爲不同羣組的客戶端啓用不同的防火牆訪問策略,你可以使用如下兩種方法: # (1)運行多個Open***守護進程,每個進程對應一個羣組,併爲每個進程(羣組)啓用適當的防火牆規則。 # (2) (進階)創建一個腳本來動態地修改響應於來自不同客戶的防火牆規則。 # 關於learn-address腳本的更多信息請參考官方手冊頁面。 ;learn-address ./script #如果啓用該指令,所有客戶端的默認網關都將重定向到***, #這將導致諸如web瀏覽器、DNS查詢等所有客戶端流量都經過***。 # (爲確保能正常工作,Open***服務器所在計算機可能需要在TUN/TAP接口 #與以太網之間使用NAT或橋接技術進行連接) #push “redirect-gateway def1 bypass-dhcp" #改成:push "redirect-gateway def1" push "redirect-gateway def1" # 某些具體的Windows網絡設置可以被推送到客戶端,例如DNS或WINS服務器地址。 # 下列地址來自opendns.com提供的Public DNS 服務器。 push "dhcp-option DNS 202.96.134.133" ;push "dhcp-option DNS 208.96.128.166" #如果想讓連接的客戶端可以通過***互相訪問,將client-to-client的註釋去掉。 # 默認情況下客戶端只能訪問服務端。打開可能效率高一點。 ;client-to-client # 如果多個客戶端可能使用相同的證書/私鑰文件或Common Name進行連接, # 那麼你可以取消該指令的註釋。 # 建議該指令僅用於測試目的。對於生產使用環境而言,每個客戶端都應該擁有自己的證書和私鑰。 # 如果你沒有爲每個客戶端分別生成Common Name唯一的證書/私鑰, # 你可以取消該行的註釋(但不推薦這樣做)。 ;duplicate-cn # keepalive指令將導致類似於ping命令的消息被來回發送, # 以便於服務器端和客戶端知道對方何時被關閉。 # 每10秒鐘ping一次,如果120秒內都沒有收到對方的回覆,則表示遠程連接已經關閉。 keepalive 10 120 # 出於SSL/TLS之外更多的安全考慮,創建一個"HMAC 防火牆"可以幫助抵禦DoS***和UDP端口淹沒***。 # 你可以使用以下命令來生成: # # Generate with: # open*** --genkey --secret ta.key # # 服務器和每個客戶端都需要擁有該密鑰的一個拷貝。 # 第二個參數在服務器端應該爲'0',在客戶端應該爲'1'。 ;tls-auth ta.key 0 # 該文件應該保密 # 選擇一個密碼加密算法。 # 該配置項也必須複製到每個客戶端配置文件中。 ;cipher BF-CBC # Blowfish (默認) ;cipher AES-128-CBC # AES ;cipher DES-EDE3-CBC # Triple-DES # 數據壓縮算法,服務器端和客戶端要一致 comp-lzo # 允許併發連接的客戶端的最大數量 ;max-clients 100 #用於運行open***的用戶 #如果你使用的是Linux、BSD或Unix,則可以將user nobody和group nobody 的註釋去掉以增強安全性。 ;user nobody ;group nobody # 持久化選項可以儘量避免訪問那些在重啓之後由於用戶權限降低而無法訪問的某些資源。 persist-key persist-tun # 輸出一個簡短的狀態文件,用於顯示當前的連接狀態,該文件每分鐘都會清空並重寫一次。 status open***-status.log #啓用日誌 #你可以使用log或者log-append來改變這種默認情況。 # "log"方式在每次啓動時都會清空之前的日誌文件。 # "log-append"這是在之前的日誌內容後進行追加。 # 你可以使用兩種方式之一(但不要同時使用)。 #我選擇追加的方式,目錄/usr/local/open***/log/下 ;log open***.log ;log-append open***.log log-append /usr/local/open***/log/open***.log # 爲日誌文件設置適當的冗餘級別(0~9)。冗餘級別越高,輸出的信息越詳細。 # # 0 表示靜默運行,只記錄致命錯誤。 # 4 表示合理的常規用法。 # 5 和 6 可以幫助調試連接錯誤。 # 9 表示極度冗餘,輸出非常詳細的日誌信息。 verb 3 # 重複信息的沉默度。 # 相同類別的信息只有前20條會輸出到日誌文件中。 ;mute 20
/etc/open***/server.conf簡易配置可直接使用
port 1194 #建議修改 proto tcp dev tun ca /etc/open***/easy-rsa/2.0/keys/ca.crt cert /etc/open***/easy-rsa/2.0/keys/server.crt key /etc/open***/easy-rsa/2.0/keys/server.key dh /etc/open***/easy-rsa/2.0/keys/dh2048.pem topology subnet #這裏配置的是***爲客戶端分配地址的網段,根據需要修改 server 10.8.0.0 255.255.255.0 #推送路由信息到客戶端,以允許客戶端能夠連接到服務器背後的其他私有子網。 #(簡而言之,就是允許客戶端訪問***服務器自身所在的其他局域網) #多條請寫多條命令 ;push "route 192.168.10.0 255.255.255.0" ;push "route 192.168.20.0 255.255.255.0" ifconfig-pool-persist ipp.txt keepalive 10 120 comp-lzo persist-key persist-tun status open***-status.log verb 3
二:設置內核轉發
[root@zcdoit ~]# vim /etc/sysctl.conf net.ipv4.ip_forward = 0 改爲 net.ipv4.ip_forward = 1 #如配置文件沒有,則新增加 [root@zcdoit ~]# sysctl -p
三:啓動open***服務
#在後臺啓動open***服務 [root@zcdoit ~]# /usr/local/open***/sbin/open*** --config /etc/open***/server.conf &