背景:私の会社では、社内の Web ベース システム ダッシュボード用に、開発サーバーと本番サーバーの 2 つのサーバー インスタンスをホストしています。本番サーバーのセキュリティを強化するために、通常はポート 80 を無効にし、別のポートを使用して Web サーバーにアクセスします。ただし、SSL 証明書の有効期限がもうすぐ切れるため、ポート 80 を再度有効にしようとしました (http-01 チャレンジ検証を実行するため)。開発マシンでは証明書を有効にして更新できましたが、本番マシンでは同じことができません。
問題:Ubuntu 20.04.1 マシンでホストされている Apache Web サーバーに接続できません。多数のリソースや同様の質問を調べましたが、役に立ちませんでした。Apacheports.conf
と が000-default.conf
ポート 80 でリッスンしていることを確認しました。また、ファイアウォールを除外するために、すべての着信要求を許可するようにufw
/構成を一時的に設定しました。現在、 を実行すると、「接続が拒否されました」というメッセージが表示されます。これに基づいて、マシンに接続しているものの、何かがそれをブロックしているように見えます。iptables
curl http://production.example.com
UFW または iptables 以外に、ポート 80 への接続をブロックする可能性のあるサービスはありますか?さらに情報が必要な場合はお知らせください。よろしくお願いします。
構成 / テスト
curl コマンド:
$ curl -v http://production.example.com
* Trying xxx.xxx.xx.xx:80...
* TCP_NODELAY set
* connect to xxx.xxx.xx.xx port 80 failed: Connection refused
* Failed to connect to production.example.com port 80: Connection refused
* Closing connection 0
curl: (7) Failed to connect to production.example.com port 80: Connection refused
UFW設定:
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: allow (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
443/tcp ALLOW IN Anywhere
443/tcp (v6) ALLOW IN Anywhere (v6)
アパッチports.conf
と000-default.conf
Listen 80
<VirtualHost *:80>
ServerName production.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
ポート 80 が開いていることを確認するコマンド:
$ sudo lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
apache2 706 root 4u IPv6 20604 0t0 TCP *:http (LISTEN)
apache2 752 www-data 4u IPv6 20604 0t0 TCP *:http (LISTEN)
apache2 759 www-data 4u IPv6 20604 0t0 TCP *:http (LISTEN)
apache2 764 www-data 4u IPv6 20604 0t0 TCP *:http (LISTEN)
apache2 767 www-data 4u IPv6 20604 0t0 TCP *:http (LISTEN)
apache2 774 www-data 4u IPv6 20604 0t0 TCP *:http (LISTEN)
$ netstat -a | grep http | grep LISTEN
tcp6 0 0 [::]:http [::]:* LISTEN
類似の質問
- Apache アップデート後に接続が拒否されました
- https://superuser.com/questions/1187495/apache-2-4-reachable-but-refusing-the-connection
- アップデート -
コメントに従って、私は以下のコマンドを実行しました。この質問しかし、結果をどのように解釈すればよいかわかりません。
sudo tcpdump -n host 138.197.97.12 and port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
17:31:56.921857 IP 47.33.203.205.59520 > 138.197.97.12.80: Flags [S], seq 1979773428, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val 362696691 ecr 0,sackOK,eol], length 0
17:31:57.936229 IP 47.33.203.205.59520 > 138.197.97.12.80: Flags [S], seq 1979773428, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val 362697692 ecr 0,sackOK,eol], length 0
17:32:08.748828 IP 35.190.73.167.80 > 138.197.97.12.4957: Flags [S.], seq 3923531534, ack 2621902277, win 65535, options [mss 1430,sackOK,TS val 2683344831 ecr 873100626,nop,wscale 8], length 0
17:32:16.798047 IP 47.33.203.205.59520 > 138.197.97.12.80: Flags [S], seq 1979773428, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val 362715694 ecr 0,sackOK,eol], length 0