【ufw】特定のIPアドレスからのアクセスを拒否する

ここ最近、自宅サーバーに中国からの不正アクセスが多いため、アクセス制限を行いました。本当はL3スイッチレベルで対応したいのですがルーターが非対応のため、ufwでアクセス制限を行います。 以下、自分用の備忘録。

環境:Ubuntu 18.04 LTS

1. ufwを有効にする

初期時点ではufwは非アクティブ

$sudo ufw enable

2. デフォルトのアクセスを全許可にする

ufwはデフォルト=全拒否のホワイトリスト方式のため、特定のIPを拒否するにはデフォルト=全許可のブラックリスト方式に変更します

$sudo ufw default ALLOW

3. 拒否するIPアドレスを指定

$sudo ufw deny from XXX.XXX.XXX.XXX to any

cidrの情報から中国のIPを全拒否することも検討しましたが、約8000個のIPがありパフォーマンスの影響が気になるため、最近目に付くIPアドレスのみをひとまず制限するようにしました。

4. 設定を確認する

$sudo ufw status verbose
状態: アクティブ
ロギング: on (low)
Default: allow (incoming), allow (outgoing), disabled (routed)
新しいプロファイル: skip

To                         Action      From
--                         ------      ----
Anywhere                   DENY IN     XXX.XXX.XXX.XXX

 

簡単な動作確認として手持ちの携帯回線のIPアドレスを拒否し、携帯端末から自宅SVにアクセスできないことを確認します。

##
アクセスログを眺めると、/phpmyadmin/や/mysql/など特定のフォルダに規則性を持ってアタックをしているので、これらのフォルダにアクセスしたIPを自動ブロックするコードを書こうか検討中