So suchen Sie in WireShark nach Firewall-Ausfällen

So suchen Sie in WireShark nach Firewall-Ausfällen

Wir haben eine Anwendung auf zwei Servern eingerichtet. Die Anwendung schlägt fehl, weil eine Firewall die Kommunikation zwischen den beiden Servern blockiert. Ich muss herausfinden, welche Ports blockiert sind, damit ich die Öffnung dieser Ports anfordern kann.

Ich habe TCPdumps auf diesen beiden Servern erfasst. Ist die richtige Methode, um den blockierten Port abzurufen, nach einem SYN und dann später nach einem RST zu suchen?

Wenn ja, gibt es einen Filter, den ich in WireShark erstellen kann, mit dem ich alle blockierten Ports anzeigen kann?

Antwort1

Zunächst ist es besser, von Ihrem Firewall-Server aus Zugriff auf die Protokolle zu erhalten.

Sie müssen einige Nachforschungen anstellen, wenn Sie nicht über diese Art von Zugriff verfügen.

Wireshark kann bestätigen, was passiert, ist aber kein geeignetes Tool dafür. Sie müssen weitere Tools verwenden, um es zu überprüfen.

Nehmen wir an, Sie haben ein Szenario:

  • Sie haben Zugriff auf den Server, aber keinen Zugriff auf die Firewall.

In diesem Fall empfehle ich Ihnen, sowohl das Nmap- als auch das NC-Tool unter Linux auszuführen, um Ports zu prüfen.

░▒▓  │  /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.

Wie Sie sehen, habe ich alle geöffneten Ports auf meinem Server geprüft und bestätigt, dass Port 22 zur Nutzung geöffnet ist und nicht durch eine Firewall blockiert wird.

Aber es könnte ein Problem geben. Ich zeige es Ihnen.

░▒▓  │  /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 ▓▒░ 

Ich kann nicht auf diesen Host zugreifen. Das Problem ist, dass eine Regel in der Firewall den SSH-Schlüsselaustausch blockiert. Wie kann ich das bestätigen? Ich verwende Wireshark, um das zu bestätigen.

Ich wählte "beliebig" als meine Schnittstelle und dann habe ich versucht, eine Verbindung zum Server herzustellen und festgestellt, dass eine Firewall bei xxx.244 meinen Zugang blockiert. Ich verwende diesen Filter in Wireshark.

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

Der erste Teil dient zum Filtern des Mülls und der zweite Teil zum Zurücksetzen.

[Wireshark-Filter und versteckte Firewall sind auf dem Weg][1]

Der zweite Teil bestätigt eine Problemursache, wenn ich einen Ping an diesen Host ausführe und bei derselben Erfassung auch den Befehl „Tracepath“ verwende. Dieser Trace ist unterwegs auf einige Blockaden gestoßen, wie Sie im zweiten Teil der erfassten Pakete sehen können.

[erstens ist Ping und zweitens ist Tracepath-Ausgabe][2]

Wie Sie sehen, müssen Sie weitere Tools verwenden, um zu verstehen, was passiert. Sie müssen auch Ihre Anwendung überprüfen, ob sie Protokolle enthält, oder ob sich in der Mitte des Pfads ein Reverse-Proxy oder etwas anderes befindet.

Sie könnenkeineum auf einer Seite einen einfachen Server zu simulieren und Dateien über jeden Port zu übertragen, den Sie in Ihrer Anwendung verwenden müssen.

Erstellen Sie eine Datei in einem Client und legen Sie etwas Papierkorb hinein.

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

Ihr Server ist in diesem Beispiel 10.1.1.20. Führen Sie auf diesem Server einen Netcat auf Port 3333 aus, zum Beispiel:

nc -lv 3333 > test

Führen Sie netcat im Client aus, um eine Datei an diesen Server zu senden:

nc -v 10.1.1.20 3333 <test

Überwachen Sie die Ergebnisse auf Ihrem Server und Client. Versuchen Sie dies mit allen erforderlichen Ports. Wenn Ihre Firewall einige dieser Ports blockiert, können Sie diese Datei nicht übertragen.

Viel Glück! [1]:https://i.stack.imgur.com/avf0y.png [2]:https://i.stack.imgur.com/p5ylM.png

verwandte Informationen