iptables - Blocken von Ports klappt nicht richtig

Goggo16

Mitglied
Mitglied seit
12 Sep 2008
Beiträge
628
Punkte für Reaktionen
3
Punkte
18
Hi,

ich schaffe es nicht richtig, mit IPTables das Spiel WoW (battlenet) zu blocken. (Den Hintergrund lassen wir bitte mal aussen vor).

Im rc.custom setze ich dazu folgenden Befehl ab.

/usr/sbin/iptables -I FORWARD -i dsl -p tcp -m multiport --dport 1119,6113,1120,3724,4000,6112:6114,6881:6999 -j DROP
/usr/sbin/iptables -I FORWARD -i dsl -p udp -m multiport --dport 1119,6113,1120,3724,4000,6112:6114,6881:6999 -j DROP

Damit blocke ich gleich von Anfang an (nach dem reboot) die Ports fuer TCP und auch UDP. Mit iptables -L wird das auch als "aktiv" angezeigt.

Irgendwie schafft der Gamer es aber, eine Verbindung aufzubauen. Dann wird im Portrange zwischen 50000 und 60000 immer mal ein anderer Port verwendet, worüber der Traffic dann laueft (mit Wireshark geprüft).

Hab auch schon mal den ganzen Portrange 50000 - 60000 mit iptables geblockt. Da hatte ich im LAN aber seltsame andere Effekte (z.B. ganzes Internet geblockt), weil andere Anwendungen dem Anschein nach, auch gelegentlich diesen Portrange benutzen.

Wie kann ich denn am guenstigsten den gerade verwendeten Port rausfinden und dann nur den blocken?

Vielleicht koennte man den Server blocken (Destination). Ginge aber nur wenn, wenn die IP-Adresse gleich bleibt und nicht wechselt. (LAN-seitiges Blocken nach IP-Adresse oder Mac-Adresse hilft nichts, weils dann gleich mit IP- oder Mac-Adress-Spoofing los geht.

Oder gibts noch andere Ideen (... oder wo ich sonst noch nachschauen koennte)?

Grüße

Goggo
 
/usr/sbin/iptables -I FORWARD -i dsl -p tcp -m multiport --dport 1119,6113,1120,3724,4000,6112:6114,6881:6999 -j DROP
Warum benutzt Du "-i dsl" in der FORWARD chain?
(LAN-seitiges Blocken nach IP-Adresse oder Mac-Adresse hilft nichts, weils dann gleich mit IP- oder Mac-Adress-Spoofing los geht.
Doch, das wäre die Lösung, mit der default policy der FORWARD chain auf DROP, Freigabe zu Allem für deine feste IP und Freigabe zu den Ports 80 und 443 der (DHCP-)IP des users.
Dazu brauchst Du ein iptables-Script (... d. h. keine einzelne Regeln in der rc.custom).
 
Warum benutzt Du "-i dsl" in der FORWARD chain?
Hmmm, gute Frage. Bin bei weitem noch kein ipables Experte.

Dachte eigentlich, dass dami alle von/zum Interface "dsl" weiterzuleitenden Pakete gemeint sind. Und "dsl" ist doch das WAN-Interface, oder?

Was wäre denn (in der Fritzbox) das richtige Interface in der FORWARD-Chain?

Schon mal vielen Dank und Grüße

Goggo
 
Verwende doch einfach die Kindersicherung dafür. ;)

Erstellst unter Filter eine Anwendung, dort stellst du folgende Ports ein bei Ziel, Quelle beliebig.
TCP 1119 - Login für Battle.Net Accounts, Verbindung zu und Spielen auf World of Warcraft Realms
TCP 3724 - Verbindung zu und Spielen auf World of Warcraft Realms, Verbindung zum Blizzard Downloader
TCP 6881-6999 - Blizzard Downloader (Peer-to-Peer Funktionalität)
UDP 3724 - der World of Warcraft Sprachchat
TCP 1120 – Battle.net Dienste, Verbindung zu und Spielen auf World of Warcraft Realms
Quelle: https://eu.battle.net/support/de/article/WoW-Ports

In der Kindersicherung dann WoW Sperren als Anwendung, und wenn noch dann noch in die Blacklist
*.worldofwarcraft.com
*.battle.net

Damit sollte dann Wow, SC2 und D3 sich nicht mehr verbinden oder updaten können.
 
Da bin ich schon drueber weg - gezwungener Maßen. Der junge Dolle ist ja nicht auf den Kopf gefallen. ;)

Das muss im "Stealth Modus" laufen, und das auch nur zeitweise (klappt schon), sodass nur der Spass etwas leidet und dabei die Schuld dem bösen Internet zugeschoben werden kann und nicht dem dollen Ollen. ;)

Das was ich (neben anderen Dingen) noch nicht richtig kapiere ist, wie dann der Port im 50000er-Range ausgehandelt wird, und wie ich dann diesen selektiv blocke anstatt den ganzen Port-Range.

Grüße

Goggo
 
Wenn in der Kindersicherung die Geräte sperrst für die keine Regeln definiert sind, dann bringt es auch nichts wenn dein Junge IP oder MAC-Adresse ändert.

Naja spätestens wenn er die WoW Homepage aufruft, würde dann die nette FB Sperr Seite kommen und auffallen.

Wenn ganz gemein bist, besorgst du dir einen Authenticator aktivierst diesen in seinem Account, dann muss er für jeden Login dich nach dem Code fragen ;)

Normal sollte reichen wenn einfach Domains gesperrt werden, statt ganzen Ports.
eu.logon.worldofwarcraft.com
deDE.patch.battle.net
 
Zuletzt bearbeitet von einem Moderator:
... noch nicht richtig kapiere ist, wie dann der Port im 50000er-Range ausgehandelt wird, ...
Schau dir mal die Pakete nethogs, iplog und iftop aus bzw. für freetz an:
Code:
http://www.ip-phone-forum.de/showthread.php?t=239977&p=1828006&viewfull=1#post1828006
Code:
http://freetz.org/ticket/1360
Code:
http://svn.freetz.org/trunk/make/iftop/Config.in
 
Hallo,

ich würde dem Client-PC (bzw. der MAC-Adresse) zuerst mal immer die gleiche IP zuordnen. Als iptables-Regel würde ich dann sowas wie
Code:
iptables -A FORWARD -p tcp  -s DieBetreffendeIPAdresse -m multiport --sport DiePortsAusPost#5 -j DROP
o.Ä. hinzufügen.

Ein MAC-Adressen-Spoofing nützt dann wenig, da ja die gespoofte Adresse die gleiche IP erhält.
Falls das nicht genügt (also der DHCP der Box für "neue" MAC-Adressen auch andere und damit ungeblockte IPs vergibt), würde ich in der Tat die Default policy der FORWARD-Chain auf DROP setzen, was allerdings zur Folge hat, daß Du ggfs. einige "Whitelist-Regeln" in iptables (also zugelassene Ports/Domains/IP-Adressen/-Bereiche für die anderen Clients) spendieren mußt ...
In den Regeln ein Interface zu verdrahten macht meines Erachtens wenig Sinn. Zwar wäre in Deinem Fall das IN-IFace "LAN" und das OUT-IFace "DSL", aber das kümmert Dich ja eigentlich nicht, da es Dir egal sein kann, wer die Pakete transportiert: Für Dich zählt, das der Transport unterbleibt. Und genau die FORWARD-Chain sorgt dafür.
Grüße,

JD.
 
Zuletzt bearbeitet:
Sorry, hatte ich in der Eile überseh'n ...
Danke für die Korrektur.
Grüße,

JD.
 
Danke schon mal fuer Eure Tipps.

Bin schon am experimentieren, auch mit iftop (hatte ich schon in Freetz) und auch ip_log. Nethogs noch nicht.

Gruesse

Goggo
 
Bin schon am experimentieren, ...
Zum experimentieren eignet sich auch dnsspoof ;-) (siehe Link):
Code:
http://www.ip-phone-forum.de/showthread.php?t=239977&page=2
Mit dnsspoof (man-in-the-middle) kannst Du domains (... wildcards) und IP-Adressen für bestimmte Source-IP-Adressen blocken und/oder umleiten bzw. loggen.
 
Oha, soziale Probleme technisch lösen! Schonmal versucht mit dem "kleineren" zu Reden? Wenn er sich WoW leisten kann -> Taschengeld kürzen? PC Entzug, wenn er ihn nich für die Schule braucht? PC in ein anderes Zimmer umstellen?

Was für mich einmal gut funktioniert hat mit dem Statistics Match (-m statistic) mit --probability P oder --every Nth zufällig Pakete aus TCP- und UDP(sic)-Verbindungen zu DROPen.
Dadurch wird das Surfen, IRCen, Donwloaden oder Spielen zur Qual und bei der richtigen Dosierung sieht es aus wie Netzwerkproblem ;)
Technischer Hintergrund ist, dass du gängige Methoden zur Optimierung des Durchsatzes oder Latenz mit Hilfe der Leitungssättigung(Congestion) oder der Anpassungen von Empfangsfenstern(Receive Windows) durch diese Simulierten Fehler immer wieder neustarten lässt bzw. zusätzlich im Falle von TCP Paket retransmits erreichst.

Wenn die Wahrscheinlichkeit niedrig genug ist, weicht WoW evtl. auch nicht auf höhere Ports aus fangen wir mal mit 25% droprate an. Da mir nicht klar ist, in welche Richtung die Anwendung nimmt neim Verbindungsaufbau hier einige Regeln mehr.
Code:
# wenn jemand aus deinem Netz die Verbindung aufbaut
/usr/sbin/iptables -I FORWARD -o dsl -p tcp -m statistic --probability 0.20 -m multiport --dport 1119,6113,1120,3724,4000,6112:6114,6881:6999 -j DROP
/usr/sbin/iptables -I FORWARD -o dsl -p udp -m statistic --probability 0.20 -m multiport --dport 1119,6113,1120,3724,4000,6112:6114,6881:6999 -j DROP
# wenn jemand in dein Netzwill (im falle UDP-loose routing)
/usr/sbin/iptables -I FORWARD -i dsl -p udp -m statistic --probability 0.20 -m multiport --dport 1119,6113,1120,3724,4000,6112:6114,6881:6999 -j DROP

Wenn du noch richtig fies bisst und dein Image die Funktionalität bietet, könntest du diese Regeln auch in der mangle-Table "verstecken". Da schaut selten wer nach ;) und dein "kleiner" könnte sich ja auch Zugriff zu Fritzbox verschaffen.
Security by obscurity.

cya
 
Zuletzt bearbeitet:
Dass Ihr euch so auf die Ports versteift, es reicht doch wenn der Login Server nicht erreichbar ist und ggf. noch IP des Server auf welchem er Spielt. Wären also 1-2 Domains bzw. 2-3 IPs.
 
@HabneFritzbox,

schon klar. Das waere aber zu auffaellig. Dann wird ein VPN genommen, und IPTables sieht nichts mehr auf den eigentlichen Ports. Es sei denn, man sperrt dann auch VPN. Das ist dann aber zu auffaellig und der Olle ist gleich im Verdacht.

Wie Cya schon ganz richtig vorgeschlagen hat, den Traffic sozusagen partiell ausblenden, so dass der Böse ganz wer anders ist, und der Olle ganz verdutzt drein schaun kann "... ach tatsächlich ...". ;)

Grüße

Goggo
 
So kann man auch wie abraXxl meinte, Sozialen Kontakt bzw. Diskussion aus dem Weg gehen.

Spreche lieber mal mit deinem Sohn und sprecht zusammen klare Regeln ab, und wenn er sich nicht daran hält kannst du immer noch via Blacklist WoW komplett sperren oder Zeitkontingente in der FB festlegen.

Es ist auch unfair gegenüber den anderen Mitspielern mit denen er spielt, wenn die zusammen unterwegs sind und er ggf. immer die Verbindung verliert. Und schau mal in das WoW Forum, da gibt es schon genug geflame zu Verbindungsprobleme ect.

Du möchtest doch auch, dass kein Sohn mehr Zeit für Hausaufgaben verwendet und nicht für Suche nach Lösung der "Internet Probleme", oder?

Mit VPN kann er auch deine Port Manipulation umgehen, oder indem er durch sein Taschengeld einen UMTS Stick verwendet weil der DSL Anschluss zu "gestört" ist ;)

Verwendest du auch einen GSM Störsender wenn er zuviel telefoniert, um es auf den Netzbetreiber zuschieben statt ein Gespräch zusuchen?
 
Zuletzt bearbeitet von einem Moderator:
Danke für Eure Tipps. In Sachen Sozialkompetenz bin ich ja jetzt wieder ein Schrittchen weiter. Ich werde mir (mehr) Mühe geben. :)


@abraXxl,

Du hattest weiter oben das folgende Tipps fuer IP-Tables gegeben.

mit dem Statistics Match (-m statistic) mit --probability P oder --every Nth cya

Leider sind die dafuer erforderlichen Pakete in meiner Firmware mit Freetz (Freetz 1.2 als Alien fuer 7570) nicht enthalten. Hab auch gerade noch mal mit "make menuconfig" nachgeschaut. Eine ganze Reihe von Modulen für iptables ist nicht drin.

Das richtige Modul für die o.g. Funktionen kann ich in den Help-Infos nicht finden, und so einfach mal "alle" anwählen traue ich mich nicht so recht.

Hast Du einen Tipp, vielleicht auch nur irgendwo anders im Internet. Die Freetz-Seiten habe ich schon durchforstet.

Grüße

Goggo
 
Die Freetz-Seiten habe ich schon durchforstet.
Evtl. abhängig von der Box bzw. vom Kernel:
Code:
http://svn.freetz.org/branches/freetz-stable-1.2/make/iptables/Config.in
Code:
config FREETZ_MODULE_xt_statistic
	bool "xt_statistic.ko"
	select FREETZ_MODULE_x_tables
	default n
	help
		This option adds a `statistic' match, which allows you to match
		on packets periodically or randomly with a given percentage.
 
Danke sf3978,

dachte schon, das ist genau der Tipp, den ich brauche. Allerdings ist dieser Eintrag schon in der betreffenden Datei drin.

Ist da beim "Image backen" was schief gelaufen?

Grüße

Goggo
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.