cafepost
Goto Top

Daten aus pfSense Firewall auslesen

Hallo Leute,
erstmal schönes neues Jahr.


Ich verwende eine Pfsense Firewall Version 2.5.2 mit Original Hardware,

ich möchte aus der Firewall Informationen auslesen
wie zB : wie viele User haben sich in Captive Portal an den verschieden Zonen angemeldet.

Die Infos möchte ich auf einer Webseite als Tag und Monat Statistik auswerfen,
um zu sehen wieviel User bei Zone A , B , C angemeldet waren.

Habt ihr eine Idee, wo ich da anfangen kann ohne die Firewall Sicherheit zu gefährden ?

LG Rene

Content-Key: 5185515081

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

Printed on: April 27, 2024 at 07:04 o'clock

Mitglied: 2423392070
2423392070 Jan 02, 2023 at 13:14:00 (UTC)
Goto Top
Dafür wirst du eine "richtige" Firewall brauchen oder eine Auswertung selber bauen müssen.
Member: cafepost
cafepost Jan 02, 2023 at 13:30:17 (UTC)
Goto Top
Servus ,
was ist dann eine richtige Firewall ?
Auswertung selber bauen sollte ja kein Problem sein , nur wie komme ich zu die daten.
Mitglied: 2423392070
2423392070 Jan 02, 2023 at 13:32:30 (UTC)
Goto Top
Na ein OEM der deine Bedürfnisse samt Reporting als ein Produkt verkauft.

Wenn du es selber bauen willst, wirst du unter /var/log sicherlich was finden.
Member: tech-flare
tech-flare Jan 02, 2023 updated at 14:01:11 (UTC)
Goto Top
Hallo,

also als Erstes....*sense sind "richtige" Firewall. Ggf sogar besser oder funktionsreicher als mancher OEM Hersteller. Siehe Sophos - Stichwort Lets Encrypt.

@2423392070.... Was sind "richtige" und was sind "falsche" Firewall?

Du kannst deine Logs an einen Syslog Server weiterleiten (z.B. Graylog) und dann via Grafana darstellen. Dort findest du die notwendigen Informationen.
Mitglied: 2423392070
2423392070 Jan 02, 2023 at 14:08:35 (UTC)
Goto Top
Meiner Meinung nach ist eine richtige Firewall ein Produkt und samt Support vertrieben wird.

Die Sensen sind Spielzeuge die viel zu viele schräge Konfigs zulassen und am Ende des Tages Router mit Paketfilter sind. Die Qualität ist mittlerweile unter aller Kanone. Ich behaupte, dass viele IT-Zertifizierungen nicht mehr möglich sind bzw der Zertifizierer unzählige Ausschlüsse bescheinigt.
Member: tech-flare
tech-flare Jan 02, 2023 at 14:34:05 (UTC)
Goto Top
Zitat von @2423392070:

Meiner Meinung nach ist eine richtige Firewall ein Produkt und samt Support vertrieben wird.

Also somit auch die Sensen, denn für diese gibt es auch direkt vom Hersteller
Support face-smile

you get what you pay
Mitglied: 2423392070
2423392070 Jan 02, 2023 at 14:44:03 (UTC)
Goto Top
Es sind Bundles aber meine Produkte im engeren Sinn.

Wir hatten einen Subsub die Installation zweiter opnSensen in einer Ultrafiltration genehmigt... Ende vom Lied, er hat die Geräte freiwillig selbst getauscht.

Und ja, I geht what I pay.
Member: cafepost
cafepost Jan 02, 2023 updated at 18:30:48 (UTC)
Goto Top
Ok danke Freunde , jetzt bin ich mal schlauer und auch schon am Googlen
Member: colinardo
colinardo Jan 02, 2023 updated at 15:34:34 (UTC)
Goto Top
Servus @cafepost,
die Daten könntest du bspw. direkt auf der pfSense per PHP auslesen und dann wie gewünscht weiterverarbeiten z.B. in eine Datenbank schreiben oder die Daten als JSON zurückliefern, usw..

Habe dir hier mal auf die Schnelle aus der bestehenden Status-Seite für das Captive-Portal eine einfache PHP-Seite umgebaut die die die Basis-Infos zu den aktiven Clients als JSON zurückgibt. Habe ich hier nur zum Test auf einer pfSense 2.6.0 laufen lassen.

Die Standard Captive-Portal-Statusseite auf der pfSense findest du in dessen Filesystem unter /usr/local/www/status_captiveportal.php.

Wenn du den folgenden Code in einer eigenen Datei unter /usr/local/www ablegst , bspw,. als /usr/local/www/captiveportal_stats.php ablegst. Erhältst du z.B. die aktiven Sessions als JSON zurück sofern im Portal angemeldet.

<?php
require_once("functions.inc");  
require_once("captiveportal.inc");  

function get_activeusers($cpent) {
	global $cpzone;	
	$session_time = time() - $cpent;
	if (!empty($cpent[7]) && !empty($cpent[9])) {
		$session_time_left = min($cpent + $cpent[7] - time(),$cpent[9] - time());
	} elseif (!empty($cpent[7]) && empty($cpent[9])) {
		$session_time_left = $cpent + $cpent[7] - time();
	} elseif (empty($cpent[7]) && !empty($cpent[9])) {
		$session_time_left = $cpent[9] - time();
	}

	return [
		"ip" =>$cpent['ip'],  
		"mac" => $cpent['mac'],  
		"username" => $cpent['username'],  
		"session_start" => date("d.m.Y H:i:s", $cpent),  
		"session_time" => convert_seconds_to_dhms($session_time),		  
		"session_time_left" => convert_seconds_to_dhms($session_time_left),  
		"auth_method" => $cpent['authmethod'],  
		"zone" => $cpzone  
	];
}

try{
        $sessions = ;
	$cpzone = strtolower($_REQUEST['zone']);  
	init_config_arr(array('captiveportal'));  
	$a_cp = &$config['captiveportal'];  

	if (count($a_cp) == 1) {
		$cpzone = current(array_keys($a_cp));
	}

	/* If the zone does not exist, do not display the invalid zone */
	if (!array_key_exists($cpzone, $a_cp)) {
		$cpzone = "";  
	}

	if (isset($cpzone) && !empty($cpzone) && isset($a_cp[$cpzone]['zoneid'])) {  
		$cpzoneid = $a_cp[$cpzone]['zoneid'];  
	}

	if (!empty($cpzone)) {
		$cpdb = captiveportal_read_db();
		foreach ($cpdb as $cpent) {
			$sessions = get_activeusers($cpent);
		}
	}
	header("Content-Type: application/json");  
	echo json_encode($sessions);

}catch(Exception $ex){}

screenshot

Das kann man sich ja dann umbauen wie man es eben braucht. Natürlich lassen sich auch sämtliche anderen Einstellungen und Daten der pfSense per PHP erreichen und verarbeiten. Das studieren der PHP-Seiten im oben genannten Verzeichnis liefert einem das nötige Wissen um an die Daten zu kommen.

Grüße Uwe
Member: it-fraggle
it-fraggle Jan 02, 2023 at 15:20:52 (UTC)
Goto Top
Zitat von @2423392070:

Meiner Meinung nach ist eine richtige Firewall ein Produkt und samt Support vertrieben wird.
Den kann man auch für die pfSense/OpnSense haben.

Die Sensen sind Spielzeuge die viel zu viele schräge Konfigs zulassen
Sprechen wir hier also von Bedienfehlern?

und am Ende des Tages Router mit Paketfilter sind. Die Qualität ist mittlerweile unter aller Kanone.
Woher hast du das?

Ich behaupte, dass viele IT-Zertifizierungen nicht mehr möglich sind bzw der Zertifizierer unzählige Ausschlüsse bescheinigt.
Bitte mal Belege hinterlegen.

Wir hatten Nov 2018 einen Pentest durch ein externes Kölner Sicherheitsunternehmen. Die sind auch hier mehrfach in den Heisemedien gewesen. Sehr kompetenter Laden. Wären die pfSense/OpnSense ein Problem gewesen, dann hätte man uns damals darauf hingewiesen.

2021 hatten wir einen größeren Netzumbau. Dort war neben anderen Dingen auch die Frage der Firewalls. Auch hier sagte man uns, dass man damit sehr gut fährt. Also, wenn du nichts konkretes hast, was du hier präsentieren kannst, dann sind solche Aussagen wie oben eher bäh und wenig hilfreich.
Mitglied: 2423392070
2423392070 Jan 02, 2023 at 15:40:19 (UTC)
Goto Top
Es ist aber kein Produkt mit Support. Es ist ein Bundle. Guckt man sich die Support-Leistungen an, dann sieht man dass es eine Art Betriebshilfe ist, mit Aussicht auf bevorzugte Behandlung.
Der Großteil der Pakete die ich offiziell laden kann erhalten keinen Support vom Bundle-Ersteller. Prominentes Beispiel ist Zenamor.

Neben den Bedienfehlern die immer möglich sind, gibt es einfach zu viel schlecht gewartete Software Komponenten, die keiner Kontrolle unterliegen und daher kommt auch keine der genannten für irgendeine nennenswerte Zertifizierung in Frage. Es gibt keinen nationalen oder internationalen Zertifizierer der eine pfSense oder opnSense zertifiziert hat und das wird es so schnell auch nicht geben. Das Design schließt das eigentlich aus.
Und ein Pentest der bestanden wurde, ist keine Zertifizierung. Jeder Speedport besteht einen Pentest und Speedports haben täglich Pentests auf hohen Niveau. Das sagt nichts aus.
Auch wenn es unzählige Erfolgsgeschichten mit den Bundles gibt, es ist am Ende ein besseres Spielzeug. Das muss nichts schlechtes sein.
Um ein paar Ports zu blocken und etwas Traffic zu managen und zu visualisieren ist es sicherlich auch eine gute Sache.

Spätestens, wenn Standardports nicht genutzt werden und der Payload verschlüsselt ist, nimmt der mögliche Mehrwert, den nur die wenigstens erzielen könnten rapide ab.
Member: Spirit-of-Eli
Spirit-of-Eli Jan 02, 2023 at 15:45:51 (UTC)
Goto Top
Moin,

die meisten infos kannst du dir ja so auf der Sense anzeigen lassen.
Was nicht da ist, lässt sich meist durch Packages erweitern.
Ansonsten empfehle ich dir ebenfalls dich mit z.b. Graylog und Grafana zu beschäftigen. Damit lassen sich alle infos auch grafisch aufbereiten.
Das einzige was der Sense angelastet werden kann ist, dass es eben keine klicki/bunti Oberfläche alla Sophos oder gleichen ist.

Gruß
Spirit
Member: aqui
aqui Jan 02, 2023 at 17:19:20 (UTC)
Goto Top
Außer der eleganten Lösung von @colinardo kommst du über SNMP auch an die Daten ran. Wenn man sich nicht so tief mit Graylog und Grafana beschäftigen möchte, dann bieten Observium oder auch LibreNMS fertige Lösung die man entsprechend customizen kann. LibreNMS erlaubt da mehr Freiheiten.
Member: colinardo
colinardo Jan 02, 2023 updated at 17:50:55 (UTC)
Goto Top
Ach ja und noch als eventuell nützlicher Hinweis: Auf der pfSense liegen die Daten der aktuellen User der Captive-Portal Zonen in SQLITE Datenbanken im Verzeichnis /var/db/ als Files mit den Namen im folgendem Format abgelegt captiveportal[NAME_DER_ZONE].db.

screenshot
Member: cafepost
cafepost Jan 02, 2023 at 18:42:41 (UTC)
Goto Top
Hallo,

Danke mal für die Infos,

@colinardo Danke für den PHP Code werde mir das morgen mal in ruhe anschauen .