サーバー構築時にはポートの設定をいじることは当たり前だけど
最近(?)では仮想環境(DockerやVagrant)でのアプリ開発も普通なので
自分である程度設定できたほうがいいよね。
Centos6とCentos7のポート開放
ご存じの通りCento6とCentos7でポート開放の方法は異なります。
Centos6ではiptablesをイジイジするのですが
/etc/sysconfig/iptables
Centos7ではそんなことしてもぱっぱらぱーです。
Centos7ではiptablesにかわりFirewalldデーモンを使用します。
一応redhatによると下記のように言っています。
The firewalld daemon provides a dynamically managed firewall with support for network “zones” to assign a level of trust to a network and its associated connections and interfaces.
実際やることは、Centos6とほとんど変わらないから
使うコマンドが違うよぐらいで大丈夫です。
普通はコマンドで済ますんだけど
ファイルを編集する方も覚えておきましょうね。
結局最後はコマンド使うけどね。
コマンドでポートを開放する
今回はrailsで使う3000番を解放させましょう。
使用するコマンドははfirewall-cmdです。
*rootでやってくださいね。
1 |
sudo firewall-cmd --permanent --add-port=3000/tcp |
一時的にだけで良いならpermanentを除いてください。
最後にfirewalldをリロードします。
1 |
sudo firewall-cmd --reload |
ファイルを編集してポートを開放する
/etc/firewalld/zones/public.xml を編集します。
最初の状態はおそらく
1 2 3 4 5 6 7 |
<?xml version="1.0" encoding="utf-8"?> <zone> <short>Public</short> <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description> <service name="dhcpv6-client"/> <service name="ssh"/> </zone> |
ここに
<port protocol="tcp" port="3000"/>
を追加します。
1 2 3 4 5 6 7 8 |
<?xml version="1.0" encoding="utf-8"?> <zone> <short>Public</short> <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description> <service name="dhcpv6-client"/> <service name="ssh"/> <port protocol="tcp" port="3000"/> ## <=これ </zone> |
最後にfirewalldをリロードします。
1 |
sudo firewall-cmd --reload |
開放したポートを確認する
reloadしたら、それが反映されているかチェックしましょう。
1 2 3 4 5 6 7 8 9 10 |
$ sudo firewall-cmd --list-all interfaces: enp0s3 sources: services: dhcpv6-client ssh ports: 3000/tcp masquerade: no forward-ports: icmp-blocks: rich rules: |
反映されてますね!!
いや~簡単だったね。
firewallcmdを使用してポートを開放したはずなのに、
まだサービスに接続できないとき、ルーターなど別の要因が考えられます。
その場合はサーバー内部からでなく、外部からポートの状態を確認するため、
Nampを利用しましょう。
https://omohikane.com/check_port_with_nmap/
もっと詳しく!!
そんな方はredhatのページでどうぞ。
気が向いたらまとめるね。
じゃあね~