Überwachen und blockieren Sie ausgehenden Datenverkehr vom Heimnetzwerk mit dem Heimserver

938
Thassilo

Ich habe ein Heimnetzwerk hinter einem Router (Modell Fritzbox 7490), das derzeit als Gateway und DHCP-Server für alle kabelgebundenen und drahtlosen Geräte dient. Außerdem habe ich einen Heimserver im Netzwerk mit einer physischen Netzwerkkarte, auf dem Debian Jessie und ein DNS-Server (bind9) ausgeführt wird.

Gibt es eine Möglichkeit (z. B. zusätzliche Konfiguration des Routers), um meinen Home-Server mit Squid so einzustellen, dass er als transparenter Proxy für alle Netzwerkgeräte fungiert, um ausgehenden Internetverkehr zu überwachen und möglicherweise zu blockieren?

0
Abhängig davon, wie Sie das Monitoring definieren, können Sie nur mit iptables überwachen und blockieren, aber ipset ist ein guter Begleiter dafür. ** iptables -A OUTPUT -j LOG --log-Präfix "Roter Alarm etwas Schlechtes" --log-tcp-options --log-ip-options ** Natürlich müssten Sie Bedingungen wie Protokoll, Quelle, Ziel, hinzufügen. und usw., um daraus eine sinnvolle Regel zu machen. cybernard vor 7 Jahren 0
Squid ist ein Proxy-Cache, der alle am häufigsten heruntergeladenen Websites auf Ihrer Festplatte speichert, um einen schnelleren Zugriff zu ermöglichen. Ich bin nicht vertraut genug, um zu wissen, wie gut es den Verkehr überwacht / blockiert. Dies sind jedoch sekundäre Funktionen. cybernard vor 7 Jahren 0
@cybernard: Idealerweise hätte ich gerne eine Website auf meinem Home-Server, die alle besuchten Websites nach Client-IP sortiert auflistet (die Lösung muss kein Squid oder gar ein Proxy sein). Denken Sie außerdem daran, dass derzeit mein Home-Server nicht mein Gateway ist! Also muss ich wahrscheinlich zuerst einen Weg finden, um den gesamten Verkehr vom Router zurück zum Home-Server zu leiten !? Ich brauche die Caching-Funktion nicht. Thassilo vor 7 Jahren 0
** Iptables -I OUTPUT 1 -p TCP -m TCP -m Multiport --dports 80,443 -J LOG --Log-Präfix "Ich habe eine Website besucht" ** Geben Sie ** dmesg ** und am Ende des Protokolls ein Nach dem Besuch einer Website sehen Sie Ihren neuen Protokolleintrag. Sie müssen dies jedoch ändern, wenn und wie langfristig die Protokolle langfristig gespeichert werden sollen. Das Standardprotokoll ** dmesg ** wechselt möglicherweise mehrmals am Tag, je nachdem, wie viele Websites besucht wurden. cybernard vor 7 Jahren 0
Wenn Sie eine Langzeitprotokollierung durchführen möchten, richten Sie einen MySQL-Server ein und installieren Sie ulog2, nicht die alte Version. Sie finden eine SQL-Datei, die Sie aus ulog2 importieren müssen, bevor die Datenbank konfiguriert wird. Dann ersetzen Sie ** - J LOG etc ** durch ** - J NFLOG --nflog-Gruppe 1 --nflog-prefix leftover_udp "Ich habe eine Website besucht" ** cybernard vor 7 Jahren 0

1 Antwort auf die Frage

3
cybernard

Wenn Sie mit den beschriebenen Methoden über Telnet einsteigen können, können Sie meine iptables-Regel ausprobieren. Alternativ kannst du Freetz installieren, und dann sollte meine Regel funktionieren. Sie sagen, dass einige der Dokumentation auf Deutsch sind, also benutze Google Translate.

Dies ist ein Auszug aus Linux Voice

FRITZ! Box 7490 - Linux-Voice

Mit der FRITZ! Box können Sie erstaunlich viel tun, wenn Sie ein wenig herumhacken wollen. Telnet kann z. B. aktiviert werden, indem Sie an einem verbundenen Telefon '#' drücken und 96 * 7 * wählen. Es wird sogar eine Meldung angezeigt, die Sie über die Aktivierung informiert (schalten Sie die 7 auf eine 8, um sie zu deaktivieren). Sie können jetzt über die Befehlszeile eine Verbindung zu Ihrem Router herstellen, indem Sie telnet ip_address eingeben und Ihr Web-Administratorkennwort eingeben. Sie befinden sich nun in einer ziemlich gut erkennbaren Linux-Befehlszeilenumgebung. Sie können ls oder top eingeben und sich das Dateisystem ansehen. wget ist ebenfalls verfügbar und es gibt Möglichkeiten, vom Benutzer kompilierte Pakete wie 'DropBear' zu installieren, aber wir würden dies nicht empfehlen. Wir empfehlen stattdessen einen Blick auf das Freetz. Dies ist eine Sammlung von Open-Source-Änderungen, die an der Standard-Firmware Ihres Routers vorgenommen werden können. es zu einem viel flexibleren und hackbaren Gerät machen (und gleichzeitig wahrscheinlich die Garantie ungültig machen). Sie müssen eine virtuelle Maschine mit einer bestimmten Build-Umgebung erstellen und dann die neuesten Dateien aus einem GitHub-Konto abrufen, bevor Sie sie aus einem einfachen Menüsystem erstellen. Fast alle wichtigen und relevanten Informationen liegen in deutscher Sprache vor, sodass die Aufgabe umso schwieriger wird, wenn Sie die Sprache nicht sprechen. Wenn Sie jedoch mehr Kontrolle über Ihr System haben möchten Wenn die Standard-Firmware Ihnen nicht genügend Kontrolle bietet, können Sie mit Telnet auf das Betriebssystem zugreifen oder ein Open-Source-Update namens Freetz installieren. Hardware und die Möglichkeit, eigene Firmware-Änderungen vorzunehmen, ist die Anstrengung wert. Wir fanden es besonders nützlich, erweiterte VPN-Funktionen, einschließlich OpenVPN, sowie das einfache Hinzufügen von SSH- und anderen Anwendungen hinzuzufügen.


Kurzzeitprotokollierung:

iptables -I OUTPUT 1 -p tcp -m tcp -m multiport --dports 80,443 -J LOG --log-prefix "I visited a website " 

Langfristig:

  1. installiere mysql und ulogd2

    mysql -u root -p </src/ulogd2/doc/mysql-ulogd2.sql

Diese Datei befindet sich möglicherweise nicht an derselben Stelle auf Ihrem Computer

find / -iname "mysql-ulogd2.sql"

Wenn es sagt, dass die Datei nicht gefunden wurde

Ändern Sie diesen Teil von ulogd.conf

[log1] # netlink multicast group (the same as the iptables --nflog-group param) # Group O is used by the kernel to log connection tracking invalid message nlgroup=1 group=1  [global] stack=log1:NFLOG,base1:BASE,ifi1:IFINDEX,ip2bin1:IP2BIN,mac2str1:HWHDR,mysql1:MYSQL [mysql1] db="ulog2" host="192.168.1.1" user="username" table="ulog" pass="password" procedure="INSERT_PACKET_FULL" 

iptables -I OUTPUT 1 -p tcp -m tcp -m multiport --dports 80,443 -J NFLOG --nflog-group 1 --nflog-prefix "I visited a website " 

NUR iptables und ulogd2 MÜSSEN in Ihrer fritzbox sein, und der Rest kann überall in Ihrem Netzwerk abgelegt werden.

Ich danke Ihnen sehr für Ihre Antwort. Es ist nicht genau das, wonach ich gesucht habe, aber vielleicht ist es der einzige Weg. Also nochmal vielen Dank! Thassilo vor 7 Jahren 0
@Thassilo Dies sollte Sie in die Eingangstür bringen, und meine anderen Informationen sollten Sie eine Liste der besuchten Website per IP-Adresse erhalten. cybernard vor 7 Jahren 0
Meine eigentliche Absicht bestand darin, eine konfigurierbare Software mit einer Weboberfläche zu finden, die eine bequemere visuelle Überwachung des Verkehrs bietet. Ich möchte auch meinen Linux-Home-Server verwenden, um diesen Job zu erledigen, während ich nur ein Client im Netzwerk bin. Ich dachte: Mein Home-Server arbeitet auch als DNS-Server - und übersetzt Adressen für alle Geräte in meinem Heimnetzwerk, ohne das eigentliche Gateway zu sein. Erstens weiß ich nicht, ob dies mit meinem aktuellen Setup überhaupt möglich ist, und zweitens weiß ich nicht wie. Thassilo vor 7 Jahren 0
Wenn Sie ein Webinterface benötigen, können Sie nach der Konfiguration von ulogd2 Apache mit PHP-Unterstützung einrichten. Laden Sie die Datei adminer.php herunter und legen Sie sie im Stammverzeichnis ab. Sie haben eine Datenbank-GUI. Besuchen Sie http: //ipaddress/adminer.php cybernard vor 7 Jahren 0
@Thassilo Das einzige Problem bei der Anfrage an den DNS-Server ist das Caching. Sie wissen nicht genau, wie oft eine Website besucht wird. Zunächst fügt Windows einen DNS-Cache hinzu, und der Webbrowser fügt eine zweite Caching-Ebene hinzu. Nur wenn beide vermisst werden, wird der DNS-Server kontaktiert. cybernard vor 7 Jahren 0