DockerのUbuntuを使ってwebサービスを公開する機会があったので必要最低限の セキュリティとして備忘録がてら執筆します。
CentOSに関してはfirewall-cmd
がufwと同じようなことができるようなのでDebian系のディストリビューションOSを利用する方の参考になれば幸いです。
注意点としてはGCPだったり一部の多機能クラウドだとGUI(管理画面)等でTCP/IPの設定ができたりするため、ufwを設定しまうとSSHログインができなくなるなどコンフリクトを起こす可能性がありますので、注意して設定をおこなってください。
ufwのインストール方法について
Ubuntuに関してはデフォルトでインストールされてますが、下記コマンドでインストールされているかの確認できます。
存在していれば下記ログが吐き出されます。
not foundのようなログが表示されていた場合は、下記でインストールを行います。
ufw設定方法
ufwの有効・無効設定
下記にコマンドを記載します。
有効化・無効化コマンド実行後のステータス確認方法は下記になります。
ファイアウォールの詳細設定
ufwでPortの許可方法などについて説明する前にdeny/allowについて触れます。
コマンド | 方式 | 内容 |
allow | ブラックリスト方式 | 基本的に全ての通信を許可して、 特定の通信のみ遮断する方法 |
deny | ホワイトリスト方式 | 基本的に全ての通信を遮断して、 特定の通信のみ許可する方法 |
ufwはデフォルト設定でホワイトリスト方式になっており、全ての通信を遮断する設定になっております。ブラックリスト方式にデフォルトを変更するには下記コマンドで変更できます。
デフォルト設定を把握した上で特定のPortやコマンドの許可を行う場合について下記にサンプルを記載します。
deny/allowで登録した内容を確認するには下記のコマンドで確認ができます。
注意いただきたい点がルールは上から登録された順に適応されるため、削除やルールの挿入を行う場合は下記のコマンドを使います。
ルールの登録が完了し、反映するには一度リロードをする必要があります。またルールの登録を大幅に間違えたなどあれば初期化するコマンドも用意されているため、紹介します。
ufwのlog出力有効化・無効化・ログレベルの設定
下記にログレベル別のコマンドを記載いたします。
ログはデフォルト設定だと/var/log/ufw.log
に出力されます。有効化時のログレベルごとの違いについて説明してきます。
off
完全に無効low
設定したルール以外でブロックした接続を出力medium
不正な接続、allow / denyに設定した接続、新たな接続を出力high
medium
+詳細な情報を出力full
すべての接続を出力
参照元