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