さくらのVPSでCentOS7のポートを開放する

centos_port_open_top

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

firewall-cmdでポートの開放

さくらインターネットが提供するvpsにて、centos7のポートを開放してみます。centos6ではポートには「iptables」を利用していましたが、centos7からは「firewall-cmd」が基本となります。今回は「firewall-cmd」でポートを開放してみます。

 

firewall-cmd コマンドの使い方

firewall-cmd の主に利用するコマンドである
・ポートの状態の確認
・ポートの開放
・ポートの閉鎖
のコマンドを記載します。
なおポートの開放と閉鎖に付与している「–permanent」オプションは、恒久的な設定の変更という意味を持ちます。「–permanent」オプションを指定しないときは、一時的な設定の反映になります。

ファイヤーフォールの設定を確認するコマンド

firewall-cmd –list-all

新しいポートを開放するコマンド

firewall-cmd –add-port=[ポート名] –permanent

既存のポートを閉じるコマンド

firewall-cmd –remove-service=[ポート名] –permanent

ポートの開閉設定を反映するコマンド

firewall-cmd –reload

 

初期設定

まずは解放前の設定は記載します。

CentOS をサーバー環境にインストールした直後なので、ほぼポートが閉じている状態です。

[root@localhost]# firewall-cmd --list-all --zone=public
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: ssh dhcpv6-client
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

 

http(80番)ポートの開放

まずはウェブサイトを公開するための http(80番ポート)を開放します。

[root@localhost]# firewall-cmd --add-port=80/tcp --zone=public --permanent
success
[root@localhost]# firewall-cmd --reload
success
[root@localhost]# firewall-cmd --list-all --zone=public
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: ssh dhcpv6-client
  ports: 80/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

 

メール(smtp,smtp-submission,pop3,imap)ポートの開放

次にメールのポート(smtp,smtp-submission,pop3,imap)を開放します。

[root@localhost]# firewall-cmd --permanent --add-service=smtp --zone=public
success
[root@localhost]# firewall-cmd --permanent --add-service=smtp-submission --zone=public
success
[root@localhost]# firewall-cmd --permanent --add-service=pop3 --zone=public
success
[root@localhost]# firewall-cmd --permanent --add-service=imap --zone=public
success
[root@localhost]# firewall-cmd --reload
success
[root@localhost]# firewall-cmd --list-all --zone=public
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: ssh dhcpv6-client smtp smtp-submission pop3 imap
  ports: 80/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

 

特定のIPアドレスのみポートを開放する

最後に指定した IP アドレスからのみ接続できるポート開放の手順を記載しておきます。

用途としては、指定した外部サーバーからのみ MySQL に接続できるように IP アドレス指定でポートを開放したい!サーバー間で SSH ログインしたい!などサーバー間の連携を行うときに使用します。

記述方法は下記の通りです。

firewall-cmd –permanent –zone=public –add-rich-rule=”rule family=”ipv4″ source address=”[IPアドレス]” port protocol=”tcp” port=”[ポート番号]” accept”

〇MySQL(3306)のポートを開放したときのサンプル

[root@localhost]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.11.12" port protocol="tcp" port="3306" accept"
success
[root@localhost]# firewall-cmd --reload
success
[root@localhost]# firewall-cmd --list-all
(中略)
  rich rules: 
        rule family="ipv4" source address="192.168.11.11" port port="3306" protocol="tcp" accept
        rule family="ipv4" source address="192.168.11.12" port port="3306" protocol="tcp" accept