この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
目次
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 をサーバー環境にインストールした直後なので、ほぼポートが閉じている状態です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[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番ポート)を開放します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
[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)を開放します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
[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)のポートを開放したときのサンプル
1 2 3 4 5 6 7 8 9 |
[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 |