サーバーのファイアウォール設定基礎!初心者向けにufwの使い方を解説
クラウドサーバー(VPS)を契約し、自分だけの環境を手に入れたら、次に絶対にやらなければならないのが「セキュリティ対策」です。
インターネット上にサーバーを公開するということは、世界中の誰もがアクセスできる状態(=常にハッカーから狙われる状態)を意味します。そこで、不要な侵入者をシャットアウトするために設定するのが「ファイアウォール(Firewall)」です。
今回は、IT初心者でも失敗せずに安全な「戸締まり」ができるよう、ファイアウォールの仕組みと、最も簡単な設定ツールである「ufw」の使い方をわかりやすく解説します。
ファイアウォールとは?「サーバーの優秀な門番」
以前の記事で、「ポート番号はサーバーの部屋番号(窓口)」だと解説しました。
ファイアウォールとは、そのすべての部屋の前に立つ「優秀な門番」のことです。門番に対して、「この部屋へのアクセスは許可して」「この部屋へは誰も通さないで」というルールを教えてあげるのが、ファイアウォール設定の目的です。
- 許可する(Allow):Webサイトを表示するための「80番(HTTP)」や「443番(HTTPS)」のポートには、一般のお客さんをどんどん通す。
- 拒否する(Deny):それ以外の不要なポートには、怪しい訪問者が来ても一切通さない。
このように、「必要な窓口だけを開け、それ以外はすべて閉じる」のがセキュリティの鉄則です。
初心者は「iptables」より「ufw」を使おう
Linuxサーバーでファイアウォールを設定しようと調べると、必ず「iptables(アイピーテーブルズ)」と「ufw(ユーエフダブリュー)」という2つの言葉が出てきます。
- iptables:昔からある伝統的なツール。非常に細かく複雑なルールを作れる反面、設定の文法が難しく、初心者が触ると高確率でパニックになります。
- ufw(Uncomplicated Firewall):直訳すると「複雑じゃないファイアウォール」。難解なiptablesを、初心者でも直感的な短いコマンドで操作できるように作られた便利なツールです。
現在主流のUbuntuなどのLinuxOSでは、最初からこの「ufw」が使えるようになっています。今回はこのufwを使って、一番簡単な設定手順を見ていきましょう。
失敗しない!ufwの基本設定4ステップ
それでは、実際に黒い画面(ターミナル)にコマンドを打ち込んで設定を進めます。設定は必ず「管理者権限(sudo)」で行います。
ステップ1:現在の状況を確認する
まずは門番が働いているか(有効か無効か)を確認します。
sudo ufw status
初期状態では「Status: inactive(無効)」と表示されるはずです。まだ門番が機能していない状態です。
ステップ2:基本ルールを「すべて拒否」にする
次に、門番に「これから指定する窓口以外は、外からのアクセスをすべて拒否してね」と伝えます。
sudo ufw default deny
ステップ3:【超重要】必要なポートを開ける
ここが一番の山場です。Webサイトを公開するために必要なポートを開けます。
- Webサイト用(HTTP):
sudo ufw allow 80 - 安全なWebサイト用(HTTPS):
sudo ufw allow 443
【⚠️ 初心者が一番やりがちな大失敗】
ここで絶対に忘れてはいけないのが、「自分が今サーバーを遠隔操作しているSSHのポート」を開けることです。
もし、SSHのポート(初期設定なら22番、以前の記事で変更したならその番号)を開け忘れたままステップ4に進むと、自分自身もサーバーから締め出されて二度と操作できなくなります。
- SSH用(例として変更後の50000番の場合):
sudo ufw allow 50000
ステップ4:ファイアウォールを起動(有効化)する
最後に、門番に仕事を始めさせます。
sudo ufw enable
「Command may disrupt existing ssh connections. Proceed with operation (y|n)?(今の接続が切れるかもしれないけど続ける?)」と聞かれるので、y を押してEnterを押します。
「Firewall is active and enabled on system startup」と表示されれば設定完了です。念のため、もう一度 sudo ufw status と打ち込むと、現在開いているポートの一覧が綺麗に表示されます。
まとめ:戸締まりをしっかりして安全なサーバー運営を
ファイアウォールの設定は、「自分の家(サーバー)の鍵をしっかりかける」ための基本中の基本です。
- ファイアウォールは、不要な通信をブロックする門番。
- 初心者には複雑な iptables ではなく、簡単な ufw がおすすめ。
- 設定を有効にする前に、必ず「SSHのポート」を開けたか確認する(締め出し防止)。
「必要なものだけを開け、使わないものは閉じる」というルールさえ守れば、ハッカーの攻撃リスクは劇的に下がります。安心してサイト運営を進めるためにも、サーバーを立ち上げたら真っ先にこの設定を済ませておきましょう。
Q. 間違えて自分を締め出して(アクセスできなく)なってしまいました!
A. 焦らなくても大丈夫です。ConoHa VPSやさくらのVPSなどであれば、ブラウザ上の管理画面(コントロールパネル)に「コンソール」という機能があります。そこから直接サーバーの黒い画面を開き、sudo ufw disable と打ち込んで一度ファイアウォールを無効化すれば、再び外から入れるようになります。
Q. エックスサーバーなどのレンタルサーバーでもこの設定は必要ですか?
A. いいえ、不要です。一般的なレンタルサーバーの場合、ファイアウォールやセキュリティの設定はすべて運営会社(大家さん)が完璧に管理してくれているため、ユーザーが自分でコマンドを打つ必要はありません。
Q. 間違えて開けてしまったポートを閉じるには?
A. sudo ufw delete allow ポート番号(例:sudo ufw delete allow 80)と入力することで、一度設定した許可ルールを取り消す(閉じる)ことができます。
