15366
Kommentar:
|
16084
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 10: | Zeile 10: |
'''Hinweis:''' Das aktuelle amd64-Image ist unter [[https://frafiles.pfsense.org/mirror/downloads/pfSense-CE-2.3.4-RELEASE-amd64.iso.gz|pfSense-2.3.4-Downloads]] herunterzuladen. | '''Hinweis:''' Das aktuelle amd64-Image ist unter [[https://frafiles.pfsense.org/mirror/downloads/pfSense-CE-2.5.2-RELEASE-amd64.iso.gz|pfSense-2.5.2-Downloads]] herunterzuladen. |
Zeile 19: | Zeile 19: |
Den PC für das Firewall-System vom Installationsmedium starten und im Abfrage-Dialog von pfsense die folgenden Optionen auswählen. Die Firewall spezifischen Pakete können über den !WebKonfigurator installiert und konfiguriert werden. Hierzu zählen zum Beispiel der Proxy (Squid 3) und der Inhaltsfilter (Dansguardian). Auch die Firewall wird einfacher über den Webkonfigurator konfiguriert. |
Den PC für das Firewall-System vom Installationsmedium starten und im Abfrage-Dialog von pfsense die folgenden Optionen auswählen: Warten, bis der Boot-Prompt nach '''(R)''' für '''Recovery Mode''' oder '''(I)''' für '''Installer''' fragt und '''I''' drücken. Gegebenenfalls beim nächsten Abfragebildschirm Anpassungen an den gebotenen Einstellungen vornehmen, sonst die Einstellungen akzeptieren und fortfahren. Die Installationsmethode '''Quick/Easy Install''' kann für Systeme genutzt werden, in denen keine zwei Festplatten als {{{Mirror}}} funktionieren sollen, sonst '''Custom Install''' auswählen und den {{{GEOM mirror}}} erstellen. Danach wird mit der Installation fortgefahren. Bei Nachfrage den '''Standard Kernel''' auswählen. Nun neu starten und den Bootdatenträger entfernen. Die Installationsschritt sind im einzelnen im [[https://docs.netgate.com/pfsense/en/latest/install/install-walkthrough.html|"Installation Walkthrough"]] beschrieben. [... hier fehlt ein Stück Dokumentation ...] Die Firewall wird nach Einrichtung der Netzwerkschnittstellen dann einfach über den Webkonfigurator konfiguriert. |
Zeile 26: | Zeile 40: |
Zeile 32: | Zeile 47: |
=== Inhaltsfilter konfigurieren (Dansguardian) RETIERED === Der Inhaltsfilter lässt sich konfigurieren unter '''Service''' > '''Dansguardian''': * Im Untermenü '''Blacklist''' wird der Link zum Download der [[http://www.shallalist.de/Downloads/shallalist.tar.gz|Shallaliste]] eingefügt. * Unter ACLs wird bei der Phraselist, der Sitelist, URLlist und Extensionlist (bei Bedarf auch bei den anderen Listen) ein neuer Filter '''Schule''' angelegt und dann jede Liste wie folgt bearbeitet: * der Filter wird enabled * unter '''banned lists''' werden die zu filternden Begriffe mit '''STRG+Mausklick''' markiert * unter '''Exception lists''' (z.B. unter ''Sitelist'') werden explizit frei gegebene Homepages eingetragen * die Einstellungen speichern * damit die neu erstellten Filter (''Schule'') greifen, werden sie unter '''groups''' ausgewählt und gespeichert * Hosts die von der Filterung ausgenommen werden sollen werden unter: '''IPs''', '''Exception IP List''' mit der Host-IP eingetragen === Performanz des Inhaltsfilters optimieren RETIRED === 1. Das Konfigurationsmenü gibt Hinweise, welche Werte (abweichend von den Standardeinstellungen) für große Sites verwendet werden können. Diese Werte sind unter dem Reiter "Daemon" einzutragen. 1. Ferner kann man überlegen, das Verwenden von Phrasenlisten zu deaktivieren und sich nur auf den URL-Filter und den URL-Stichwortfilter von Dansguardian zu verlassen. Wenn nicht jede heruntergeladene Webseite nach malignen Inhalten durchsucht werden muss, ist eine Leistungssteigerung beim Aufrufen von Webseiten auf den angegliederten Clients zu erwarten. |
|
Zeile 99: | Zeile 96: |
|| EMAIL_CLIENTS || 10.6.0.50, 10.6.0.49 || PC am Tresen der Schulbibliothek (''Beispielhaft, nach Standort unterschiedlich evtl.'') || | || EMAIL_CLIENTS || 10.6.0.50, 10.6.0.49 || PC am Tresen der Schulbibliothek (''Beispielhaft, n=== Inhaltsfilter konfigurieren (Dansguardian) RETIERED === Der Inhaltsfilter lässt sich konfigurieren unter '''Service''' > '''Dansguardian''': * Im Untermenü '''Blacklist''' wird der Link zum Download der [[http://www.shallalist.de/Downloads/shallalist.tar.gz|Shallaliste]] eingefügt. * Unter ACLs wird bei der Phraselist, der Sitelist, URLlist und Extensionlist (bei Bedarf auch bei den anderen Listen) ein neuer Filter '''Schule''' angelegt und dann jede Liste wie folgt bearbeitet: * der Filter wird enabled * unter '''banned lists''' werden die zu filternden Begriffe mit '''STRG+Mausklick''' markiert * unter '''Exception lists''' (z.B. unter ''Sitelist'') werden explizit frei gegebene Homepages eingetragen * die Einstellungen speichern * damit die neu erstellten Filter (''Schule'') greifen, werden sie unter '''groups''' ausgewählt und gespeichert * Hosts die von der Filterung ausgenommen werden sollen werden unter: '''IPs''', '''Exception IP List''' mit der Host-IP eingetragen === Performanz des Inhaltsfilters optimieren RETIRED === 1. Das Konfigurationsmenü gibt Hinweise, welche Werte (abweichend von den Standardeinstellungen) für große Sites verwendet werden können. Diese Werte sind unter dem Reiter "Daemon" einzutragen. 1. Ferner kann man überlegen, das Verwenden von Phrasenlisten zu deaktivieren und sich nur auf den URL-Filter und den URL-Stichwortfilter von Dansguardian zu verlassen. Wenn nicht jede heruntergeladene Webseite nach malignen Inhalten durchsucht werden muss, ist eine Leistungssteigerung beim Aufrufen von Webseiten auf den angegliederten Clients zu erwarten. ach Standort unterschiedlich evtl.'') || |
Zeile 122: | Zeile 137: |
|| pass || no || * || * || * || GREEN Address || 443, 80, 22 || * || * || || Anti-Lockout Rule || | |
Zeile 124: | Zeile 140: |
|| pass || no || IPv4 UDP || LAN net || * || ITZkS_!VpnSrv || 1197 || * || none || || VPN-Access to ITZkS-VPN-Server (HGG), ''Port muss an Schule angepasst werden!!!''(1) || | || pass || no || IPv4 UDP || LAN net || * || ITZkS_!VpnSrv || 1197 || * || none || || VPN-Access to ITZkS-VPN-Server (<SCHULE>), ''Port muss an Schule angepasst werden!!!''(1) || |
Zeile 126: | Zeile 142: |
|| reject || no || IPv4+6 TCP/UDP || * || * || WAN net || * || * || none || || block all IPv4/IPv6 || |
Installationshinweise: pfSense Firewall des Debian Edu / Skolelinux Netzwerks
Download / Installationsmedium erstellen
Zunächst muss pfSense für das gewählte Installationsmedium (CD-ROM, USB-Stick) heruntergeladen werden: https://www.pfsense.org/download/
Hinweis: Das aktuelle amd64-Image ist unter pfSense-2.5.2-Downloads herunterzuladen.
Nach dem Download muss das Boot-Medium erstellt werden. Genauere Hinweise hierzu bitte der pfSense-Dokumentation entnehmen.
Netzwerkkarten identifizieren
Bevor mit der Installation des Firewall-Systems begonnen werden kann, muss für alle Netzwerkkarten die jeweils zugehörige MAC-Adresse ermittelt werden. Eine eindeutige Zuordnung von MAC-Adressen zu Netzwerkports ist für die spätere Konfiguration der Firewall-Software notwendig.
Basisinstallation
Den PC für das Firewall-System vom Installationsmedium starten und im Abfrage-Dialog von pfsense die folgenden Optionen auswählen:
Warten, bis der Boot-Prompt nach (R) für Recovery Mode oder (I) für Installer fragt und I drücken.
Gegebenenfalls beim nächsten Abfragebildschirm Anpassungen an den gebotenen Einstellungen vornehmen, sonst die Einstellungen akzeptieren und fortfahren.
Die Installationsmethode Quick/Easy Install kann für Systeme genutzt werden, in denen keine zwei Festplatten als Mirror funktionieren sollen, sonst Custom Install auswählen und den GEOM mirror erstellen.
Danach wird mit der Installation fortgefahren.
Bei Nachfrage den Standard Kernel auswählen.
Nun neu starten und den Bootdatenträger entfernen.
Die Installationsschritt sind im einzelnen im "Installation Walkthrough" beschrieben.
[... hier fehlt ein Stück Dokumentation ...]
Die Firewall wird nach Einrichtung der Netzwerkschnittstellen dann einfach über den Webkonfigurator konfiguriert.
Konfiguration via Webkonfigurator
Über den Webkonfigurator lassen sich die Parameter für das System und die Pakete einstellen. Unter Status > Service kann man die laufenden Dienste anhalten und neu starten. Unter Diagnostics lässt sich das System anhalten und neu starten.
Proxy konfigurieren
Der Proxy lässt konfigurieren unter Service > Proxy ...:
Firewall konfigurieren
DNS-Resolver
Unter Services > DNS Resolver werden die Einstellungen für den DNS-Resolver definiert.
General
Enabled |
yes |
Listen Port |
53 |
Network Interfaces |
All |
Outgoing Network Interface |
RED |
System Domain Local Zone Type |
Transparent |
Host Overrides:
Host |
Domain |
IP |
Description |
www |
google.de |
216.239.32.20 |
|
www |
google.com |
Alias for www.google.de |
|
www |
google.co.uk |
Alias for www.google.de |
|
Advanced
Hide Identity |
yes |
Hide Version |
yes |
Harden DNSSEC Data |
yes |
Message Cache Size |
yes |
Outgoing TCP Buffers |
10 |
Incoming TCP Buffers |
10 |
EDNS Buffer Size |
4096 |
Number of Queries per Thread |
512 |
Max. TTL for RRsets und Messages |
8640 |
Min. TTL for RRsets and Messages |
0 |
TTL for Host Cache Entries |
15 minutes |
Number of Hosts to Cache |
10000 |
Unwanted Reply Threshold |
Disabled |
Log Level |
1 |
Aliase
Unter Firewall > Aliases werden die Aliase für bestimmte Netzwerkadressen etc. definiert.
Gruppiert sind diese nach IP, Ports und URL und können je nach Standort unterschiedlich benötigt sein.
IP
Name |
Values |
Description |
Displayserver |
10.0.2.19 |
Vertretungsplan-Displays via DisplayServer (nur an bestimmten Standorten benötigt) |
|| EMAIL_CLIENTS || 10.6.0.50, 10.6.0.49 || PC am Tresen der Schulbibliothek (Beispielhaft, n=== Inhaltsfilter konfigurieren (Dansguardian) RETIERED === Der Inhaltsfilter lässt sich konfigurieren unter Service > Dansguardian: Im Untermenü Blacklist wird der Link zum Download der Shallaliste eingefügt. Unter ACLs wird bei der Phraselist, der Sitelist, URLlist und Extensionlist (bei Bedarf auch bei den anderen Listen) ein neuer Filter Schule angelegt und dann jede Liste wie folgt bearbeitet: unter banned lists werden die zu filternden Begriffe mit STRG+Mausklick markiert unter Exception lists (z.B. unter damit die neu erstellten Filter ( Hosts die von der Filterung ausgenommen werden sollen werden unter: IPs, Exception IP List mit der Host-IP eingetragen
ach Standort unterschiedlich evtl.
Sitelist) werden explizit frei gegebene Homepages eingetragen Performanz des Inhaltsfilters optimieren RETIRED
ITZkS_VpnSrv |
vpn.it-zukunft-schule.de |
VPN Server ITZkS (an allen Standorten nötig) |
public_WWW |
<Internetadresse der Schulhomepage> |
Schul-Homepage <Schule> |
Ports
Name |
Values |
Description |
MAIL_PROTOS |
25, 110, 143, 465, 587, 993, 995 |
Email Protocols |
WebLike_Ports |
80, 21, 443, 70, 210, 280, 488, 591, 777 |
Ports accessible through Squid |
Regeln für die Netzwerke
Unter Firewall > Rules werden die Firewall-Regeln des pfSense Systems aufgerufen.
RED (WAN) Regeln
Action |
Logged |
Protocol |
Source |
Port |
Destination |
Port |
Gateway |
Queue |
Schedule |
Description |
block |
no |
* |
Reserved (Not assigned by IANA) |
* |
* |
* |
* |
* |
|
Block bogon networks |
pass |
yes |
IPv4 TCP/UDP |
172.16.0.88 |
* |
This Firewall |
1194 (OpenVPN) |
* |
none |
|
Incoming OpenVPN from Backup-Server |
pass |
no |
IPv4 ICMP |
172.16.0.0/24 |
* |
This Firewall |
* |
* |
none |
|
|
GREEN (LAN) Regeln
Action |
Logged |
Protocol |
Source |
Port |
Destination |
Port |
Gateway |
Queue |
Schedule |
Description |
pass |
no |
* |
* |
* |
GREEN Address |
443, 80, 22 |
* |
* |
|
Anti-Lockout Rule |
pass |
no |
IPv4 TCP/UDP |
10.0.2.2 |
* |
* |
* |
* |
none |
|
allow all from Tjener |
pass |
no |
IPv4 ICMP |
* |
* |
* |
* |
* |
none |
|
always allow ICMP |
pass |
no |
IPv4 UDP |
LAN net |
* |
ITZkS_VpnSrv |
1197 |
* |
none |
|
VPN-Access to ITZkS-VPN-Server (<SCHULE>), Port muss an Schule angepasst werden!!!(1) |
pass |
no |
IPv4 UDP |
LAN net |
* |
ITZkS_VpnSrv |
1194 |
* |
none |
|
VPN access to ITZkS-VPN-Server (ADMINS) |
pass |
no |
IPv4 TCP |
EMAIL_CLIENTS |
* |
* |
MAIL_PROTOS |
* |
none |
|
Allow e-Mailing from BIB_TRESEN machines Standortabhängig |
pass |
no |
IPv4 TCP |
10.0.2.5 |
* |
* |
* |
* |
none |
|
internet access rule filter.intern |
pass |
no |
IPv4 TCP |
DisplayServer |
* |
public_WWW |
* |
* |
none |
|
Vertretungsplan-Displays holen PDFs direkt ab Standortabhängig |
(1) Port ist auf vidar unter /etc/openvpn/itzks-<SCHULE>.conf abzulesen.
WIFILEHRER
Action |
Logged |
Protocol |
Source |
Port |
Destination |
Port |
Gateway |
Queue |
Schedule |
Description |
block |
no |
IPv4 * |
* |
* |
172.16.0.0./24 |
* |
* |
none |
|
No access to BACKBONE network |
block |
no |
IPv4 * |
* |
* |
GREEN net |
* |
* |
none |
|
No access to EDU network |
block |
no |
IPv4 * |
* |
* |
WIFIGAESTE net |
* |
* |
none |
|
No access to WIFIGAESTE network |
block |
no |
IPv4 * |
* |
* |
WIFISCHUELER net |
* |
* |
none |
|
No access to WIFISCHUELER network |
pass |
no |
IPv4 * |
WIFILEHRER net |
* |
* |
* |
* |
none |
|
Allow everything except previously blocked |
WIFISCHUELER
Action |
Logged |
Protocol |
Source |
Port |
Destination |
Port |
Gateway |
Queue |
Schedule |
Description |
block |
no |
IPv4 * |
* |
* |
172.16.0.0./24 |
* |
* |
none |
|
No access to BACKBONE network |
block |
no |
IPv4 * |
* |
* |
GREEN net |
* |
* |
none |
|
No access to EDU network |
block |
no |
IPv4 * |
* |
* |
WIFIGAESTE net |
* |
* |
none |
|
No access to WIFIGAESTE network |
block |
no |
IPv4 * |
* |
* |
WIFILEHRER net |
* |
* |
none |
|
No access to WIFILEHRER network |
pass |
no |
IPv4 * |
WIFISCHUELER net |
* |
* |
* |
* |
none |
|
Allow everything except previously blocked |
WIFIGAESTE
Action |
Logged |
Protocol |
Source |
Port |
Destination |
Port |
Gateway |
Queue |
Schedule |
Description |
block |
no |
IPv4 * |
* |
* |
172.16.0.0./24 |
* |
* |
none |
|
No access to BACKBONE network |
block |
no |
IPv4 * |
* |
* |
GREEN net |
* |
* |
none |
|
No access to EDU network |
block |
no |
IPv4 * |
* |
* |
WIFILEHRER net |
* |
* |
none |
|
No access to WIFILEHRER network |
block |
no |
IPv4 * |
* |
* |
WIFISCHUELER net |
* |
* |
none |
|
No access to WIFISCHUELER network |
pass |
no |
IPv4 * |
WIFIGAESTE net |
* |
* |
* |
* |
none |
|
Allow everything except previously blocked |
OpenVPN Regeln
Action |
Logged |
Prototocol |
Source |
Port |
Destination |
Port |
Gateway |
Queue |
Schedule |
Description |
pass |
no |
IPv4 ICMP |
* |
* |
LAN net |
* |
* |
none |
|
always allow ICMP |
pass |
no |
IPv4 TCP |
* |
* |
LAN net |
22 |
* |
none |
|
VPN Clients (e.g. backup-01) may SSH into all machines |
Captive Portal
Konzept
Für die Bereitstellung einer WiFi-Umgebung wird die "Captive Portal"-Funktion in pfSense für Schulen eingerichtet. Es werden 4 WiFi-Netze bereitgestellt:
<SCHULE>-Edu -> ohne Captive Portal, systemweite WPA-PSK passphrase
<SCHULE>-Lehrer -> mit Captive Portal, Anmeldung mit Benutzername+Kennwort via RADIUS+LDAP Server auf TJENER
- - Großzügiger Zugriff auf Internet-Dienste - Transparenter Proxy ohne Inhaltsfilter
<SCHULE>-Schueler -> mit Captive Portal, Anmeldung mit Benutzername+Kennwort via RADIUS+LDAP Server auf TJENER
- - Stark eingeschränkter Zugriff auf Internet-Dienste - Transparenter Proxy mit Inhaltsfilter
<SCHULE>-Gastzugang -> mit Captive Portal auf Basis von "Vouchers"
Netzwerk-Layout
Jedes dieser WiFi-Netze wird über eine separate ESSID bereit gestellt. Verbinden sich Clients mit einer der ESSID landen sie (per DHCP) in einem von vier (eigentlich drei) dedizierten Subnetzen:
<SCHULE>-Edu -> 10.0.0.0/8 (wie andere Edu-Clients auch)
<SCHULE>-Lehrer -> 172.27.0.0/16
<SCHULE>-Schueler -> 172.28.0.0/16
<SCHULE>-Gastzugang -> 172.29.0.0/16
Alle Access Points werden über einen VLAN Trunk versorgt. Auf diesem VLAN-Trunk liegen die vier oben genannten Subnetze. Die Subnetze im 172er Bereich werden als VLAN-Trunk bis in das "BLUE" Interface der pfSense geführt, das 10er Netz auf der nächstgelegenen managebaren Switch "aussortiert" und im Edu-VLAN der Schule verteilt.
VLAN-Layout
Die VLANs für die 172er Netze werden wie folgt konfiguriert:
<SCHULE>-Lehrer -> VLAN Name: WiFi-Lehrer, VLAN Id: 27
<SCHULE>-Schueler -> VLAN Name: WiFi-Schueler, VLAN Id: 28
<SCHULE>-Gastzugang -> VLAN Name: WiFi-Gastzugang, VLAN Id: 29
In der pfSense werden (via BLUE Netzwerkschnittstelle) obige VLANs voneinander getrennt und drei verschiedenen "Captive Portal Zonen" zugeordnet.
Captive Portal Zonen
<SCHULE>-Lehrer -> 172.27.0.0/16
- Einstellungsabweichungen von den Defaults hier listen
<SCHULE>-Schueler -> 172.28.0.0/16
- Einstellungsabweichungen von den Defaults hier listen
<SCHULE>-Gastzugang -> 172.29.0.0/16
- Einstellungsabweichungen von den Defaults hier listen
Nutzungshinweise für Captive Portal
Nutzungshinweise werden hier gelistet.
Konfigurationen auf Konsolenebene
Um auf der Konsolenebene besser arbeiten zu können sollten einige Programme nachinstalliert und einige Parameter konfiguriert werden. Zum Erreichen der Konsole im Auswahlmenü 8 drücken.
Danach kann man folgende Konfigurationen vornehmen:
Tastaturlayout auf Deutsch einstellen: kbdcontrol -l /usr/share/vt/keymaps/de.kbd
- Software nachinstallieren (muss kompiliert werden, nachfolgend erster Schritt):
Paketverwaltung installieren: pkg
Paketlisten aktualisieren: pkg update
Prozessmonitor htop installieren: pkg install htop
Editor mc installieren: pkg install mc
Schulname auf HTML Template ändern: in /usr/pbi/dansguardian-amd64/local/share/dansguardian/languages/german/template.html "IHRE FIRMA" ersetzen
- Cachemanager installieren (noch nicht fertig!, nachfolgend Ideensammlung):
- ln -s /usr/pbi/squid-amd64/local/libexec/squid/cachemgr.cgi cachemgr.cgi
/usr/pbi/squid-amd64/local/etc/squid/cachemgr.conf editieren: (z.B. via "Diagnostics" > "Edit File")
check this: Credit to the post HERE for getting me started, but here's a neater solution to accessing the manager. From a pfSense shell, first enable writes to the file system if using nanobsd. Code: [Select] /etc/rc.conf_mount_rw Then enter the following commands to enable the web page. Code: [Select] cd /usr/local/www ln -s /usr/local/libexec/squid/cachemgr.cgi cd /usr/local/etc/squid cp cachemgr.conf.default cachemgr.conf No need to modify from the default. Next, modify the file at /usr/local/pkg/squid.xml adding the lines highlighted below in red, starting at line 94. <tab> <text>Local Users</text> <url>/pkg.php?xml=squid_users.xml</url> </tab> <tab> <text>CacheMgr</text> <url>/cachemgr.cgi?host=localhost&port=3128&user_name=&operation=menu&auth=" target="_blank</url> </tab> </tabs> <!-- Installation --> On nanobsd, switch back to read-only. https://forum.pfsense.org/index.php?topic=67607.0 https://forum.pfsense.org/index.php?topic=14609.0