web-dev-qa-db-ja.com

firewalldは443を有効にしていますが、接続を拒否しています

Centos 7でfirewalldを使用しています。

443が開くようにfirewalldを構成しました。

$ Sudo firewall-cmd --zone=public --permanent --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: couchdb2 dhcpv6-client http https ssh
  ports: 443/tcp 5984/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  sourceports: 
  icmp-blocks: 
  rich rules: 

$ Sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
Warning: ALREADY_ENABLED: 443:tcp
success

どうやらポート443は開いていますが...

$ curl https://127.0.0.1:443
curl: (7) Failed connect to 127.0.0.1:443; Connection refused

http://www.yougetsignal.com/tools/open-ports/ のWebツールを使用してテストします

IPアドレスとポート443を入力して取得:Closedポート443が{my-ip}で閉じられています

何がうまくいかないのでしょうか?開いているようですが、開きません。

この結果でnetstatをクエリします。

$ Sudo netstat -lnp | grep 443
udp        0      0 127.0.0.1:323           0.0.0.0:*                           
443/chronyd         
udp6       0      0 ::1:323                 :::*                                
443/chronyd

Nginx.confを修正して443を適切にリッスンすると、結果は次のようになります。

$ Sudo netstat -lnp | grep 443
tcp        0      0 0.0.0.0:443             0.0.0.0:*               
LISTEN      10197/nginx: master 
tcp6       0      0 :::443                  :::*                    
LISTEN      10197/nginx: master 
udp        0      0 127.0.0.1:323           0.0.0.0:*                           
443/chronyd         
udp6       0      0 ::1:323                 :::*                                
443/chronyd   
2
WebSnake

エラー接続が拒否されましたは通常、ファイアウォールがパケットの通過を許可したことを意味します(ファイアウォールが接続試行を積極的に拒否しない限り)が、宛先のポート番号で待機しているサービスはありません。

この場合、HTTPs Webサーバーが実行中でポート443をリッスンしていることを確認する必要があります。次のコマンドを使用して確認できます。

Sudo netstat -lnp | grep 443

編集: @Paulによるコメントのように、表示される出力は、ポート443でリッスンしているプロセスがないことを意味します。プロセスIDが443と一致し、ポート番号TCPプロトコル。次のような行を見つける必要があります。

tcp  0   0 0.0.0.0:443      0.0.0.0:*     LISTEN      <pid>/<proc_name>       
2
Khaled

--permanentでルールを追加した後、firewalldを再ロードする必要があります。そうしないと、--permanentなしでコマンドを再実行する必要があります。

--permanentと言うと、firewalldは設定を更新するだけで、再読み込みしません。

0
Andreas Rogge