freebsd12 ipfw

Fórumok

Hali,

Van egy teljesen friss FreeBSD12-m.
Játszós gép, tanulni.

$ uname -a
FreeBSD xxx 12.0-RELEASE-p10 FreeBSD 12.0-RELEASE-p10 GENERIC amd64

Próbálgatom a tűzfalat és több problémám is van.

$ ipfw list
ipfw: retrieving config failed: Protocol not available

$ ipfw show
ipfw: retrieving config failed: Protocol not available

+ a fail2ban is hibát dob:
ERROR Failed to execute ban jail 'ssh-ipfw' action 'ipfw' info 'ActionInfo({'ip': [...] Error banning IPCÍM

Gyanús, hogy azért lehet, mert esetleg nem fut az ipfw:

$ service ipfw status
Cannot 'status' ipfw. Set firewall_enable to YES in /etc/rc.conf or use 'onestatus' instead of 'status'.

$ service ipfw onestatus
ipfw is not enabled

Ha "open" típusúra állítom és elindítom akkor úgy vág ki, hogy reboot után tudok csak visszamászni (remote gép, konzolhoz nem férek hozzá, lassan égő állandóan reboot-ot kérni):

$ sysrc firewall_type=open
$ service ipfw start

Ha csak "sysrc firewall_enable=yes" -t nyomok, akkor

$ service ipfw status
ipfw is not enabled

Úgy olvastam, "open" = "passes all traffic" és mégis azonnal levág.

Mit csinálok rosszul?

Thx.

Hozzászólások

A pálya széléről szólok be, mert évek óta nincs nálam a fősodorban FreeBSD.

A "pf"-et az OpenBSD-s fejlesztők nem úgy tervezték, hogy más rendszerekre könnyen portolható, önálló termék legyen. A kezdetekben ennek ellenére portolták több oprendszerre (FreeBSD, NetBSD, stb.) - de ezek a portok az évek során elavultak, mert az OpenBSD-ben megjelenő újabb fejlesztéseket egyre nehezebb volt átvinni más oprendszerekre, az eltérő API-k és az egyre magasabb fokú OpenBSD-specifikus függőségek miatt. NetBSD esetében például még van "pf", de az egy "ezeréves" verzió, köszönőviszonyban sincs az OpenBSD-ben manapság előforduló "pf" verzióval, és karbantartva is alig van: gyakorlatilag egy emlék a múltból, valószínűleg a következő alkalommal, ha véletlenül valamiért "eltörik" egy API változás miatt, már lehet, hogy meg sem fogják javítani - használd helyette az NetBSD-natív "npf" csomagszűrőt. Hogy FreeBSD-ben mi a helyzet, hogyan viszonyul a korszerű OpenBSD-s "pf"-ekhez, mennyire karbantartott, azt nem tudom, de emlékeim szerint, pár éve ott is arról olvastam a levlistákon, hogy inkább púp a háton, mintsem preferált verzió.

Javíts ki ha tévedek, de én a leírtakban nem látok olyan kombinációt vagy időpillanatot, amikor a két szükséges rc bejegyzés benne lett volna az rc.conf -ban, azaz:

/etc/rc.conf:

firewall_enable="YES"
firewall_type="open"

Csak ezek megléte után nyomogasd a service start/stop -ot, rebootot, vagy csinálj egyéb dolgot amihez ipfw kell.

Később finomhangolás illetve a szabályok felvétele után célszerű majd erre módosítani az "open" helyett:

firewall_type="/etc/ipfw.rules"

A megadott file értelemszerűen a szabályokat tartalmazza a következő formában:

"add 01000 allow ip from me to me"

Tehát az ipfw parancs nem kell az elejére.

Régen BSD-ztem már, de a kldstat mit mond?
Ha nincs a listában az ipfw.ko, akkor
kldload /boot/kernel/ipfw.ko
?

Mindenkinek köszi a választ.

onestart + dmesg: az alap probléma, hogy azonnal lezár és kirúg, dmesg-re semmi esély, reboot-ot kellett kérnem.

firewall_enable="YES" + firewall_type="open" egyidejűsége: ez most jó kérdés, azt gondolnám voltak együtt max rosszul írtam a kérdést. De még mindig nem értem, hogy egy "open" type esetén miért zár ki azonnal úgy, hogy vissza se tudok menni.

kldstat: most kellett megnézem egyáltalán WTF? :) reboot után ipfw.ko pont megint nincs a listában (megnéztem, a service start sem tölti be). kldload ipfw szintén azonnal kizár (az ipfw tutira nem volt engedélyezve, mert előtte nyomtam service ipfw disable-t mire kiszólt, hogy sose volt engedélyezve).

Mindenesetre most már screen-ben sleep 600-zal be van téve egy script ami futtat egy "sysrc firewall_enable=no" + "service ipfw stop"-ot, illetve éjszakára be van téve egy "sysrc firewall_enable=no" + "shutdown -r +5" ha megint megszívnám.