Unterschiede zwischen den Revisionen 43 und 61 (über 18 Versionen hinweg)
Revision 43 vom 2017-06-30 12:39:47
Größe: 10065
Kommentar:
Revision 61 vom 2017-08-29 12:43:58
Größe: 13757
Kommentar:
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 8: Zeile 8:
Zunächst muss ipFire für das gewählte Installationsmedium (CD-ROM, USB-Stick) heruntergeladen werden: http://www.ipfire.org/downloads

Nach dem Download muss das Boot-Medium erstellt werden. Genauere Hinweise hierzu bitte der [[http://www.ipfire.org/support|ipFire-Dokumentation]] entnehmen.
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 [[https://frafiles.pfsense.org/mirror/downloads/pfSense-CE-2.3.4-RELEASE-amd64.iso.gz|pfSense-2.3.4-Downloads]] herunterzuladen.


Nach dem Download muss das Boot-Medium erstellt werden. Genauere Hinweise hierzu bitte der [[https://doc.pfsense.org/index.php/Writing_Disk_Images|pfSense-Dokumentation]] entnehmen.
Zeile 21: Zeile 23:
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. 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.
Zeile 31: Zeile 33:
=== Inhaltsfilter konfigurieren (Dansguardian) === === Inhaltsfilter konfigurieren (Dansguardian) RETIERED ===
Zeile 44: Zeile 46:
=== Performanz des Inhaltsfilters optimieren === === Performanz des Inhaltsfilters optimieren RETIRED ===
Zeile 51: Zeile 53:
==== 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, nach Standort unterschiedlich evtl.'') ||
|| 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 ====
Zeile 53: Zeile 76:
==== WAN Regeln ====

|| type || ID || Proto || Source || Port || Destination || Port || Gateway || Queue || Schedule || Description ||
|| pass || || IPv4 TCP/UDP || 172.16.0.88 || * || This Firewall || 1194 (OpenVPN) || * || none || || Incoming OpenVPN from Backup-Server ||

==== LAN Regeln ====

|| type || ID || Proto || Source || Port || Destination || Port || Gateway || Queue || Schedule || Description ||
==== 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 ||
Zeile 63: Zeile 88:
|| pass || || IPv4 UDP || LAN net || * || ITZkS_VpnSrv || 1197 || * || none || || VPN-Access to ITZkS-VPN-Server (HGG), ''muss an Schule angepasst werden!!!'' ||
|| pass || || IPv4 UDP || LAN net || * || ITZkS_VpnSrv || 1194 || * || none || || VPN access to ITZkS-VPN-Server (ADMINS) ||
|| pass || || IPv4 UDP || LAN net || * || ITZkS_!VpnSrv || 1197 || * || none || || VPN-Access to ITZkS-VPN-Server (HGG), ''Port muss an Schule angepasst werden!!!'' ||
|| pass || || IPv4 UDP || LAN net || * || ITZkS_!VpnSrv || 1194 || * || none || || VPN access to ITZkS-VPN-Server (ADMINS) ||
Zeile 67: Zeile 92:
==== 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 ||
Zeile 69: Zeile 121:
|| type || ID || Proto    || Source || Port || Destination || Port || Gateway || Queue || Schedule || Description || || Action || Logged || Prototocol || Source || Port || Destination || Port || Gateway || Queue || Schedule || Description ||
Zeile 77: Zeile 129:
Für die Bereitstellung einer WiFi-Umgebung wird die "Captive Portal"-Funktion in pfSense für Schulen eingerichtet. Es werden 4 WiFi-Netze bereitgestellt: Für die Bereitstellung einer !WiFi-Umgebung wird die "Captive Portal"-Funktion in pfSense für Schulen eingerichtet. Es werden 4 !WiFi-Netze bereitgestellt:
Zeile 90: Zeile 142:
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: 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:
Zeile 103: Zeile 155:
  * <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
  * <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

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.3.4-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.

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.

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 ...:

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:

    • 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.
  2. 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.

Firewall konfigurieren

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, nach Standort unterschiedlich evtl.)

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

IPv4 TCP/UDP

10.0.2.2

*

*

*

*

none

allow all from Tjener

pass

IPv4 ICMP

*

*

*

*

*

none

always allow ICMP

pass

IPv4 UDP

LAN net

*

ITZkS_VpnSrv

1197

*

none

VPN-Access to ITZkS-VPN-Server (HGG), Port muss an Schule angepasst werden!!!

pass

IPv4 UDP

LAN net

*

ITZkS_VpnSrv

1194

*

none

VPN access to ITZkS-VPN-Server (ADMINS)

reject

IPv4+6 TCP/UDP

*

*

WAN net

*

*

none

block all IPv4/IPv6

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

IPv4 ICMP

*

*

LAN net

*

*

none

always allow ICMP

pass

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&amp;port=3128&amp;user_name=&amp;operation=menu&amp;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

IT-Zukunft Schule: Technik/Installation/Firewall/Pfsense (zuletzt geändert am 2023-03-22 10:38:00 durch DanielTeichmann)