2018/01/17

Recent entries from same category

  1. Go 言語プログラミングエッセンスという本を書きました。
  2. errors.Join が入った。
  3. unsafe.StringData、unsafe.String、unsafe.SliceData が入った。
  4. Re: Go言語で画像ファイルか確認してみる
  5. net/url に JoinPath が入った。

仕事でサーバを運用していると某国からのアタックがそこそこ多いのだけど、出来れば早急にブロックしてしまいたかったので IP アドレスから whois を引いて CIDR 形式で表示出来るツールを作った。昔はこういうの Perl で書いた気がする。

GitHub - mattn/iputil
https://github.com/mattn/iputil

ライブラリとして作ったけど、コマンドも用意してあります。

$ go get github.com/mattn/iputil/cmd/iprange

実行結果のイメージはこんな感じ。

$ iprange [IPアドレス]
XXX.XXX.XXX.XXX/16
YYY.YY.YYY.YY/16
...

あとはこの結果を使って ufw (Universal FireWall) を使っているのであれば

$ iprange [ヤバいIPアドレス] | xargs -n 1 sudo ufw insert 1 deny from

とかすれば一発でアクセス元をブロック出来る。(はず)

Posted at by