1. 程式人生 > >CentOS7下Strongswan架設IPSec-IKEv1, IKEv2, L2TP VPN,適用於 IOS9,OSX, Windows, Linux

CentOS7下Strongswan架設IPSec-IKEv1, IKEv2, L2TP VPN,適用於 IOS9,OSX, Windows, Linux

zz from: http://linsir.org/post/how_to_install_IPSec_IKEV2_base_on_strongswan_with_CentOS7

VPN 隧道協議PPTP、L2TP、IPSec和SSLVPN(SSTP,OpenVPN)中安全性逐級提高,相應的受到牆的干擾相對要弱點,但是現在我們考慮到跨平臺,PPTP穿透力及安全性可以忽略,所以這裡搭建支援 ikev1/ikev2 的 Ipsec VPN,適用於iOS、Android、Windows 7+ 、MacOS X,及Linux。為了相容Windows 7以下的系統,同時搭建L2TP/IPSec支援。

支援IOS9 IKEV2 的配置,直接到最後檢視2015.12更新

安裝 StrongSwan

由於Openswan已經沒人維護了,所以我們選擇更強大的Strongswan.它是一個完整的2.4和2.6的Linux核心下的IPsec和IKEv1 的實現。它也完全支援新的IKEv2協議的Linux 2.6核心。

StrongSwan 的發行版已包含在 EPEL 源中, 但是CentOS源的包比較舊,所以我們手動在官網https://www.strongswan.org/download.html下載安裝包,當然你也可以直接原始碼編譯。

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/s/strongswan-5.3.2-1.el7.x86_64.rpm
rpm -ihv strongswan-5.3.2-1.el7.x86_64.rpm

編譯:

wget http://download.strongswan.org/strongswan.tar.gz
tar xzf strongswan.tar.gz
cd strongswan-*./configure  --sysconfdir=/etc  --enable-openssl --enable-nat-transport --disable-mysql --disable-ldap  --disable-static--enable-shared --enable-md4 --enable-eap-
mschapv2 --enable-eap-aka --enable-eap-aka-3gpp2--enable-eap-gtc --enable-eap-identity --enable-eap-md5 --enable-eap-peap --enable-eap-radius --enable-eap-sim --enable-eap-sim-file --enable-eap-simaka-pseudonym --enable-eap-simaka-reauth --enable-eap-simaka-sql --enable-eap-tls --enable-eap-tnc --enable-eap-ttls make && make install

配置證書

每一個完整的 ssl 證書都有一個公鑰和一個私鑰。公鑰是在網路上傳輸的,而私鑰是藏好用來和接收到的公鑰配對的(因此私鑰裡也有整個公鑰,用來配對)。

  1. 生成CA證書的私鑰,並使用私鑰,簽名CA證書

    ipsec pki --gen --outform pem > ca.pem
    ipsec pki --self--in ca.pem --dn "C=CN, O=VPN, CN=StrongSwan CA"--ca --lifetime 3650--outform pem >ca.cert.pem

    這裡C 表示國家名,同樣還有 ST 州/省名,L 地區名,STREET(全大寫) 街道名。O 表示組織名。CN 為通用名

  2. 生成伺服器證書所需的私鑰,並用CA證書籤發伺服器證書

    ipsec pki --gen --outform pem > server.pem  
    ipsec pki --pub --in server.pem | ipsec pki --issue --lifetime 1200--cacert ca.cert.pem \
        --cakey ca.pem --dn "C=CN, O=VPN, CN=vpn.linsir.org" \
        --san="1.2.3.4"--san="vpn.linsir.org"--flag serverAuth --flag ikeIntermediate \
        --outform pem > server.cert.pem

    第二句是從我們剛生成的私鑰裡把公鑰提取出來,然後用公鑰去參與後面的伺服器證書籤發。

    - iOS 客戶端要求 CN 也就是通用名必須是你的伺服器的 URL  IP 地址;-Windows7不但要求了上面,還要求必須顯式說明這個伺服器證書的用途(用於與伺服器進行認證),–flag serverAuth;- iOS Mac OS X 要求了“IP 安全網路金鑰互換居間(IP Security IKE Intermediate)”這種增強型金鑰用法(EKU),–flag ikdeIntermediate;-Android iOS 都要求伺服器別名(serverAltName)就是伺服器的 URL  IP 地址,–san

    所以這裡C、O的值要跟第一步的一致,CN值及--san值是伺服器公網地址或url,另外這裡可以設定多個--san值。否則會出現錯誤 13801:IKE身份驗證憑證不可接受.

  3. 生成客戶端證書

        ipsec pki --gen --outform pem > client.pem
         ipsec pki --pub --in client.pem | ipsec pki --issue --cacert ca.cert.pem \
        --cakey ca.pem --dn "C=CN, O=VPN, CN=VPN Client" \
        --outform pem > client.cert.pem

    這裡C、O的值要跟第一步的一致

  4. 生成 pkcs12 證書 pkcs12 證書用來匯入手機或電腦的。

    openssl pkcs12 -export-inkey client.pem -in client.cert.pem -name "VPN Client"\
             -certfile ca.cert.pem -caname "vpn.linsir.org"-out client.cert.p12

安裝證書

把證書複製到strongswan目錄下。

cp -r ca.cert.pem /etc/strongswan/ipsec.d/cacerts/
cp -r server.cert.pem /etc/strongswan/ipsec.d/certs/
cp -r server.pem /etc/strongswan/ipsec.d/private/
cp -r client.cert.pem /etc/strongswan/ipsec.d/certs/
cp -r client.pem  /etc/strongswan/ipsec.d/private/

配置Strongswan

裝置/作業系統使用的 ike 版本

  • Linux: 命令列客戶端就是 strongswan 本身,因此完美相容,支援 ikev1/ikev2 和所有加密方法的連線。
  • Android: 只支援 ikev1。
  • iOS/Mac OS X: IPsec 客戶端為自己修改的racoon。它只支援 ikev1,最新的IOS 9 Mac OS X 支援ikev2.
  • Windows: 只在 Windows 7 以後支援ikev2, XP需要另外的l2tp方式。

ipsec.conf

vim /etc/strongswan/ipsec.conf

config setup
    uniqueids=never              #允許多個客戶端使用同一個證書,多裝置同時線上#所有專案共用的配置項
conn %default
    keyexchange=ike              #ikev1 或 ikev2 都用這個
    left=%any                    #伺服器端標識,%any表示任意
    leftsubnet=0.0.0.0/0#伺服器端虛擬ip, 0.0.0.0/0表示通配.
    right=%any                   #客戶端標識,%any表示任意

conn IKE-BASE
    leftca=ca.cert.pem           #伺服器端 CA 證書
    leftcert=server.cert.pem     #伺服器端證書
    rightsourceip=10.0.0.0/24#分配給客戶端的虛擬 ip 段#供 ios 使用, 使用客戶端證書
conn IPSec-IKEv1
    also=IKE-BASE
    keyexchange=ikev1
    fragmentation=yes            #開啟對 iOS 拆包的重組支援
    ike=aes256-sha1-modp1024
    leftauth=pubkey
    rightauth=pubkey
    rightauth2=xauth
    rightcert=client.cert.pem
    auto=add

#供 ios 使用, 使用 PSK 預設金鑰
conn IPSec-IKEv1-PSK
    also=IKE-BASE
    keyexchange=ikev1
    fragmentation=yes
    leftauth=psk
    rightauth=psk
    rightauth2=xauth
    auto=add

#供 android, linux, os x 使用
conn IPSec-IKEv2
    also=IKE-BASE
    keyexchange=ikev2
    leftauth=pubkey
    rightauth=pubkey
    rightcert=client.cert.pem
    auto=add

#供 windows 7+ 使用, win7 以下版本需使用第三方 ipsec vpn 客戶端連線
conn IPSec-IKEv2-EAP
    also=IKE-BASE
    keyexchange=ikev2
    ike=aes256-sha1-modp1024!#第一階段加密方式
    rekey=no#伺服器對 Windows 發出 rekey 請求會斷開連線
    leftauth=pubkey
    rightauth=eap-mschapv2
    rightsendcert=never          #伺服器不要向客戶端請求證書
    eap_identity=%any
    auto=add

conn IKEV2-RSA
     also=IKE-BASE
     ikelifetime=60m
     keylife=20m
     rekeymargin=3m
     keyingtries=1
     keyexchange=ikev2
     leftfirewall=yes
     auto=add

strongswan.conf

vim /etc/strongswan/strongswan.conf

# strongswan.conf - strongSwan configuration file## Refer to the strongswan.conf(5) manpage for details## Configuration changes should be made in the included files

charon {
    load_modular = yes
    duplicheck.enable =no#是為了你能同時連線多個裝置,所以要把冗餘檢查關閉
    compress = yes
    plugins {
        include strongswan.d/charon/*.conf
    }
    dns1 = 223.5.5.5
    dns2 = 8.8.8.8
    # for Windows only
    nbns1 = 223.5.5.5
    nbns2 = 8.8.8.8
}

include strongswan.d/*.conf

密碼認證檔案

# /etc/ipsec.secrets - strongSwan IPsec secrets file: RSA server.pem
: PSK "password": XAUTH "password"
vpn %any : EAP "password"
wp裝置名稱\用戶名2: EAP "密碼2"#僅對windowsphone8.1裝置,裝置名稱在`設定-關於-手機資訊` 中檢視

啟動Strongswan

ipsec start 
或者
systemctl start strongswan.service

IKEv1,v2就搭建好了,我們配置L2TP/IPSec

L2TP/IPSec

安裝 xl2tpd

yum install ppp xl2tpd

CentOS 7 源已經不再有了,所以手動下載安裝。

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/x/xl2tpd-1.3.6-8.el7.x86_64.rpm
rpm -ihv l2tpd-1.3.6-8.el7.x86_64.rpm

/etc/strongswan/ipsec.conf

在/etc/strongswan/ipsec.conf最後新增

conn L2TP-PSK
    keyexchange=ikev1
    authby=secret
    leftprotoport=17/1701#l2tp埠
    leftfirewall=no
    rightprotoport=17/%any
    type=transport
    auto=add

xl2tpd.conf

vim /etc/xl2tpd/xl2tpd.conf

[global]
ipsec saref =no#listen-addr = 1.2.3.4
port =1701[lns default]
ip range =10.0.0.100-10.0.0.254local ip =10.0.0.255require chap = yes
refuse pap = yes
require authentication = yes
name = vpn
ppp debug = yes
pppoptfile =/etc/ppp/options.xl2tpd
length bit = yes

options.xl2tpd

vim /etc/ppp/options.xl2tpd

require-mschap-v2
ms-dns 223.5.5.5
ms-dns 223.6.6.6
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo
            
           

相關推薦

CentOS7Strongswan架設IPSec-IKEv1, IKEv2, L2TP VPN,用於 IOS9,OSX, Windows, Linux

zz from: http://linsir.org/post/how_to_install_IPSec_IKEV2_base_on_strongswan_with_CentOS7 VPN 隧道協議PPTP、L2TP、IPSec和SSLVPN(SSTP,OpenVPN)中安全性逐級提高,相應的受到牆的干擾

使用 Strongswan 架設 Ipsec VPN

本教學介紹瞭如何使用 Strongswan 5.0.x 在 openSUSE 12.3+ 伺服器上架設支援 ikev1/ikev2 的 Ipsec VPN。適用於 openSUSE、iOS、Android、Windows 和其它 Linux。 注意 Strongswan 5 即現在的主力支援

mac創建ipsec/L2TP隧道(VPN)

ges etc span 地址 -- 密鑰 cnblogs 嘗試 添加 1. 打開網絡偏好設置 2. 點擊+ 3. 輸入VPN的地址和賬號 4. 高級--勾選通過VPN鏈接發送所有流量 5. 添加dns 6. 由於公司VPN使用的是L2TP協議,並且是無共享密鑰的,

What is the difference between PPTP, L2TP/IPsec, SSTP, IKEv2, and OpenVPN?

相關文章: iOS10把PPTP協定拿掉了,VPN協定只剩下L2TP、IPSEC、IKEv2。IKEv2 從 iOS 8.0 版開始支援。 PPTP和L2TP都使用PPP協議對資料進行封裝,然後新增附加包頭用於資料在網際網路絡上的傳輸。儘管兩個協議非常相似,但是仍存在以下幾方面的不同: 1.PPT

centos7yum快速安裝 mariadb(mysql)

版本 repos 測試 tar b-s 新版 roo system -s 從最新版本的centos系統開始,默認的是 Mariadb而不是mysql! 使用系統自帶的repos安裝很簡單: yum install mariadb mariadb-server systemc

LinuxL2TP VPN客戶端的配置

linux下xl2tpd客戶端配置系統環境centos6.81,安裝xl2tpd和pppyum -y install xl2tpd ppp2,配置xl2tpd編輯配置文件xl2tpd.confvim /etc/xl2tpd/xl2tpd.conf[lac testvpn] ;testvpn為lac的名稱n

Centos7安裝 JDK1.8

class bce hostname etc 下載 nod tar.gz 執行 profile   最近看了一篇技術文章, 用 nginx+tomcat+redis+centos 實現 session 共享等功能,覺得很有用,就跟著文章在 Centos7 的環境下搭建了幾個

CentOS7 Nginx + Tomcat 實現 Session 共享

++ port orange 安裝目錄 nag 教訓 font ext 參考   在之情的文章中搭建的 centos7 + tomcat + nginx 的環境的基礎上, 使用 redis 實現 tomcat 的 session 共享的問題。 一 : 安裝 Redis   

Centos7關於memcached的安裝和簡單使用

entos name 終端 說明 所有 local memcach 們的 clas 在這裏,由於用編譯安裝memcached服務端過於復雜,因此我選用依賴管理工具 yum 來實現 memcached 的服務端安裝: [root@localhost /]# yum insta

Centos7配置phpMyAdmin(提供HTTPS服務)

phpmyadmin https httpd Centos7下配置phpMyAdmin(提供HTTPS服務)phpMyAdmin可以通過web方式控制和操作MySQL數據庫。通過phpMyAdmin 可以完全對數據庫進行操作,例如建立、復制和刪除數據等等。配置環境Centos7 2臺(IP1:19

CentOS7 調教mysql記實 之二

rac hang general username sta roo warnings 普通用戶 pan 導入SQL後,普通用戶不能調用存儲過程,root可以。 解決: mysql> update mysql.proc set Definer=‘username@%‘;

CentOS7 調教mysql記實 之三

ase systemctl 服務器 exp span mes start lis centos7 我去,我的mysql在原Windows 2003服務器上好好的,遷移到linux下不能打開,跟蹤半天,發現表名大小寫的問題,windows不區分大小寫,linux區分。 解決

CentOS7配置網絡yum源(附帶下載地址)

tro arch all 運行 help soc 1-1 centos6 earch 一、查看外網是否通暢 配置網絡yum源(需要保證外網開通,我這裏是使用網易163提供開源鏡像站) 二、下載repo文件 cd /etc/yum.repos.dwget http:

centos7的redis的搭建

停止 後臺 .com 自動啟動 人的 wget make conf 0.10 轉載:http://www.cnblogs.com/hd3013779515/p/6914824.html http://www.cnblogs.com/it-cen/p/42

CentOS7的AIDE入侵檢測配置

linux 服務器 數據庫 配置文件 入侵檢測 1、AIDE的簡單介紹 AIDE通過掃描一臺(未被篡改)的Linux服務器的文件系統來構建文件屬性數據庫,以後將服務器文件屬性與數據庫中的進行校對,然後在服務器運行時對被修改的索引了的文件發出警告。出於這個原因,AIDE必須在系統更新後或其

Centos7安裝php-redis擴展及簡單使用

簡單使用 默認安裝路徑 lan 使用 ges l數據庫 sta https log 前言: 在本篇博客中,我將給大家介紹如何在Centos7上安裝PHP-Redis擴展以及一些簡單的實用,關於如何在Centos上安裝redis的,可以參考我的上一篇博客 Redis在Cen

CentOS7安裝MySQL5.7安裝與配置(YUM)

centos7下安裝mysql5.7安裝與配置(yum) CentOS7下安裝MySQL5.7安裝與配置(YUM) 安裝環境:CentOS7 64位 MINI版,安裝MySQL5.71、配置YUM源 在MySQL官網中下載YUM源rpm安裝包:http://dev.mysql.co

VM安裝Centos7安裝vmware-tools /mnt/hgfs沒有文件的解決方法

vm 文件共享 1.正常安裝vmware-tools2.在安裝過程中,我遇到了一個提示為:Enter the path to the kernel header files for the 3.18.0-kali1-686-pae kerne?解決方法:yum -y install kernel-de

Centos7vim的table鍵修改為4個空格

大寫 最後一行 centos7 clas roo style 空格 table class 1、要有root用戶權限 2、已經安裝vim 3、編輯/etc/vim/vimrc 文件,添加set ts=4 vim /etc/vimrc #按大寫G到最後一行,添加s

Centos7安裝redis實戰(單機版以及集群)

mkdir 一個 建議 總結 有序 bin 實戰 img http 一、背景   因項目需要,要引入redis做緩存,就在centos7下親自安裝了一遍redis,剛好趁著這個機會就來把redis的概念以及單機版和集群版redis安裝步驟記錄下來,在此和大家一起分享。