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-ID: 6164503874

Url: https://administrator.de/forum/mikrotik-script-http-request-6164503874.html

Ausgedruckt am: 27.12.2024 um 16:12 Uhr

6017814589
6017814589 28.02.2023 aktualisiert um 16:51:19 Uhr
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.
commodity
commodity 28.02.2023 um 19:52:04 Uhr
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
neipsi
neipsi 28.02.2023 um 21:00:27 Uhr
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.
commodity
commodity 28.02.2023 um 23:03:11 Uhr
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
6017814589
6017814589 01.03.2023 aktualisiert um 07:27:04 Uhr
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.