firewalls -> 1.78
This commit is contained in:
Remko Lodder 2007-12-31 08:01:12 +00:00
parent 936d578e7b
commit 4176be5dd7
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=31201

View file

@ -3,7 +3,7 @@
$FreeBSD$
$FreeBSDnl: doc/nl_NL.ISO8859-1/books/handbook/firewalls/chapter.sgml,v 1.33 2006/01/05 21:13:21 siebrand Exp $
Gebaseerd op: 1.63
Gebaseerd op: 1.78
-->
<chapter id="firewalls">
@ -199,7 +199,7 @@
</indexterm>
<para>Vanaf juli 2003 is de OpenBSD firewalltoepassing
<acronym>PF</acronym> geporteerd naar &os; wn bwschikbaar gekomen
<acronym>PF</acronym> geporteerd naar &os; en beschikbaar gekomen
in de &os; Portscollectie. In november 2004 was &os;&nbsp;5.3 de
eerste release die <acronym>PF</acronym> bevatte is integraal
onderdeel van het basissysteem. <acronym>PF</acronym> is een
@ -213,70 +213,10 @@
dat niet in dit onderdeel wordt opgenomen omdat dat niet nodig
is.</para>
<para>Hieronder wordt de beschikbaarheid van PF voor de
verschillende &os; releases en versies weergegeven:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>&os; Versie</entry>
<entry>PF Beschikbaarheid</entry>
</row>
</thead>
<tbody>
<row>
<entry>Pre-4.X versie</entry>
<entry>PF is niet beschikbaar voor uitgaven van &os; ouder
dan de tak 4.X.</entry>
</row>
<row>
<entry>Alle versies van de tak 4.X</entry>
<entry>PF is beschikbaar als onderdeel van KAME.</entry>
</row>
<row>
<entry>5.X uitgaven voor 5.3-RELEASE</entry>
<entry>De port <filename
role="package">security/pf</filename> kan gebruikt
worden om PF te installeren op deze versie van &os;.
Deze uitgaven waren gericht op ontwikkelaars en mensen
die een voorproefje wilden hebben van vroege versies van
5.X. Het wordt sterk aangeraden om te upgraden naar
5.3-RELEASE of een nieuwere versie van &os;.</entry>
</row>
<row>
<entry>5.3-RELEASE en latere versies</entry>
<entry>PF onderdeel van het basissysteem. Gebruik de port
<filename role="package">security/pf</filename> op deze
versies van &os; <emphasis>niet</emphasis>. Dat werkt
niet en dus dient de &man.pf.4;-ondersteuning uit het
basissysteem gebruikt te worden.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Meer informatie staat op de <quote>PF voor &os;</quote>
website: <ulink
url="http://pf4freebsd.love2party.net/"></ulink>.</para>
<para>Het OpenBSD PF gebruikershandboek staat hier: <ulink
url="http://www.openbsd.org/faq/pf/"></ulink>.</para>
<warning>
<para>PF in &os;&nbsp;5.X staat op het niveau van OpenBSD versie
3.5. De port uit de &os; Portscollectie is op het niveau van
OpenBSD versie 3.4. Houd dit in gedachten bij het doornemen
van het gebruikershandboek.</para>
</warning>
<sect2>
<title>PF inschakelen</title>
@ -290,10 +230,23 @@
<note>
<para>De module verwacht dat <literal>options INET</literal> en
<literal>device bpf</literal> beschikbaar zijn. Tenzij
<literal>NOINET6</literal> was ingesteld (bijvoorbeeld in
<literal>NOINET6</literal> was ingesteld voor &os; versies die
dateren voor 6.0-RELEASE, en <literal>NO_INET6</literal> voor
latere releases. (bijvoorbeeld in
&man.make.conf.5;) tijdens het bouwen, is ook
<literal>options INET6</literal> nodig.</para>
</note>
<para>Zora de kernel module geladen is of als PF ondersteuning
statisch in de kernel ingebakken is, is het mogelijk om pf met
het <command>pfctl</command> commando aan en uit te zetten:</para>
<screen>&prompt.root; <userinput>pfctl -e</userinput></screen>
<para>Het <command>pfctl</command> commando levert een manier om
te werken met de <application>pf</application> firewall. Het
is een goed idee om de &man.pfctl.8; handleiding te bekijken
voor meer informatie over het gebruik.</para>
</sect2>
<sect2>
@ -430,6 +383,38 @@ options ALTQ_NOPCC # Required for SMP build</programlisting>
<acronym>ALTQ</acronym> in. Deze optie is verplicht op
<acronym>SMP</acronym> systemen.</para>
</sect2>
<sect2>
<title>Filter regels aanmaken</title>
<para>De pakket filter leest zijn configuratie regels uit het
&man.pf.conf.5; bestand en het veranderd, dropt, of accepteert
pakketjes zoals gedefinieerd in de filter regels. De &os;
installatie komt met een standaard
<filename>/etc/pf.conf</filename> waarin nuttige voorbeelden
en uitleg staat.</para>
<para>Ook al heeft &os; zijn eigen <filename>/etc/pf.conf</filename>
bestand, de configuratie is hetzelfde als in OpenBSD. Een
geweldige bron voor het configureren van
<application>pf</application> is geschreven door het OpenBSD
team en is beschikbaar op <ulink
url="http://www.openbsd.org/faq/pf/"></ulink>.</para>
<warning>
<para>Wanneer door de pf gebruikers handleiding wordt
gebladerd, houd er dan rekening mee dat elke &os;
versie een andere versie van pf gebruikt. De
<application>pf</application> firewall in &os;&nbsp;5.X zit
op het niveau van OpenBSD versie 3.5 en in &os;&nbsp;6.X zit
het op het niveau van OpenBSD versie 3.7</para>
</warning>
<para>De &a.pf; is een goede plek om vragen te stellen over het
configureren en het draaien van de <application>pf</application>.
Vergeet niet om eerst de mailing lijst te controleren voor er
vragen gesteld worden.</para>
</sect2>
</sect1>
<sect1 id="firewalls-ipf">
@ -502,6 +487,10 @@ options ALTQ_NOPCC # Required for SMP build</programlisting>
<para>De IPF FAQ is te vinden op <ulink
url="http://www.phildev.net/ipf/index.html"></ulink>.</para>
<para>Een doorzoekbaar archief van de open-source IPFilter mailing
lijst is beschikbaar op <ulink
url="http://marc.theaimsgroup.com/?l=ipfilter"></ulink>.</para>
<sect2>
<title>IPF inschakelen</title>
@ -559,9 +548,7 @@ options ALTQ_NOPCC # Required for SMP build</programlisting>
<para>Voorbeeld kernelinstellingen voor IPF staan beschreven in
de <filename>/usr/src/sys/i386/conf/LINT</filename>in de
kernelbroncode
(<filename>/usr/src/sys/<replaceable>arch</replaceable>/conf/LINT</filename>
voor &os;&nbsp;4.X) en worden hier beschreven:</para>
kernelbroncode en worden hier beschreven:</para>
<programlisting>options IPFILTER
options IPFILTER_LOG
@ -792,10 +779,10 @@ Packet log flags set: (0)</screen>
om logboekgegevens te scheiden. Het maakt gebruik van speciale
groepen die <quote>facility</quote> en <quote>level</quote>
heten. &man.ipmon.8; in <option>-Ds</option> mode gebruikt
<literal>security</literal> (<literal>local0</literal> in 4.X)
<literal>security</literal>
als <quote>facility</quote>naam. Alle door &man.ipmon.8;
gelogde gegevens gaan naar <literal>security</literal>
(<literal>local0</literal> in 4.X). De nu volgende levels
gelogde gegevens gaan naar <literal>security</literal>.
De nu volgende levels
kunnen gebruikt worden om de gelogde gegevens nog verder uit
elkaar te trekken als dat gewenst is.</para>
@ -819,32 +806,24 @@ LOG_ERR &ndash; gelogde pakketten die een verkeerde opbouw hebben, "short"</scre
door softwaretoepassingen als IPF worden gegeven.</para>
<para>Zo kan de volgende instelling toegevoegd worden aan
<filename>/etc/syslog.conf</filename> voor &os;&nbsp;5.X en
later:</para>
<filename>/etc/syslog.conf</filename>:</para>
<programlisting>security.* /var/log/ipfilter.log</programlisting>
<para>Voor &os;&nbsp;4.X kan de volgende regel aan
<filename>/etc/syslog.conf</filename> toegevoegd worden:</para>
<programlisting>local0.* /var/log/ipfilter.log</programlisting>
<para>Het deel <literal>security.*</literal>
(<literal>local0.*</literal> in 4.X) betekent dat alle
logberichten naar de aangegeven plaats geschreven moeten
worden.</para>
betekent dat alle logberichten naar de aangegeven plaats
geschreven moeten worden.</para>
<para>Om de wijzigingen in
<filename>/etc/syslog.conf</filename> actief te maken kan er
gereboot worden of is het mogelijk de syslogtaak een schop te
geven zodat <filename>/etc/syslog.conf</filename> opnieuw
wordt ingelezen met <command>/etc/rc.d/syslogd
reload</command>. Voor &os;&nbsp;4.X is dit <command>killall
-HUP syslogd</command>. Het PID
(procesnummer) is te achterhalen door een overzicht van taken
te tonen met <command>ps &ndash;ax</command>. Het PID is het
nummer in de linker kolom voor de regel waarop
<quote>syslog</quote> staat.</para>
reload</command>. Het PID (procesnummer) is te achterhalen
door een overzicht van taken te tonen met
<command>ps &ndash;ax</command>. Het PID is het nummer in de
linker kolom voor de regel waarop <quote>syslog</quote>
staat.</para>
<para>Vaak wordt vergeten
<filename>/etc/newsyslog.conf</filename> te wijzigen om het
@ -2005,19 +1984,24 @@ block in log first quick on dc0 all
<para>In grote netwerken komt er een moment waarop er gewoon
te veel adressen zijn om te bedienen met &eacute;&eacute;n
<acronym>IP</acronym> adres. De volgende regel vertaalt
alle verbindingen naar <hostid
role="ipaddr">204.134.75.1</hostid>:</para>
<acronym>IP</acronym> adres. Als er een blok van publiekelijke
IP addressen beschikbaar is, dan kunnen deze adressen
gebruikt worden in een poel, welke door
IP<acronym>NAT</acronym> gebruikt kan worden om
&eacute;&eacute;n van de adressen te gebruiken als uitgaand
adres.</para>
<para>Bijvoorbeeld om alle pakketten te verstoppen achter
&eacute;&eacute;n een enkel IP adres:</para>
<programlisting>map dc0 192.168.1.0/24 -&gt; 204.134.75.1</programlisting>
<para>Dit kan gewijzigd worden naar een reeks addressen met
de volgende regel:</para>
<para>Een reeks van publiekelijke IP adressen kan gespecificeerd
worden met een netwerkmasker:</para>
<programlisting>map dc0 192.168.1.0/24 -&gt; 204.134.75.1&ndash;10</programlisting>
<para>Er kan ook een subnet aangegeven worden met een CIDR
notatie als in het volgende voorbeeld:</para>
<para>of door gebruik van de CIDR notatie:</para>
<programlisting>map dc0 192.168.1.0/24 -&gt; 204.134.75.0/24</programlisting>
</sect3>
@ -2040,8 +2024,11 @@ block in log first quick on dc0 all
role="ipaddr">20.20.20.5</hostid> zijn, dan zou dit mogelijk
zijn met &eacute;&eacute;n van de volgende twee regels:</para>
<programlisting>rdr dc0 20.20.20.5/32 port 80 -&gt; 10.0.10.25 port 80
rdr dc0 0/32 port 80 -&gt; 10.0.10.25 port 80</programlisting>
<programlisting>rdr dc0 20.20.20.5/32 port 80 -&gt; 10.0.10.25 port 80</programlisting>
<para>of:</para>
<programlisting>rdr dc0 0.0.0.0/32 port 80 -&gt; 10.0.10.25 port 80</programlisting>
<para>Voor een DNS server op een LAN die ook vanuit internet
bereikbaar met zijn en die draait op <hostid
@ -2131,28 +2118,6 @@ pass out quick on rl0 proto tcp from any to any port &gt; 1024 flags S keep stat
# Laat het datakanaal van de FTP server binnen voor actieve mode
pass in quick on rl0 proto tcp from any to any port = 20 flags S keep state</programlisting>
</sect3>
<sect3>
<title>FTP <acronym>NAT</acronym> proxy bug</title>
<para>Vanaf &os;&nbsp;4.9, waar IPFILTER versie 3.4.31 bij zit,
werkt de FTP proxy volgens de documentatie tot de sessie
wordt afgesloten. Als dit wordt gedaan dan worden
pakketten die terug komen van de FTP server geblokkeerd en
gelogd als inkomend op poort 21. De <acronym>NAT</acronym>
FTP proxy lijkt zijn tijdelijke regels te vroeg te
verwijderen, nog voordat het antwoord van de FTP server
dat de verbinding gesloten kan worden is ontvangen. Er is
een PR gepost op de ipf mailinglijst.</para>
<para>Hoewel dit niet opgelost kan worden, is het mogelijk
een regel in te stellen waarmee de ongewilde logboekregels
niet ontstaan. Als alternatief is het mogelijk ze gewoon
te negeren. De meeste mensen maken niet zoveel gebruik van
uitgaande FTP.</para>
<programlisting>block in quick on rl0 proto tcp from any to any port = 21</programlisting>
</sect3>
</sect2>
</sect1>
@ -2334,16 +2299,87 @@ options IPV6FIREWALL_DEFAULT_TO_ACCEPT</programlisting>
<sect2 id="firewalls-ipfw-rc">
<title><filename>/etc/rc.conf</filename> opties</title>
<para>Als IPFW niet in de kernel is gecompileerd, dan moet het
geladen worden met de volgende instellingen in
<filename>/etc/rc.conf</filename>:</para>
<para>Start de firewall:</para>
<programlisting>firewall_enable="YES"</programlisting>
<para>Om de firewallregels uit een bestand te laden kan de
volgende instelling gebruikt worden:</para>
<para>Om &eacute;&eacute;n van de standaard firewall types te
selecteren die geleverd wordt door &os; lees
<filename>/etc/rc.firewall</filename>, maak een selectie en
plaats de volgende regel:</para>
<programlisting>firewall_script="/etc/ipfw.rules"</programlisting>
<programlisting>firewall_type="open"</programlisting>
<para>Beschikbare waardes voor deze instelling zijn:</para>
<itemizedlist>
<listitem>
<para><literal>open</literal> &mdash; pass all traffic.</para>
</listitem>
<listitem>
<para><literal>client</literal> &mdash; beschermt alleen deze
machine.</para>
</listitem>
<listitem>
<para><literal>simple</literal> &mdash; beschermt het hele
netwerk.</para>
</listitem>
<listitem>
<para><literal>closed</literal> &mdash; blokkeert alle IP
verkeer, behalve voor lokaal verkeer.</para>
</listitem>
<listitem>
<para><literal>UNKNOWN</literal> &mdash; voorkomt het laden
de firewall regels.</para>
</listitem>
<listitem>
<para><filename>bestandsnaam</filename> &mdash; absoluut pad
naar een bestand dat firewall regels bevat.</para>
</listitem>
</itemizedlist>
<para>Het is mogelijk om twee verschillende manieren te gebruiken
voor speciaal gemaakte regels voor de
<application>ipfw</application> firewall. &eacute;&eacute;n
daarvan is door het zetten van de
<literal>firewall_type</literal> variabele naar een absoluut
pad van een bestand, welke <emphasis>firewall regels</emphasis>
bevat, zonder enige specifieke opties voor &man.ipfw.8;. Een
simpel voorbeeld van een ruleset bestand kan zijn:</para>
<programlisting>add block in all
add block out all</programlisting>
<para>Aan de andere kant is het mogelijk om de
<literal>firewall_script</literal> variabele te zetten naar een
absoluut pad van een uitvoerbaar bestand, welke inclusief
<command>ipfw</command> commandos uitgevoerd wordt tijdens het
opstarten van het systeem. Een geldig ruleset script dat
gelijkwaardig is aan het ruleset bestand hierboven, zou het
volgende zijn:</para>
<programlisting>#!/bin/sh
ipfw -q flush
ipfw add block in all
ipfw add block out all</programlisting>
<note>
<para>Als <literal>firewall_type</literal> is gezet naar
<literal>client</literal> of <literal>simple</literal> moeten
de standaard regels die gevonden kunnen worden in
<filename>/etc/rc.firewall</filename> gecontroleerd worden om
te zien of deze configuratie voldoet voor de machine. Let
ook op dat alle voorbeelden die gebruikt zijn in dit hoofdstuk
ervanuit gaan dat de <literal>firewall_script</literal>
variabele gezet is naar <filename>/etc/ipfw.rules</filename>.</para>
</note>
<para>Om loggen in te schakelen:</para>
@ -2738,8 +2774,8 @@ options IPV6FIREWALL_DEFAULT_TO_ACCEPT</programlisting>
<para>De mogelijkheden voor dynamische regels zijn kwetsbaar
voor een aanval die SYN&ndash;flood heet, waarmee wordt
geprobeerd een zeer groot aantal regels aan te laten maken.
Om deze aanval tegen te gaan, is er vanaf &os; versie 4.5
de optie <parameter>limit</parameter> beschikbaar. Met deze
Om deze aanval tegen te gaan, is de optie
<parameter>limit</parameter> beschikbaar. Met deze
optie kan het maximaal aantal simultane sessies geregeld
worden op basis van bron en bestemmingsvelden. Als het
aantal sessies gelijk aan het maximale aantal sessies is,