WireShark에서 방화벽 삭제를 확인하는 방법

WireShark에서 방화벽 삭제를 확인하는 방법

두 대의 서버에 걸쳐 애플리케이션 설정이 있습니다. 방화벽이 두 서버 간의 통신을 차단하고 있기 때문에 애플리케이션이 실패합니다. 해당 포트를 열어달라고 요청할 수 있도록 차단되고 있는 모든 단일 포트를 파악하는 방법이 필요합니다.

나는 이 두 서버에서 tcpdump를 캡처했습니다. SYN을 찾은 다음 나중에 RST를 찾기 위해 차단된 포트를 얻는 올바른 방법입니까?

그렇다면 차단되는 모든 포트를 표시할 수 있도록 WireShark에서 생성할 수 있는 필터가 있습니까?

답변1

먼저 더 좋은 방법은 방화벽 서버에서 액세스하여 로그를 확인하는 것입니다.

이러한 종류의 액세스 권한이 없는 경우 몇 가지 조사를 수행해야 합니다.

Wireshark는 무슨 일이 일어나고 있는지 확인할 수 있지만 이를 수행하는 데 적합한 도구는 아닙니다. 이를 확인하려면 더 많은 도구를 사용해야 합니다.

다음과 같은 시나리오가 있다고 가정해 보겠습니다.

  • 서버에 액세스할 수 있지만 방화벽에는 액세스할 수 없습니다.

이 경우 Linux에서 nmap 및 nc 도구를 모두 실행하여 포트를 검색하는 것이 좋습니다.

░▒▓  │  /mnt/sda1/backup_home ▓▒░ nmap -Pn -v -v 10.1.1.20                                         ░▒▓ ✔ │ at 17:38:37  ▓▒░
Starting Nmap 7.93 ( https://nmap.org ) at 2023-01-24 17:39 -03
Initiating Parallel DNS resolution of 1 host. at 17:39
Completed Parallel DNS resolution of 1 host. at 17:39, 0.08s elapsed
Initiating Connect Scan at 17:39
Scanning 10.1.1.20 [1000 ports]
Discovered open port 8080/tcp on 10.1.1.20
Discovered open port 22/tcp on 10.1.1.20
Discovered open port 111/tcp on 10.1.1.20
Discovered open port 8000/tcp on 10.1.1.20
Discovered open port 9001/tcp on 10.1.1.20
Completed Connect Scan at 17:39, 0.49s elapsed (1000 total ports)
Nmap scan report for 10.1.1.20
Host is up, received user-set (0.047s latency).
Scanned at 2023-01-24 17:39:28 -03 for 1s
Not shown: 995 closed tcp ports (conn-refused)
PORT     STATE SERVICE    REASON
22/tcp   open  ssh        syn-ack
111/tcp  open  rpcbind    syn-ack
8000/tcp open  http-alt   syn-ack
8080/tcp open  http-proxy syn-ack
9001/tcp open  tor-orport syn-ack

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.59 seconds
nc -vnz 10.1.1.20 22                               ░▒▓ 1 ✘ │ took 10s  │ at 17:38:23  ▓▒░
Ncat: Version 7.93 ( https://nmap.org/ncat )
Ncat: Connected to 10.1.1.20:22.
Ncat: 0 bytes sent, 0 bytes received in 0.05 seconds.

보시다시피 저는 제 서버에 열려 있는 모든 포트를 조사하여 22번 포트가 사용 가능하도록 열려 있고 방화벽에 의해 차단되지 않았는지 확인했습니다.

하지만 문제가 있을 수 있습니다. 보여드리겠습니다.

░▒▓  │  /mnt/sda1/backup_home ▓▒░ ssh [email protected]                                               ░▒▓ ✔ │ at 17:39:29  ▓▒░
kex_exchange_identification: read: Connection reset by peer
Connection reset by 10.1.1.20 port 22
░▒▓  │  /mnt/sda/backup_home ▓▒░ 

이 호스트에 들어갈 수 없습니다. 문제는 방화벽의 일부 규칙이 SSH 키 교환을 차단하고 있다는 것입니다. 어떻게 확인할 수 있나요? 이를 확인하기 위해 Wireshark를 사용합니다.

나는 "를 선택했다어느"를 내 인터페이스로 사용하고 서버에 연결을 시도했는데 xxx.244의 방화벽이 내 입구를 차단하고 있다는 것을 발견했습니다. 저는 Wireshark에서 이 필터를 사용합니다.

!(http or ssdp)  &&  tcp.flags.reset==1

첫 번째 부분은 쓰레기를 필터링하는 것이고 두 번째 부분은 재설정을 얻는 것입니다.

[Wireshark 필터 및 숨겨진 방화벽이 진행 중][1]

두 번째 부분에서는 해당 호스트에 대해 ping을 수행할 때 문제 원인을 확인하고 동일한 캡처에서도 Tracepath 명령을 사용합니다. 캡처된 패킷의 두 번째 부분에서 볼 수 있듯이 이 추적에는 일부 차단이 발생했습니다.

[첫 번째는 핑이고 두 번째는 추적 경로 출력입니다.][2]

보시다시피 무슨 일이 일어나고 있는지 이해하려면 더 많은 도구를 사용해야 합니다. 로그가 있거나 경로 중간에 역방향 프록시가 있거나 다른 것이 있을 수 있는 경우 애플리케이션도 확인해야 합니다.

당신이 사용할 수있는체크 안함애플리케이션에서 사용해야 하는 각 포트를 사용하여 파일을 전송하기 위해 한쪽에서 간단한 서버를 시뮬레이션합니다.

클라이언트에서 파일을 생성하고 그 안에 휴지통을 넣습니다.

:>test.
cat <<EOF> test
asd
asdas
asd
asd
EOF

이 예에서 서버는 10.1.1.20입니다. 예를 들어, 이 서버의 포트 3333에서 netcat을 실행하십시오.

nc -lv 3333 > test

클라이언트에서 netcat을 실행하여 이 서버에 파일을 보냅니다:

nc -v 10.1.1.20 3333 <test

서버와 클라이언트에서 결과를 모니터링하세요. 필요한 모든 포트에 이것을 시도해 보십시오. 방화벽이 해당 포트 중 일부를 차단하는 경우 이 파일을 전송할 수 없습니다.

행운을 빌어요! [1]:https://i.stack.imgur.com/avf0y.png [2]:https://i.stack.imgur.com/p5ylM.png

관련 정보