Titel : Het opzetten van een FreeBSD 4.x IP-Masquerading Firewall. Door : Peter van Egdom (p.van.egdom@chello.nl) Versie : 1.2 Datum : 23 november 2003 URL : "http://members.chello.nl/p.van.egdom/" ----------------------------------------------------------------------------- Historie : 30.09.2001 - versie 0.1 - Eerste versie en getest met: - FreeBSD 4.3 - FreeBSD 4.4 02.02.2002 - versie 0.9 - Meer leesbaar gemaakt en getest met: - FreeBSD 4.5 03.02.2002 - versie 1.0 - Kleine wijzigingen en correcties. 15.06.2003 - versie 1.1 - Correcties en aangepast voor: - FreeBSD 4.8 23.11.2003 - versie 1.2 - Kleine aanpassingen voor: - FreeBSD 4.9 NOG DOEN : - Testen met FreeBSD 5.x - Tips uit "man tuning" integreren in document. - Tips uit "man security" integreren in document. - Conversie naar HTML. - "touch /etc/sysctl.conf" - File system performance tweaks: "vfs.vmiodirenable=1" - Kernel performance tweaks: "kern.ipc.maxsockbuf=1048576" "kern.ipc.somaxconn=4096" "kern.maxfiles=65536" - De werking van Snort (intrusion detection tool) beschrijven. - Eventuele nieuwe features tussen FreeBSD 4.6 en FreeBSD 4.9 beschrijven. ----------------------------------------------------------------------------- 1.0 Inleiding: ~~~~~~~~~~~~~~ Dit document beschrijft de stappen die nodig zijn om een internet-connectie via de kabel of ADSL te delen met een prive-LAN door middel van het gratis besturingssysteem "FreeBSD". Dit document is geschreven voor FreeBSD versie 4.4 t/m FreeBSD versie 4.9. Gezien de enigzins conservatieve aard van het FreeBSD besturingssysteem zullen toekomstige versies van de FreeBSD 4.x tak met deze handleiding gebruikt kunnen blijven worden. Beschreven wordt: - Het installeren van het FreeBSD besturingssysteem. - Het hercompileren van de FreeBSD kernel. - Het configureren van IP-Masquerading. - Het configureren van Firewalling. - Het configureren van Proxy server (Squid). 1.1 Plaatje van mogelijk netwerk: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Netwerk-kaart X:10.0.0.1 Kabel- of ADSL modem | \ | //////////// \ +----------+ | / Het / +--+ | FreeBSD |/ +--+ / Internet /-----| |-----| Firewall |-----| | //////////// +--+ /+----------+ +--+ \ | (Hub of andere PC) | Netwerk-kaart Y: xxx.xxx.xxx.xxx (via DHCP door provider toegewezen IP-adres) 1.2 Waar kan ik FreeBSD halen: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Neem allereerst eens een kijkje op de officiele website van FreeBSD: "http://www.freebsd.org" De ISO images zijn te downloaden van de officiele ftp-site van FreeBSD: "ftp://ftp.freebsd.org" Om bovenstaande 'main ftp-site' niet te zwaar te belasten is het raadzaam om gebruik te maken van de officiele Nederlandse mirror ftp-site van FreeBSD: "ftp://ftp.nl.freebsd.org" De benodigde ISO files op deze Nederlandse mirror site staan in: "ftp://ftp.nl.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES" Ga bij bovenstaande URL naar de meest recente 4.x versie. In de betreffende directory (in dit geval "4.9") zijn de volgende files te vinden: 671416320 okt 28 11:07 4.9-i386-disc1.iso 264699904 okt 27 20:40 4.9-i386-disc2.iso 216727552 nov 4 20:57 4.9-i386-mini.iso 179 nov 5 02:31 CHECKSUM.MD5 De ISO file die nodig is om FreeBSD 4.9 te installeren is: "4.9-i386-disc1.iso" "4.9-i386-disc2.iso" bevat additionele (optionele) software. "4.9-i386-mini.iso" is alleen interessant voor gebruikers met een beperkte bandbreedte, dit is een echt _minimale_ FreeBSD ISO image met alleen - maar dan ook alleen - maar het echt noodzakelijke aan packages. Aangeraden is om "4.9-i386-disc1.iso" te bemachtigen, deze image bevat bijvoorbeeld het X Window System en extra software. Als deze ISO file gedownload is, gebruik dan het commando "MD5SUM" om de CRC ervan te controleren ("md5sum -b 4.9-i386-disc1.iso") en vergelijk de checksum met die in de CRC file (CHECKSUM.MD5) staat. Je hoeft FreeBSD niet per se via CD-ROM te installeren, via FTP mag ook. Wat daarvoor nodig is zijn slechts 2 bootfloppies. Installatie via bootfloppy en FTP kan handig zijn voor die personen die: - Niet kunnen booten van CD-ROM (oude computer zoals ik). - Vanaf FTP willen installeren (oude computer zonder CD-ROM). De bootfloppies zijn op de main site te downloaden, of natuurlijk op de Nederlandse mirror: "ftp://ftp.nl.freebsd.org/pub/FreeBSD/releases/i386/4.9-RELEASE/floppies" Download de files "kern.flp" en "mfsroot.flp". Let op! Bij het downloaden moet de Binary transfer mode aanstaan, anders komen de files niet goed binnen. Het aanmaken van bootfloppies: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Neem 2 lege / foutvrije diskettes. - Formatteer deze met "format a: /u" vanuit DOS/Windows, of met "mformat a:" vanuit een Linux omgeving. - Onder Windows kunnen deze images als volgt naar de 2 floppies worden gekopieerd: "fdimage -v kern.flp A:" en "fdimage -v mfsroot.flp A:" Het programma "fdimage" staat op de ftp site van FreeBSD : "ftp://ftp.nl.freebsd.org/pub/FreeBSD/releases/i386/4.9-RELEASE/tools" Vanuit Linux kan deze actie met de volgende commando's worden uitgevoerd: "dd if=kern.flp of=/dev/fd0" "dd if=mfsroot.flp of=/dev/fd0" 1.3 Benodigheden: ~~~~~~~~~~~~~~~~~ Een computer met 2 netwerkkaarten: - Minimaal een 386 met 16 MB en een 250 MB harddisk. - Het is echter aan te raden om een Pentium 75 met 32 MB en 750 MB harddisk te nemen (of hoger... hoe meer, hoe beter, i.v.m. de HTTP proxy, het compileerproces, etc.). Zaken als het compileren van een nieuwe kernel kunnen erg lang duren met een oudere computer. Als het puur om IP masquerading gaat dan zou een 386/486 voldoende moeten zijn, als echter effectief gebruik gemaakt dient te worden van de proxy dan dient er veel geheugen en een grote (>800MB) harde schijf aanwezig te zijn. FreeBSD kan ook worden geinstalleerd vanaf een lokale server met een CD-ROM speler. Deze dient dan als installatieserver. FreeBSD kan dan geinstalleerd worden zonder dat er een connectie naar het internet open staat, dit kan bepaalde veiligheids-voordelen hebben. Bijvoorbeeld een lokale Linux PC die dient als FTP server: - Benodigdheden - Een CD met daarop FreeBSD 4.x. - Een Linux PC met een actieve FTP daemon. - Mogelijkheid dat user 'ftp' kan inloggen op de Linux PC. - De FTP service dusdanig ingericht dat user 'ftp' bij de gemounte CD kan komen. - Bootfloppy's: "dd if=kern.flp of=/dev/fd0" "dd if=mfsroot.flp of=/dev/fd0" 2.0 Installatie vooraf: ~~~~~~~~~~~~~~~~~~~~~~~ - Controleer de BIOS instellingen van de PC: - Zet zaken zoals de datum en de tijd goed (dit i.v.m. logfiles). - Controleer of alle hardware goed is geconfigureerd. - Controleer of de PC boot-prioriteit op CD of floppy staat. - Weet je zeker dat alle hardware 100% is? Dus geen rare bad-sectors op de harde schijf, of rotte geheugenchips. (Om het geheugen in een computer te testen kan een tool genaamd Memtest86 worden gebruikt. Deze tool kan worden gedownload bij de site "http://www.memtest86.com/") - Inventarisatie hardware: Wat zijn de gebruikte IRQ's in de PC? Hoe groot en wat voor harde schijf zit er in de computer? Zitten er misschien meerdere harde schijven in? Wat voor soort netwerkkaarten zitten er in de computer... etc). - Wordt de gebruikte hardware ondersteunt door de gebruikte FreeBSD versie (zie de file "HARDWARE.TXT" op de FreeBSD CD-ROM). - FreeBSD moet in een primary partition geinstalleerd worden. Controleer of dit conflicten gaat vormen met een bestaand besturingssysteem. - FreeBSD installatie grootte: Voor een minimale FreeBSD installatie is minimaal 250MB vrije ruimte nodig. Als ook gewerkt moet worden met X is 350 MB of meer nodig. - FreeBSD installatie bron: FreeBSD kan vanaf een FTP site of een NFS server geinstalleerd worden mocht dat nodig zijn (bijvoorbeeld bij gebrek aan een CD / DVD-ROM). - FreeBSD kan ook vanaf CD-ROM/DVD geinstalleerd worden. Is de CD goed te lezen? Je wilt niet tijdens de installatie tot de conclusie komen dat er een krasje op de CD-ROM zit. Is de CD goed gekopieerd en bootable? - Heb je backups van de gegevens die op de harde schijf staan waarop FreeBSD wordt geinstalleerd? - Zorg dat netwerk informatie als: - Het IP adres. - Het IP adres van de default gateway. - De hostname. - De domainname. - De IP addressen van de DNS servers. bekend is. Het kan zijn dat deze informatie via DHCP door de internet provider wordt gestuurd. 2.1 Installatie: ~~~~~~~~~~~~~~~~ - Vanaf CD-ROM: - Doe de gebrande FreeBSD CD-ROM in de computer en restart. - Vanaf FTP/NFS: - Doe de "kernel" floppy in de floppy drive. Als gevraagd word om de MFS- root floppy, doe dan de "mfsroot" floppy erin. Na een tijdje verschijnt (zowel vanaf CD als floppy) het "Kernel- Configuration" scherm. (Kies) : "Start kernel configuration in full-screen visual mode" druk op "X" (Expand all lists) en 'resolve' alle conflicten door devices weg te halen die je niet hebt. Als het zover is, druk dan "Q" en kies "Yes". Vervolgens verschijnt: Het "Sysinstall Main Menu" Als je wilt kun je nog even kijken of FreeBSD alle hardware goed heeft gedetecteerd m.b.v. "Scroll-Lock". Gebruik dan de "Page Up", "Page Down" en de cursor toetsen om het scherm omhoog te scrollen. (Als je hiermee klaar bent druk dan weer op "Scroll-lock" om terug te gaan naar het menu). Kies nu voor "Standard installation" De "Disk Partition Editor" verschijnt. (voordat je verder gaat, lees in de HOWTO's en README's over de manier waarop FreeBSD de schijf partitioneerd). (zeer korte samenvatting : FreeBSD vereist een 'Slice'. Een Slice is te vergelijken met een soort partitie. Het verschil is dat binnen een Slice erg veel partities gemaakt kunnen worden). Kies: "C" - > "Create Slice...." of "A" - > "Gebruik de hele disk om de Slice te maken." Als je klaar bent doe dan "Q" -> Quit (op dit moment word de Slice nog niet weggeschreven) Nu verschijnt het "FreeBSD boot manager" scherm. De boot manager is alleen handig als er 2 drives zijn en/of een ander OS. Als dat niet het geval is, installeer dan de standard MBR (no boot manager). Nu verschijnt de "FreeBSD Disklabel Editor" - Druk "A" om door FreeBSD automatisch disklabels te laten maken. of doe dit handmatig: In verband met een optimaal aangemaakt filesystem is het handig om de volgende filesystems in onderstaande volgorde aan te maken: (a) Een root ("/") filesystem van 128 MB. (b) Een swap filesystem tussen 64 MB en (2 tot 3 x hoeveelheid RAM) (bijvoorbeeld: voor 32 MB RAM of minder --> een 64 MB swap filesystem (1:2) voor 64 MB RAM --> een 128 MB swap filesystem (1:2) voor 256 MB RAM of meer --> een 256 MB swap filesystem (1:1) (c) Een "/var" filesystem van 64 MB. Wanneer zaken als: - Mailboxes - Print spools - Logging belangrijk zijn, dan is 100 MB+ aan te raden. Ook hier geldt: hoe meer hoe beter, mits de harddisk ruimte het toelaat. Een apart filesystem voor "/var" is beveiliging-technisch aan te raden. (d) Een "/tmp" filesystem van 64 MB. Elk Unix systeem heeft een "/tmp" directory nodig voor bijvoorbeeld het opslaan van socket data. (e) Maak een "/usr" filesysteem ter grootte van de resterende ruimte. Optioneel: SoftUpdates (optie "S") op "/var", "/tmp" en "/usr". (ps. dit is standaard in FreeBSD versie 4.5 en hoger). "Q" voor volgend scherm. De wijzigingen worden opgeslagen. Nu verschijnt een scherm genaamd "Choose Distributions". - kies: "[ ] 6. Kern-Developer" (met de spatiebalk). (deze keuze kiest automatisch ook: [ ] 8. User (Average user - binaries and doc only). Er wordt nu gevraagd of de 'FreeBSD ports collection' geinstalleerd moet worden. - Kies "Yes" (ports collectie is handig voor de installatie van extra software). - Kies : "Exit" (met de spatiebalk). Nu verschijnt een scherm genaamd "Choose Installation Media". Kies: "CD/DVD" -> als je de .ISO hebt gedownload en op CD hebt gezet. "FTP" -> installatie vanaf een internet/lokale FTP server. "FTP Passive" -> net als "FTP" maar als je achter een firewall hangt. "HTTP" -> FTP via bijvoorbeeld een proxy server. "NFS" -> Bijvoorbeeld een Unix NFS server als installatie bron. Als gekozen word voor FTP kun je een ftp server kiezen uit een lijst. Kies hier een mirror ftp server die het dichtst bij je in de buurt is. Wanneer gekozen wordt voor FTP zal worden gevraagd om informatie. "Network Interface Information:" -> Kies de network interface waarmee je a/h internet hangt. IPv6 - No (de ISP's zijn nog niet klaar voor IPv6. FreeBSD wel). DHCP - Yes host appel.a2000.nl (fully-qualified hostname) domain a2000.nl gateway xxx.xxx.xxx.xxx nameserver xxx.xxx.xxx.xxx ip adres xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx Deze informatie kan ook handmatig (niet via DHCP) worden opgegeven. Hierna zal FreeBSD de harde schijf gaan indelen en inloggen op de gekozen ftp-server (of vanaf de CD-ROM de installatie starten). Het kan zijn dat de gekozen FTP server druk bezet is. Als dat zo is dient een andere gekozen te worden, bijvoorbeeld een mirror in Nederland. (ftp://ftp.nl.FreeBSD.org/pub/FreeBSD/) Als alles goed gaat begint FreeBSD nu met de installatie. De duur van de installatie is natuurlijk grotendeels afhankelijk van de gekozen ftp-mirror van FreeBSD en natuurlijk wat er geselecteerd is om geinstalleerd te worden. Als dit proces klaar is verschijnt de melding "Congratulations! You now have FreeBSD installed on your system!" en kan worden begonnen aan de post- installatie configuratie. 2.2 Post installatie configuratie: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Er worden een aantal vragen gesteld: - Do you want this machine to function as a network gateway? Antwoord "Yes" (want we gaan een router/firewall opzetten). - Do you want to configure inetd and the network services that it provides? Antwoord "No" (we willen geen diensten aanbieden aan de wereld). - Do you want to have anonymous FTP access to this machine? Antwoord "No" (we willen geen anonymous FTP aanbieden aan de wereld). - Do you want to configure this machine as an NFS server? Antwoord "No" (we willen geen NFS aanbieden aan de wereld). - Do you want to configure this machine as an NFS client? Antwoord "No" (we gaan geen NFS client maken). - Do you want to select a default security profile for this host? Antwoord "No" (we willen meer controle over dit aspect later). - Would you like to configure system console settings: Antwoord "Yes" (laten we eens creatief doen). Kies bijv. een Screensaver, een andere fontje en kies vervolgens [exit]. - Would you like to set this machine's time zone now? Antwoord "Yes" Europe -> Netherlands -> CEST - Would you like to enable Linux binary compatibilty? Antwoord "No" (we gaan geen Linux programma's onder BSD draaien). - Does this system have a non-USB mouse attached to it? Antwoord "No" (ik heb geen muis op deze computer). - Would you like to browse the [FreeBSD package] collection now ? "No" (niet nu). - Would you like to add any initial user accounts? Antwoord "Yes" -> User -> Je kunt de betreffende user lid maken van de Member group "wheel" om deze user met su root te laten worden. - Melding : Now you must set the system's manager's password. (wees creatief). - Visit the general configuration menu for a chance to set any last options? Antwoord "No" - Kies [X] (van Exit Install) en kies [Yes] om te booten (verwijder CD's / floppy-disks) Het systeem zal nu rebooten. ======================== ------- Rebooten ------- ------------------------ ---------------- -------- Bij de eerste boot zal er een public/private dsa key pair worden aangemaakt. Dit kan een tijdje duren als de machine in kwestie een oudere machine is. Als het boot proces klaar is : - Log in als "root" stap 1. "touch /root/logboek" stap 2. "vi /root/logboek" 2001.09.23 - verse installatie (voor elke wijziging die je doet aan je systeem vanaf nu maak je een entry aan in het logboek). (een oud gebruik, een goede gewoonte...) 3.0 Kernel compileren en verder met de realisatie van de totaal-oplossing: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Voordat de gewenste oplossing gerealiseerd is, zijn een aantal stappen nodig: - Het hercompileren van de kernel. - Het aanpassen van de file rc.conf. - Het aanpassen van het firewall opstart-script. - Overige aanpassingen. Optionele stappen: - Installatie van de HTTP proxy server 'Squid'. - Installatie Junkbuster. - Installatie NTP Server. - Installatie DNS caching 3.1 Het hercompileren van de kernel: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Het hercompileren van de kernel is nodig omdat ondersteuning voor 'ipfw' niet voorkomt in de standaard kernel, zoals die out-of-the-box komt bij FreeBSD 4.x. Gelukkig is het hercompileren van een FreeBSD kernel niet al te moeilijk. Om de kernel te hercompileren zijn een aantal stappen nodig: 1. Log in als root. 2. Maak een backup van de huidige kernel in de root-directory. ( "cp /kernel /kernel.backup" ) 3. Zorg dat de kernel-sources zijn geinstalleerd en zorg dat de tools die nodig zijn om de kernel te compileren aanwezig zijn. (De kernel-sources staan in "/usr/src/sys", als deze directory niet bestaat, installeer dan de kernel-sources. Doe dit door middel van "/stand/sysinstall" en dan: "Configure" -> "Distributions" -> "Src" -> "Sys" ) ) 4. Maak een kopie van de bestaande kernel configuratie. ( "cd /usr/src/sys/i386/conf" "cp GENERIC " ) (bijvoorbeeld "cp GENERIC appel") 5. Pas de nieuwe kernel-configuratie file (appel) aan: Voeg de volgende regels toe: options IPFIREWALL options IPFIREWALL_VERBOSE options IPFIREWALL_VERBOSE_LIMIT=50 options IPDIVERT options IPSTEALTH options TCP_DROP_SYNFIN Wijzig de volgende regels: ident appel # options INET6 # options NFS # options NFS_ROOT # cpu I386_CPU # cpu I486_CPU # options MATH_EMULATE (De optie IPFIREWALL zorgt dat de kernel packets kan blokkeren of doorlaten op basis van bron, bestemming, poortnummer en protocol). (De optie IPFIREWALL_VERBOSE voegt code toe aan de kernel zodat het mogelijk wordt om logging van packets naar syslogd te sturen). (De optie IPFIREWALL_VERBOSE_LIMIT=50 voorkomt dat bij het loggen van packets maximaal 50 entries van een firewall rule in de logfile kan voorkomen, dit voorkomt potentiele denial-of-service attacks). (De optie IPDIVERT zorgt dat binnenkomend IP verkeer wordt omgeleid naar een andere poort op de firewall machine). (De optie IPSTEALTH ) (De optie TCP_DROP_SYNFIN ) (De regel "ident appel" geeft de naam van de kernel aan). (Het weglaten van de optie INET6 haalt ondersteuning voor IPv6 uit de kernel vandaan. Dit zorgt ervoor dat "netstat" wat duidelijker wordt voor mij :-) ). (Het weglaten van de optie NFS en NFS_ROOT haalt ondersteuning voor NFS uit de kernel, NFS willen we niet op een firewall). (Het weglaten van ondersteuning voor de I386_CPU en de I486_CPU zorgt voor een potentieel snellere firewall code op mijn Pentium :-) ) 6. Ga naar de directory "/usr/src/sys/i386/conf/" en typ: "/usr/sbin/config " Ga naar "../../compile/" "make depend" "make" "make install" 3.2 Het aanpassen van de file rc.conf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Lees voor de grap eens de manual page van "rc.conf". 1. Edit de file "/etc/rc.conf" : firewall_enable="YES" firewall_script="/etc/rc.vuurmuur" firewall_type="open" font8x14="NO" font8x16="swiss-8x16" font8x8="swiss-8x8" gateway_enable="YES" hostname="appel.chello.nl" icmp_drop_redirect="YES" ifconfig_ep1="DHCP" ifconfig_xl0="inet 10.0.0.1 netmask 255.0.0.0" inetd_enable="NO" kern_securelevel_enable="NO" log_in_vain="YES" natd_enable="yes" natd_flags="-u -m -dynamic" natd_interface="ep1" nfs_reserved_port_only="YES" ntpdate_enable="YES" ntpdate_flags="ntp1.theinternetone.net" saver="daemon" sendmail_enable="NONE" sshd_enable="YES" tcp_drop_synfin="YES" ( Voor de paranoia onder ons: Het is mogelijk om FreeBSD in een 'high-secure' mode te draaien. Deze mode houdt o.a. in dat het niet mogelijk is om (zelfs door root) op run-time niveau de firewall rules te veranderen. Zie de man-page van het commando "init" voor betere uitleg. Om dit te bewerkstelligen dienen er aan de file "/etc/rc.conf" de volgende regels te worden toegevoegd: kern_securelevel_enable="YES" kern_securelevel="3" ) 3.3 Het aanpassen van het firewall opstart-script: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (zie "/var/db/dhclient.leases" om te bekijken wat er aan DHCP informatie is binnengekomen). 1. Maak een kopie van de file "/etc/rc.firewall" (Bijvoorbeeld "cp /etc/rc.firewall /etc/rc.vuurmuur") 2. Wijzig de file "/etc/rc.vuurmuur" naar eigen smaak. NOGDOEN voorbeeld wat je hierin zoal aanpast NOGDOEN Het is handig om van het 'simple' firewall type uit te gaan zoals die al out of the box bij FreeBSD is meegeleverd. ( Wat ik zelf handig vind om te doen is om in de test fase van de firewall bij elke regel waar 'deny' staat deze te loggen, dit een tijdje aan te zien en bij de echt-niet-interessante log entries (multicasts, broadcasts) de logging later weer weg te laten. Laat de extreme logging ongeveer een uur of 2 duren, voer wat poort scans uit op je machine en bepaal wat je wel en wat je niet wilt loggen. ) (Zie het einde van deze txt file voor een voorbeeld rc-script). (NOGDOEN) Allereerst wat informatie over FreeBSD firewalling. De firewall kan worden geconfigureerd met het commando "ipfw". Dit commando kent de volgende parameters: NOGDOEN Om poort-scan pogingen op poorten die 'unused' zijn in de syslog te vermelden kunnen de volgende commando's gebruikt worden: sysctl -w net.inet.tcp.log_in_vain=1 sysctl -w net.inet.udp.log_in_vain=1 Om poort-scanners te pesten kan ook de blackhole truuk worden uitgehaald: sysctl -w net.inet.tcp.blackhole=1 sysctl -w net.inet.udp.blackhole=1 Als je wilt dat dit bij elke reboot automatisch geldt, maak dan een file aan genaamd "/etc/sysctl.conf" met daarin de volgende regels: net.inet.tcp.log_in_vain=1 net.inet.udp.log_in_vain=1 net.inet.tcp.blackhole=1 net.inet.udp.blackhole=1 3.4 De HTTP proxy server 'Squid' (optioneel): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Om Squid geinstalleerd te krijgen is het handig om de beroemde FreeBSD 'ports collection' (/usr/ports) geinstalleerd te hebben. Wat is de ports collection? Nou, een directory structuur met allemaal soorten ports. Een port kan bijvoorbeeld een spelletje zijn of een utility. Of een proxy server. Ga naar de directory "/usr/ports/www/squid24" Als je "make" intypt, wordt automatisch vanaf het internet de meest recente geteste versie gedownload, op je systeem gezet met de bijbehorende patches en updates. Het wordt automatisch uitgepakt, geupdate en gecompileerd. Typ "make install" om squid in "/usr/local" te installeren. Het squid opstart script word in "/usr/local/etc/rc.d" gezet. De configuratie file van squid komt in "/usr/local/etc/squid" te staan. Van deze configuratie file wordt je niet vrolijk. Gelukkig is hij standaard zo goed als af om voor je netwerkje te gebruiken! Maar... Het kan handig (en zelfs nodig) zijn om de file "/usr/local/etc/squid/squid.conf" aan te passen naar eigen smaak: - Om de cache grootte aan te passen: Ga naar de regel die begint met "cache_dir". Standaard staat deze op 100 MB. Als je een grote harddisk hebt kun je dit natuurlijk verhogen. - De Access Control List. Deze bepaalt welke IP adressen je proxy server toelaat. Ga naar de sectie 'ACCESS CONTROLS' en voeg bijvoorbeeld toe: "acl peter src 10.0.0.2" Ga nu naar de sectie 'INSERT YOUR OWN RULE(S) HERE TO ALLOW ... ' en voeg bijvoorbeeld toe: "http_access allow peter" Squid troubleshooting: ~~~~~~~~~~~~~~~~~~~~~~ - Als squid na een reboot gaat zeuren over 'visible hostnames' wijzig de file "/usr/local/etc/squid/squid.conf" en voeg de regel: "visible_hostname appel.a2000.nl" toe. - Als squid na een reboot gaat zeuren met de melding dat de file "/usr/local/squid/logs/access.log" niet geschreven kan worden, dan komt dit doordat de rechten van de directory "/usr/local/squid/logs" nog niet goed staan. Squid draait standaard namelijk niet als root. Pas deze aan met de volgende commando's: "chown nobody logs" "chgrp nogroup logs" - Als squid na een reboot gaat zeuren met 'Failed to verify one of the swap directories", doe dan "squid -z". - Als squid gaat zeuren met "Failed to make swap directory", ga dan naar de directory "/usr/local/squid" en pas daar de rechten van de directory "cache" aan: "chown nobody cache" "chgrp nogroup cache" Als de configuratie van squid klaar is moet er nog het een en ander worden ingesteld aan de client kant: Configureer je client PC's als volgt: - Internet Explorer -> Tools -> Internet Options -> Connections -> -> LAN Settings -> Proxy server [x] Use a proxy server Address: 10.0.0.1 Port: 3128 - Mozilla -> Edit -> Preferences -> Advanced -> Proxies -> Manual proxy configuration -> "10.0.0.1" -> "port 3128" - Konqueror -> Instellingen -> Konqueror instellen -> Proxy -> Proxy gebruiken -> Handmatig opgegeven instellingen -> Servers -> "http://10.0.0.1" port 3128. 3.5 'Junkbuster' (optioneel): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ NOGDOEN Met de komst van Mozilla is dit niet zo belangrijk meer. Mozilla (of een afgeleide ( Epiphany / Mozilla Firebird ) kan allerlei soorten banners blokkeren. (/usr/ports/www/junkbuster) Browser -----> Junkbuster -----> Squid -----> WWW 3.6 NTP Server (optioneel): ~~~~~~~~~~~~~~~~~~~~~~~~~~~ NOGDOEN 3.7 DNS caching (optioneel): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ NOGDOEN Een caching name server is heel simpel. Wanneer a/d caching nameserver iets word gevraagd kijkt deze of deze nog in de cache staat, zoniet dan een lookup. named_enable="YES" /etc/namedb sh ./make-localhost (om localhost.rev aan te maken) named.conf -> forwarders { xxx.xxx.xxx.xxx; xxx.xxx.xxx.xxx; } 3.8 Port Redirection: ~~~~~~~~~~~~~~~~~~~~~ NOGDOEN -redirect_port aan natd(8) moet worden meegegeven....... -redirect_port proto targetIP:targetPORT[-targetPORT] [aliasIP:]aliasPORT[-aliasPORT] [remoteIP[:remotePORT[-remotePORT]]] 4.0 Configuratie achteraf: ~~~~~~~~~~~~~~~~~~~~~~~~~~ NOGDOEN Configuratie achteraf : - ntpdate - Shells - bash-2.0.5 - Net - cvsup-bin-16.1