CentOS7では、デフォルトの状態ではポートが閉じてます。(無効)
CentOS7にWebサーバ(Apacheなど)をインストール後は、80番のポート(http)を開放する必要があります。
この記事では、CentOS7のfirewallコマンドでポートを開放する方法を説明します。
目次
CentOS7のfirewallコマンドでポートを開放する方法
環境
- ホストOS:Windows10
- ゲストOS:CentOS7
- ゲストOSの構築方法:VirtualBox、Vagrant
- ゲストOSのIPアドレス:192.168.33.10
結論
# firewall-cmd --zone=public --add-service=http
Webサーバ(Apache)の80番ポート(http)を開放したい場合は、上記のコマンドで実行できます。
ブラウザのURL入力欄に、Webサーバをインストールした仮想サーバの内部IPアドレスを入力後(❶)、上記の画像のようなページが表示されたら成功です。
CentOS7のfirewallコマンドでポートを開放する手順
Webサーバのインストールと起動
# yum -y install httpd
yum install
コマンドでパッケージ名 httpd を指定して、Webサーバ(Apache)をインストールします。
Complete! と表示されればインストールは完了です。
# httpd -version
Server version: Apache/2.4.6 (CentOS)
Server built: Nov 16 2020 16:18:20
httpd -version
コマンドでインストールされた Webサーバ(Apache)のバージョンを確認できます。
# systemctl start httpd
# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
systemctl start httpd
でWebサーバを起動します。
再起動時にサーバを起動させたい場合は、systemctl enable httpd
コマンドを実行します。
firewallを起動する
# systemctl start firewalld
# systemctl enable firewalld
systemctl start firewalld
コマンドでFirewallを起動します。
再起動時にサーバを起動させたい場合は、systemctl enable firewalld
コマンドを実行します。
firewallコマンドで特定のポートを開放する
# firewall-cmd --zone=public --add-service=http
success
Webサーバの80番ポート(http)を開放するには、上記のように firewalld コマンドで指定します。
ですが、これは一時的な反映なので、サーバを再起動すると無効になります。
# firewall-cmd --zone=public --add-service=http --permanent
success
# firewall-cmd --reload
success
恒久的に設定したい場合は、--permanent
を付けて、リロードします。
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0 eth1
sources:
services: dhcpv6-client http ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
上記のコマンドでポートが解放されたか確認できます。
http が追加されていることが確認できます。
ポート開放後にブラウザで確認してみる
ブラウザのURL入力欄に、Webサーバをインストールした仮想サーバの内部IPアドレスを入力します。(❶)
上記の画像のようなページが表示されたら成功です。
firewallコマンドで特定のポートを無効(閉じる)方法
# firewall-cmd --zone=public --remove-service=http
success
開放したポートを無効にする(閉じる)には上記のようなコマンドを実行します。
--add-service=http
の add
の部分が remove
になります。
まとめ
- CentOS7のfirewallコマンドで特定のポートを開放するには以下のようなコマンドを実行する。
firewall-cmd --zone=public --add-service=http
※80番ポート(http)の場合