LINUX ubuntuでのUFWファイアウォールによるIP接続制限方法
発生問題
Ubuntuのアクセスコントロールリスト hosts.aalow,hosts.denyによってサーバーへの接続をipレベルで許可・拒否制限を設定したが、誰からも繋げてしまう状態のままであった。もちろん再起動はしている為、設定反映も出来ていることを確認済みの状態
問題の原因
Ipレベルへの接続制限はhosts.denyで行うのではなく、linux上のファイアウォールにて行う必要がある為に発生した問題であった
解決方法
まず、ubuntuでのufw(ファイアウォール設定)を使う。Ufwはプリインストールされているはずの標準機能。Iptablesの簡易版だが、普通の細かい設定には十分すぎる内容で対応してくれる。簡単なのだが、以下順を追って説明していく
解決手順
- 初期稼働状況設定
- 全接続拒否設定(ローカルは繋がる為ご心配なく
- 特定ip許可設定
- 許可ipの削除について
上記4点を追っていく。尚、設定がミスれば全てdeleteするだけで設定を初期状態に簡単に戻せるため、あまり構えずに設定して大丈夫
- 初期稼働状況設定
sudo ufw status
上記コマンドにて、稼働がactive or inactive の確認が行える
Sudo ufw enable
よく使うコマンドだが、enableにて起動時にスタートアップ起動させる設定を行う。また、inactiveであれば、activeになるはずなので、実行後に再度、sudo ufw statusを実行してactiveであることを確認しておくとなおベスト
- 全接続拒否設定(ローカルは繋がる
次に、ひとまず全接続を拒否の上必要なipのみを許していく方式を実行していく為、全ての接続を拒否する
sudo ufw default DENY
上記コマンドにて全ての接続を拒否する設定となる。尚、denyをallowに変更すると、全てを許可する設定に変更される
- 特定ipの許可設定をする
Sudo ufw allow 192.xx.xxx.xx
上記コマンドにてipを指定することで特定許可となる。設定後即反映の為、再起動の必要はない
また、現在の設定状況は
Sudo ufw status
状態: アクティブ
To Action From
— —— —-
Anywhere ALLOW 172.16.142.170
Anywhere ALLOW 172.16.142.118
上記コマンドにて設定状況の確認が可能。設定した後は確認しておくことが吉
- 許可ipの削除について
↓許可IPの確認及び許可IPインデックス番号の確認
sudo ufw status numbered
状態: アクティブ
To Action From
— —— —-
[ 1] Anywhere ALLOW IN 172.16.142.170
[ 2] Anywhere ALLOW IN 172.16.142.118
↓特定許可IPの削除
sudo ufw delete 1
削除:
allow from 172.16.142.170
操作を続けますか (y|n)? y
ルールを削除しました
↓許可IPが削除されたかどうかの確認
sudo ufw status
状態: アクティブ
To Action From
— —— —-
Anywhere ALLOW 172.16.142.118
流れの説明ですが、sudo ufw statusにnumberedを付けることで設定IPの左記に番号インデックスが追加される。これをオブジェクトとしてdelete実行することで指定ipを削除する事が可能となる
ルータを用いずにip制限をすることはlinuxセキュリティ上必須項目である為、備忘録とする
参考URL:
https://qiita.com/shimakaze_soft/items/c3cce2bfb7d584e1fbce
https://www.codeflow.site/ja/article/how-to-set-up-a-firewall-with-ufw-on-ubuntu-18-04