web-dev-qa-db-ja.com

CentOS 7のファイアウォールポートを開く

CentOS 7を使用しています。ポート2888と3888が開いていることを確認する必要があります。

私は この記事を読みます しかし、CentOS 7 OSにはiptables saveコマンドがないので、これはうまくいきませんでした。

誰かが上記のURLはCentOS 7には有効ではないと私に言いました、そして私は これ に従うべきです。 しかし、この記事では、どのコマンドを実行する必要があるのか​​正確にはわかりません。

私も見つけました 

firewall-cmd --zone=public --add-port=2888/tcp 

しかし、これは再起動後も生き残れません。

それでは、どうやってポートを開いてリブート後も生き残ることができるでしょうか。

295
Knows Not Much

アクティブゾーンを見つけるには、このコマンドを使用します。

firewall-cmd --get-active-zones

それは、public、dmz、または何か他のものを言います。あなたが必要なゾーンにのみ適用する必要があります。 

一般公開の場合は

firewall-cmd --zone=public --add-port=2888/tcp --permanent

それから変更を有効にするためにファイアウォールをリロードすることを忘れないでください。

firewall-cmd --reload

それ以外の場合は、たとえばゾーンがdmzの場合は、自分のゾーンをpublicに置き換えます。

firewall-cmd --zone=dmz --add-port=2888/tcp --permanent
562
ganeshragav

ganeshragav による答えは正しいですが、あなたが使うことができることを知っておくと便利です。

firewall-cmd --permanent --zone=public --add-port=2888/tcp 

が既知のサービスであれば、次のものを使用できます。

firewall-cmd --permanent --zone=public --add-service=http 

その後、ファイアウォールをリロードします

firewall-cmd --reload

[Martin Peterのコメントを反映するように回答を修正、元の回答はコマンドラインの最後に--permanentがありました]

102
Sotsir

CentOS(RHEL)7は、ファイアウォールを、firewall-cmdを使用するように変更しました。これは、WindowsバージョンのPublic、Home、およびPrivateネットワークのようなゾーンの概念を持ちます。 ここ を見て、どれを使うべきだと思うかを見つけてください。 EL7はデフォルトでpublicを使用しているので、以下の例ではこれを使用しています。

どのゾーンを使用しているかをfirewall-cmd --list-allで確認し、それをfirewall-cmd --set-default-zone=<zone>で変更できます。

これで、どのゾーンでサービス(またはポート)を許可するのかがわかります。

firewall-cmd --permanent --zone=<zone> --add-service=http

firewall-cmd --permanent --zone=<zone> --add-port=80/tcp

次のコマンドを実行して、ポートが実際に開かれているかどうかを確認できます。 

firewall-cmd --zone=<zone> --query-port=80/tcp

firewall-cmd --zone=<zone> --query-service=http

ドキュメンテーション によると、

パーマネントモードでファイアウォールの設定を変更した場合、の選択は、ファイアウォールをリロードするかシステムを再起動したときに有効になります。

ファイアウォール設定はfirewall-cmd --reloadでリロードできます。

48
Rick Smith

Fedora、iptables経由でやりました

Sudo iptables -I INPUT -p tcp --dport 3030 -j ACCEPT
Sudo service iptables save

働くようだ

24
joviano dias

開いているポートを表示するには、次のコマンドを使用します。

firewall-cmd --list-ports

私たちはポートが開いているサービスを見るために以下を使います。

firewall-cmd --list-services

私たちは、ポートが開いているサービスと開いているポートを見るために以下を使います。 

firewall-cmd --list-all

ファイアウォールにサービスを追加するには、次のコマンドを使用します。この場合、サービスはファイアウォールで開くために任意のポートを使用します。

firewall-cmd --add-services=ntp 

このサービスを永続的に開くには、次のコマンドを使用します。

firewall-cmd —add-service=ntp --permanent 

ポートを追加するには、次のコマンドを使用します。

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

ファイアウォールを実行するには、次のコマンドを使用してリロードする必要があります。

firewall-cmd --reload

ヤアリ 

19
Hasan Barary

ganeshragav および Sotsir は直接に適用可能な正しいアプローチを提供しますが、/etc/firewalld/servicesに独自のサービスを追加できることに注意することは有用です。インスピレーションを得るために、firewalldの事前定義サービスがある/usr/lib/firewalld/services/を見てください。

この方法の利点は、サービスファイルで説明したように、後でこれらのポートが開いている理由がわかることです。また、タイプミスの危険なしにそれを任意のゾーンに適用することができます。さらに、サービスへの変更をすべてのゾーンに個別に適用する必要はなく、サービスファイルだけに適用する必要があります。

たとえば、/etc/firewalld/services/foobar.xmlを作成できます。

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>FooBar</short>
  <description>
    This option allows you to create FooBar connections between
    your computer and mobile device. You need to have FooBar
    installed on both sides for this option to be useful.
  </description>
  <port protocol="tcp" port="2888"/>
  <port protocol="tcp" port="3888"/>
</service>

(構文については、man firewalld.serviceを実行してください。)

このファイルが作成されたら、firewall-cmd --reloadを使用可能にしてから、次のコマンドで恒久的に何らかのゾーンに追加することができます。

firewall-cmd --permanent --zone=<zone> --add-service=foobar

すぐにアクティブにするには、firewall-cmd --reloadを続けます。

12
equaeghe

ここでの一番上の答えはうまくいきますが、私は Michael Hamptonの答え /に関連する質問へのより優雅な何かを見つけました。 --runtime-to-permanentの "new"(firewalld-0.3.9-11 +)firewall-cmdオプションを使用すると、実行時ルールを作成して永続化する前にテストして検証できます。

$ firewall-cmd --zone=<zone> --add-port=2888/tcp
<Test it out>
$ firewall-cmd --runtime-to-permanent

あるいは実行時のみの変更を元に戻すには:

$ firewall-cmd --reload

Antony Nguyenのコメントも参照してください 。どうやらfirewall-cmd --reloadはルールが削除されているいくつかのケースでは正しく動作しないかもしれません。その場合、彼はfirewalldサービスを再起動することを提案します。

$ systemctl restart firewalld
3
Neal Gokli

開いているポートを表示するには、次のコマンドを使用します。

firewall-cmd --list-ports ポートが開いているサービスを確認するには、以下を使用します。

firewall-cmd --list-services ポートが開いているサービスと開いているポートを表示するには、以下を使用します。

firewall-cmd --list-all ファイアウォールにサービスを追加するには、次のコマンドを使います。

firewall-cmd --add-services = ntp このサービスを恒久的に開くには、次のコマンドを使用します。

firewall-cmd-add-service = ntp --permanent ポートを追加するには、次のコマンドを使用します。

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

2
Hasan Barary

Centos 7 FIrewalldで複数のポートを許可する場合は、次のコマンドを使用できます。

#firewall-cmd --add-port={port number/tcp,port number/tcp} --permanent

#firewall-cmd --reload


And check the Port opened or not after reloading the firewall.


#firewall-cmd --list-port


For other configuration [Linuxwindo.com][1]
0
Vinay Patil

Firewalldはiptablesのベテランにとっては少し直感的ではありません。簡単に設定可能なツリーでiptables駆動のファイアウォールをiptablesのような構文で使いたい人は、firewalldをfwtreeに置き換えてみてください。 https://www.linuxglobal.com/fwtree-flexible-linux-tree -based-firewall/ その後、次の操作を行います。

 echo '-p tcp --dport 80 -m conntrack --cstate NEW -j ACCEPT' > /etc/fwtree.d/filter/INPUT/80-allow.rule
 systemctl reload fwtree 
0
Eric Wheeler

あなたがcentos 6以前のようにiptablesサービスに精通しているならば、あなたはまだ手動インストールでiptablesサービスを使うことができます:

ステップ1 =>インストールepelリポジトリ

yum install epel-release

ステップ2 => iptablesサービスをインストールする

yt install iptables-services

ステップ3 => firewalldサービスを停止

systemctl stop firewalld

ステップ4 =>起動時にfirewalldサービスを無効にする

systemctl disable firewalld

ステップ5 => iptablesサービスを開始

systemctl start iptables

ステップ6 =>起動時にiptablesを有効にする

systemctl enable iptables

/ etc/sysconfig/iptablesでiptablesの設定を編集できます。

だから - >編集ルール - >リロード/再起動。

firewalldのような同じ機能を持つ古いセントのようにしなさい。

0
dek.tiram