로컬 RHEL 8 Apache 웹 서버는 다른 서브넷에서 사용할 수 없습니다.

로컬 RHEL 8 Apache 웹 서버는 다른 서브넷에서 사용할 수 없습니다.

RHEL 8 VM에 작은 Apache 웹 서버가 설정되어 있는데, 해당 특정 서브넷(10.xxx)에 있는 컴퓨터에서는 액세스할 수 있지만 다른 서브넷(172.xxx)에 있는 컴퓨터에서는 액세스할 수 없습니다. 이 웹 서버는 인터넷에 액세스할 수 없습니다.

문제를 해결하는 동안 방화벽과 SELinux를 일시적으로 비활성화하려고 시도했지만 둘 다 작동하지 않았습니다.

IP 172.xxx(웹 사이트가 작동하지 않음)를 사용하는 Windows 컴퓨터의 Powershell에서 다음을 얻습니다.

> tnc 172.22.6.9 -port 80
WARNING: TCP connect to (172.22.6.9 : 80) failed


ComputerName           : 172.22.6.9
RemoteAddress          : 172.22.6.9
RemotePort             : 80
InterfaceAlias         : Ethernet 3
SourceAddress          : 172.16.195.117
PingSucceeded          : True
PingReplyDetails (RTT) : 31 ms
TcpTestSucceeded       : False

10.xxx 서브넷(웹 사이트가 작동하는 곳)의 다른 컴퓨터에서는 다음과 같은 결과가 나타납니다.

> tnc 172.22.6.9 -port 80


ComputerName     : 172.22.6.9
RemoteAddress    : 172.22.6.9
RemotePort       : 80
InterfaceAlias   : Ethernet
SourceAddress    : 10.0.236.53
TcpTestSucceeded : True

Tcpdump는 다음을 표시합니다. 저는 이미 ssh를 통해 로그인했기 때문에 이것이 포트 22에 표시되는 것이라고 생각합니다.

$ tcpdump -nn -i ens192 | grep 172.16.195.117
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens192, link-type EN10MB (Ethernet), capture size 262144 bytes
 08:23:28.730189 IP 172.22.6.9.22 > 172.16.195.117.50600: Flags [P.], seq 664703141:664703221, ack 3210526827, win 488, length 80
08:23:28.730354 IP 172.22.6.9.22 > 172.16.195.117.50600: Flags [P.], seq 80:176, ack 1, win 488, length 96
08:23:28.730574 IP 172.22.6.9.22 > 172.16.195.117.50600: Flags [P.], seq 176:304, ack 1, win 488, length 128
08:23:28.730676 IP 172.22.6.9.22 > 172.16.195.117.50600: Flags [P.], seq 304:400, ack 1, win 488, length 96
08:23:28.730761 IP 172.22.6.9.22 > 172.16.195.117.50600: Flags [P.], seq 400:528, ack 1, win 488, length 128
08:23:28.730839 IP 172.22.6.9.22 > 172.16.195.117.50600: Flags [P.], seq 528:624, ack 1, win 488, length 96
08:23:28.760000 IP 172.16.195.117.50600 > 172.22.6.9.22: Flags [.], ack 624, win 1022, length 0
08:23:35.942843 IP 172.22.6.9.22 > 172.16.195.117.50600: Flags [P.], seq 624:896, ack 1, win 488, length 272
08:23:36.023088 IP 172.16.195.117.50600 > 172.22.6.9.22: Flags [.], ack 896, win 1021, length 0
08:24:01.938129 IP 172.22.6.9.22 > 172.16.195.117.50600: Flags [P.], seq 896:1200, ack 1, win 488, length 304
08:24:02.017682 IP 172.16.195.117.50600 > 172.22.6.9.22: Flags [.], ack 1200, win 1025, length 0
08:24:05.957775 IP 172.22.6.9.22 > 172.16.195.117.50600: Flags [P.], seq 1200:1472, ack 1, win 488, length 272
08:24:06.035691 IP 172.16.195.117.50600 > 172.22.6.9.22: Flags [.], ack 1472, win 1024, length 0
08:25:01.976052 IP 172.22.6.9.22 > 172.16.195.117.50600: Flags [P.], seq 1472:1776, ack 1, win 488, length 304
08:25:02.051839 IP 172.16.195.117.50600 > 172.22.6.9.22: Flags [.], ack 1776, win 1023, length 0
08:25:05.991836 IP 172.22.6.9.22 > 172.16.195.117.50600: Flags [P.], seq 1776:2048, ack 1, win 488, length 272
08:25:06.066825 IP 172.16.195.117.50600 > 172.22.6.9.22: Flags [.], ack 2048, win 1022, length 0
08:25:33.318464 IP 172.16.195.117 > 172.22.6.9: ICMP echo request, id 1, seq 282, length 40
08:25:33.318493 IP 172.22.6.9 > 172.16.195.117: ICMP echo reply, id 1, seq 282, length 40

방화벽 서비스가 비활성화된 경우에도 다들 어디부터 살펴보시겠습니까?

파일 - /etc/httpd/conf/httpd.conf 표시Listen 80

Firewalld가 실행 중일 때 제가 알아차린 한 가지는 "신뢰할 수 있는" 영역에 172.xxx CIDR 주소가 나열되지 않았다는 것입니다. 이제 방화벽이 비활성화되었기 때문에 이것이 중요한지 확실하지 않습니다.

$ firewall-cmd --get-active-zones
libvirt
  interfaces: virbr0
public
  interfaces: ens192
trusted
  sources: 10.0.0.0/16

이 명령의 출력

firewall-cmd --get-active-zones | grep -P '^[^\s]' | xargs -I{} firewall-cmd --info-zone={}


libvirt (active)
  target: ACCEPT
  icmp-block-inversion: no
  interfaces: virbr0
  sources:
  services: dhcp dhcpv6 dns ssh tftp
  ports:
  protocols: icmp ipv6-icmp
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
        rule priority="32767" reject
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192
  sources:
  services: http https ssh
  ports: 3389/tcp 9524/tcp 9524/udp 80/tcp 443/tcp
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
trusted (active)
  target: ACCEPT
  icmp-block-inversion: no
  interfaces:
  sources: 10.0.0.0/16
  services:
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

반품:

grep -PRn '^\s*Listen\s+' /etc/httpd 2>/dev/null

보여주다:

/etc/httpd/conf/httpd.conf:45:Listen 80

어떤 아이디어가 있나요? 감사해요.

관련 정보