MFp4
firewalls -> 1.78
This commit is contained in:
parent
936d578e7b
commit
4176be5dd7
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=31201
1 changed files with 160 additions and 124 deletions
|
@ -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; 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; 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; 5.X zit
|
||||
op het niveau van OpenBSD versie 3.5 en in &os; 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; 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 – 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; 5.X en
|
||||
later:</para>
|
||||
<filename>/etc/syslog.conf</filename>:</para>
|
||||
|
||||
<programlisting>security.* /var/log/ipfilter.log</programlisting>
|
||||
|
||||
<para>Voor &os; 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; 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 –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 –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 éé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
|
||||
één van de adressen te gebruiken als uitgaand
|
||||
adres.</para>
|
||||
|
||||
<para>Bijvoorbeeld om alle pakketten te verstoppen achter
|
||||
één een enkel IP adres:</para>
|
||||
|
||||
<programlisting>map dc0 192.168.1.0/24 -> 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 -> 204.134.75.1–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 -> 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 één van de volgende twee regels:</para>
|
||||
|
||||
<programlisting>rdr dc0 20.20.20.5/32 port 80 -> 10.0.10.25 port 80
|
||||
rdr dc0 0/32 port 80 -> 10.0.10.25 port 80</programlisting>
|
||||
<programlisting>rdr dc0 20.20.20.5/32 port 80 -> 10.0.10.25 port 80</programlisting>
|
||||
|
||||
<para>of:</para>
|
||||
|
||||
<programlisting>rdr dc0 0.0.0.0/32 port 80 -> 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 > 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; 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 éé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> — pass all traffic.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>client</literal> — beschermt alleen deze
|
||||
machine.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>simple</literal> — beschermt het hele
|
||||
netwerk.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>closed</literal> — blokkeert alle IP
|
||||
verkeer, behalve voor lokaal verkeer.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>UNKNOWN</literal> — voorkomt het laden
|
||||
de firewall regels.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><filename>bestandsnaam</filename> — 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. éé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–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,
|
||||
|
|
Loading…
Reference in a new issue