この記事では、Ubuntuでファイアウォールを設定する方法をご紹介します。
Ubuntuにはiptablesというパケットフィルタリングの仕組みがデフォルトでインストールされています。しかし、初期状態では何も設定もされておらず、ファイアーウォールは機能していない状態です。
iptablesの設定は初心者には少しとっつきにくいため、ufwというパッケージをインストールしてファイアウォールを機能するようにしていきます。
目次
パッケージのインストール
まずはじめにパッケージをインストールします。
$ sudo apt -y install ufw
インストールしたら以下のコマンドでサービスを有効化します。
$ sudo systemctl enable ufw
$ sudo systemctl start ufw
サービスが稼働しているか確認します。
$ sudo ufw status verbose
状態: 非アクティブ
現段階では『非アクティブ』となっていても問題ありません。
ルールの追加
SSHを追加
実際に設定を追加していきます。まずはじめにSSHを許可します。
$ sudo ufw allow 22
ルールをアップデートしました
ルールをアップデートしました(v6)
設定を反映します。コマンドを実行すると「SSHの接続が切れる場合がある」との警告が表示されるので『y』を入力します。SSHのポート番号を変えている場合は中止してください。
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
ファイアウォールはアクティブかつシステムの起動時に有効化されます。
もう一度ステータスを確認すると、設定が追加され、ステータスもアクティブになりました。
ステータスを確認
先程は『非アクティブ』だったステータスが、ルールを追加することで『アクティブ』になりました。
$ sudo ufw status verbose
状態: アクティブ
ロギング: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
新しいプロファイル: skip
To Action From
-- ------ ----
22 ALLOW IN Anywhere
22 (v6) ALLOW IN Anywhere (v6)
その他のポートを追加する
SSH以外でよく使われるポートも以下のコマンドで追加できます。ポート番号の終わりに『/tcp』や『/udp』をつけてプロトコルも指定できます。
HTTPを追加
$ sudo ufw allow 80
HTTPSを追加
$ sudo ufw allow 443
MySQLを追加
$ sudo ufw allow 3306/tcp
DNSを追加
$ sudo ufw allow 53/udp
管理コマンドなど
ファイアウォールを有効化
$ sudo ufw enable
ファイアウォールを無効化
$ sudo ufw disable
設定の再読み込み
sudo ufw reload