pfSense migrálása OPNsense 26.7-re a pfopn-converttel
Egy tűzfal kézi újraépítése több száz szabály, porttovábbítás és VPN beállítás elírás nélküli átmásolását jelenti. A pfopn-convert egy pfSense CE konfigurációs mentésből OPNsense 26.7 konfigurációt készít, amelyet egy friss telepítésre vissza lehet állítani, és a visszaállítás előtt ellenőrzi is az eredményt.
Ez a Sheridan Computers Limited által írt sheridans/pfopn-convert forkja, az ő átalakítójára épül. A fork a pfSense CE (24.6-os konfigurációs verzió) → OPNsense 26.7 irányra koncentrál. Kijavítja azokat az átalakítási hibákat, amelyek csendben megváltoztatták a tűzfal működését, és hozzáadja az OPNsense 26.7 új szabályformátumát és további átalakításokat.
Éles tűzfalakon tesztelve
Három éles pfSense tűzfal OPNsense 26.7.8-ra költöztetéséhez használtam:
- egy több WAN-os gép policy routinggal, kb. 100 szabállyal, 58 porttovábbítással, virtuális IP-kkel, DNS Resolverrel, távoli sysloggal, Zabbix agenttel és node_exporterrel;
- egy VPN gép LDAP felhasználókat használó OpenVPN szerverrel, két IKEv2 site-to-site tunnellel és Zabbix proxyval;
- egy két WAN-os gép szeparátorokkal csoportosított porttovábbításokkal, OpenVPN-nel és IPsec-kel, SNMP-vel és pfBlockerNG IP listákkal.
Mit alakít át?
- Tűzfalszabályok, porttovábbítások, kimenő NAT, 1:1 NAT és NPt, az OPNsense 26.7 új szabálymodelljében, így a felületen továbbra is szerkeszthetők.
- Interfészek, VLAN-ok, bridge-ek, virtuális IP-k, aliasok, gatewayek és statikus útvonalak.
- DHCP (Kea-ra vagy ISC-re), DNS Resolver (Unbound), távoli syslog és LDAP szerverek.
- OpenVPN szerverek, IPsec site-to-site tunnelek és WireGuard.
- Pluginek: Zabbix agent és proxy, node_exporter, SNMP és a QEMU guest agent, ha a plugin telepítve van a célgépen.
- A pfSense szabályszeparátoraiból OPNsense szabálykategóriák lesznek.
- Olyan pfSense viselkedés, amit az OPNsense magától nem ad, például az automatikus IPsec szabályok és a kimenő NAT az OpenVPN tunnelhálózatokhoz.
Amit nem tud átalakítani, azt figyelmeztetésként kiírja, így semmi nem vész el csendben. A támogatási táblázat (angolul) minden területet és korlátot felsorol.
Telepítés
Előre lefordított binárisok Linuxra (x86_64, aarch64), FreeBSD-re, macOS-re és Windowsra a kiadások oldalon vannak, SHA256SUMS fájllal. Linuxon:
curl -fsSLO https://github.com/Silureth/pfopn-convert/releases/latest/download/pfopn-convert-linux-x86_64.tar.gz
tar -xzf pfopn-convert-linux-x86_64.tar.gz
./pfopn-convert scan config-pfsense.xml --to opnsense
Hogyan zajlik a migráció?
Két konfigurációs export kell: a forrás a pfSense-ről, és egy alap (baseline) egy friss OPNsense telepítésről. Ennek pontosan azt a verziót kell futtatnia, amit használni fogsz, ugyanannyi interfésszel, ugyanabban a sorrendben hozzárendelve, és a szükséges pluginekkel telepítve. Az átalakító a forrás beállításait beleírja az alapba:
pfopn-convert scan source-pfsense.xml --to opnsense
pfopn-convert convert source-pfsense.xml --from pfsense --to opnsense \
--target-file opnsense-baseline.xml --output converted.xml
pfopn-convert verify converted.xml --to opnsense --strict
A visszaállítás a teljes konfigurációt lecseréli, és elvághat a hálózattól. Csak friss OPNsense telepítésre állítsd vissza, úgy, hogy csak egy elszigetelt hálózat legyen rákötve, és legyen visszaút (VM snapshot, vagy a régi tűzfal indításra készen).
A teljes, 12 lépéses folyamat (angolul) kitér a szabálykészlet ellenőrzésére, az átállásra, és két olyan problémára is, ami csak utána jön elő: a beragadt tűzfalállapotokra és az üres URL tábla aliasokra.
Konfigurációk biztonságos megosztása
A repóban van egy tools/sanitize_config.py szkript is. Anonimizálja a konfigurációs mentést (jelszavak, kulcsok, publikus IP-k, domainek), mielőtt megosztod, például egy hibajelentésben, és a végén ellenőrzi, hogy nem maradt-e benne titok.