Linux 上一個基于 IPsec 的 V*N 工具Strongswan 安裝
IPsec是一個提供網絡層安全的標準。它包含認證頭(AH)和安全負載封裝(ESP)組件。AH提供包的完整性,ESP組件提供包的保密性。IPsec確保了在網絡層的安全特性。
- 保密性
- 數據包完整性
- 來源不可抵賴性
- 重放攻擊防護
Strongswan是一個IPsec協議的開源代碼實現,Strongswan的意思是強安全廣域網(StrongS/WAN)。它支持IPsec的V*N中的兩個版本的密鑰自動交換(網絡密鑰交換(IKE)V1和V2)。
Strongswan基本上提供了在V*N的兩個節點/網關之間自動交換密鑰的共享,然后它使用了Linux內核的IPsec(AH和ESP)實現。密鑰共享使用了之后用于ESP數據加密的IKE 機制。在IKE階段,strongswan使用OpenSSL的加密算法(AES,SHA等等)和其他加密類庫。無論如何,IPsec中的ESP組件使用的安全算法是由Linux內核實現的。Strongswan的主要特性如下:
- x.509證書或基于預共享密鑰認證
- 支持IKEv1和IKEv2密鑰交換協議
- 可選的,對于插件和庫的內置完整性和加密測試
- 支持橢圓曲線DH群和ECDSA證書
- 在智能卡上存儲RSA私鑰和證書
它能被使用在客戶端/服務器(road warrior模式)和網關到網關的情景。
如何安裝
幾乎所有的Linux發行版都支持Strongswan的二進制包。在這個教程,我們會從二進制包安裝strongswan,也會從源代碼編譯帶有合適的特性的strongswan。
使用二進制包
可以使用以下命令安裝Strongswan到Ubuntu 14.04 LTS
$ sudo aptitude install strongswan
strongswan的全局配置(strongswan.conf)文件和ipsec配置(ipsec.conf/ipsec.secrets)文件都在/etc/目錄下。
strongswan源碼編譯安裝的依賴包
- GMP(strongswan使用的高精度數學庫)
- OpenSSL(加密算法來自這個庫)
- PKCS(1,7,8,11,12)(證書編碼和智能卡集成)
步驟
1) 在終端使用下面命令到/usr/src/目錄
$ cd /usr/src
2) 用下面命令從strongswan網站下載源代碼
$ sudo wget http://download.strongswan.org/strongswan-5.2.1.tar.gz
(strongswan-5.2.1.tar.gz 是當前最新版。)
3) 用下面命令提取下載的軟件,然后進入目錄。
$ sudo tar –xvzf strongswan-5.2.1.tar.gz; cd strongswan-5.2.1
4) 使用configure命令配置strongswan每個想要的選項。
$ ./configure --prefix=/usr/local -–enable-pkcs11 -–enable-openssl
如果GMP庫沒有安裝,配置腳本將會發生下面的錯誤。
因此,首先,使用下面命令安裝GMP庫然后執行配置腳本。
不過,如果GMP已經安裝還報上述錯誤的話,在Ubuntu上使用如下命令,給在路徑 /usr/lib,/lib/,/usr/lib/x86_64-linux-gnu/ 下的libgmp.so庫創建軟連接。
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libgmp.so.10.1.3 /usr/lib/x86_64-linux-gnu/libgmp.so
創建libgmp.so軟連接后,再執行./configure腳本也許就找到gmp庫了。然而,如果gmp頭文件發生其他錯誤,像下面這樣。
為解決上面的錯誤,使用下面命令安裝libgmp-dev包
$ sudo aptitude install libgmp-dev
安裝gmp的開發庫后,在運行一遍配置腳本,如果沒有發生錯誤,則將看見下面的這些輸出。
使用下面的命令編譯安裝strongswan。
$ sudo make ; sudo make install
安裝strongswan后,全局配置(strongswan.conf)和ipsec策略/密碼配置文件(ipsec.conf/ipsec.secretes)被放在/usr/local/etc目錄。
根據我們的安全需要Strongswan可以用作隧道或者傳輸模式。它提供眾所周知的site-2-site模式和road warrior模式的V*N。它很容易使用在Cisco,Juniper設備上。
via: http://linoxide.com/security/install-strongswan/