サイトアイコン スグブログ

【Linux】CentOSでfirewallの使い方!ポート開放や有効無効の確認方法

CentOSを立ち上げていざサービスを使って通信しようとするけど失敗してイライラすることはないでしょうか?

早くサービス使いたいのに。。と

CentOSでサービスをすぐ使用したい人

CentOSでサービス早く使いたいのに、エラーで使えません。firewallが原因と聞いたけど、どうすればよいですか?

通信できない原因の一つにfirewallがあります。

なので初期設定の時にCentOSでfirewallのよく使うコマンドをまとめます。

CentOSのfirewallの使い方

CentOSでfirewalldサービスを操作するコマンドは以下です。

firewall-cmd

firewalldサービスの設定を全て確認するコマンドは以下です。

firewall-cmd --list-all

firewalldサービス状態を確認するコマンド

firewall-cmd --state

結果が「running」になっているとfirewalldサービスが有効になっています。

逆に「not running」になっているとfirewalldサービスが無効になっています。

CentOSのfirewallでサービスポート開放する

CentOSのfirewallでポート開放するコマンド

CentOSのfirewallでポート開放するコマンドは以下です。

firewall-cmd --add-service=サービス名

実際にCentOSでポート開放してみる

ポート開放する前の状態は以下です。

firewall-cmd–list-allの結果

今回は「ftp」サービスをポート開放してみます。

firewall-cmd–add-serviceコマンド結果

「firewall-cmd –add-service=ftp」コマンドでポート開放しています。「success」と表示されました。

「firewall-cmd –list-all」コマンドで確認すると、ftpが追加されてポート開放できている事が確認できます。

CentOSのfirewallで永続的にポート開放するオプション

この設定ではOS再起動した時など元の設定に戻ってしまいます。

永続的にポート開放したい場合は「–permanent」オプションをつけましょう!

OS起動時の設定変更になる為、今すぐ有効にする場合は「firewall-cmd –reload」コマンドで再読み込みしましょう!そうすればすぐに反映され、次回起動時もポート開放されています。

ポート番号で開放する

ポート番号で開放するコマンド

CentOSのfirewallでポート番号で開放するコマンドは以下です。

firewall-cmd --add-port=サービス番号

実際にCentOSにてポート番号で開放してみる

ポート開放する前の状態は以下です。何も設定されていません。

[root@localhost ~]# firewall-cmd --list-all
  ports: 

今回は「3389」ポートのTCP通信を開放してみます。

firewall-cmd --add-port=3389/tcp --permanent

「firewall-cmd –add-port=3389/tcp –permanent」コマンドでポート開放しています。「success」と表示されました。

「firewall-cmd –list-all」コマンドで確認してみます。

追加したはずの「3389/tcp」が解放されていません。

追加したはずのポート番号が表示されない時の対処法

追加したはずのポート番号が表示されない時はサービスのリロードを行います。

「firewall-cmd –reload」コマンドでリロードすると「success」と表示されました。

[root@localhost ~]# firewall-cmd --reload
success

もう一度確認すると、3389/tcpが追加されてポート開放できている事が確認できます。

[root@localhost ~]# firewall-cmd --list-all
  ports: 3389/tcp

それでもポートが有効にならない時は、以下の記事を参照して確認してください。

firewallサービス自体を無効にして接続する

検証環境であれば手っ取り早くfirewallを無効にする方法もあります。

systemctl stop firewalld

firewalldサービスが無効になったか「firewall-cmd –state」コマンドで確認します。

「not running」になっていれば無効になっている事が確認出来ます。これで全てのポートが解放されます。

firewalldサービスの有効無効を他のコマンドで確認する

firewalldサービスを確認するその他のコマンド

firewalldサービスの有効無効化を確認するその他のコマンドは「systemctl」です。

firewalldだけでなく他のサービスの状態も確認するコマンドです。今回はfirewalldサービスを確認したいので以下のコマンドになります。

systemctl status firewalld.service

下のように省略しても可能です。

systemctl status firewalld

実際にその他のコマンドでfirewallサービスを確認する

実際にコマンドをたたいて確認してみます。

systemctl-status-firewalldの結果active

firewallサービスが有効な場合は「active(running)」と表示されます。

systemctl-status-firewalldの結果dead

firewallサービスが無効な場合は「inactive(dead)」と表示されます。

モバイルバージョンを終了