- Pare-feu FreeBSD PF
- FreeBSD. Filtrage du trafic PF
- FreeBSD. flux, balises et ancres dans PF
- FreeBSD. Routage conditionnel PF
- FreeBSD. Le chemin du paquet réseau à l'intérieur du noyau. <- Vous êtes ici
Dans les articles précédents, nous avons discuté de PF, ses principales fonctionnalités, et essayé d'appliquer ce pare-feu dans diverses situations. Cependant, la simple connaissance des règles et de la séquence à mettre dans la configuration n'est pas toujours suffisante pour atteindre l'objectif. Beaucoup ne devient clair que si vous regardez un peu plus en profondeur: au niveau du noyau du système d'exploitation et comment les pare-feu interagissent avec lui.
Nous n'analyserons pas les niveaux du pilote de la carte réseau (niveau 2 du modèle OSI), mais passerons immédiatement au niveau 3, où fonctionne la pile du noyau tcp / ip.
mbuf. , , : a , (next hop), ttl, , . . . mbuf .
ip_input()
ip_input().
- ttl .
- ALTQ ( ), .
- IPSEC_CAPS(), ipsec, , , , . ipsec ip_input(), .
- pfil. . , , . rc.conf PF, .
- . — IP, ip_forward(). .
- (reassemble), .
- IPSEC_INPUT().
- , . — icmp error ip_output().
, .
ip_forward()
.
- ipsec — IPSEC_FORWARD().
- . , net.inet.ip.forwarding 1. - , icmp error ip_output().
- , , icmp_redirect, .
- ttl.
- ip_output().
ip_output()
.
- . , .
- ipsec — IPSEC_OUTPUT().
- pfil — .
- , (dst), (fib) . , . , .
- , .
- .
, . , . , . , , , . mbuf.
, pf in out.
pass in on re0 inet...
ip_input. out — ip_output.
pass out quick on $ExtIf2 ...
anchors .
route-to reply-to next hop :
pass in quick on $ExtIf2 reply-to ($ExtIf2 $ExtIf2Gw ) tagged DSTNAT pass in quick on $IntIf1 route-to ( $Tun1 $Tun1Gw ) from ($IntIf1:network)
rtable:
pass in quick on $IntIf2 from { $IntIf2Net } rtable 1 tag PASS
FreeBSD, , , , .
— . , , , , , VPN , , ftp-, web- jabber-, IP-… , . 35 , 9 .