Beiträge zu dem Tag: “pfsense”

pfsene und Freeradius

Hat man so einen Radius Server mal am laufen möchte man natürlich so viel wie möglich Kennwörter damit ersetzen.

Auch pfsense erlaubt es das man als Anmeldeserver einen Radius Server verwendet. Leider habe ich nirgendwo eine Beschreibung gefunden wie das geht. Vor allem war mir das mit den Gruppen nicht klar. Bis ich hier mal gefragt habe und es ist deutlich einfacher als ich dachte.

Zuerst sagen wir unseren Freeradius Server das er bei den gewünschten Benutzern eine Klasse mit übergibt die den Namen einer Gruppe beinhaltet:

 vi /etc/freeradius/users 
    yourpfadminuser Cleartext-password :="yourpfadminpassword"
    Class := yourpfadmingroup
/etc/init.d/freeradius restart

Danach erstellen wir auf der pfsense eine neue Gruppe mit dem eben genannten Gruppennamen

und weisen dann dieser Gruppe die Rechte zu die wir haben wollen

Dann geben wir den Freeradius Server der pfsense bekannt

Damit wir uns sicher sind das die Anmeldung auch klappt und wir uns nicht aussperren können wir das erst einmal testen

und wenn alles gut läuft bekommen wir ein

Jetzt sagen wir der pfsense das der Radius Server für die Anmeldung genommen werden soll.

Wir bleiben mit dem Browser noch angemeldet (falsch noch etwas schief geht) und starten in einem anderen Browser ob wir uns mit dem Nutzer aus dem Radius Server anmelden können.

23.7.17
Weitere Beiträge zu: freeradius   pfsense  

pfsense OpenVPN Server um Anmeldung erweitern

An dieser Stelle habe ich beschrieben wie ich auf meiner pfsense Firewall einen Openvpn Server mit TLS Zertifikaten eingerichtet haben.

Eine Anmeldung sollte also nur möglich sein wenn man die richtigen Zertifikate hat und auch noch den TLS Schlüssel besitzt. Aus meiner Sicht schon eine hohe Hürde. Da ich allerdings auch von meinem Mobilfunkgerät das VPN nutzen möchte und diese Daten dort abgelegt sind wollte ich noch den Faktor eines Nutzernamens / Password hinzufügen.

Hier meine Schritte

1. Erweitern der Openvpn Konfiguration

Zuerst sagen wir dem OpenVPN Server das wir auch eine Anmeldung mit Nutzernamen wollen

Damit ist eine Anmeldung wie bisher nicht mehr möglich.

 ... TLS Error: Auth Username/Password was not provided by peer
 ... TLS Error: TLS handshake failed 

2. Nutzer einrichten und Zertifikat vergeben.

Zuerst erstellen wir einen neuen Benutzer in der pfsense

und dann importieren wir das Zertikat

3. Client Konfiguration anpassen

In den Konfigurationen der Clients fügen wir jetzt diese Zeile hinzu

auth-user-pass

Auf dem Android Geräte musste ich dann die existierende Konfiguration löschen und noch mal neu importieren. Danach werde ich aufgefordert einen Nutzernamen und ein Kennwort zu vergeben. Und dann klappt es auch wieder mit dem Anmelden.

16.6.17
Weitere Beiträge zu: OpenVPN   pfsense   Android  

Android Geräte an einem pfsense OpenVPN Server

Die Schritte zum Einbinden eines Android Gerätes in ein OpenVPN Netzwerk sind dann eigentlich recht einfach.

Zuerst gilt es wieder ein neuen Nutzerzertifikates wie schon hier beschrieben anzulegen.

Ich habe mir auf meinem CA Notebook ein Verzeichnis eingerichtet in dem die “Transferpakete” zusammenstelle. Dorthin kopiere ich alle notwendigen Daten

 mkdir transferpakete/openvpn2
 cp certs/ca.cert.pem transferpakete/openvpn2/
 cp certs/user2-openvpn.cert.pem transferpakete/openvpn2/
 cp private/user2-openvpn.key.pem transferpakete/openvpn2/

und erstelle wieder die server-tls.key wie schon für den Debian Client. Der Openvpn Client arbeitet mit der gleichen Client Konfiguration wie oben verlinkt schon beschreiben. Sie muss aber die Endung ovpn haben.

 vi transferpakete/openvpn2/server-tls.key
 vi transferpakete/openvpn2/home.ovpn
 tar czvf openvpn2.tar.gz openvpn2/

Das Paket muss man dann “irgendwie” auf das Handy ausgepackt bekommen.

Dort kann man dann im OpenVPN Client unter “Import / Import Profile from SD Card” diese ovpn Datei importieren.

14.6.17
Weitere Beiträge zu: OpenVPN   pfsense   Android  

pfSense mit OpenVPN Server

Dies ist die Dokumentation meiner openvpn / pfsense einrichtung mit einer separaten CA. Im Gegensatz zu dieser Beschreibung verwende ich hier nicht den Ansatz mit easyRSA.

Wie immer, aber hier besonders: Use at your own risk.

Die pfsense aktualisiert bei afraid.org einen dynamischen DNS eintrag namens openvpn.xyz.org

1. Erstellen der notwendigen Zertifikate auf einer Debian basierenden openssl CA

Zuerst das Serverzertifikat

 openssl genrsa -out private/openvpn.xyz.org.key.pem 4096
 openssl req -new -key private/openvpn.xyz.org.key.pem -out certs/openvpn.xyz.org.csr.pem
 openssl ca -config openssl.cnf -extensions server_cert -notext -md sha256 -in certs/openvpn.xyz.org.csr.pem -out certs/openvpn.xyz.org.cert.pem

Dann ein separater Nutzer für die Openvpn Nutzung

openssl genrsa -out private/user1-openvpn.key.pem 4096
openssl req -new -key private/user1-openvpn.key.pem -out certs/user1-openvpn.csr.pem
openssl ca -config openssl.cnf -notext -md sha256 -in certs/user1-openvpn.csr.pem -out certs/user1-openvpn.cert.pem

2. Importieren des Zertifikates

Genau dieselbe Prozedur wir hier mit einem anderem Namen.

3. Erstellen der OpenVPN Server Konfiguration

Ich verwende hierzu den Wizard unter VPN \ OpenVPN

Hier wählen wir die vorhandene CA aus

und jetzt das gerade importierte Server Zertifikat

Beim Serversetup habe ich mich an die Default Werte gehalten.

Bei Tunnel Network ein neues noch nicht verwendetes Netzwerk eingeben und bei Local Network das Netzwerk angeben in das man gehen möchte (wenn man verschiedene VLANs hat). Bei Compression habe ich entgegen dem Screenshot später “Enabled with adaptiv…. “ ausgewählt.

Ich habe hier gleich die richtigen Regeln erstellen lassen

Und fertig

Optional habe ich noch einen User angelegt den ich aber noch nicht verwendet habe.

Da ich in den Einstellungen des OpenVPN Servers erst einmal nur “Remote Access SSL/TLS” ausgewählt habe. Das möchte ich später noch um ändern.

Dafür kann man hier schon mal den TLS Key kopieren. Den brauchen wir gleich auf der Client Seite.

So jetzt ist der Server fertig.

4. Erstellen einer OpenVPN Client Konfiguration auf Debian

Auf der Client Seite habe ich in einem Verzeichnis den gerade kopierten TLS key in eine Datei kopiert. Ausserdem brauchen wir noch die ca.cert und den user cert / key aus Schritt 1.

 vi server-tls.key 
   paste the tls key from openvpn server

 vi client.opvn 
    client
    dev tun
    proto udp
    remote openvpn.xyz.org <your opvn port> 
    resolv-retry infinite
    nobind
    user nobody
    group nogroup
    persist-key
    persist-tun
    ca ca.crt
    cert user1-openvpn.cert.pem
    key openvpn.xyz.org.key.pem
    ns-cert-type server
    cipher AES-256-CBC
    comp-lzo
    verb 3
    tls-auth server-tls.key  1

5. Verbindung aufbauen

Dann konnte ich mit

 sudo openvpn --config client.ovpn 

eine erfolgreiche Verbindung zu dem Server aufbauen

 ......
 ......
 Sun Jun 11 17:35:10 2017 OPTIONS IMPORT: timers and/or timeouts modified
 Sun Jun 11 17:35:10 2017 OPTIONS IMPORT: --ifconfig/up options modified
 Sun Jun 11 17:35:10 2017 OPTIONS IMPORT: route options modified
 Sun Jun 11 17:35:10 2017 OPTIONS IMPORT: route-related options modified
 Sun Jun 11 17:35:10 2017 Preserving previous TUN/TAP instance: tun0
 Sun Jun 11 17:35:10 2017 Initialization Sequence Completed

Offen / Todo

  • Umstellen von SSL / TLS auf “SSL/TLS username password”
  • Anbinden eines Android Clients
11.6.17
Weitere Beiträge zu: pfsense   OpenVPN  

pfSense mit eigener CA verbinden

Die gängingen Beschreibungen zum Nutzen eine private Certificate Authority gehen immer von einer Nutzung des pfsense interne CA Managers aus.

Da ich aber schon eine eigene CA betreibe wollte ich diese natürlich nutzen und nicht noch mehr privat signierte Zertifikate erzeugen. Ausgangspunkt ist diese Beschreibung.

Zuerst erzeugen wir wie für jeden normalen Webserver den Key, CSR und das Zertifikate

openssl genrsa -out private/your.pfsense.key.pem 4096
openssl req -new -key private/your.pfsense.key.pem -out certs/your.pfsense.csr.pem
openssl ca -config openssl.conf -extensions server_cert -notext -md sha256 -in certs/your.pfsense.csr.pem -out certs/your.pfsense.cert.pem

Dann geht man in die pfSense Administration und fügt zu erst cut and paste den Inhalt der ca.cert.pem ein:

Dann geht man zu den Zertifikaten und importiert das erzeugten Schlüssel your.pfsense.key.pem und das Zertifikat aus your.pfsense.cert.pem.

Jetzt kann man in den Advanced Settings das neue eigene Zertifikat auswählen

10.6.17
Weitere Beiträge zu: pfsense   CA  

Ein pfSense Backup von der Console restaurieren

Bei dem Versuch ein eigenes Zertifikat auf meiner pfsense Box zu installieren ist etwas schief gegangen (was muss ich später noch herausfinden) und die Weboberfläche für die Administration wurde nicht mehr gestartet.

Das Gerät hat keinen Tastatur oder Monitoranschluß sondern nur eine “Console” mit einem Mini USB Anschluss.

Unter Ubuntu 16.10 konnte ich diesen Anschluss wie folgt verwenden. Man verbindet den Rechner mit der Konsole über das USB Kabel und lädt einen usb - seriell Treiber

sudo modprobe cp210x
dmesg 
cp210x converter detected
[210931.760139] usb 1-1.1: cp210x converter now attached to ttyUSB1

Wenn noch nicht vorhanden das Terminalprogram screen installieren

 sudo apt install screen

Mit der Box verbinden und das Menu starten:

 sudo screen /dev/ttyUSB1 115200
 sudo /etc/rc.initial

In meinem Fall wollte ich auf eine Konfiguration zurückspringen und mit Hilfe des Backups unter 15 ist mir das gelungen.

  0) Logout (SSH only)                  9) pfTop
  1) Assign Interfaces                 10) Filter Logs
  2) Set interface(s) IP address       11) Restart webConfigurator
  3) Reset webConfigurator password    12) PHP shell + pfSense tools
  4) Reset to factory defaults         13) Update from console
  5) Reboot system                     14) Enable Secure Shell (sshd)
  6) Halt system                       15) Restore recent configuration
  7) Ping host                         16) Restart PHP-FPM
  8) Shell
  

   Enter an option: 15

   Restore Backup from Configuration History
   
   1) List Backups
   2) Restore Backup
   Q) Quit

   List

    03. 12/13/16 11:04:19   v15.5   admin@192.168.xxxxxx
        /interfaces_assign.php made unknown change
    
    02. 12/17/16 18:03:02   v15.5   admin@192.168.xxxxxx
        /system_camanager.php made unknown change
    
    01. 12/17/16 18:03:57   v15.5   admin@192.168.xxxxxx
        /system_certmanager.php made unknown change

Hoffnungsvoll setzte ich alles auf das Backup vor meinen Änderungen im CA Manager

  Restore Backup from Configuration History
  
  1) List Backups
  2) Restore Backup
  Q) Quit

  Please select an option to continue: 2
  Which configuration would you like to restore?
   1-30 : 3
  
   Is this the backup you wish to restore?
  03. 12/13/16 11:04:19   v15.5   admin@192.168.xxxxxxx
      /interfaces_assign.php made unknown change
  
  Y/N? : y
  
  Successfully reverted to timestamp 12/13/16 11:04:19 with description "admin@192.168.xxxxx: /interfaces_assign.php       made unknown change".
  You may need to reboot the firewall or restart services before the restored configuration is fully active.

Dann noch ein entschlossener Restart des WebConfigurators unter 11

  0) Logout (SSH only)                  9) pfTop
  1) Assign Interfaces                 10) Filter Logs
  2) Set interface(s) IP address       11) Restart webConfigurator
  3) Reset webConfigurator password    12) PHP shell + pfSense tools
  4) Reset to factory defaults         13) Update from console
  5) Reboot system                     14) Enable Secure Shell (sshd)
  6) Halt system                       15) Restore recent configuration
  7) Ping host                         16) Restart PHP-FPM
  8) Shell

Back in Business

17.12.16
Weitere Beiträge zu: pfsense  

pfSense 2.3 verfügbar

Die Firewall pfSense ist in einer neuen Version verfügbar. Vor allem die administrative Oberfläche hat ein neues Design erhalten und im Hintergrund wurde einiges renoviert Announcement mit Video

Das Update ist wie immer über einen einfachen Buttonclick durchführbar

20.4.16
Weitere Beiträge zu: pfsense  

pfSense: Herstellerangaben bei den DHCP Infos

Wenn man einen gewissen Überblick über die Geräte in seinem Netzwerk behalten möchte hilft einem pfSense mit einer Darstellung der vergebenen IP Adressen mit MAC Adresse.

Möchte man herausfinden zu welchem Gerät eine IP Adresse gehört kann es etwas helfen wenn man neben der MAC Adresse auch den Hersteller angezeigt bekommt. Ich wusste zwar nicht das es eine Zuordnung dieser Art gibt, aber wenn man in pfsense das Packet nmap installiert werden die Hersteller mit angezeigt.

Kann praktisch sein.

28.10.15
Weitere Beiträge zu: pfsense  

pfSense 2.2 Update verfügbar

Es gibt eine neue Version von der Router Software pfsense

Einlogen, auf den Update Link drücken

alternat-txt

10 Minuten warten. Done

alternat-txt

24.1.15
Weitere Beiträge zu: pfsense  

Die Debian Installer CD mit pfSense von einem NAS4Free via PXE booten

Ziel war es, die Installations-CDs von Debian (und später noch andere) über das Netzwerk zu booten. Fast alle Rechner erlauben heute so etwas via PXE.

Hilfreich für diesen Ablauf war diese und diese Beschreibung.

Im wesentlichen braucht man hierzu 2 Komponenten:

  1. DHCP Server
  2. TFTP Server

Zuerst der DHCP Server der hier auf einem pfSense Router liegt. Hier ist bei “Services: DHCP server” der Abschnitt “TfTPServer” und “Enable network booting” auszufüllen:

Wenn man jetzt einen Rechner im Netz bootet sollte man eine IP Adresse bekommen und die Meldung das keine Datei geladen wurde.

Dann folgt die Einrichtung des TFTP Servers auf NAS4Free. Hier habe ich zuerst ein Dataset eingerichtet von denen die Dateien geladen werden müssen:

und dann den TFTP Service mit diesem Verzeichnis gestartet:

Zusätzlich habe ich noch einen NFS Share auf dieses Verzeichnis eingerichtet damit ich später leichter die gewünschten Dateien auf das NAS bekomme. Diese Freigabe habe ich jetzt auf einem existierenden Linux PC eingebunden und dort dann das Boot Image von Debian geladen.

 wget http://ftp.de.debian.org/debian/dists/Debian7.7/main/installer-i386/current/images/netboot/netboot.tar.gz
 tar xzfv netboot.tar.gz 

Und schon waren alle Dateien an der richtigen Stelle und wenn man jetzt einen Rechner mit PXE bootet lacht einen auch schon der schöne Installer Screen von Debian an.

Das war jetzt der erste Schritt. Die nächste Aufgabe besteht jetzt darin beim Booten vom Netz aus einem Menü unterschiedliche Bootoptionen auswählen zu können.

6.11.14
Weitere Beiträge zu: pfsense   NAS4Free   Debian  

Push Notification bei kritischen Einträgen im Logfile bei syslog-ng

Ich wollte einen Weg finden wie ich auf bestimmte Ereignisse in Logfile durch eine Pushnachricht per Mail (oder auch per Pushover) benachrichtigt werden. Die wesentliche Idee habe ich von hier übernommen und basiert auf Syslog-ng.

Konkret will ich über erfolglose und erfolgreiche Logins auf meinem Openvpn Server informiert werden. Wahrscheinlich kann man einiges noch verbessern aber es tut es.

Zuerst brauchen wir ein Script, das aus einer Pipe heraus Mailnachrichten und über Pushover auf meine mobilen Geräte versendet.

vi /usr/local/bin/log-mail.sh
  #!/bin/bash
  subject="Openvpn Aktivitaet"
  email="your.mail.de"
  URL="https://api.pushover.net/1/messages.json"
  API_KEY="yourapikey"
  USER_KEY="youruserkey"
  while read event;
  do
  	  echo ${event} | mail -s "${subject}" ${email}
	  curl  -F "token=${API_KEY}" -F "user=${USER_KEY}" -F "title=${subject}" -F "message=${event}" "${URL}" > /dev/null 2>&1
  done

chmod +x /usr/local/bin/log-mail.sh

Dann brauchen wir noch die Konfiguration von Syslog

vi /etc/syslog-ng/syslog-ng.conf

     filter f_openvpn1 { message("Peer Connection");};
         filter f_openvpn2 { message("TLS Auth Error");};
     destination d_email_notification { program("/usr/local/bin/log-mail.sh"); };
     log { source(src); filter(f_openvpn1); destination(d_email_notification); };
     log { source(src); filter(f_openvpn2); destination(d_email_notification); };

Die ersten beiden Zeilen legen den Zeichenstring fest, für den ich mich interessiere. Die dritte Zeile sagt, dass es ein Programm gibt das Events entgegen nehmen kann. Die vierte und fünfte Zeile verbindet den Filter mit der Destination und sagt, dass die interessanten Events an das gerade erstellte Programm versenden werden soll.

Dann kommen Nachrichten per Mail und Pushover.

[Openvpn Pushover Notification]

18.4.14
Weitere Beiträge zu: pfsense   Pushover   OpenVPN   Logfile  

Firewalltests nicht von einer UMTS Verbindung ausführen

Gestern wollte ich routinemässig meine Firewall auf offene Ports testen. Einfach so.

Normalerweise nehme ich dazu ShieldsUp

Gestern kam ich auf die Idee das mit dem Portscanner nmap durchzuführen. Also UMTS Karte rein und los gehts.

Starting Nmap 5.21 ( http://nmap.org ) at 2014-02-04 08:30 CET
Nmap scan report for 217.232.xx.xxx
Host is up (0.066s latency).
Not shown: 165 filtered ports
PORT      STATE SERVICE
21/tcp    open  ftp
25/tcp    open  smtp
80/tcp    open  http
110/tcp   open  pop3
143/tcp   open  imap
1025/tcp  open  NFS-or-IIS
1026/tcp  open  LSA-or-nterm
1027/tcp  open  IIS
1028/tcp  open  unknown
1029/tcp  open  ms-lsa
1030/tcp  open  iad1
1031/tcp  open  iad2
.....

und so weiter. Alles offen.

Schnappatmung, Puls geht hoch.

Mit dem Browser auf meine IP Addresse. "Warten auf Server" aber kein Ergebniss.

In pfSense rein. Alles geblockt. Dann Shieldsup aufgerufen

201402-grc-screenshot.pngAlles zu. Na schon besser. Noch eine anderen Scanner ausprobiert - auch alles zu. Im pfsense Forum dann einen erleichternden Hinweis

A lot depends on not only where you run the scan from but from what kind of router you are running the scan from behind.
If you are running a scan from a system behind a proxy (ftp proxy, web proxy, etc) you may be getting lured into that proxy instead of actually hitting the box you are trying to scan.
A scan from somewhere else like GRC is likely to be more accurate than an nmap scan from a 3G dongle/tethering setup.

Aha - das höhrt sich ja nach einer Erklärung an. Also ab auf unseren Shopserver und den selben Test nochmal

nmap 217.232.xx.xxx

Starting Nmap 5.00 ( http://nmap.org ) at 2014-02-04 21:27 CET
Note: Host seems down. If it is really up, but blocking our ping probes, try -PN
Nmap done: 1 IP address (0 hosts up) scanned in 3.16 seconds

Vieeel besser. Also doch alles zu.

Anscheinend gibt es manchmal proxy server in Netzen die eine Antwort vorgaukeln.

4.2.14
Weitere Beiträge zu: Firewall   pfsense  

pfSense: Portforwarding von "innen" testen

An dieser Stelle hatte ich darauf hingewiesen das man bei pfSense das Testen von Portforwarding Einstellungen nur von "aussen" durchführen kann. Jetzt habe ich ein Dokument gefunden das beschreibt mit welchen Einstellungen das auch aus dem Internen Netzwerk selbst geht. Es werden verschiedene Möglichkeiten beschrieben. Zum einfachen Testen reicht bei mir das Ausschalten der "NAT Reflection"

Unter "System: Advanced: Firewall and NAT"

201111-pfsense-nat-reflection.png

 


 

26.11.11
Weitere Beiträge zu: pfsense  

Installation von pfsense 2.0 auf einem Alix embedded PC

Ein Alix ist ein sogenannter embedded PC mit einen AMD Geode Prozessor. Hauptmerkmale sind geringer Stromverbrauch. Hauptunterschied zu einem normalen PC: keine Tastatur, keine Grafikkarte. Auf dem Board sind im wesentlichen der Prozessor, etwas Hauptspeicher, ein Slot für eine CF Karte, serielle Schnittstelle, 3 Netzwerkkarten und USB Slots.  Das wars.

201110-alix-0.jpgSehen kann man nur etwas, wenn man ein Null Modemkabel an den serielle Schnittstelle anschliest und auf einem PC ein Terminal Programm startet.

Da bei mir nur noch ein alter Windowsrechner eine serielle Schnittstelle hat verwende ich Hyperterminal. Die Schnittstelle muß auf 38400 8 N1 eingestellt werden.. Wenn alles klappt sieht man dann:

201110-alix-1.jpgDie gängigen Beschreibungen sagen alle das man die Geschwindigkeit auf 9600 runterstellen soll (keine Ahnung warum. ich machs einfach). Wenn der Speicher hochzählt einfach auf s drücken und dann 9

201110-alix-2.jpgSo. Jetzt muß "nur noch die pfsense software auf die CF Karte". Ich verwende ein normales Lesegerät auf einem Linux Rechner. Download der Software und auspacken (sdb ist meine cf karte) BITTE VORHER GENAU DAS DEVICE PRÜFEN. NICHT DAS SICH JEMAND SEINE PLATTE ÜBERSCHREIBT.

# zcat pfSense-2.0-RELEASE-512mb-i386-nanobsd.img.gz | dd of=/dev/sdb bs=16k
31279+1 records in
31279+1 records out
512483328 bytes (512 MB) copied, 97.0285 s, 5.3 MB/s

Booten und wenn alles klappt seht Ihr das normale pfsense Menu im Terminal programm

201110-alix-3.jpg

201110-alix-4.jpgDann noch schnell die IP Adresse ändern und ssh enablen. Und fertig ist die Laube. Der Rest ist wie auf einem "normalen" Rechner.

21.10.11
Weitere Beiträge zu: Alix   pfsense  

Wenn bei pfSense mit Squid die Festplatte überläuft

An dieser Stelle hatte ich dokumentiert wie ich auf meinem pfSense Gateway einen HTTP Viren Scanner eingerichtet habe. Das funktioniert soweit auch gut.

Leider habe ich vergessen ein kleines Häkchen zu setzen. Nämlich den bei Logrotate.  Je nach Festplattengrösse wird die datei "swap.state" nämlich den Festplattenplatz komplett ausnutzen: Die Festplatte "läuft über" :-(

Hier steht was man noch tuen kann.

Vorschaubild für 201010-pfsense-squid-logrotate.png

31.10.10
Weitere Beiträge zu: pfsense  

Dies ist ein privater Blog von Hagen Bauer- berufstätiger Vater, Ehemann, Naturliebhaber, Läufer, Zelter, technikverliebt.


Creative Commons License
This blog is licensed under a Creative Commons License