Page 1 of 1

Firewall erweiterung -> Zugriff auf HOSTname ebene an PORT X

Posted: Mon 19. Jun 2023, 20:36
by blackpanther
Vorweg, sollte der Thread an einer falschen stelle platziert worden sein, erbitte ich eine verschiebung, vielen dank.

---

Hallo zusammen, anbei habe ich eine Frage.

Ich betreibe auf meiner Maschine einen TS3 Server, und einen IRC Chat. (Unrealircd)

Auf der maschine ist unter anderem Keyhelp in der Aktuellen Version installiert.

Schon seit ettlichen Monaten ist es schon so, das ich irgendwellche scriptkiddys habe, die sich auf den IRC aufschalten, und dann blödsinn anstellen.
Es sind grundsätzlich ausländische IP's die das tun.

Einfach her gehen, und "/Gline nickname grund" reicht nicht, da unter anderem im sekunden tackt die nicknames geändert werden.
Zudem sind sie im nu wieder offline, und kommen mit anderen ips wieder.

Dabei wird unter anderem auch mein TS3 Server in beschlag genommen.

Ich habe schon ettliches in bezug auf IP Sperren versucht, und ganze netze schon geblockt, aber das hilft nichts, weil dann einfach proxys aus anderen netzen kommen, zu derer ich dann wieder händisch prüfen muss, wie ist derer iprange u.s.w.

Das alles wird mir mit der zeit echt zu umständlich, und ich möchte eine erweiterung für die Firewall implementieren.

Jetzt kann man argumentieren, das ich den chatserver ja mittels Passwort versehen könnte, und wer das passwort nicht kennt, kommt nicht drauf.

Soweit richtig, aber ich habe mir ja in bezug auf die erweiterung ja etwas gedacht, zumal man es ja auch noch auf andere ports anwenden könnte.

Hauptsächlich wird der IRC als Plattform von mir und einigen freunden benutzt, um ein Schriftlich, also Textbasiertes Rollenspiel zu schreiben.

Ich stelle mir Folgendes vor:

(Folgende angaben sind nur beispiele)

IP: 123.123.123.123 hostname: irgend.ein.hostname.com

Der "Client" bzw. Anfragende Rechner, nimmt kontakt zu meinem server auf, indem er den IRC Port anspricht, z.b. 506667 bzw. 506697.

(Ja, ich weiss, die standard Ports lauten 6667 bzw. 6697, aber ich habe unter anderem andere ports nehmen müssen, und auch das zeigt keine wirkung, weil sich dann jemand tatsächlich die mühe macht, und nutzt einen portscanner, und dann geht die sache wieder von vorne los)

Als Beispiel, baut der anfragende client jene verbindung auf.

Die Firewall bräuchte eine änderung, damit folgendes Script zum einsatz kommen kann:

"check_dns.sh"

Mit Folgenden Inhalt:

Code: Select all

#!/bin/bash
host_ip="$1"
expected_hostname="$2"

# Perform nslookup
nslookup_output=$(nslookup "$host_ip")
echo "nslookup output: $nslookup_output"
nslookup_hostname=$(echo "$nslookup_output" | awk '/name =/ {gsub(/.*name = /,""); print}' | tr -d '\n')
echo "nslookup hostname: $nslookup_hostname"
nslookup_hostname=${nslookup_hostname::-1}
echo "trimmed nslookup hostname: $nslookup_hostname"

# Perform dig -x
dig_output=$(dig -x "$host_ip" +short)
echo "dig output: $dig_output"
dig_hostname=$(echo "$dig_output" | sed 's/\.$//')
echo "dig hostname: $dig_hostname"

# Compare hostnames
if [ "$nslookup_hostname" = "$expected_hostname" ] && [ "$dig_hostname" = "$expected_hostname" ]; then
    echo "ALLOW"
else
    echo "DENY"
fi
Wenn der Server, bzw. die Firewall bemerkt, das ein connect an einem bestimmten port durchgeführt wird, übergibt die Firewall 2 Daten an das script: IP + Hostname

Nun komme ich zu meinem "Problem" denn bis hier hin, ist es "Theorie".

die Praxis, würde laut "Chatgpt" in etwa so aussehen:

Code: Select all

iptables -A INPUT -p tcp --dport 506667 -m state --state NEW -m string --string "dynamic.kabel-deutschland.de" --algo bm -m conntrack --ctstate NEW -m comment --comment "Allow access to SSH only for matching dynamic.kabel-deutschland.de hostnames" -j `./check_dns.sh %d %h | grep -q ALLOW && echo "ACCEPT" || echo "DROP"`
nun muss man sich allerdings vorstellen, das hier mehrere "Regeln" erstellt werden müssen, zum einen Vodafone, in meinem Fall Kabeö-Deutschland (Das würde mich unter anderem betreffen)

Und dann nochmal für andere ISP's, hier u.a. Telekom via:

"dyn.telekom.de"

Dann muss noch eine weitere, wichtige zeile aufgenommen werden:

Code: Select all

iptables -A INPUT -p tcp --dport 506667 -m state --state NEW -m conntrack --ctstate NEW \
-m comment --comment "Drop access to SSH for all other hostnames" \
-j DROP
Mit diesem Code, wurde festgelegt, das alles was nicht zu den festgelegten ISP's passt, gedropped werden soll.
Am oberen beispiel, haben wir die IP 123.123.123.123 und als hostname: irgend.ein.hostname.com das Script (dns_check.sh) prüft nun IP + Hostname.

Die IP muss hierbei zum hostname passen, und auch umgekehrt, zumal die IP Daten geprüft werden, ob sie zum Hostname gehören, und meiner vorgabe entsprechen, bzw. wenn alles gut ist, ein "ALLOW" kommt, wonach der jenige passieren darf.

Die Firewall stellt diese daten dem script zur verfügung, und wartet die entsprechende antwort ab, und reagiert dann entsprechend.
Max. ca. 2 sekunden.

Und nun komme ich zu dem teil, wo ich jetzt nicht weiter komme - wie gesagt, das ist bis hierhin erstmal "Theorie" im Händischen also "Manuell" in der Shell klappt das ja mit der prüfung.

Ich habe nur das problem, das ich die anweisung nicht in die Firewall interegieren kann, weil das Keyhelp system, oder viel mehr das Design für die einstellungen der Firewall regeln keine "erweitereten" regelungen zulassen.

Daher wollte ich wissen, wie kann ich dennoch an mein ziel kommen ?

Ich habe lange zeit gebraucht, mithilfe von chatgpr, dieses Script auf die beine zu stellen, und ich habe noch andere erweiterungen, die ich gene implementieren möchte, aber grundsätzlich müsste ich generell erstmal diese "Regel" implementieren, damit es gescheid funktionieren kann.

Über einen Hinweis, wie ich das einbinden kann, wäre ich sehr dankbar, ich hoffe das ich mit diesem Konstruckt längerfristig ruhe haben werde, da ich den zugang zum Server besser steuern kann, ohne mich selbst dabei auszusperren, aber
jene fern zu halten, die da nichts verloren haben.

Möglicherweise ist meine anfrage auch zu speziell, und es hat vieleicht gründe gehabt, warum das Firewall Design geändert wurde, denn ich meine mich Dunkel noch errinnern zu können, das das Alte Firewall system (Design) wesentlich mehr einstellungen zugelassen hat, als das jetzige Design.

Re: Firewall erweiterung -> Zugriff auf HOSTname ebene an PORT X

Posted: Mon 19. Jun 2023, 20:48
by Jolinar
Daß du den TS3 und den IRC hinter ein VPN packst, wäre keine Option?

Re: Firewall erweiterung -> Zugriff auf HOSTname ebene an PORT X

Posted: Mon 19. Jun 2023, 21:13
by OlliTheDarkness
Jolinar wrote: Mon 19. Jun 2023, 20:48 Daß du den TS3 und den IRC hinter ein VPN packst, wäre keine Option?
Wäre auch mein Rat gewesen.

WS oder OVPN sind in weniger als 5 Minuten eingerichtet , zur Auth nutzt entspannt ne Certfile oder einfach User + Pass oder alles in Combi (Cert+User+Pass).

Nachteil der ganzen Geschichte, je nach dem wie die kleinen Pissnelken drauf sind, könnten Sie vieleicht richtig schlechte Laune bekommen und dem Server auf Millionen andere Arten zusetzen, weil sie an die Luft gesetzt hast ^^

Re: Firewall erweiterung -> Zugriff auf HOSTname ebene an PORT X

Posted: Tue 20. Jun 2023, 09:45
by Alexander
Du kannst in dem Fall die KeyHelp-Firewall deaktivieren und pflegst fortan deine eigenen Regeln unabhängig von der Maske im KeyHelp. Achtung, auch an einen Serverreboot und eventuellen reset der Regeln denken.
Möglicherweise ist meine anfrage auch zu speziell, und es hat vieleicht gründe gehabt, warum das Firewall Design geändert wurde, denn ich meine mich Dunkel noch errinnern zu können, das das Alte Firewall system (Design) wesentlich mehr einstellungen zugelassen hat, als das jetzige Design.
Ja, weil es für den Otto-Normal-Benutzer absoluter Overkill war. Das alte System setzte tieferes Wissen in Bezug auf IPtables etc. voraus. Zumal die Iptables Profis ohnehin viel schneller über die CLI bzw. mit Scripten waren, als sich es mühselig über die alte Maske zurecht zu klicken. Das neue System setzt quasi nur noch voraus, das man wissen muss, das die Reihenfolge von Regeln eine Rolle spielt.

Re: Firewall erweiterung -> Zugriff auf HOSTname ebene an PORT X

Posted: Tue 20. Jun 2023, 18:28
by blackpanther
Hallo zusammen.

Zunächst erstmal danke, für eure antworten.

Ich bin selbst ehrlich gesagt nicht ganz so tief in sachen IT, bzw. schon, aber mit VPN hab ich bisher noch nie was zu schaffen gehabt.
Wäre das etwas, was man "lokal" auf dem Server - hierbei handelt es sich um einen Ded. Root Server ?

Ich habe die Kiste seit 2012, und ich sag mal so, wenn ich die schotten dicht mache, und sie würden es anderweitig versuchen zugang zu gelangen, "könnte" das möglicherweise klappen, denn den Vertrag den ich habe hat zur damaligen zeit bis heute keinerlei schutzmaßnahmen.

Damals als ich den Server bei OVH (Is Genug 2G) bzw. "Kimsufi" bezogen habe, gab es die maschiene mit den derzeitig heutig bekanten schutzsystemen nicht.

Ich habe mich im nachhinein aber auch schon nach anderen anbietern umgesehen, aber es gibt da gewisse "probleme" und das finde ich (Preisgestaltung) ganz schön happig.

Meine maschine ist ein AMD Atom, 1.86GHz 4 kerne, 2 gb ram, 2 tb hdd, mit einer 100 mbit anbindung.
Gehostet in Frankreich.

2012 hat das ganze um die 4,50 € gekostet.

Aktuell durch div. Preisanpassungen liege ich bei rund 6,60 € (Gerundet)

Für den Preis findet man keinen Dedicated Server.

Ich habe um bei dem preis zu bleiben, max. eine VM, bzw Cloud (für mich ist cloud nachwievor VM, da des kind nur nen anderen namen bekommen hat, aber ist ja im moment nebensächlich).

Da würde ich max. eine VM mit 1 cpu bekommen, und max. 1-2 gb ram teil weise 4 gb, aber "nur" eine sehr kleine Festplatte, ab 25 gb aufwärts, und das ist zu wenig.

Mir bleiben da leider nicht viele optionen, und weit über 50-80 €/Monat ist schon echt ne menge holz, zumal es sich lediglich um "kleine" Hobby projekte handelt, die ich - schweren herzens - auch offline nehmen könnte wenns zu bunt wird.

Aber noch ist es dafür ja nicht soweit.

Ehe ich es vergesse, sowas wie CF habe ich bei mir ebenfalls nicht, der server bekommt die ganze Traffic lutsche direkt ab.

Re: Firewall erweiterung -> Zugriff auf HOSTname ebene an PORT X

Posted: Tue 20. Jun 2023, 18:32
by blackpanther
Alexander wrote: Tue 20. Jun 2023, 09:45 Du kannst in dem Fall die KeyHelp-Firewall deaktivieren und pflegst fortan deine eigenen Regeln unabhängig von der Maske im KeyHelp. Achtung, auch an einen Serverreboot und eventuellen reset der Regeln denken.

[...]
Gibt es da keine andere möglichkeit, zu einer "ergänzung" z.b. das es mehrere configdaten geben könnte, in sachen FW ?
Ich arbeite ansich gerne mit dem interface von KH, weil es tatsächlich einfach und simpel ist, lediglich ist "neue" FW Design im moment ein wenig "unhändlich" für meinen gebrauch, zumal es sich ja nur um ein paar zeilen code handeln würde, wie ich es ja im beitrag aufgezeigt habe.

Re: Firewall erweiterung -> Zugriff auf HOSTname ebene an PORT X

Posted: Tue 20. Jun 2023, 18:55
by Tobi
blackpanther wrote: Tue 20. Jun 2023, 18:32 zumal es sich ja nur um ein paar zeilen code handeln würde, wie ich es ja im beitrag aufgezeigt habe.

Ich finde es immer wieder erstaunlich wie viele Personen Einblick in den geschützten Quellcode haben um solche Aussagen treffen zu können.
😂😮😵‍💫

========================================================================

Wir werden den Bedarf bei den Usern und den Powerusern hierzu genau beobachten und die einzelnen Eindrücke, Meinungen und Ideen sammeln.
Sobald sich der Handlungsbedarf konkretisiert werden wir ungefragt auf deine Vorschläge zurückkommen.

Bis dahin bitten wir jedoch von weiteren Zwischenfragen (wann ist es denn soweit?) abzusehen.
Vielen Dank für deine Mitarbeit!
👍

Re: Firewall erweiterung -> Zugriff auf HOSTname ebene an PORT X

Posted: Tue 20. Jun 2023, 19:09
by blackpanther
Tobi wrote: Tue 20. Jun 2023, 18:55
blackpanther wrote: Tue 20. Jun 2023, 18:32 zumal es sich ja nur um ein paar zeilen code handeln würde, wie ich es ja im beitrag aufgezeigt habe.

Ich finde es immer wieder erstaunlich wie viele Personen Einblick in den geschützten Quellcode haben um solche Aussagen treffen zu können.
😂😮😵‍💫

[..]
Hallo Tobi.

Ich glaube da hast du mich missverstanden.
Mit den wenigen Zeilen Code, meinte ich eigentlich wenige zeilen, die in Bezug zu den Firewallregeln die ich benötige eingetragen werden müssten.

Ich habe bisher noch nie mir den Quelltext der KH struktur angesehen.

Re: Firewall erweiterung -> Zugriff auf HOSTname ebene an PORT X

Posted: Tue 20. Jun 2023, 22:53
by OlliTheDarkness
blackpanther wrote: Tue 20. Jun 2023, 19:09
Tobi wrote: Tue 20. Jun 2023, 18:55
blackpanther wrote: Tue 20. Jun 2023, 18:32 zumal es sich ja nur um ein paar zeilen code handeln würde, wie ich es ja im beitrag aufgezeigt habe.

Ich finde es immer wieder erstaunlich wie viele Personen Einblick in den geschützten Quellcode haben um solche Aussagen treffen zu können.
😂😮😵‍💫

[..]
Hallo Tobi.

Ich glaube da hast du mich missverstanden.
Mit den wenigen Zeilen Code, meinte ich eigentlich wenige zeilen, die in Bezug zu den Firewallregeln die ich benötige eingetragen werden müssten.

Ich habe bisher noch nie mir den Quelltext der KH struktur angesehen.
Und mit letzter Aussage , dich wieder ins Aus gesetzt :lol:
2 Runden und 2x KO.

Wo es nichts zu sehen gibt, siehste auch nichts :idea:

Re: Firewall erweiterung -> Zugriff auf HOSTname ebene an PORT X

Posted: Wed 21. Jun 2023, 09:50
by Alexander
Das Pflegen von eigenen Regeln ist mit ein paar Iptables-Grundkenntnissen nicht kompliziert. Ich würde behaupten, da war das herausfinden, wie die neue Regel aufgebaut sein müsste (dein 1. Beitrag) komplizierter.
(Okay, sehe gerade ChatGPT kam zum Einsatz, dann hielt sich der Aufwand natürlich in Grenzen ;), aber generell, Antworten von ChatGPT möchtest du nicht unhinterfragt übernehmen.)

Du Kannst dir die aktuellen Regeln über iptables "iptables-save" bzw. "ip6tables-save" als Konfigurationsdatei ausgeben lassen. Da ergänzt du deine eigenen Regeln und schmeißt die spezifischen Fail2Ban Regeln am Ende raus. Dann nimmst du den Regelimport in deinen Server-Autostart mit auf, sonst sind nach einem Reboot die Regeln zurückgesetzt.
Dann schaltest du die KeyHelp-Firewall aus und lädst deine Regeln rein.

Wenn man sich damit nicht auseinander setzen möchte - natürlich durchaus legitim - dann bittet man jemanden, der sich damit auskennt, oder nimmt man ein paar € in die Hand und lässt es den Provider seines Vertrauens in Form eines Support-Tickets sich des Ganzen annehmen.

---

Eine Implementierung ins KeyHelp dieses Features plane ich nicht, weil es das Firewall-System für die Allgemeinheit wieder komplizierter machen würde und ich mit dem derzeitigen Stand des Firewall-System sehr zufrieden bin.