Pouzivam OpenBSD jako firewall, jako mail/DNS server, jako VPN brany, jako fileserver se sambou, senzory se Snortem+MySQL apod. Tohle vsechno ve mnoha instalacich. PF je podle meho kvalitni firewall a prechod od IPF me nijak moc starosti nenadelal. Nechci zadnou flamewar, ale v cem je Linux tak napred ve firewallu ? Co umi iptables navic co neumi PF ? Nove ve verzi 3.1 je mozne udelat v PF pravidla per-user a to jak pro lokalni pouziti, tak i vzdalene (uzivatel se pripoji/overi pomoci SSH a tim se mu udeli prava na pristup pres firewall). Stejne tak syntaxe PF je podle meho jedna z nejpovedenejsich.
Treba stavovou filtraci a NAT vcetne souvisejicich ICMP
packetu? SNMP-alg pristup za 1:N nat branu? Oznacovani packetu a pozdejsi dotazy na packety s urcitou znackou? Zmenu TOS pomoci pravidel firewallu?
S tim overenim pres SSH je to smesne. Na pripojeni pres SSH si samozrejme muzu navesit jakykoli skript, vcetne modifikace firewallovych pravidel.
Navic Netfilter v Linuxu je obecne rozhrani nad kterym lze postavit ruzne filtrovaci/NATovaci a dalsi moduly, napriklad ipvs pouzivane pro load-balancing v clusterech.
Nevim, BSD [I]PF jsem videl kdysi davno, treba uz neco takoveho taky umi.
-Yenya
S tim SSH + pfrulez je to presne tak jak Yenya rika.
Koho by to zajimalo nejak vic, je tam programek authpf, kterej date uzivatelum jako shell a ono se jim to spusti po tom co se naloguji pres SSH (no jeste aby ne :) a nahodi to pravidla podle /etc/authpf/authpf.rules pripadne /etc/authpf/users/xxxxx/authpf.rules
Jako pocatecni myslenka to neni az zase tak spatny.
Kdyz nic jinyho je to dobra ukazka jako si sam nastavit pf (to je take to co jsem z toho potreboval, protoze dalsi dokumentace nic moc).
Ale jen tak mimochodem jedna z hlavnich chloub OpenBSD je ze "vsechno je super navrzene, vsechno prochazi auditem". Tenhle kod (authpf.c) jsem zrovna potreboval nejak ohnout a co nevidim. Kopirovani souboru je cut-and paste v jedne cca 200 radkove funkci. Uplne bezne se tam nezaviraji soubory, ktere uz nejsou potreba, nejaky memory leaky v parseru. Vsechno veci, ktere sice asi nepovedou k remote hole, a v beznem provozu si jich asi ani nevsimnete, ale asi bych je nepovazoval za cistej kod.
SSH & firewall - jo, to je fakt
stavova filtrace & NAT & souvisejici ICMP - jo, to umi i ipf
SNMP alg - ne
oznacovani packetu - ne
TOS - ne pres kod pf, ale pres ALTQ ano
Mam za to, ze zrovna pf ma delat firewall, load-balancig, QoS etc. bude delat neco jineho a nebude se to michat do kodu pro firewalling
ALTQ umi fakt i menit TOS u existujicich packetu, nebo jen podle TOS radit do front?
Jenze firewall je jen jeden z mnoha pripadu kdy chce clovek nejak tridit a oznacovat packety. Tak proc pro to nepouzit stejny kod? V Linuxu se to samozrejme nemicha dohromady - je tam specialni tabulka filter pro firewall, tabulka nat pro preklad adres a tabulka mangle pro upravy TOS a dalsich veci. A tabulka ipvs pro virtualni servery/load balancing. Hezke na tom je, ze tohle vsechno bezi nad jednim frameworkem pro zpracovani packetu. A kdyz budu chtit, muzu si tam napsat i svuj vlastni modul ktery bude treba packety prvociselne delky zahazovat :-), protoze rozhrani je dobre definovane a popsane.
-Yenya