OS XおよびiOS用のIPSec VPN。 痛みなし

VPN (Eng。Virtual Private Network)は、1つ以上のネットワーク接続(論理ネットワーク)を別のネットワーク(たとえば、インターネット)経由で許可する技術の一般的な用語です。

© ウィキペディア




VPNは、職場へのリモート接続、データの保護、フィルターとロックのバイパス、他国の市民としてのなりすまし、そしてかけがえのないものに使用されます。 ほとんどどこでも、私が使用した有名なOpenVPNは、カスタムVPNを整理するためのシンプルなツールとして使用されています。 MacbookとOS Xが起動するまで正確に。 AppleのDNS設定に対するアプローチが他の* nixシステムのアプローチとは非常に異なるため、VPN経由のDNS転送は正常に機能しませんでした。



いくつかの調査の後、2つの選択肢がありました。

-VPNの「過去」のDNSを使用すると、非常に安全ではありませんが、問題は解決します。

-OS X VPNプロトコルにネイティブを使用:PPTPおよびIPSecファミリー。

もちろん、2番目のものを選択しました。もちろん、古いPPTPではなくIPSecです。



TL; DR;
Linuxセットアップ(私の場合はArch Linux)



#!/bin/bash MYIP="1.2.3.4" # IP-  #   (  Arch Linux ) pacman -S --noconfirm ipsec-tools pwgen #   wget https://gist.githubusercontent.com/annmour/e8d12dbfc4cd2c711c11588b4388afd4/raw/0929a169dde09ae3f041f4da4bf161614501d62c/racoon.conf \ -O /etc/racoon.conf sed -i "s/0.0.0.0/$MYIP/g" /etc/racoon.conf #    psk mkdir -p /etc/racoon/ && echo $(pwgen -s 8 1) $(pwgen -s 64 1) > /etc/racoon/psk.key && \ chmod 0400 /etc/racoon/psk.key #    VPN groupadd vpn #  racoon systemctl enable racoon && systemctl start racoon #    VPN     useradd -s /bin/nologin -G vpn -g vpn -M -N -d / vpn_user && \ passwd vpn_user #    filter + nat iptables -t filter -I INPUT -p esp -j ACCEPT iptables -t filter -I INPUT -p udp --dport 500 -j ACCEPT iptables -t filter -I INPUT -p udp --dport 4500 -j ACCEPT iptables -t filter -I FORWARD -s 192.168.100.0/24 -j ACCEPT iptables -t filter -I FORWARD -d 192.168.100.0/24 -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j MASQUERADE iptables-save > /etc/iptables/iptables.rules #   echo net.ipv4.ip_forward=1 > /etc/sysctl.d/10-ip_fowrard.conf sysctl -p /etc/sysctl.d/10-ip_fowrard.conf
      
      







OS Xセットアップ



  1. 設定→ネットワークを開きます
  2. (+)を押して、VPN / Cisco IPSecを選択します
  3. 基本情報(アドレス、ユーザー名、パスワード)を入力します
  4. 「認証設定」を選択し、グループとPSKを指定します(ファイル/etc/racoon/psk.keyから)
  5. つなぐ






OS XおよびIPSec


IPSecは1つのプロトコルではなく、一連のプロトコルと標準であり、それぞれに多数のオプションとオプションがあります。 OS Xは、3種類のIPSec VPNをサポートしています。

-IPSec / L2TP

-IKEv2

-Cisco VPN



最初のオプションは冗長です-ユーザーVPNのイーサネットパケットを転送するポイントは何ですか?

2番目-クライアント側で証明書と非常に複雑な構成が必要ですが、これも悪いことです。

「Cisco」と呼ばれる3つ目が残っていますが、実際には-XAuth + PSKです。 使用します。



OS Xの準備


OS XでVPNをセットアップしようとして失敗した後、そこでVPNが正確にどのように機能するかについてシステムを調査しました。

短い検索でファイル/private/etc/racoon/racoon.confが得られました。このファイルには「/var/run/racoon/*.conf」という行が含まれています。

その後、すべてが明確になりました。ボタンをクリックすると、OS Xはracoonの構成を生成し、/ var / run / racoon /に配置し、接続の終了後に削除します。 接続する前にスクリプトを実行して設定を取得するだけです。

 while true; for I in *.conf; do CP $I $HOME/$I; exit 0; done; done
      
      





内部では、サーバーを構成するのに十分ではない情報、つまりIPSecプロポーザルを正確に見つけました。 これらは、クライアント(およびサーバー)がサポートする認証、暗号化、および署名モードのリストです。一致しない場合、接続を確立できません。

OS X 10.11およびiOS 9.3の最終提案は次のとおりです。

encryption_algorithm aes 256;

hash_algorithm sha256;

authentication_method xauth_psk_server;

dh_group 14;









VDSの選択とVPNセットアップ


VPNサーバーの場合、OVHからVDSを選択しました。これは、すべてのモジュールに任意のカーネルをインストールできる完全な仮想化を提供するためです。 これは、ipsecがOpenVPNのようなユーザーレベルではなくカーネルレベルで動作するため、非常に重要です。

Cisco VPNモード(XAuth + PSK)は、2段階認証を想定しています。

-グループ名とPSKを使用する(ステップ1)

-ユーザー名とパスワードの使用(ステップ2)



アライグマのセットアップ


racoonはキー管理デーモン(IKE)です。 クライアントを認証し、プロトコルのすべての詳細(提案)に同意した後、トンネルを切断する許可をカーネルに与えるのは彼です。 racoonは標準のipsec-toolsパッケージに含まれており、ほとんどすべてのLinuxディストリビューションですぐに使用できます。



アライグマの構成

/etc/racoon.conf
 #事前共有キーを使用したファイルパス。 権利は0400でなければなりません
パスpre_shared_key "/etc/racoon/psk.key";
 #外部IPアドレスを指定する必要がありますが、0.0.0.0は機能しません!
聞く{
	 isakmp 1.2.3.4 [500];
	 isakmp_natt 1.2.3.4 [4500];
 }

 #匿名別名道路戦士-未知の外部アドレスを持つクライアント
リモート匿名{
 #パッシブ-「着信待ち」モード
	パッシブオン;
 #設定をクライアントに転送
 mode_cfg on;
 #os xのracoon.confから取得
	 exchange_mode main、aggressive;
	 ike_frag on;
	 verify_cert off;
	 verify_identifier off;
 #サーバー名
	 my_identifier fqdn "vpn.server";
 #ワンタイムポリシー(spd)を自動的に生成
 #手動で生成することもできますが、必要ありません
	 generate_policy on;
 #NATパスモード
	 nat_traversal on;
 #死んだ顧客は5分後に落ちます
	 dpd_delay 300;
 #プロポーザル-クライアント用のプロトコルのセット
 #os xのracoon.confから取得
	提案{
  		 encryption_algorithm aes 256;
  		 hash_algorithm sha256;
  		 authentication_method xauth_psk_server;
  		 dh_group 14;
  	 }
 }


 mode_cfg {
 #UNIXユーザーの認証
	 auth_sourceシステム。
 #...およびUNIXグループ
	 group_sourceシステム。
 #...そしてvpnグループのメンバーのみを許可する
	 auth_groups "vpn";
 #...クライアントがパスワードを保存できるようにする
	 save_passwd on;
 #構成から構成を取得します(たとえば、半径からではありません)
	 conf_source local;
 #プールの開始アドレス
	 network4 192.168.100.100;
 #プールマスク
	 netmask4 255.255.255.0;
 #dnsサーバー
	 dns4 8.8.8.8;
 #プールサイズ
	 pool_size 50;
 }

 #暗号化設定
 sainfo anonymous {
	 encryption_algorithm aes;
	 authentication_algorithm hmac_sha1;
	 compression_algorithm deflate;
 }






Pskファイルの構成



/etc/racoon/psk.key
グループのランダムな64ビットとキーの512ビットを使用すると、検索を無意味にするのに十分なオプションが得られます。

 #グループキー
 z1x7VZto IgYLrXQdsTFPWKpH7DrV6H06GnbQGl1jlesLZbJ6hZi7BIEULk1MF3yqkqAGDWvM
 U8WLLyuk so70ums1VqrCilBvEBEUTDN9kripEd8l5pyQHWf8PNMmnvdV4uqUUeDLhHsnpK5c
 4eU8rxhB TublZZd0K03REBdRe8BmkGuuOqNOnsW5d26bbtIsv4x0M1xlZWDjwHcjt3QYg1rc
 L2rSlX01 IaXcgzUNVCMkf2BFGcHR14s4rLLbA9ZckQG0H5vNqLWMh4g2tSBa807Y2fmhxPxy
 2QkqRbEv GnClE7m3Aq2HrXa6vhSubxNc6ZnY7LSWAFqmasgi5pqThzWmVQY0vONAbAXYpBk4
 2mC1aO86 Dmmmty5rbaOZY0Uh0PGIcVYOLTI8fYlGWJCJfHhZSyXTDzTsc7Qhnj75vfApju2c
 kotVQ8eN 31cRpnVpEzkrrm58gWuiaCeOvYLwJYy42dglA3IHsuYkftER5tmLJbtV5vwktLZx
 YXQX4YSm 74f2RND10NIDaRk2bQtuPEjgJWXxeZdD7KoBdYBzdIq053PNzlNvdQdfn1Taa6zV
 4ZwwJuMP 1xNyfGJSYvDRX7MgId9AgmwygqVFiOJDet2ofLVJkOOUKUfBt3IIn2pksXFTyiN2
 t9D9S59q euDKjEM73eONU8hmbPGm3mtnyz3h66AY3tHWo5WJOBTm7PULc1TlVXeoGwOIUapm




Linuxのセットアップ




-ルーティングを有効にする必要があります: sysctl net.ipv4.ip_forward = 1

-ESPプロトコルとポート500 / udpおよび4500 / udpへの着信接続を有効にする必要があります: iptables -t filter -I INPUT -p esp -j ACCEPT; iptables -t filter -I INPUT -p udp --dport 500 -j ACCEPT; iptables -t filter -I INPUT -p udp --dport 4500 -j ACCEPT

-ネットワークでNATを有効にする必要があります: iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j MASQUERADE

-グループを作成し、そこにユーザーを作成/追加する必要があります: groupadd vpnおよびuseradd -G vpn vpn_user

-racoonを実行する必要があります: racoon -vF



OS Xセットアップ


写真のOS X
設定→ネットワーク





(+)→VPN→Cisco IPSec→名前を選択します





接続を選択→サーバーアドレス、ユーザー名、パスワードを入力





「認証設定」を選択し、グループ名とキーを(この順序で)入力します





接続します。





IOSセットアップ


写真のiOS
設定→一般→VPN→VPN設定の追加。



類推してフォームに入力し、接続します。







<<< EOF

トラフィックを暗号化していただきありがとうございます!

EOF;



All Articles