neipsi
Goto Top

Mikrotik Script http-request

Hallo!

Ich möchte mit einem Script im Mikrotik-Router einen einfachen http-Request machen. Mit Port 80 funktioniert das auch tadellos. Beim Port 88 bekomme ich aber ein Timeout. Im Browser funktionert beides.

Mit diesem Befehl mache ich den Request:

/tool fetch url="http://192.168.88.200:88/php/phpinfo.php"
screenshot 2023-02-28 160536

Content-Key: 6164503874

Url: https://administrator.de/contentid/6164503874

Printed on: May 6, 2024 at 12:05 o'clock

Mitglied: 6017814589
6017814589 Feb 28, 2023 updated at 15:51:19 (UTC)
Goto Top
Der Port kann als Alternative auch separat im Parameter port aufgeführt werden.
/tool fetch url="http://192.168.88.200/php/phpinfo.php" port=88 output=user  
Ansonsten Firewall am Router checken ob der Port im output überhaupt offen ist. Und Das Logging -Level am Router erhöhen oder mit dem Sniffer/Wireshark checken was passiert, ist ja http läuft also alles im Klartext ab.

Tab key or the manual should always be your friend!

h.
Member: commodity
commodity Feb 28, 2023 at 18:52:04 (UTC)
Goto Top
Hallo,

ergänzend vielleicht mal checken, ob auf der 192.168.88.200 der Port 88 überhaupt offen ist, also keine Gerätefirewall den dropped.

Viele Grüße, commodity
Member: neipsi
neipsi Feb 28, 2023 at 20:00:27 (UTC)
Goto Top
Ja, der Port ist offen. Mit Wireshark hab ich auch schon mitgeschaut. Da kommt beim Port 88 nix raus, bei 80 sehe ich die Requests. Es ist jetzt nicht besonders schlimm, ich kann mit Port 80 auch arbeiten, nur möchte ich es gerne verstehen.

Vielleicht noch zum Hintergrund, was ich da mache:

Für ein Boniersystem auf Zeltfesten usw. habe ich Druckaufträge für die Bondrucker in einer Datenbank. Diese werden dann zyklisch von einem PHP-Script abgearbeitet. Und diesen Cronjob will ich gleich mit dem Mikrotik-Router machen. Bei meinem Entwicklungs-PC hab ich einen IIS, der halt auf Port 88 hört, weil 80 schon von einer anderen Seite belegt war. Ich hab die Seite auf dem 80er Port jetzt umgezogen, und bei meinem Printserver jetzt auch eine Bindung auf den 80er Port hinzugefügt. Somit wird über Port 80 und 88 das gleiche Script ausgeführt. Nur bei 88 tut sich nix.

In der Firewall hab ich auch eine Output-Regel für tcp und Dst. Port 88 eingerichtet. Tut sich aber leider nix.
Member: commodity
commodity Feb 28, 2023 at 22:03:11 (UTC)
Goto Top
In der Firewall hab ich auch eine Output-Regel für tcp und Dst. Port 88 eingerichtet. Tut sich aber leider nix.
Dann schau mal, was davor ist, das das dropped. Hast Du tatsächlich überhaupt drop-rules in der Output-Chain?

Und: kann es vielleicht sein, dass Dein Script tatsächlich den durchgehenden Datenverkehr durchleitet und Du eine Forward-Regel brauchst? Für den Aufruf vom Terminal des MT sollte die Output-Rule aber passen.

Viele Grüße, commodity
Mitglied: 6017814589
6017814589 Mar 01, 2023 updated at 06:27:04 (UTC)
Goto Top
Zitat von @neipsi:

Ja, der Port ist offen. Mit Wireshark hab ich auch schon mitgeschaut. Da kommt beim Port 88 nix raus, bei 80 sehe ich die Requests. Es ist jetzt nicht besonders schlimm, ich kann mit Port 80 auch arbeiten, nur möchte ich es gerne verstehen.

In der Firewall hab ich auch eine Output-Regel für tcp und Dst. Port 88 eingerichtet. Tut sich aber leider nix.

Wenn tatsächlich am Zieldevice keinerlei Request ankommt und die Firewall des Ziels Traffic vom Router selbst auf diesen Port erlaubt dann muss es auf dem Router selbst oder zwischen Router und Ziel hängen bleiben.
Gehe also strategisch vor und aktiviere als erstes das erweiterte Firewall-Logging auf dem MIkrotik und sniffe auch dort mal mit dem bordeigenen Sniffer den Traffic im Output. Wenn noch eine andere Firewall oder Switch zwischen Router und Ziel vorhanden ist mach das selbe auch dort.
So hangelst du dich bis zum Ziel und findest den Übeltäter.