DNSnitch
免責事項
これは自分用に作ったもので、必要とする人がいればここに置いてあるだけです。バグを見つけたら遠慮なくIssueを開いてください!
対話型ターミナルDNSファイアウォール
DNSnitchは、ネットワークトラフィックを完全に制御できる、ローカルで動作するプライバシー最優先のDNSサーバーです。パッシブなブロックリストとは異なり、DNSnitchは**「デフォルト拒否」**の哲学で動作します。つまり、未知のドメインはすべてデフォルトでブロックされ、リアルタイムのターミナルダッシュボードで承認するまでアクセスできません。
主な特徴
- リアルタイム傍受: ローカル(ポート5353、設定可能)で実行され、マシンから送信されるすべてのDNSリクエストを捕捉します。
- デフォルト拒否ポリシー: 未知のドメインは即座に
NXDOMAINを返し、「保留キュー」に表示されます。
- 4段階の権限システム:
- PERMANENT: 永久にホワイトリストに登録します。
- TEMPORARY: 5分間だけ許可します(自動期限切れ、設定可能)。
- ONCE: 正確に1回のDNSリクエストだけ許可します(キャプティブポータルや一度きりのログインに最適)。
- BLOCK: ドメインを明示的にブラックリストに登録し、以後問い合わせしないようにします。
- ステージング方式のワークフロー: 変更はワークスペースに「ステージング」され、
Apply したときだけ有効になります。
- トラフィック記録: トラフィックを許可しながらモードを切り替え、一意のドメインを履歴リストに記録できます。
- DNSリダイレクト: ドメインを特定のIP(ローカル開発用)や別のドメイン(CNAME)に即座にマッピングできます。
- ライブTUIダッシュボード: Ncursesで構築された、マルチタブ・マウス不要のインターフェースです。
- Console: コマンド履歴と色付きフィードバック。
- Monitor: アクティブなルールの4カラムライブビュー。
- Queue: ブロックされたリクエストの対話型リスト。
- Logs: 生のDNSクエリのライブスクロール表示。
- Redirections: 現在適用中のリダイレクトのプレビュー。
- Records: 記録されたドメイン名リクエストの表示。
インターフェース
ダッシュボードはファンクションキーで操作します。
- [F1] CONSOLE: メインのコマンドセンター。ここでコマンドを入力します。履歴は
PgUp/PgDnでスクロールできます。
- [F2] MONITOR: ルールのライブ概要。
- 操作:
Left/Right 矢印キーで列(Temp、Once、Perm、Blocked)をハイライトし、Up/Down でその列をスクロールします。
- [F3] QUEUE: ブロックされたドメインの「受信箱」。
- 表示:
> は選択中を示し、* はステージングされた変更を示します。
- [F4] LOGS: エンジンが処理したすべてのリクエストの生のストリーム。
- [F5] REDIRECTS: カスタムA/CNAMEレコードの管理。
- [F6] RECORDS: 「レコードモード」中に捕捉されたドメインを表示します。
コマンドリファレンス
DNSnitchはキーボード操作が基本です。以下はConsole [F1] で利用可能なコマンドの完全なリストです。
選択とキューの管理
アクションを適用する前に、対象を選択する必要があります。保留中のリクエストはIDで、手動ドメインは名前で選択できます。
アクション(ステージング)
ドメインを選択したら、以下のショートカットでステータスを設定します。
ワークフロー(変更の適用)
変更は適用するまで有効になりません。
モードと記録
ファイアウォールのグローバルな動作を変更します。
リダイレクション
ドメインをカスタムターゲットにマッピングします(ローカルDNSスプーフィング)。
システム
使用シナリオ
1. 標準的なワークフロー(サイトのブロック解除)
example.com にアクセスしてみます。失敗します。
- F3(Queue)を押します。
1. example.com が表示されます。
s 1 と入力します。(行がハイライトされます)。
p と入力します。(行に [PERM] と表示されます)。
a と入力します。(適用)。
- ブラウザを更新します。アクセスできます。
2. ルールの変更(誤操作のブロック解除)
google.com を誤ってブロックしてしまいました。
s google.com と入力します。
rm(削除)または p(恒久許可)と入力して、ブロックを上書きします。
a と入力します。
3. ローカル開発
- サイトを構築していて、
mysite.local でアクセスしたいとします。
- F5 を押します。
r mysite.local 127.0.0.1 と入力します。
- システムはそのドメインをlocalhostに解決するようになります。
4. アプリの監査(レコードモード)
- 新しいアプリをインストールして、動作を壊さずに何に接続するのか確認したいとします。
m rec(モード: レコード)と入力します。
- 5分間アプリを使用します。
- F6 を押します。
- リストを確認します。
m dft と入力して、セキュアなモードに戻します。