class: center, middle # OPNsense ## Installation in Testumgebung ## REST-API ### Hauke Goos-Habermann #### https://goos-habermann.de --- ### Über mich - Entwickler des
Softwareverteilungssystems m23
- Organisator der
Kieler Open Source und Linux Tage
-
Dienstleister zu m23, Linux und Freier Software
- Softwareentwicklung (PHP, BASH, C/C++, JS, Python und was sonst so gebraucht wird...) - Administration - Schulungen - Support - Beratung - quasi **alles**, *was mit Linux zu tun hat* - Wöchentlicher Livestream *"Jean und Hauke Show"* auf https://www.youtube.com/c/LinuxGuides - Community-Video-Serie *"Nicht der Weisheit letzter Schluß"* auf
tube.tchncs.de
und
YouTube
mit **beruflichen** oder **privaten Projekten** - Hat sich für ein Kundenprojekt API-Möglichkeiten von OPNsense angeschaut. --- ### Download https://opnsense.org/download/ * Architecture: amd64 * Select the image type: dvd * Mirror Location: Freie Auswahl Danach das mit bzip2 gepackte ISO entpacken. Z.B.: ```bash bunzip2 OPNsense-22.1.2-OpenSSL-dvd-amd64.iso.bz2 ``` --- ### Schema  --- ### VirtualBox: Neue VM Für unsere OPNsense-Experimente brauchen wir einen neue VM, die wir folgendermaßen einrichten: * Neue VM erstellen * Typ: BSD * Version: FreeBSD (64-bit) * Arbeitsspeicher: 2048 MB = 2 GB * Festplattengröße: 25 GB * VM-Netzwerk konfigurieren * Adapter 1 (Verbindung zu den VM-Clients = **LAN**) * Netzwerkadapter aktivieren: ✓ * Angeschlossen an: Internes Netzwerk * Name: opnintern * Adapter 2 (Verbindung zum Testnetzwerk = **WAN**) * Angeschlossen an: Netzwerkbrücke --- ### OPNsense installieren * VM starten * Entpacktes ISO als Bootmedium wählen * Enter für "Boot Multi User" (oder 5 sekunden warten) * Warten * Einloggen * Benutzer: root * Paßwort: opnsense * "1) Assign interfaces" * ... configure LAGGs now: N * ... configure VLANs now: N * Schauen, daß Adapter 1 (MAC!) em0 und Adapter 2 (MAC!) em1 * Adapter 1 = em0 = **LAN** * Adapter 2 = em1 = **WAN** * Strg + C, um wieder zum Menü zurückzukehren --- ### OPNsense installieren (LAN) * *"2) Set interface IP address" wählen * 1 - LAN * Configure IPv4 LAN via DHCP: N * IP: 192.168.23.100 * IPv4 subnet bit count: 24 * ... upstream Gateway address: Enter * IPv6 ... tracking: N * IPv6 ... DHCP6: N * IPv6 address: Enter (keine) * DHCP server on LAN: Y * Start address of IPv4 client address range: 192.168.23.10 * End address of IPv4 client address range: 192.168.23.250 * change ... web GUI protocoll from HTTPS to HTTP: y * Restore web GUI access defaults: y * ⇒ web GUI: http://192.168.23.100 --- ### OPNsense installieren (WAN) **Beibehalten** (verwendet einen externen DHCP-Server) oder **anpassen** (für statische IP): * *"2) Set interface IP address" wählen * 2 - WAN * Configure IPv4 LAN via DHCP: N * IP: 192.168.1.200 * IPv4 subnet bit count: 24 * upstream Gateway address: 192.168.1.5 * IPv6 ... tracking: N * IPv6 ... DHCP6: N * IPv6 address: Enter (keine) * DHCP server on LAN: N * change ... web GUI protocoll from HTTPS to HTTP: y --- ### OPNsense installieren (Software) * *"8) Shell"* wählen * opnsense-installer * Sprache auswählen * Continue with ... * Install (UFS) * Disk: ada0 * Root password: ... * Complete Install * Installations-ISO auf VBox entfernen * Neustart --- ### Weboberfläche * API-Benutzer erstellen * System ⇒ Access ⇒ Users * "+" anklicken * Name: apiuser * Login shell: /bin/sh * Group Memberships: admins * Save * API keys ⇒ "+" * Datei speichern und öffnen * SSH freischalten * System ⇒ Settings ⇒ Administration * Enable Secure Shell: ✓ * Permit password login: ✓ * Save --- ### API https://docs.opnsense.org/development/api.html Schema: https://opnsense.local/api/[module]/[controller]/[command]/[[param1]/[[param2]/...]] ```bash # Aus der Weboberfläche key=aiphiuyu2sieGhophoht8fohwo8ohnii2iBeef0EpooP4fidooShechet1ca5bei secret=ooyaeras6soh3aecaviengeisei0fahm4eik3kahk1Ainahs6yief3oodie6aedi # Ausprobieren curl -k -u "$key:$secret" http://192.168.23.100/api/core/menu/tree/ ``` --- class: center, middle ### Informationen zu mir und meinen Dienstleistungen, m23, ... ### https://goos-habermann.de