GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS/RHEL 7 のリモート サーバーからの「接続が拒否されました」のトラブルシューティング (Firewalld または iptables サービスの問題)

問題

アプリケーションが他のサーバーから「接続拒否」を受けています。アプリケーションは localhost からアクセスでき、予期されるポートをリッスンします。

解決策

これは、ローカル サーバー上のファイアウォールが、他のサーバーからのインバウンド接続試行を破棄する場合に発生する可能性があります。デフォルトでは、CentOS/RHEL 7 は FIREWALLD サービスを使用して IPTABLES ルールを管理します。古い IPTABLES サブシステムは引き続き利用可能で、FIREWALLD サービスが無効になっている場合は直接使用できます。

FIREWALLD サービスが使用されているかどうかを確認する

システムで firewalld ターゲットがアクティブかどうかを確認するには、次のコマンドを使用します:

# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: active (running) since Thu 2017-12-21 15:03:59 EST; 4s ago
Docs: man:firewalld(1)
Main PID: 18880 (firewalld)
CGroup: /system.slice/firewalld.service
└─18880 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Dec 21 15:03:58 testserver systemd[1]: Starting firewalld - dynamic firewall daemon...
Dec 21 15:03:59 testserver systemd[1]: Started firewalld - dynamic firewall daemon.
Dec 21 15:04:01 testserver firewalld[18880]: WARNING: ICMP type 'beyond-scope' is not supported by the kernel for ipv6.
Dec 21 15:04:01 testserver firewalld[18880]: WARNING: beyond-scope: INVALID_ICMPTYPE: No supported ICMP type., ignoring for run-time.
Dec 21 15:04:01 testserver firewalld[18880]: WARNING: ICMP type 'failed-policy' is not supported by the kernel for ipv6.
Dec 21 15:04:01 testserver firewalld[18880]: WARNING: failed-policy: INVALID_ICMPTYPE: No supported ICMP type., ignoring for run-time.
Dec 21 15:04:01 testserver firewalld[18880]: WARNING: ICMP type 'reject-route' is not supported by the kernel for ipv6.
Dec 21 15:04:01 testserver firewalld[18880]: WARNING: reject-route: INVALID_ICMPTYPE: No supported ICMP type., ignoring for run-time.

上記の出力からわかるように、firewalld サービスはアクティブで実行中です。

IPTABLES サービスが使用されているかどうかを確認する

システムで iptables サービスが実行されているかどうかを確認するには、次のコマンドを使用します。

# systemctl status iptables.service
* iptables.service - IPv4 firewall with iptables
Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled; vendor preset: disabled)
Active: active (exited) since Thu 2017-12-21 17:51:12 UTC; 26min ago
Process: 440 ExecStart=/usr/libexec/iptables/iptables.init start (code=exited, status=0/SUCCESS)
Main PID: 440 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/iptables.service

Dec 21 17:51:12 testserver systemd[1]: Starting IPv4 firewall with iptables...
Dec 21 17:51:12 testserver iptables.init[440]: iptables: Applying firewall rules: [ OK ]
Dec 21 17:51:12 testserver systemd[1]: Started IPv4 firewall with iptables.

上記の出力からわかるように、iptables ターゲットは無効な状態です。

注意 :「iptables -L」を使用してファイアウォールを確認するだけでは十分ではありません。

CentOS/RHEL 7 より前では、iptables コマンドを使用してシステム ファイアウォールをチェックするだけで、ファイアウォールが使用されているかどうかを知ることができました。たとえば、次のコマンドで確認するだけで、ファイアウォール ルールを制御する方法を判断できます:

# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
...
INPUT_direct all -- anywhere anywhere
INPUT_ZONES_SOURCE all -- anywhere anywhere
INPUT_ZONES all -- anywhere anywhere
DROP all -- anywhere anywhere ctstate INVALID
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited

CentOS/RHEL 7 では、新しい FIREWALLD サービスまたは古い IPTABLES-SERVICE がファイアウォール ルールを制御できます。


Cent OS
  1. CentOS8またはRHEL8でネットワークサービスを再起動する方法

  2. CentOS / RHEL 7:vsftpd サービスを開始できません

  3. サーバーアプリケーションがリモートサーバーから「接続拒否」を取得する [firewalld または iptables が原因] – CentOS/RHEL 7

  1. CentOS/RHEL で firewalld を使用してサーバーからのすべてのトラフィックを許可する方法

  2. CentOS/RHEL 7 および 8 で firewalld の代わりに iptables を使用する方法

  3. CentOS/RHEL 8 で Firewalld を停止/無効にする方法

  1. xrdpリモートデスクトップをCentOS6/RHEL6にインストールします

  2. CentOS / RHEL 7 firewalld :コマンド ライン リファレンス (チート シート)

  3. CentOS / RHEL :iptables トラブルシューティング ガイド