filtrovanie podla IP a MAC

Zbyněk Burget zburget at burgnet.cz
Fri Mar 26 18:23:49 CET 2010


Dne 26.3.2010 16:37, icovnik napsal(a):
> No ja som sa len snazil zistit, ako sa da cez akykolvek firewall na
> FreeBSD urobit tato jedna vec (ak ma zdrojovy paked spravnu zdrojovu
> IP a MAC, prepustit, ak nie, tak TCP/80 zNATovat, ostatne zahodit). No
> poskusam este google...

No tak fajn, zkusime dat dohromady to, po cem touzis, ale pamatuj, ze 
komu neni rady, tomu neni pomoci.

Pokud bys popatral kousek do historie fora, nasel bys naprosto detailni 
popis pruchodu packetu routerem. Pro nase ucely ale bude stacit 
zjednoduseny model. Pro zacatek je potreba si uvedomit jednu vec, ktera 
z konfiguraku IPFW z distribude neni vubec zrejma, z Linuxu s tim ale 
budes mit zkusenost. Packet prochazejici routerem skrz do firewallu 
vstupuje bud ve dvou nebo ve ctyrech mistech. Konfigurace z distribuce 
je v tomto smeru dost nestastna, protoze se pri kazdem pruchodu packetu 
firewallem prochazi jedna a tataz sada pravidel. Doporucuju si napsat 
komplet vlastni konfiguraci firewallu, kde tento nedostatek bude reseny.
Defaultne neni povolen vstup do firewallu v layer2, musis ho explicitne 
povolit pomoci sysctl net.link.ether.ipfw=1 (pro normalni provoz zapsat 
do /etc/sysctl.conf).
Pak je pruchod packetu routerem nasledujici:
-> {in iface -> ipfw l2 -> ipfw l3} -> jadro -> {ipfw l3 -> ipfw l2 -> 
out iface} ->

Packte ted pujde do firewallu 4x!!! v miste vstupu v layer2 je v packetu 
informace o IP i MAC, v layer3 informace o MAC neni!!! V layer3 pak s 
packetem nejdou delat vsechny operace, jako v layer3 (napr. nejde provoz 
shapovat apod.)

Doporucuju firewall sestavit zhruba nasledujicim zpusobem:

ipfw add 10 skipto 1000 all from any to any layer2 in recv ${iif}
ipfw add 10 skipto 2000 all from any to any not layer2 in recv ${iif}
ipfw add 10 skipto 3000 all from any to any not layer2 out xmit ${oif}
ipfw add 10 skipto 4000 all from any to any layer2 out xmit ${oif}
ipfw add 10 skipto 5000 all from any to any layer2 in recv ${oif}
ipfw add 10 skipto 6000 all from any to any not layer2 in recv ${oif}
ipfw add 10 skipto 7000 all from any to any not layer2 out xmit ${iif}
ipfw add 10 skipto 8000 all from any to any layer2 out xmit ${iif}

pokud v nekterem pruchodu packetu firewallem nechces nic resit, zmen 
skipto za allow.
Rozmysli si, co ve ktere casti konfigurace budes resit - filtrovani, 
shaping, NAT,...
Dej si pozor na to, aby kazda cast konfigurace byla ukoncena
deny all from any to any
aby se ti packet nezatoulal do casti pravidel, kde nema co delat.
Nezapomen v nekterem miste poresit povoleni provozu na lo0, resp. 
zakazat provoz na lo0, ktery tam nema co delat apod.
Prijdes na to, ze je IPFW daleko logictejsi, nez iptables (aspon mne 
osobne tak pripada).

...jen dodatek, nejsem si jist tim, jestli muzes packet forwardnout v 
layer2 - po pravde tomu neverim. Budes ho muset asi otagovat a pak v 
prislusnem miste forwardnout, kam potrebujes.


> Co sa tyka dizajnu celeho, urcite nie je idealny. V kazdom pripade,
> spoofnutu IP routra aj tak staticka ARP tabulka na routri neriesi,

ze si nekdo doma nastavi IP routeru je hodne blba chyba, ktera odstavi 
cely segment site. Da se proti ni ale branit pomoci inteligentnejsiho 
switche. Je ale tak malo casta, ze toto riziko na svoji siti v klidu 
preziju.
Skoro vsechny problemy s podvrhnutim ostatnich IP adres velice jednoduse 
resi zminena staticka ARP tabulka. Nebude to dokonale s presmerovanim na 
varovnou stranku, nedojde ale hlavne k tomu, ze stanice se spatne 
nastavenou IP adresou ustrihne jineho klienta, ktery ma vse v poradku. 
To je vsak vec, kterou bych ja osobne povazoval za daleko uzitecnejsi, 
nez nejaka varovna webova stranka. Klientovi s blbou IP internet 
fungovat nebude. Pokud to bude umyslne zmenena IP, brzo zjisti, ze mu 
nic jineho, nez ta jeho jedina spravna nepojede a prestane blbnout. 
Pokud to bude omyl a neprijde na nej, zavola, coze se deje, ze mu nebezi 
sit. A to uz nejak date dohromady i po telefonu.

> Svet, kde by vsetci na sieti pouzivali nejaky *NIX ako obycajny user
> (a ja by som mal roota ;) ) by bol pekny, ale zial, nie je v mojom

Tak takovy svet za moc pekny nepovazuju - pri predstave, ze bych se 
takhle a musel starat o nekolik set stroju a zodpovidalza ne, se mi dela 
nevolno ;-)

Zbynek


More information about the Users-l mailing list