アップデート一覧に戻る
New releaseAug 6, 2026

easywall v2.4.1

Linux 上の nftables ファイアウォール向け Web インターフェース(Go 製)。適用は確認しない限り 120 秒後に自動的に元に戻るため、自分自身をロックアウトすることはありません。Debian & Docker インストール。

共有

easywall

あなたのファイアウォール。あなたのルール。予期せぬことはなし。

Tests Build Security Coverage

Latest release Go version GPL-3.0 Discord Support on Ko-fi

ライブデモ · ドキュメント · 変更履歴

あなたを締め出せない Web インターフェース経由の nftables: すべての適用は、あなたが確認しない限り自動的に元に戻ります。

easywall ダッシュボード: 承認状態、保留中の変更、最終適用を含むファイアウォールステータス。TCP ポート、UDP ポート、ブロックリスト、許可リスト、カスタムルール、転送をカウントするタイル。そして最近のアクティビティ一覧。

コンセプト

ルールを編集しても何も変わりません。適用するとすべてが変わります — 120 秒間だけ。 新しいルールで接続が切れた場合、確認をクリックできません。そして確認しないことが、古いルールを復元する仕組みです。

状態遷移: 編集によりステージング状態へ、適用によりライブ状態へ、ウィンドウ内での確認により確定状態へ、ウィンドウの期限切れによりロールバック状態へ。ロールバック後もステージングされた編集は引き続き利用可能。

アーキテクチャ

2 つのプロセス。ネットワークに公開される側は、奪う価値のある権限を一切持ちません。

ブラウザは HTTPS で easywall-web と通信し、easywall-web は非特権で動作。easywall-web は Unix ソケット経由で型付き JSON を easywall-core とやり取りし、easywall-core は root として動作し、nftables の table inet easywall と netlink で通信する。

オリジナルの easywall — Python、Flask、subprocess 経由の iptables — の完全な書き直しです。オリジナルは CVE の後、2022 年にアーカイブされました。両方の根本原因は解消されています: 権限は別プロセスに存在し、適用パスはコマンドラインではなく Go 構造体を構築します。仕組み →

インストール

決定木: 試すだけならデモモードへ。Debian または Ubuntu なら .deb パッケージへ。すでにコンテナを運用しているなら Docker へ。それ以外はソースからビルド。
# Debian / Ubuntu — amd64 and arm64
ARCH=$(dpkg --print-architecture)
wget https://github.com/jp1337/easywall/releases/latest/download/easywall_$ARCH.deb
sudo dpkg -i easywall_$ARCH.deb && sudo apt-get install -f

# Docker
git clone https://github.com/jp1337/easywall.git && cd easywall && docker compose up -d

# From source — Go 1.27+, nftables
git clone https://github.com/jp1337/easywall.git && cd easywall
make build && sudo make install
sudo systemctl enable --now easywall-core easywall-web

その後 https://localhost:12227 を開きます。初回アクセス時に アカウントの設定と最初のルールのステージングを行います。

できること

ポートTCP と UDP、単一または範囲指定、ルールごとの SSH ブルートフォースルーティング付き
ブロックリストと許可リストIPv4、IPv6、CIDR。あらゆるポートルールより先に評価
保護モジュール12 種類、うち 5 つがデフォルトで有効 — フラッド、スキャン、ボゴン、フラグメント、ブロードキャスト/マルチキャスト/エニーキャスト
ポートフォワーディングプロトコル選択付きの NAT リダイレクト
カスタムルール生の nftables。適用前に構文チェック済み
エクスポート / インポートルールセット全体を JSON として
監査ログ何がいつ変更されたか、1 行につき 1 つの JSON オブジェクト
Docker との共存table inet easywall を所有し、それ以外には一切触れない
英語、ドイツ語、フランス語インターフェース上で切り替え可能。サインイン前も含む。言語は部分的でもよい: 不足部分は英語で表示され、そのギャップは隠されず報告される
ライト & ダークOS に追従、手動トグル付き。両方ともコントラスト検証済み

使用技術

Go 1.27、単一バイナリgo-chi/chi · html/template
google/nftables 経由の nftables直接 netlink、nft サブプロセスなし
Argon2idgolang.org/x/crypto、パスワードごとに 16 バイトのソルト
CSRFnet/http.CrossOriginProtection、Go 1.25 ネイティブ
デザインシステムDESIGN.md + Tailwind v4 — サードパーティ UI ライブラリなし
フォントInter + JetBrains Mono、セルフホスト、約 145 KB — エアギャップ環境でも動作
CIgovulncheck、gosec、CodeQL、-race、および実カーネルに対する統合テストスイート

サポートを受ける

質問、または動作がおかしい場合Discord
バグ、または欲しい機能GitHub issues
セキュリティ脆弱性セキュリティアドバイザリ — Discord ではなく、公開 issue でもありません

コントリビューション

セットアップ、コミット規約、レビューチェックリスト: CONTRIBUTING.md。 見た目に関わるものはすべて、まず DESIGN.md を経由します。

セキュリティ問題: 公開 issue としてではなく — GitHub Security Advisories をご利用ください。

ライセンス

GPL-3.0 — LICENSE を参照。

カテゴリ