배경:우리 회사는 내부 웹 기반 시스템 대시보드를 위해 두 개의 서버 인스턴스(개발 서버와 프로덕션 서버)를 호스팅합니다. 프로덕션 서버의 보안을 강화하기 위해 일반적으로 포트 80을 비활성화하고 다른 포트를 사용하여 웹 서버에 액세스합니다. 하지만 SSL 인증서가 곧 만료되도록 설정되어 있어 포트 80을 다시 활성화하려고 했습니다(http-01 챌린지 확인을 수행하기 위해). 개발 컴퓨터에서는 인증서를 활성화하고 갱신할 수 있었지만 프로덕션 컴퓨터에서는 동일한 작업을 수행할 수 없습니다.
문제:Ubuntu 20.04.1 시스템에서 호스팅되는 Apache 웹 서버에 연결할 수 없습니다. 나는 수많은 리소스와 유사한 질문을 아무 소용없이 탐색했습니다. Apache ports.conf
와 이 포트 80에서 수신 대기하고 있음 을 확인했습니다 . 또한 방화벽을 배제하기 위해 들어오는 모든 요청을 허용하도록 / 구성을 000-default.conf
일시적으로 설정했습니다 . 현재 를 실행하면 "연결이 거부되었습니다."라는 메시지가 반환됩니다. 그걸 토대로 보면 기기에 연결하고 있는 것 같은데 뭔가가 막고 있는 것 같네요.ufw
iptables
curl http://production.example.com
UFW 또는 iptables 외에 포트 80에 대한 연결을 차단할 수 있는 서비스가 있습니까?더 많은 정보가 필요하면 알려주세요! 미리 감사드립니다!
구성/테스트
컬 명령:
$ 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