Open×××服務端配置html
簡介linux
Open×××是一個用於建立虛擬專用網絡加密通道的軟件包最先由James Yonan編寫。windows
Open×××容許參與創建×××的單點使用公開密鑰、電子證書、或者用戶名密碼來進行身份驗證。它大量使用了OpenSSL加密庫中的SSLv3/TLSv1協議函數庫。安全
目前Open×××能在Solaris、Linux、OpenBSD、FreeBSD、NetBSD、Mac OS X與Windows 2000XPVista7上運行幷包含了許多安全性的功能。它並非一個基於Web的×××軟件也不與IPsec及其餘×××軟件包兼容。服務器
前提網絡
條件容許先關閉selinux併發
安裝使用環境tcp
系統Centos 7.1ide
軟件版本函數
easy-rsa-2.2.2
open***-2.3.10
安裝依賴包
yum install -y openssl openssl-devel lzo lzo-devel pam pam-devel automake pkgconfig
1. 安裝服務端Open×××軟件包
默認的Centos 的yum源裏沒有Open×××的軟件包咱們能夠添加rpmforge的repo從而實現yum安裝open***
針對CentOS 5系統
rpm -ivh http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
針對CentOS 6系統
rpm -ivh http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
針對Centos 7系統
http://apt.sw.be/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
安裝完rpmforge的repo以後執行yum命令安裝Open×××
Yum makecache
yum install -y open***
2. 生成Open×××須要的證書
使用easy-rsa腳本產生Open×××所需的CA證書、CA私鑰、服務端證書、服務端私鑰、客戶端證書、客戶端私鑰
因爲新版×××已經不包含easy-rsa服務因此須要單獨下載安裝
yum install -y easy-rsa
而後將easy-rsa目錄 copy到/etc/open***並添加可執行權限
cp -R /usr/share/easy-rsa/ /etc/open***/
cd /etc/open***/easy-rsa/2.0
chmod +x *
修改vars配置以下使得生成證書時不用再次輸入只需一路回車便可。
export KEY_COUNTRY="CN" 國家
export KEY_PROVINCE="BJ" 省份
export KEY_CITY="Beijing" 城市
export KEY_ORG="xxxx" 組織
export KEY_EMAIL="xxxx@xxxx.com" 郵箱
export KEY_OU="xxxx.com" 單位
保存退出
而後使用easy-rsa的腳本生成證書
. vars 注意. 之間有空格
./clean-all 初始化keys目錄建立所須要的文件和目錄
./build-ca server 生成root CA證書,用於簽發server和client證書完成後生成ca.crt ca.key index.txt serial文件
./build-key-server server 生成服務器端密鑰, 後面這個server就是服務器名可自定義完成後生成server.crt server.key文件
./build-key client 生成客戶端密鑰例如客戶端用戶名爲client
./build-dh 生成Diffie Hellman文件,#TLS server 須要使用的一個文件完成後生成dh1024.pem或dh2048.pem文件,大小在配置文件中定義。
執行以上命令後將在/etc/open***/easy-rsa/2.0/keys/目錄下產生對應的證書和祕鑰,ls一下確認都已經生成後面要用到。
如下爲可選項
-------------------------------------------------------------------------
爲防止惡意***如DOS、UDP port flooding咱們生成一個"HMAC firewall"
#open*** --genkey --secretkeys/ta.key
生成證書吊銷鏈文件防止往後有人丟失證書被非法用戶接入×××
#./make-crl ***crl.pem
Using configuration from /etc/open***/easy-rsa/openssl.cnf
-------------------------------------------------------------------------
3.生成Open×××服務端配置文件
cp /usr/share/doc/open***-2.2.2/sample-config-files/server.conf /etc/open***/
編輯/etc/open***/server.conf文件內容以下
port 1194 (使用的端口默認1194可自定義)
proto tcp 使用的協議能夠設置爲udp客戶端o***文件中設置要與此一致
dev tun #基於路由的隧道
ca /etc/open***/easy-rsa/2.0/keys/ca.crt #以前執行./build-ca創建的根證書
cert /etc/open***/easy-rsa/2.0/keys/server.crt #以前執行./build-key-server生成的服務器私有證書
key /etc/open***/easy-rsa/2.0/keys/server.key #以前執行./build-key-server生成的服務器私有密鑰
dh /etc/open***/easy-rsa/2.0/keys/dh2048.pem #以前執行./build-dh生成的文件
server 10.1.1.0 255.255.255.0 #要分配的×××網段不能與本機IP網段相同
ifconfig-pool-persist ipp.txt #記錄客戶端所得到IP
push "route 172.31.90.0 255.255.255.0" #經過××× Server去往其它網段路由重啓***服務生效
log /var/log/open***.log #定義日誌路徑
max-clents 100 #容許客戶端併發鏈接的數量
client-to-client #容許客戶端之間相互通信
status open***-status.log #定義open***鏈接狀態日誌
comp-lzo #開啓×××鏈接壓縮.客戶端必須作相同設置
persist-key
persist-tun
crl-verify /etc/open***/easy-rsa/2.0/crl.pem ####用於註銷已刪除用戶的key
其它選擇默認便可
4.開啓Open×××服務
/usr/sbin/open*** --config /etc/open***/server.conf & 配置文件路徑及名稱可本身定義
若是Open×××啓動失敗請查看Open×××的啓動日誌/var/log/open***.log。可能致使啓動失敗的緣由
添加open***開機啓動
echo "/usr/sbin/open*** --config /etc/open***/server.conf &" >> /etc/rc.local
若成功運行執行ifconfig命令會多出一個tun0即×××的虛擬網卡
5.服務端開啓nat功能
客戶端撥入Open×××後默認網關會指向Open×××服務器爲了能使客戶端能夠上網須要在服務端開啓nat功能
首先打開ip forward功能
sed -i '/net.ipv4.ip_forward/s/0/1/g' /etc/sysctl.conf
sysctl -w net.ipv4.ip_forward=1
而後配置iptables nat(此處不配置的話客戶端連上×××後只能登錄服務端一臺主機須要特別注意)
iptables -t nat -A POSTROUTING -s 192.168.21X.0/24 -o em2 -j MASQUERADE
192.168.21X.0爲***server分配給客戶端的虛擬網段em2爲出口網卡
/etc/init.d/iptables save 保存配置
六、客戶端配置
對於Windows客戶端
到http://open***.se/download.html 下載gui版的Open×××按照提示安裝完成
而後進入到安裝目錄如D:\Program Files\Open×××。將Linux服務端使用easy-rsa產生的客戶端證書、私鑰和ca證書下載到客戶端電腦。須要下載的文件以下
/etc/open***/easy-rsa/2.0/keys/ca.crt #ca證書
/etc/open***/easy-rsa/2.0/keys/client.crt #客戶端證書client爲測試客氣端用戶名
/etc/open***/easy-rsa/2.0/keys/client.key #客戶端私鑰
將這些文件下載到D:\Program Files\Open×××\config下。
編輯客戶端C:\Program Files (x86)\Open×××\sample-config\client.o***,內容以下
client
dev tun
proto udp 協議要與服務器端口配置文件定義一致
remote 211.112.112.112 1194 #×××服務器的外網IP地址和端口
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt #####client爲測試用戶名正式環境改成正式用戶名.crt
key client.key #####client爲測試用戶名正式環境改成正式用戶名.key
comp-lzo
verb 3
redirect-gateway def1
route-method exe
route-delay 2
將client.o***文件拷貝到C:\Program Files (x86)\Open×××\config下
右鍵以管理員身份運行open***客戶端軟件不以管理員運行能夠出現鏈接後也不能訪問的狀況稍後在桌面右下角灰色小圖標處右擊選擇connect便可。以下圖
×××鏈接過程
×××鏈接成功以下圖
對於Mac 客戶端
到 http://sourceforge.net/projects/tunnelblick/ 下載Open××× 客戶端軟件 Tunnelblick
七、一些官方open***排錯
若是遇到Open×××初始化失敗或者ping失敗下面有一些共同的問題症狀和解決辦法:
1.你獲得以下錯誤信息: TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity). 這個錯誤指出客戶端不能跟服務器創建網絡連接.
解決辦法
a.請確認客戶端訪問的服務器的機器名/IP和端口是正確的.
b.若是你的Open×××服務器是單網卡並處在受保護的局域網中請確認你你的網關防火牆使用了正確的端口轉發規則。好比你的Open×××機器的地址是192.168.4.4但處在防火牆保護下時刻監聽着UDP協議1194的鏈接請求那麼負責維護192.168.4.x子網的網關就會有一個端口轉發策略即全部訪問UDP協議1194端口的請求都被轉發到192.168.4.4 。
c.打開服務器的防火牆容許UDP協議1194端口鏈接進來或者不論是TCP仍是UDP協議在服務器的配置文件中配置了。
2.你獲得以下錯誤信息: Initialization Sequence Completed with errors – 這個錯誤可能發生在windows下a你沒有啓用DHCP客戶端服務b你的XP SP2使用了某個第三方的我的防火牆。
解決辦法: 啓動DHCP客戶端服務或者你確認你的XP SP2正確使用了我的防火牆.
3.你雖然得到了Initialization Sequence Completed 的信息但ping測試仍是失敗了那就一般是在服務器或者客戶端的防火牆阻止過濾了在TUN/TAP設備結構上的網絡流量。
解決辦法: 關閉客戶端的防火牆若是防火牆過濾了TUN/TAP設備端口的流量。好比在Windows XP SP2系統你能夠到Windows 安全中心 -> Windows 防火牆 -> 高級 而後不要選擇TAP-Win32 adapter設備 (即禁止TUN/TAP設備使用防火牆過濾 實質上就是告訴防火牆不要阻止×××認證信息)。 一樣在服務器端也要確認TUN/TAP設備不實用防火牆過濾 (也就是說在TUN/TAP接口上選擇過濾是有必定的安全保障的. 具體請看下面一節的訪問策略).
4.當以udp協議的配置文件啓動的時候鏈接中止服務器的日誌文件顯示以下一行信息
TLS: Initial packet from x.x.x.x:x, sid=xxxxxxxx xxxxxxxx
無論怎麼樣這信息只在服務器端顯示在客戶端是不會顯示相同的信息。
解決辦法: 你只擁有單向鏈接從客戶端到服務器從服務器到客戶端的鏈接被防火牆擋住 一般在客戶端這邊防火牆a多是個運行在客戶端的我的防火牆軟件b或者服務客戶端的NAT路由 網關被設置爲從服務器端訪問客戶端的UDP協議包被阻擋返回。
END