FireHOL Level3 導入

ルーターでのDNAT構成において、FORWARDチェインでのルールを一部変更。

FireHOL Level1・Level2 だけでは、中国系からの SMTP SPAM が一部漏れてくる為、これまで中国全域(CN zone)を丸ごと DROP していました。

しかし、メールサーバ側で zen.spamhaus による強力なフィルタリングが効くため、国単位(CN zone)の大味なブロックは必ずしも必要ではない状況になっていた。

そこで、IP国家ブロックではなく、より精度の高い “悪性アドレス集合ベースの防御” に切り替える方針へ変更。

変更点

CN zone(中国 IP 全域 DROP)を廃止

代わりに FireHOL Level3 を追加

FireHOL Level3 は、既知のスパム・ボットネット・脆弱性スキャンなど
“より積極的に悪性と判定されているアドレス” を対象に含むため、
国家単位のブロックよりも 必要十分で副作用の少ないブロック を実現できます。

現行のフィルタ構成(説明付き)

以下は現在の iptables ルールセットに、解説を付加したものです。

■ INPUT チェーン(WAN→自サーバの防御)
Chain INPUT (policy DROP)

→ 基本は DROP。必要な通信だけを例外許可する「ホワイトリスト方式」。

1 ACCEPT RELATED,ESTABLISHED

既存の通信の戻りはすべて許可(最重要ルール)。
接続中の HTTP/HTTPS や SSH の応答を止めないため。

2 ACCEPT all br0

LAN 内(192.168.1.x)からのアクセスは完全許可。
管理用のローカル接続を遮断しないようにするため。

3 DROP firehol_level1

外部からの新規接続で、FireHOL Level 1(悪性度高)に該当するホストを遮断。
→ 基本のマルウェア・スパム送信元の大半を撃退。

監視アクセス排除の副作用

監視のような付きまといアクセスを排除するため、金曜の夕方からサーバーアクセス制限を強化した。
その結果、狙い通りあの“付きまといアクセス”はほぼ完全に DROP できている。
ここまでは作戦成功と言っていい。

しかし副作用として、一般アクセスどころか、通常なら必ず飛んでくるスキャンアクセスすら姿を消してしまった。
静まり返ったログを眺めていると、達成感よりも空しさの方が大きい。

「どうしたものか――」

監視アクセスは嫌だが、完全に無風というのもそれはそれで物足りない。
アクセス制御の落としどころをどうするか、もう少し様子を見て判断したいところだ。

養老

養老で養老
今日もスメタナ定食

スメタナ定食、野菜たっぷりで凄いボリューム
フードロスを避けるため、無理に完食。
晩飯はコーンフレークで十分だな。

缶コーヒーを飲みながら、今日はルーターのDROP状況を確認。
WEB は国内限定にしているため、スパムらしきアクセスもほぼゼロでつまらない・・・
一般のアクセスも、自分以外は 1 件だけという静けさ(笑)

一方で、海外からのアクセス制限に引っかかった通信が短時間で 443 番ポートに集中し、2 時間ほどで 800 パケット近く DROP されていた。
そこまで閲覧したいのであれば、身元を隠さず国内ネットワークから普通にアクセスしてくれればいいのに…と思ってしまう。

もはや、どこの次元から訪れているのか分からない不思議な動きだ(笑)

養老公園

養老で養老の時間調整に、いつもの公園。

何やら混雑してるなと思ったら、トレイルランニングのレースが開催されるようだ。
気温4度、ついこないだまで酷暑だったのに、養老山地には雪が薄っすら。


北信濃トレイルフリークスという組織主催のイベントの様だ。
皆さん元気だ。

サーバーアクセス制限を強化

半年近く続いている不審なアクセスについて、現在のところ原因は特定できていないものの、個人的には以前の人間関係や環境が影響している可能性も否定できないと感じている。

ただし、技術的には海外クラウドやスキャナーによる通常の自動アクセスである可能性も高く、どちらとも断定はできない。
とはいえ、同じパターンが長期にわたって続くことや、アクセスの時間帯・性質に一定の特徴があることから、単なる一般的なトラフィック以上の何かを感じてしまうのも正直なところだ。

この数か月、アクセス動向を観察するために、あえて設定を変えて反応を見てきたが、期待したような建設的な兆候は得られず、むしろ予測しづらい動きが多かった。
また、海外アクセスを数日間だけ開放した際には、20年以上続けているブログ「海辺の放浪記」の古い記事まで一気に取得される動きがあり、さすがに気味の悪さを感じた。

そこで今回、海外からの不審な接続を減らす目的で、ルーター側のDNATや iptables/ipset ルールを大幅に見直し、より厳格なアクセス制御に切り替えた。

① ブラックリスト → 国別ブロックが先頭
2 DROP firehol_level1 (FireHOLで公開されているIPブラックリスト)
3 DROP firehol_level2 (FireHOLで公開されているIPブラックリスト)
4 DROP cn_block  (中国全域)
5 DROP other_block (その他、しつこく不審アクセスがあったネットワーク)

→ 海外 AWS/GCP/中国/その他 が最初に落ちる。

② LAN → WAN を許可
12 ACCEPT br0→ppp0 192.168.1.0/24 → ANY

→ 家庭内のPCやスマホの外向き通信は全部通る。

③ WAN → LAN(サーバー)を「国内限定」許可
13 SSH (22) 国内
15 HTTP (80) 国内
16 HTTP (80) サーチボット
17 HTTPS (443) 国内
18 HTTPS (443) サーチボット