CentOS7のfirewallコマンドで特定のポートを開放する方法

CentOS7のfirewallコマンドで特定のポートを開放する方法

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)を開放したい場合は、上記のコマンドで実行できます。

CentOS7のfirewallコマンドでポートを開放する方法

ブラウザの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:

上記のコマンドでポートが解放されたか確認できます。

CentOS7のfirewallコマンドで特定のポートを開放する方法

http が追加されていることが確認できます。

ポート開放後にブラウザで確認してみる

CentOS7のfirewallコマンドでポートを開放する方法

ブラウザのURL入力欄に、Webサーバをインストールした仮想サーバの内部IPアドレスを入力します。(❶)

上記の画像のようなページが表示されたら成功です。

firewallコマンドで特定のポートを無効(閉じる)方法

# firewall-cmd --zone=public --remove-service=http
success

開放したポートを無効にする(閉じる)には上記のようなコマンドを実行します。
--add-service=httpadd の部分が remove になります。

まとめ

  • CentOS7のfirewallコマンドで特定のポートを開放するには以下のようなコマンドを実行する。
    firewall-cmd --zone=public --add-service=http
    ※80番ポート(http)の場合