Flat lay of business agenda
Webサーバーを立ち上げたけれど、なぜか外部からアクセスできない。そんなときに見落としがちなのが、ファイアウォールの設定です。Linux環境ではセキュリティを高めるために、外部からのアクセスを制限する「ファイアウォール」が標準で有効になっていることがあります。
特に、HTTP通信で利用される「ポート80」が閉じられていると、ウェブページにアクセスできません。この記事では、「ufw allow 80」コマンドを使ってポート80を許可する方法をわかりやすく解説します。Linux初心者の方でも迷わず設定できるよう、コマンドの意味や注意点も丁寧に説明します。
UFW(Uncomplicated Firewall)は、その名のとおり「複雑ではないファイアウォール」という意味で、iptablesの設定を簡単に行うためのツールです。UbuntuなどのDebian系Linuxディストリビューションでは標準搭載されていることも多く、初心者にも扱いやすいのが特徴です。
たとえば、以下のような特徴があります。
UFWを使うことで、不要な通信をブロックし、必要な通信だけを許可するといった操作を簡単に行えます。
ポート番号とは、通信の「入り口・出口」のようなもので、どのサービスに対する通信かを識別するための番号です。
そのため、Webサーバーを公開するには、ポート80を許可しないと「ページが開かない」「接続エラーになる」などのトラブルが発生します。
sudo ufw allow 80
このコマンドは、HTTP通信で使われるポート番号80番の通信を許可するという意味になります。
sudo
:管理者権限でコマンドを実行ufw
:ファイアウォールツールUFWを呼び出すallow
:指定した通信を許可する80
:許可するポート番号(ここではHTTP用)このコマンドを実行することで、外部からのHTTPアクセスが通るようになります。
実際の手順を以下に示します。
まず、ufwがインストールされているかを確認します。
sudo ufw status
エラーが出た場合は、以下のコマンドでインストールしてください。
sudo apt update
sudo apt install ufw
ファイアウォールが無効化されている場合は、以下のコマンドで有効にします。
sudo ufw enable
※有効化すると、デフォルトで「全ての受信を拒否・全ての送信を許可」となります。
sudo ufw allow 80
または、サービス名で指定する方法もあります。
sudo ufw allow http
どちらも同じ意味です。
sudo ufw status
出力例:
Status: active
To Action From
-- ------ ----
80 ALLOW Anywhere
このように表示されていれば、ポート80の通信が許可されています。
たとえば、NginxをインストールしてWebサーバーを構築したときに、ポート80が閉じているとブラウザで表示できません。
以下のような手順で設定します。
sudo apt install nginx
sudo ufw allow 'Nginx HTTP'
または明示的に、
sudo ufw allow 80
とすれば、外部アクセスが可能になります。
もし間違えて設定してしまった場合は、以下のコマンドでルールを削除できます。
sudo ufw delete allow 80
サービス名で許可した場合は、こちらを使います。
sudo ufw delete allow http
これでポート80の許可が取り消されます。
ポート80を開けるということは、外部からのアクセスを受け入れる窓口を作るということです。Webサーバーを運用する際には、次のようなセキュリティ対策も併せて行うことが重要です。
とくにSSL化をしていないHTTP通信は暗号化されていないため、データの盗聴や改ざんのリスクがあります。ポート443(HTTPS)を開けてSSL証明書を導入することで、より安全な通信が可能です。
ERROR: problem running ufw-init
このようなエラーが出た場合は、再起動やログファイルの確認が必要です。
sudo systemctl restart ufw
一部のクラウドサービス(例:AWS、Google Cloud)では、クラウド側のセキュリティグループでポートが閉じていることもあります。
この場合は、サーバー側の設定だけでなく、クラウドの管理画面でもポートを開ける必要があります。
「sudo ufw allow 80
」は、LinuxでWebサーバーを外部に公開するために必須のコマンドです。設定はとてもシンプルですが、理解して使わないとセキュリティリスクにつながる可能性もあります。
Webサーバーを運用する際は、まずこのコマンドでポート80を開放し、通信が通ることを確認しましょう。そのうえで、SSL化やアクセス制御などの追加のセキュリティ対策も忘れずに行いましょう。