外部からWebサーバーにアクセスする

【連載コラム:Linuxを学ぼう(21)】
サーバーを扱う上で必須と言える技術が「Linux」。今回は動作させたWebサーバーに外部のWebブラウザーからのアクセスについて解説します。

最終更新日:2023年11月21日

今回は、動作させたWebサーバーに外部のWebブラウザからアクセスしてみます。インストールしたLinuxのサーバーは、外部からのネットワークアクセスをパケットフィルタリングを使って制御していることがあります。

パケットフィルタリングの設定を変更して、外部からのアクセスを受け入れられるようにする必要があります。


パケットフィルタリングの動作を確認する

まず、パケットフィルタリングが動作しているかどうかを確認します。いくつかの方法で確認できます。今回は、AlmaLinuxを使ってfirewalldによるパケットフィルタリングを例にしています。

firewalldサービスの確認

firewalldサービスが動作しているかどうかをsystemctlコマンドで確認します。

# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; preset>
     Active: active (running) since Mon 2023-09-25 17:01:04 JST; 5min ago
(以下略)

Active行がactive (running)となっているので、動作していることが確認できます。

firewall-cmdコマンドによる状態の確認

次にfirewall-cmdコマンドでどのようにパケットをフィルタリングしているかを確認します。確認するには--list-allオプションを付けて実行します。

# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources:
  services: cockpit dhcpv6-client ssh
  ports:
  protocols:
(以下略)

publicは、デフォルトで適用されるフィルタリングです。servicesにはsshなどがありますが、Webサーバーで使用するhttpがありません。

実際にアクセスしてみる

サーバー自身からcurlコマンドでWebサーバーにアクセスしましたが、ローカル接続はパケットフィルタリングの対象外なので問題なく接続できていました。サーバー以外のマシンからWebブラウザなどを使ってアクセスしてみてください。パケットフィルタリングが有効になっていると、エラーも返ってこないため、タイムアウトするまで何も表示されません。

パケットフィルタリングが有効になっている(であろう)ことが確認できたら、設定を変更してアクセスを許可します。

パケットフィルタリングの設定を変更する

firewall-cmdコマンドで、httpサービスを許可します。

$ sudo firewall-cmd --add-service=http --zone=public
success

設定を確認します。今回はserviceだけを表示します。

$ sudo firewall-cmd --list-service
cockpit dhcpv6-client http ssh

httpが追加されています。

アクセスが許可されたことを確認する

パケットフィルタリングの設定を変更して、Webサーバーへのアクセスを許可しましたので、再度外部のWebブラウザからアクセスしてみます。無事にWebページが表示されれば、パケットフィルタリングの設定は完了です。

このように、サーバー上でサービスを動かすだけでなく、アクセス経路でそのサービスが使用しているプロトコルが通るように設定する必要があります。

今回はサーバー自身のパケットフィルタリングを設定しましたが、実際のサーバーではルーターやファイアウォール、ロードバランサー、WAF(Web Application Firewall)などがサーバーのアクセス経路に挟まることがあります。正しく設定し、アクセス経路を確保することが必要です。


筆者紹介
宮原 徹 氏

宮原 徹 氏

株式会社びぎねっと

Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。

バックナンバー

第21回:外部からWebサーバーにアクセスする

第20回:Webサーバーを動かす

第19回:Webサーバーをインストールする

第18回:典型的なネットワークトラブルについて理解する

第17回:ネットワークの状態確認を理解する

第16回:アクセス権に関わる様々なことについて理解を深める

第15回:ファイルのアクセス権を理解する

第14回:パッケージをアップデートする dnf編

第13回:PAMを理解する

第12回:グループとは何かを理解する

第11回:sudoコマンドについて理解する

第10回:suコマンドで特権ユーザーになる

第9回:ユーザー権限を理解する

第8回:SSHによるリモートログイン

第7回:Linuxインストール後にやること

第6回:Linuxイストールの実際

第5回:Linuxインストールの準備

第4回:Linux学習のためのネットワーク環境

第3回:学習環境を用意する

第2回:Linuxをどう学ぶのか

第1回:Linuxを学ぼう

ページトップへ