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)
OS Xセットアップ- 設定→ネットワークを開きます
- (+)を押して、VPN / Cisco IPSecを選択します
- 基本情報(アドレス、ユーザー名、パスワード)を入力します
- 「認証設定」を選択し、グループとPSKを指定します(ファイル/etc/racoon/psk.keyから)
- つなぐ
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 -vFOS Xセットアップ
写真のOS X設定→ネットワーク
(+)→VPN→Cisco IPSec→名前を選択します
接続を選択→サーバーアドレス、ユーザー名、パスワードを入力
「認証設定」を選択し、グループ名とキーを(この順序で)入力します
接続します。
IOSセットアップ
写真のiOS設定→一般→VPN→VPN設定の追加。
類推してフォームに入力し、接続します。
<<< EOF
トラフィックを暗号化していただきありがとうございます!
EOF;