【第5回】firewalld徹底攻略!IPアドレスの理解とサービス公開の通信制御|新入社員のためのLinux基礎講座

こんにちは、リナックス先生です。第4回では無事にApacheをインストールし、サービスとして起動させることができましたね。しかし、まだブラウザからアクセスしても「サイトが表示されない」という壁にぶつかっているはずです。

今回はその原因である「ファイアウォール」の正体を解き明かします。インターネットという大海原にサーバーを公開する以上、無防備な状態は非常に危険です。ネットワークの基礎知識を整理しながら、AlmaLinux 9の標準ツールであるfirewalldを自在に操れるようになりましょう。

コウ君

先生!Apacheは動いているのに「応答がありません」って出ちゃいます。もしかしてどこか設定を間違えたんでしょうか…?

リナックス先生

安心して、コウ君。それはAlmaLinuxがしっかり仕事をしている証拠よ。Linuxにはデフォルトで「許可したもの以外は通さない」という鉄の門番がいるの。今日はその門番に『Webの通信(80番ポート)を通していいよ』と許可を出す手順を教えるわね!

【全8回】新入社員のためのLinux基礎講座:カリキュラム一覧

  • 第1回:ConoHa VPSで始めるAlmaLinux 9環境構築とSSH接続の極意
  • 第2回:現場で迷わない!標準ディレクトリの役割と効率的なファイル操作コマンド
  • 第3回:セキュリティの基本!rootに頼らない適切な権限設計とsudoの運用
  • 第4回:DNF徹底攻略。dnfコマンドの使い方とWebサーバー(Apache)のセットアップ
  • ▶ 第5回:firewalldとIPアドレスの理解。サービスを安全に公開するための通信制御(今ここ!)
  • 第6回:エンジニアの嗜み「Vim」の操作と、タイムゾーン・ロケール等のシステム設定
  • 第7回:サーバーが重い原因を探る!systemdの操作とリソース監視(top/ps/df)
  • 第8回:運用のプロへの第一歩。バックアップ処理を自動化するシェルスクリプトの作成

1. IPアドレスとポート番号:ネットワークの住所と窓口

ネットワークを理解する上で避けて通れないのがIPアドレスポート番号です。

  • IPアドレス: ネットワーク上の「住所」です。ConoHa VPSで割り振られた 123.456.78.9 のような数字がこれに当たります。
  • ポート番号: 建物にある「窓口」のようなものです。一つの住所(サーバー)の中で、どのサービスと通信するかを決めます。
サービス名 標準ポート番号 役割
SSH 22 リモートログイン用
HTTP (Apache) 80 Web閲覧用(暗号化なし)
HTTPS 443 Web閲覧用(暗号化あり)
DNS 53 名前解決用

現在、コウ君のサーバーでは「22番(SSH)」の門だけが開いており、「80番(Web)」の門が閉じているため、ブラウザから見ることができないのです。


2. firewalldの基本概念:ゾーンとサービス

AlmaLinux 9では、firewalldという動的な管理ツールを使います。重要なポイントは「ゾーン」という考え方です。

「このネットワーク(LAN内)は信頼する」「このネットワーク(インターネット)は警戒する」といった具合に、場所に合わせてセキュリティレベルを切り替えられます。VPSの場合、通常は public ゾーンが適用されています。

💡 プロのノウハウ:現在の設定を確認するコマンド
設定を変更する前に、必ず現状を把握するのがインフラエンジニアの鉄則です。

sudo firewall-cmd --get-active-zones
sudo firewall-cmd --list-all

これで、どのゾーンが有効で、どのポートが許可されているか一目瞭然になります。


3. 実践!Webサーバー(HTTP)の通信許可設定

それでは、Apache(80番ポート)への通信を許可してみましょう。firewall-cmdコマンドを使用します。

手順(1) 通信の許可を追加する

sudo firewall-cmd --permanent --add-service=http
  • --permanent: 「恒久的な設定」にするためのオプションです。これを付けないと、再起動した時に設定が消えてしまいます。
  • --add-service=http: HTTP(80番)を許可します。直接 --add-port=80/tcp と書くことも可能です。

手順(2) 設定を反映させる

--permanent を付けた設定は、リロードしない限り有効になりません。

sudo firewall-cmd --reload

これで、ブラウザにサーバーのIPアドレスを打ち込んでみてください。Apacheのテストページ(Welcome画面)が表示されたら成功です!


4. 現場の流儀:特定の接続元だけを許可する「リッチルール」

現場では、「SSH(22番)は社内のIPアドレスからしか受け付けない」といった、より細かい制御が求められます。これを実現するのがリッチルールです。

# 例:特定のIP(203.0.113.10)からのみSSH接続を許可する
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.10" service name="ssh" accept'
sudo firewall-cmd --reload

⚠️ トラブルシューティング / 注意点
firewalldの設定ミスで一番怖いのは「自分自身がSSHログインできなくなること」です。SSHの許可を消したり、source addressを間違えて設定すると、二度と繋がらなくなります。VPSの場合、ConoHaのコントロールパネルにある「コンソール」からログインして修正できますが、作業前には必ずSSHの接続が維持されているか別ウィンドウで確認する習慣を付けましょう。


5. まとめと次回予告

第5回では、サーバーの「門番」であるネットワーク管理を学びました。

  • IPアドレスは住所、ポート番号は窓口。
  • firewalldpublicゾーンで外部からの通信を制御する。
  • 設定変更には--permanentを付け、--reloadで反映させる。
  • リッチルールを使いこなせば、プロレベルの高度な制限が可能。

これでWebサーバーの公開まで完了しましたが、今のApacheの画面にはデフォルトのページが表示されているだけです。自分のWebサイトを作るには、設定ファイルを編集しなければなりません。

次回の第6回では、「テキスト編集とシステム設定」をテーマに、Linuxエンジニアの必須技能Vimの操作方法と、サーバーの時刻(タイムゾーン)設定などを解説します。ついに「黒い画面」でファイルを自在に書き換える快感を味わう時が来ました。お楽しみに!

▼ サーバー構築・開発を学ぶならVPSで ▼

エンジニア必須の環境
「おすすめVPS」

VPSランキングを見る

技術スキルを活かす
「ITエンジニア転職」

転職エージェントを見る

コメント