- OpenGFWは、ユーザー自身で構築できる中国の大規模ファイアウォール(Great Firewall of China)のLinux向けオープンソース
- 「今や権力を持つ者だけが楽しむ必要はなく、検閲を誰にでも可能にして人々に権力を与える時だ」
- 家庭内のルーターで専門家のようにフィルタリングを始め、ビッグ・ブラザー役を試すことができる
- 注意:このプロジェクトはまだ開発初期段階にあり、利用は自己責任
機能
- IP/TCPの完全な再構築、各種プロトコルアナライザー(HTTP、TLS、QUIC、DNS、SSH、SOCKS4/5、WireGuard など)
- Shadowsocksのような「完全に暗号化されたトラフィック」の検出機能
- Trojan-killerをベースにしたTrojan(プロキシプロトコル)の検出機能
- [作業中] 機械学習ベースのトラフィック分類
- IPv4およびIPv6を完全サポート
- フロー単位のマルチコア負荷分散
- コネクションオフロード
- exprベースの強力なルールエンジン
- ホットリロード可能なルール(
SIGHUPシグナルでリロード)
- 柔軟なアナライザーおよびモディファイアのフレームワーク
- 拡張可能なIO実装(NFQueueのみサポート)
- [作業中] Web UI
ユースケース
- 広告ブロック
- 保護者による子どもの利用制限
- マルウェア対策
- VPN/プロキシサービスの不正利用防止
- トラフィック分析(ログ専用モード)
- 独裁者としての野望の実現を支援(Help you fulfill your dictatorial ambitions)
使い方
ビルド
go build
実行
export OPENGFW_LOG_LEVEL=debug
./OpenGFW -c config.yaml rules.yaml
OpenWrt
- OpenGFWはOpenWrt 23.05で動作確認されており、他のバージョンでも動作すると見込まれるが未検証
- 依存関係のインストール:
opkg install kmod-nft-queue kmod-nf-conntrack-netlink
設定例
サポートされる動作
allow: 接続を許可し、追加処理なし
block: 接続を遮断し、追加処理なし
drop: UDPでは、ルールをトリガーしたパケットを破棄し、同じフローの以後のパケット処理は継続。TCPではblockと同じ
modify: UDPでは、ルールをトリガーしたパケットを指定されたモディファイアで変更し、同じフローの以後のパケット処理は継続。TCPではallowと同じ
4件のコメント
wwwwwwwwwwwww
(笑)面白いですね
Hacker Newsのコメント