世界を動かす技術を、日本語で。

Linux用のLittleSnitch

概要

Little Snitch for Linux の導入から利用方法、設定、制限事項までを解説。 ユーザーインターフェース の起動方法や主要機能の使い方を説明。 ブロックリストや独自ルール の管理方法を紹介。 セキュリティ設定や高度なカスタマイズ の手順を案内。 ライセンスや制約 についても明記。

Little Snitch for Linux:導入と基本操作

  • インストール後、ターミナルでlittlesnitchを実行、または http://localhost:3031/ にアクセスでUI起動。
  • URLをブックマーク、またはChromium系ブラウザでPWAとしてインストール可能。
    • Firefoxの場合、Progressive Web Apps拡張機能で同様に対応。
  • Connectionsビュー でアプリごとの現在・過去の通信履歴を表示。
    • ルールやブロックリスト によるブロック状況、データ量、通信履歴の確認。
    • アクティビティ・データ量・名前などでソートやフィルタリング可能。
    • ワンクリック で通信遮断操作。
    • 下部のトラフィックダイアグラムで時間帯ごとのデータ量を可視化、範囲選択でその期間のアクティビティに絞り込み。
  • ブロックリスト管理 で不要な通信を一括遮断。
    • リモートソースから自動取得・更新。
    • 対応フォーマット:1行1ドメイン、1行1ホスト名、/etc/hosts形式(IPとホスト名)、CIDRネットワーク範囲。
    • ワイルドカード・正規表現・URL形式 は非対応。
    • ドメイン単位リスト 推奨、効率的処理。
    • 有名リスト例:Hagezi、Peter Lowe、Steven Black、oisd.nl。
    • macOS版Little Snitchの.lsrules形式はLinux版と非互換。
  • 独自ルール作成 で柔軟な制御。
    • プロセス指定、ポート・プロトコル単位の細かな設定。
    • ルールビューでソート・フィルタ管理。

セキュリティ・高度な設定

  • デフォルトでWeb UIはローカル全体に公開、不正アプリがルール変更・ブロックリスト改変・フィルター無効化可能性。

    • 認証設定 で対策可能、詳細はAdvanced configuration参照。
  • 内部構造

    • eBPFを用いてLinuxカーネルのネットワークスタックを監視・制御。
    • eBPFプログラムが通信を監視し、デーモンが統計・ルール処理・Web UI提供。
    • eBPFプログラムとWeb UIはGitHubで公開。
  • 高度な設定 はテキストファイル編集で対応。

    • 設定ファイルは/var/lib/littlesnitch/config/に配置、直接編集不可。
    • /var/lib/littlesnitch/overrides/config/にコピーし編集、overrideが優先適用。
    • 主な設定ファイル:
      • web_ui.toml :ネットワークアドレス、ポート、TLS、認証設定。複数ユーザーや外部公開時は認証・TLS必須。
      • main.toml :ルール未一致時の動作(デフォルト許可、変更で全拒否も可。自己ロックアウト注意)。
      • executables.toml :アプリケーションのグループ化、バージョン番号除去、親プロセス判定用ヒューリスティクス。
    • eBPFプログラム・Web UIは独自ビルドへの差し替え可能、ソースはGitHubで公開。
    • override内のバージョンが常に優先。

制限事項と注意点

  • Little Snitch for Linuxはプライバシー重視設計、システム強化目的には非推奨。
  • eBPF基盤 による制約:ストレージ・プログラム複雑性に上限。
    • 高トラフィック時、キャッシュテーブル溢れで全通信のプロセス・DNS名紐付けが不確実。
    • IPアドレスから元のホスト名特定はヒューリスティクス利用、macOS版のような深いパケット検査は不可。
  • 正規のソフトの外部通信監視・ブロックには有効、高度な攻撃耐性には不向き。

ライセンス情報

  • eBPFカーネルプログラム・Web UI :GNU General Public License version 2、GitHubで公開。
  • デーモン(littlesnitch --daemon) :プロプライエタリだが無償利用・再配布可能。

Hackerたちの意見

opensnitchと比べてどうなの?

「ちょっと調べたら、OpenSnitchとか、いくつかのコマンドラインツール、サーバー用のセキュリティシステムが見つかった。でも、どれも自分が求めてたものじゃなかった。どのプロセスがどの接続をしてるか見たいし、できればワンクリックで拒否したいんだ。」

無料で、全くサブスクリプションもなく、真のオープンソースだよ。ソフトウェアはこうあるべきだよね。

Little Snitchの前はWindows用のZoneAlarmがあったのを覚えてる。これがいいスクリーンショットね。今のZoneAlarmがどうなってるかは全然知らないけど、20年近く使ってないから。Linuxにはこういうのがなかったのが不思議だったな。

最近のWindowsにはこれが基本的に組み込まれてるんじゃない?でも、たくさんのプログラムが事前に承認されてるみたいだけど。

ゾーンアラームのこと、すっかり忘れてた!2000年代初頭に使ってたのを思い出すなぁ。

LinuxがOpenSnitchみたいなユーザーフレンドリーなアプリケーションファイアウォールを手に入れるのにどれだけ時間がかかったか、興味深いね。

ケリオパーソナルファイアウォールを使ってたことを思い出したよ。ケリオが終わったとき、ZAかコモドファイアウォールに切り替えたんだけど、どちらかが実行ファイルをコンテナで動かす便利な機能を導入してたんだ。ランダムなものをクリックするのがすごく楽になったよ。でも、これらの中で一番良かったのは、ウィンドウを制限してほとんど何もできないようにすることだった。「RandomXYZ.DLLがランダムな何かを実行して、ランダムなところに接続しようとしてる?それは無理だわ、MS。」笑

実は、Windows用にLittle Snitchにインスパイアされたものを作ってるんだ。今はちょっと秘密にしてるけど、コード署名証明書の資金をクラウドソーシングしたら公開するつもり。Little Snitchからのインスピレーションはたくさんあるよ、コードそのものではなくて精神的にね。

もし共有できる追加の詳細があれば、ぜひ聞きたいな。タイムラインとか、更新のためにメールアドレスを入力できるところはある?テスターを探してるなら、アルファ/ベータテストもやってみたいよ。GlassWireを何年も使ってるけど、LSの役割を部分的に果たしてるけど、あんまりうまくいってない。見たパフォーマンスの問題がたくさんあるし、LSに必要なものがたくさん欠けてる。正直、GlassWireの焦点はWindowsコンピュータのトラフィックを可視化することにあると思うけど、パワーユーザー向けのより良いWindowsネットワークソフトウェアが必要だと思う。

これについての著者のブログ記事があるよ。

すごいね。Little SnitchはmacOSには必須で、Linuxで同じ機能を得るのは本当に大変だった。これを見られてすごく嬉しいし、Objective Developmentの開発者にお金を渡せるのもすごく嬉しい。

追加オプションがあるのはいいけど、Linuxユーザーとしてはコードのオープン性を重視してるんだ。オープンスニッチとオープンスニッチUIで結構満足してるよ。

同じく、ただディストリビューションのリポジトリで定期的に更新されてほしいな。

macOSバージョンは、これをより信頼性高く行うためにディープパケットインスペクションを使用している。ここではそれは選択肢じゃないよね。MacOSって、結局*unixみたいなもんじゃないの?この違いについて本当に興味があるんだけど。

BSDファミリーは、毎年GPLの部分が減ってるね。

逆だね。macOSは一見Unixっぽいけど、実際はXNUマイクロカーネルの上に成り立ってる。Appleが引き継いでからは、パフォーマンスやAPIの改善がたくさん加わったから、もっと複雑になったよ。

私の理解では、macOSはちょっと変わったカーネル実装を使っていて、ほぼオープンソースだけど、100%ではないんだよね。

ちょっと聞いてほしいんだけど、リトルスニッチをしばらく使ってたんだ。素晴らしい製品だよ。どこから電話が来てるかを知るのが好きなんだ。ブラウザ以外のすべてのリクエストは、承認するまでブロックするようにしてる。最近、リトルスニッチみたいなものを本当に信頼しなきゃいけないのは、実質的にネットワークスタック全体をMITMできるフルカーネル拡張だからだと思って、調べてみたんだけど、会社やそのリーダーシップについてあまり面白い情報が見つからなかったんだ。要するに、この会社について何か知ってる人いる?

つまり、誰かこの会社について知ってる人いる?はい、彼らは20年以上の歴史を持つインディーのMac開発者で、Little Snitchは多くのユーザーに長年愛されているよ。

Linuxユーザーの皆さん、質の高い開発チームから素晴らしいツールを手に入れたこと、おめでとう!Objective Developmentは、私たち(Macユーザー)にとって、細部へのこだわりや仕上げの良さでの模範例なんだ。Objective Developmentが彼らの愛されるツールを新しいプラットフォームに拡張したこと、おめでとう!みんな最高だね。

細部へのこだわり なんでLittle Snitch(Mac)は、ユーザーが「受け入れる/拒否する」を押す前にIPアドレスを事前解決するの?個人的には、DNSクエリはユーザーの入力なしに始まるべきじゃないと思うんだけど。

ブロック機能がどう働いてるか知ってる人いる?数年前にeBPFのコードをちょっと触ったことがあって(BTF/CO-REが新しい時)、それは強力だったけど、メモリに書き込んだりカーネル内で関数呼び出しをすることはできなかった。ユーザーランドのコンポーネントがiptablesみたいなものを使ってるのかな?(今はiptablesが特定のプロセスからの/特定のプロセスへのトラフィックをブロックできるの?)