web-dev-qa-db-ja.com

ネットワークアクティビティをMac上のVPNのみに制限し、セキュリティで保護されていないインターネットアクティビティを防ぐにはどうすればよいですか?

Mac OSを使用していて、VPNに接続して現在地とIPを非表示にしています(ネットワークシステム設定で[VPN接続を介してすべてのトラフィックを送信する]チェックボックスをオンにしています)。匿名のままにしたいので、自分の場所を明らかにしたくありません。実際のIP、つまりVPN。オンラインになると自動的にVPNに接続するpearportVPNという設定があります。問題は、空港(または他の手段)を使用してインターネットに接続すると、MacがVPNにログオンする前に数秒間安全でないインターネット接続が発生することです。したがって、インターネットに接続してからVPNにログオンするまでの数秒で、実際のIPアドレスを誤って公開するのは時間の問題です。

VPNを経由しないMacとの間のトラフィックをブロックして、VPNにログオンしない限り何も接続できないようにする方法はありますか?サーバーアドレス以外のすべてのトラフィックをブロックするサードパーティのアプリ、おそらくIntego Virus Barrier X6または小さなスニッチを見つける必要があると思いますが、どちらが正しいか、またはそれらを構成する方法がわかりません。

どんな助けでも大歓迎です。ありがとう!

7
John

ファイアウォールを使用して、(a)VPNサーバー宛てのトラフィック以外のすべてのアウトバウンドネットワークトラフィックを制限し、(b)VPNインターフェイスを介したすべてのトラフィックを許可します。 (a)の制限には、静的アドレス指定を使用していない限り、DHCPリースをネゴシエートするための許容値を含める必要があります。

これは、コマンドラインから「ipfw」ユーティリティを使用して実行できるはずです。 「セキュリティ」設定ペインから利用できるファイアウォール(OS X 10.5の新機能だと思います)では、送信トラフィックをブロックできません。

ipfwに関する基本的な情報は、 FreeBSDハンドブック にあります。

適切なファイアウォールスクリプトを思いついたら、システムの起動時にそれがアクティブになるように調整する必要があります。 launchdlaunchctl、およびlaunchd.plistのマニュアルページはすべて役立つ場合があります。

3
larsks

私はSnowLeopardを使用しており、以下のシェルスクリプトを使用しています。 PPTP VPNトンネルを通過するトラフィックのみを許可します。ローカルDHCPトラフィックに対して例外を作成しないことに注意してください。

#!/bin/sh

# Clean any pre-existing rules
ipfw -f flush

# Allow any kind of traffic to go through ppp0 (our VPN interface)
ipfw -f add allow all from any to any via ppp0 

# Allow any to talk to GRE protocol (used with PPTP)
ipfw -f add allow gre from any to any 

# Allow any to talk to any remote server on PPTP port 1723
ipfw -f add allow tcp from any to any dst-port 1723

# Check states (below allows established tcp connections to vpn server via \
# port 1723 back through the firewall
ipfw -f add check-state
ipfw -f add allow tcp from any to any established

# Closing Up
ipfw -f add 65533 reject log udp from any to any 
ipfw -f add 65534 deny log ip from any to any 
2
sybind

Ipfwルールでさえ、DNSリーク、IPv6リーク、ネットワークが起動してからデフォルトルートが変更されるまでのタイムラグなど、多くの一般的なリークからユーザーを保護できないことに注意してください。 Macでwaterroofを使用してファイアウォール構成を操作していますが、次の一連のルールをWaterroofにインポートする必要があります。

IPFW IPv4ルール

00010 denyicmpをanyからanyに追加します

00100を追加すると、lo *を介してanyからanyへのIPが許可されます。

127.0.0.0/8から00110denyipを任意のに追加します

00120 denyipをanyから127.0.0.0/8に追加します。

00130を追加して、任意のUDPを224.0.0.251 dst-port5353に許可します。

00140を追加して、224.0.0.251から任意のdst-port5353にudpを許可します。

224.0.0.0/3の00300denyipを任意のに追加します

00400 denytcpをanyから224.0.0.0/3に追加します

00500 denytcpをanyからanydst-port0に追加します。

00600チェック状態を追加

01000を追加して、私から任意のキープステートにtcpを許可します

01001を追加して、私から任意のキープステートへのudpを許可します

私からの25000許可IPを「ここにVPNホストを挿入」に追加します

「INSERTVPNHostHERE」から25100allowipを私に追加します

任意の確立された任意の場所から33300拒否tcpを追加します

65000を追加すると、任意の67から任意のdst-port68へのudpが許可されます。

icmptypes8のanyからmeへの65100deny logicmpを追加します

65200 denyudpをanyからanyに追加します

65300 denyicmpをanyからanyに追加します

65400 denyipをanyからanyに追加します

65535を追加して任意のIPから任意のIPを許可

IPFW IPv6ルール

任意から任意に02070拒否ipv6を追加します

icmptype128のanyからanyに33300deny logipv6-icmpを追加します

出典: http://blog.c22.cc/2011/07/31/protecting-your-osx-with-ipfw-and-littlesnitch/

DNSリークに関しては、次のものを使用できます。 http://opendns.github.io/dnscrypt-osx-client/

DNSCryptは、DNSトラフィックの「ラストワンマイル」を保護し、DNSプロトコルに関する深刻なセキュリティ問題のクラス全体を解決する方法です。改ざん、またはman-in-the-middle攻撃、およびラストワンマイルでのDNSトラフィックのスヌーピング。

1
user263367