アクセス観測終了

ほんの二日前、「Honeypot再起動」したばかりだが、そのアクセスLOGはゴミでしかない。
長年、このゴミを眺めることが半ば習慣になっていた。
例のつきまといアクセスと、それ以外を分離して観測するための構成でもあったのだが、ここにきて突然バカバカしさが勝ってきた。
ということで、今度こそ観測自体を廃止することにした(笑)

物理的なホストは用意せず、仮想ハニーポット(192.168.1.156)として設定。
仮想ハニーポット宛のパケットはFORWARDチェインにて無条件にDROPし、実体のない「ブラックホール」として動作させ、DROPカウントのみ確認できる構成とした。

156というIPアドレスは「イチコロ」をもじって割り当てている。
文字通りイチコロである(笑)

なお、本構成では「応答を返さない」ことを優先しており、スキャン元に対してはタイムアウトを誘発させるだけの受動的な防御となる。
ログを肥大化させず、リソース消費も最小限に抑える狙いである。

●PREROUTINGチェイン

Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        4   172 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:25 match-set firehol_level3 src to:192.168.1.156:25
2       28  1680 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:25 match-set firehol_level2 src to:192.168.1.156:25
3        8   380 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:25 match-set firehol_level1 src to:192.168.1.156:25
4       80  4752 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:25 match-set gcloud src to:192.168.1.156:25
5      121  6642 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 match-set firehol_level3 src to:192.168.1.156:80
6       86  4428 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 match-set firehol_level2 src to:192.168.1.156:80
7        4   200 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 match-set firehol_level1 src to:192.168.1.156:80
8       13   616 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 match-set gcloud src to:192.168.1.156:80
9      194 10556 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 match-set firehol_level3 src to:192.168.1.156:443
10      57  2916 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 match-set firehol_level2 src to:192.168.1.156:443
11       4   200 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 match-set firehol_level1 src to:192.168.1.156:443
12       4   204 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 match-set gcloud src to:192.168.1.156:443
13       0     0 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22 match-set jpnet src to:192.168.1.1:22
14       2   120 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:25 to:192.168.1.1:25
15       2    80 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 match-set jpnet src to:192.168.1.1:80
16       2   120 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 match-set searchengines src to:192.168.1.1:80
17      12   692 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 match-set jpnet src to:192.168.1.1:443
18     171  9944 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 match-set searchengines src to:192.168.1.1:443
19       0     0 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:587 match-set jpnet src to:192.168.1.1:587
20       0     0 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:993 match-set jpnet src to:192.168.1.1:993
21     121  6684 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 to:192.168.1.156:80
22     120  7996 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 to:192.168.1.156:443
23       5   232 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:587 to:192.168.1.156:587
24      10   460 DNAT       6    --  ppp0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:993 to:192.168.1.156:993

・ルール1~12
firehol_level1~3:FireHOL公開のブラックリストIPを仮想ハニーポット(192.168.1.156)へ
gcloud:スパム傾向の強いGoogle Cloud発を仮想ハニーポット(192.168.1.156)へ

・ルール13~20
jpnet:日本国内からのアクセスを Main Server(192.168.1.1)へ
searchengines:主要検索エンジンのクローラを Main Server(192.168.1.1)へ
SMTPについてはすべてMain Server(192.168.1.1)へ集約

・ルール21~24
上記いずれにも該当しなかった野良アクセスを仮想ハニーポット(192.168.1.156)へ振り分け

●FORWARDチェイン

FORWARDチェインについては、下記の通り非常にシンプルな構成とした。

Chain FORWARD (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1      14M   12G ACCEPT     0    --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
2        0     0 DROP       6    --  br0    ppp0    0.0.0.0/0            0.0.0.0/0            tcp dpts:137:139
3        0     0 DROP       17   --  br0    ppp0    0.0.0.0/0            0.0.0.0/0            udp dpts:137:139
4        0     0 DROP       6    --  br0    ppp0    0.0.0.0/0            0.0.0.0/0            tcp dpt:445
5        0     0 DROP       17   --  br0    ppp0    0.0.0.0/0            0.0.0.0/0            udp dpt:445
6        0     0 DROP       6    --  br0    ppp0    0.0.0.0/0            0.0.0.0/0            tcp dpt:111
7        0     0 DROP       17   --  br0    ppp0    0.0.0.0/0            0.0.0.0/0            udp dpt:111
8    19160 9691K ACCEPT     0    --  br0    ppp0    192.168.1.0/24       0.0.0.0/0           
9       16     0 DROP       0    --  ppp0   br0     0.0.0.0/0            0.0.0.0/0            match-set other_block src
10     859 48118 DROP       0    --  ppp0   br0     0.0.0.0/0            192.168.1.156       
11     189 10956 ACCEPT     0    --  ppp0   br0     0.0.0.0/0            192.168.1.1         

・other_block:その他、不審と判断したアクセス(主に国内)をDROP
・PREROUTINGチェインでDNATされた仮想ハニーポット(192.168.1.156)宛のパケットは、ルール10にて無条件DROP
・結果として、外部からの大半の不要アクセスは「到達不能な内部アドレスへ転送された後に破棄される」構造となる

PREROUTINGチェインのルール21,22に該当するWebアクセスは、例のつきまといアクセスである可能性が高い。

このカウント値が十分に減少する、あるいは無視できる水準になるまでは、本構成にて静観するつもりである。

少なくとも、これ以上ゴミの中身を精査することはないだろう。