Brandv�ggar och Proxyservers HOWTO (Firewall HOWTO)
 Mark Grennan, [email protected]. Svensk �vers�ttning av
 Tomas Carlsson <mailto:[email protected]>
 v0.4, 8 November 1996, Svensk version 15 Juni 1998

 Detta dokument �r designat f�r att l�ra ut grunderna i brandv�ggssys�
 tem och att ge dig lite detaljer om hur man konfigurerar b�de en fil�
 trerande och proxy brandv�gg p� en Linuxbaserad PC. En (engelsk) HTML-
 version av detta dokument finns tillg�nglig p� http://okcfo
 rum.org/~markg/Firewall-HOWTO.html
 ______________________________________________________________________

 Inneh�llsf�rteckning





















































 1. Introduktion

    1.1 Feedback
    1.2 Disclaimer
    1.3 Copyright
       1.3.1 Svensk version
       1.3.2 Engelsk version, of�r�ndrad fr�n originaldokumentet
    1.4 Anledningar till att jag skriver detta
    1.5 Att g�ra
    1.6 Ytterligare L�sning
    1.7 �vers�ttarens kommentarer

 2. Att f�rst� brandv�ggar

    2.1 Nackdelar med brandv�ggar
       2.1.1 IP Filtrerande Brandv�ggar
       2.1.2 Proxyservrar

 3. Att konfigurera brandv�ggen

    3.1 H�rdvarukrav

 4. Programvara f�r brandv�ggar

    4.1 Tillg�ngliga paket
    4.2 TIS Firewall Toolkit eller SOCKS

 5. Att f�rbereda Linuxsystemet

    5.1 Att kompilera k�rnan
    5.2 Att konfigurera tv� n�tverkskort
    5.3 Att konfigurera n�tverksadresser
    5.4 Att testa ditt n�tverk
    5.5 Att s�kra brandv�ggen

 6. Att konfigurera IP-filtrering (

 7. Att installera TIS proxyserver

    7.1 Att f� tag p� programvaran
    7.2 Att kompilera TIS FWTK
    7.3 Att installera TIS FWTK
    7.4 Att konfigurera TIS FWTK
       7.4.1 Filen
       7.4.2 Filen
       7.4.3 Filen

 8. SOCKS Proxyserver

    8.1 Att installera proxyservern
    8.2 Att konfigurera proxyservern
       8.2.1 Accessfilen
       8.2.2 Routingfilen
    8.3 DNS bakom en brandv�gg
    8.4 Att arbeta med en proxyserver
       8.4.1 Unix
       8.4.2 MS Windows med Trumpet Winsock
       8.4.3 Att f� proxyservern att fungera med UDP-paket
    8.5 Nackdelar med proxyservrar

 9. Avancerade Konfigurationer

    9.1 Ett stort n�tverk med tyngdpunkten p� s�kerhet
       9.1.1 Att s�tta upp n�tverket
       9.1.2 Att s�tta upp proxyservern

 ______________________________________________________________________

 1.  Introduktion

 Originalversionen av Firewall-HOWTO skrevs av David Rudder,
 [email protected]. Jag skulle vilja tacka honom f�r att han till�t mig
 att uppdatera hans arbete.

 Brandv�ggar har f�tt stor uppm�rksamhet som `det ultimata' i
 Internets�kerhet den senaste tiden. Som med de flesta saker som f�r
 stor uppm�rksamhet, s� f�ljer med detta missuppfattningar. Denna HOWTO
 kommer att ta upp grunderna om vad en brandv�gg �r f�r n�got, hur man
 s�tter upp en, vad proxyservrar �r, hur man s�tter upp proxyservrar
 och applikationerna f�r denna teknik utanf�r s�kerhetens sf�r.


 1.1.  Feedback

 All feedback �r v�ldigt v�lkommen.  VAR V�NLIG ATT RAPPORTERA ALLA
 ORIKTIGHETER I DETTA DOKUMENT!!!. Jag �r m�nsklig och ben�gen att g�ra
 fel. Om du hittar n�gra s� �r jag mycket intresserad att r�tta till
 dem. Jag kommer att f�rs�ka svara p� alla e-postmeddelanden, men jag
 �r upptagen s� bli inte f�rol�mpad om jag inte g�r det.

 Min e-postadress �r [email protected]


 1.2.  Disclaimer

 JAG �R INTE ANSVARIG F�R N�GRA SKADOR SOM INTR�FFAR P� GRUND AV
 AGERANDE SOM �R BASERAT P� DETTA DOKUMENT. Detta dokument �r t�nkt att
 vara en introduktion till hur brandv�ggar och proxyservrar fungerar.
 Jag �r inte, och jag l�tsas inte heller att vara, en s�kerhetsexpert.
 Jag �r bara en person som har l�st f�r mycket och tycker om datorer
 mer �n de flesta. Sn�lla, jag skriver detta f�r att hj�lpa folk att
 bli bekanta med �mnet och jag �r inte beredd att satsa mitt liv p� att
 allt som finns i detta dokument �r korrekt.


 1.3.  Copyright

 1.3.1.  Svensk version

 Denna �vers�ttning skall inte ses som juridiskt bindande, det �r den
 engelska versionen som g�ller. Se n�sta delavsnitt.

 Om inte annat anges, s� �r Linux HOWTO dokument
 kopieringsr�ttsskyddade av dess respektive f�rfattare. Linux HOWTO
 dokument f�r reproduceras och distribueras i sin helhet eller i delar
 i vilket medium som helst, fysiskt eller elektroniskt, s� l�nge som
 denna kopieringsr�ttsnotis finns med i alla kopior. Komersiell
 distribution �r till�ten och uppmuntrad; men, f�rfattaren skulle vilja
 bli informerad om en s�dan distribution.

 Alla �vers�ttningar, h�rledda arbeten eller f�renade arbeten som
 inf�rlivar n�got Linux HOWTO dokument m�ste t�ckas under denna
 kopieringsr�ttsnotisen. Dvs att du f�r inte producera ett h�rleda ett
 arbete ur en HOWTO och sedan l�gga till ytterligare restriktioner f�r
 dess distribution. Undantag f�r dessa regler kan till�tas under
 s�rskilda f�rh�llanden; var v�nlig att kontakta koordinatorn f�r Linux
 HOWTOs.

 Kort sagt, vi vill gynna spridandet av denna information genom s�
 m�nga kanaler som m�jligt. Men vi vill beh�lla kopieringsr�tten p�
 HOWTO-dokumenten och vill bli informerade om alla planer p� att
 distribuera HOWTOs.
 Om du har n�gra fr�gor, var v�nlig kontakta Mark Grennan p�
 <[email protected]>.


 1.3.2.  Engelsk version, of�r�ndrad fr�n originaldokumentet

 Det �r denna som g�ller

 Unless otherwise stated, Linux HOWTO documents are copyrighted by
 their respective authors. Linux HOWTO documents may be reproduced and
 distributed in whole or in part, in any medium physical or electronic,
 as long as this copyright notice is retained on all copies. Commercial
 redistribution is allowed and encouraged; however, the author would
 like to be notified of any such distributions.

 All translations, derivative works, or aggregate works incorporating
 any Linux HOWTO documents must be covered under this copyright notice.
 That is, you may not produce a derivative work from a HOWTO and impose
 additional restrictions on its distribution. Exceptions to these rules
 may be granted under certain conditions; please contact the Linux
 HOWTO coordinator.

 In short, we wish to promote dissemination of this information through
 as many channels as possible. However, we do wish to retain copyright
 on the HOWTO documents, and would like to be notified of any plans to
 redistribute the HOWTOs.

 If you have any questions, please contact Mark Grennan at
 <[email protected]>.


 1.4.  Anledningar till att jag skriver detta

 �ven om det har varit m�nga diskussioner i comp.os.linux.* om
 brandv�ggar det senaste �ret, s� hade jag sv�rt f�r att hitta den
 information jag beh�vde f�r att s�tta upp en brandv�gg.
 Originalversionen av denna HOWTO hj�lpte till men det saknades
 fortfarande lite grann. Jag hoppas att denna `upp-hottade' version av
 David Rudder's Firewall HOWTO kommer att ge alla den information de
 beh�ver f�r att skapa en fungerande brandv�gg p� n�gra timmar, inte
 veckor.

 Jag k�nner ocks� att jag borde ge tillbaka n�gonting till
 Linuxv�rlden.


 1.5.  Att g�ra


 �  Ge lite instruktioner om hur man s�tter upp klienterna.

 �  Hitta en bra UDP proxyserver som fungerar med Linux


 1.6.  Ytterligare L�sning


 �  NET-2 HOWTO (nuvarande NET-3-HOWTO (Sv�))

 �  Ethernet HOWTO

 �  Multiple Ethernet Mini HOWTO

 �  Networking with Linux


 �  PPP HOWTO

 �  TCP/IP Network Administrator's Guide av O'Reilly and Associates

 �  Dokumentation f�r TIS Firewall Toolkit

 Trusted Information Systems (TIS) www-sajt har en stor samling
 dokumentation om brandv�ggar och relaterat material.  TIS www-sajt
 <http://www.tis.com/>

 Dessutom s� arbetar jag med ett s�kerhetsprojekt som jag kallar f�r
 Secure Linux. P� www-sajten f�r Secure Linux s� samlar jag all
 information, dokumentation och program som man beh�ver f�r att skapa
 ett p�litligt Linuxsystem. E-posta mig om du vill ha information.


 1.7.  �vers�ttarens kommentarer

 Jag kommer anv�nda �vers�ttningen `Internet' i detta dokument, med
 vilket jag menar det allm�nt k�nda Internet. Men informationen i detta
 dokument b�r �ven g�lla f�r vilket annat intern�tverk som helst,
 �tminstonde ett som anv�nder samma protokoll som Internet.

 Jag har �ndrat alla f�rekomster av `NET-2 HOWTO' till `NET-3 HOWTO'
 eftersom det �r den versionen av det dokumentet som �r aktuell f�r
 tillf�llet.

 De till�gg som jag har gjort i texten har jag markerat med `(Sv�)'.



 2.  Att f�rst� brandv�ggar

 En brandv�gg �r en term som anv�nds f�r en bildel. I bilar s� �r
 brandv�ggar fysiska objekt som separerar motorn fr�n passagerarna. De
 �r till f�r att skydda passageraren ifall bilens motor fattar eld
 medans den fortfarande l�ter f�raren anv�nda motorns kontroller.

 En brandv�gg i en dator �r en enhet som skyddar ett privat n�tverk
 fr�n den publika delen (Internet som helhet).

 Brandv�ggsdatorn, fr�n och med nu kallad "brandv�ggen", kan n� b�de
 det skyddade n�tverket och Internet. Det skyddade n�tverket kan inte
 n� Internet och Internet kan inte n� det skyddade n�tverket.

 F�r att n�gon skall kunna n� Internet fr�n insidan av det skyddade
 n�tverket, s� m�ste de g�ra en telnetanslutning till brandv�ggen och
 anv�nda Internet d�rifr�n.

 Den enklaste formen av branv�gg �r ett `dual homed' system (ett system
 med tv� n�tverksanslutningar). Om du kan LITA p� ALLA dina anv�ndare,
 s� kan du helt enkelt s�tta upp ett Linuxsystem (kompilera med IP
 forwarding/gatewaying avst�ngt) och ge alla anv�ndare konton till den.
 De kan sedan logga in p� detta system och anv�nda telnet, FTP, l�sa e-
 post och andra tj�nster som du erbjudit. Med denna inst�llning s� �r
 brandv�ggen den enda dator p� ditt privata n�tverk som vet n�gonting
 om v�rlden utanf�r. De andra systemen p� ditt skyddade n�tverk beh�ver
 inte ens n�gon default route.

 Detta m�ste upprepas: F�r att ovanst�ende brandv�gg skall fungera s�
 M�STE DU LITA P� ALLA DINA ANV�NDARE!. Jag rekommenderar inte detta.





 2.1.  Nackdelar med brandv�ggar

 Det finns tv� typer av brandv�ggar.

 1. IP Filtrerande Brandv�ggar - som blockerar all n�tverkstrafik utom
    viss utvald trafik.

 2. Proxyservrar - som g�r n�tverksanslutningarna �t dig.


 2.1.1.  IP Filtrerande Brandv�ggar


 En IP filtrerande brandv�gg arbetar p� paketniv�n. Den �r designad f�r
 att kontrollera fl�det av paket baserat p� k�llan, destinationen,
 porten och pakettypen som finns lagrade i varje paket.

 Denna typ av brandv�gg �r v�ldigt s�ker men den saknar all form av
 anv�ndbara loggningsfunktioner. Den kan hindra personer fr�n att komma
 �t privata system men den kommer inte att tala om vem som accessade
 dina publika system eller vem som accessade Internet fr�n insidan.

 Filtrerande brandv�ggar �r absoluta filter. �ven om du vill ge n�gon
 access till dina privata servrar fr�n utsidan s� kan du inte g�ra
 detta utan att ge alla access till servrarna.

 Linux inneh�ller mjukvara f�r paketfiltrering i k�rnan fr�n och med
 version 1.3.x.


 2.1.2.  Proxyservrar

 Proxyservrar till�ter indirekt access till Internet genom brandv�ggen.
 Det b�sta exemplet p� hur detta fungerar �r en person som telnettar
 till ett system och sedan telnettar d�rifr�n till ytterligare ett
 system. Men med en proxyserver s� g�rs detta automatiskt. N�r du
 ansluter till en proxyserver med din klientprogramvara s� startar
 proxyservern sin klientprogramvara och skickar informationen till dig.

 Eftersom proxyservrar duplicerar all kommunikation s� kan de logga
 allt de g�r.

 Den stora f�rdelen med proxyservrar �r att de �r helt s�kra, n�r de �r
 korrekt konfigurerade. De till�ter inte n�gra anslutningar igenom dem.
 Det finns inga direkta IP-routes.


 3.  Att konfigurera brandv�ggen

 3.1.  H�rdvarukrav

 I v�rt exempel s� �r datorn en 486-DX66 med 16Mb minne och en 500Mb
 Linuxpartition. Detta systemet har tv� n�tverkskort, ett anslutet till
 v�rt privata LAN och det andra anslutet till ett LAN som vi kallar f�r
 den de-militariserade zonen (DMZ). DMZ �r ansluten till en router som
 i sin tur �r ansluten till Internet.

 Detta �r en ganska typisk konfiguration f�r ett f�retag. Man skulle
 kunna anv�nda ett n�tverkskort och ett modem med en PPP-l�nk till
 Internet. Po�ngen �r att brandv�ggen m�ste ha tv� IP-adresser.

 Jag vet m�nga personer som har sm� LANs hemma med tv� eller tre
 datorer anslutna. N�got som man skulle kunna t�nka sig d� �r att
 koppla alla sina modem till en Linuxburk (kanske en gammal 386:a) och
 ansluta dem till Internet med lastbalansering. Med denna konfiguration
 kan man f�rdubbla genomstr�mmningen om endast en person tog hem data
 fr�n Internet. :-)


 4.  Programvara f�r brandv�ggar

 4.1.  Tillg�ngliga paket

 Om allt du vill ha �r en filtrerande brandv�gg, s� beh�ver du endast
 Linux och de grundl�ggande n�tverkspaketen. Ett paket som kanske inte
 f�ljer med din distribution �r IP Firewall Administration tool,
 ipfwadm. Detta kan du hitta p� www.xos.nl
 <http://www.xos.nl/linux/ipfwadm/>.

 Om du vill s�tta upp en proxyserver s� beh�ver du ett av f�ljande
 paket.

 1. SOCKS

 2. TIS Firewall Toolkit (FWTK)


 4.2.  TIS Firewall Toolkit eller SOCKS

 Trusted Information System <http://www.tis.com> har gjort en samling
 program som �r designade f�r brandv�ggar. Programmen g�r i stort sett
 samma sak som SOCKS-paketet, men med en annan designstrategi. D�r
 SOCKS har ett program som t�cker alla Internettransaktioner, s� har
 TIS ett program f�r varje tj�nst som �nskar anv�nda brandv�ggen.

 F�r att j�mf�ra de b�da, l�t oss anv�nda exemplet med www och telnet
 access.  Med SOCKS s�tter du upp en konfigurationsfil och en daemon.
 Genom denna fil och daemon s� aktiveras b�de www och telnet, s�v�l som
 alla andra tj�nster som du inte st�ngt av.

 Med TIS-paketet kan du s�tta upp en daemon f�r var och en av www och
 telnet, s�v�l som konfigurationsfiler f�r b�da. N�r du gjort detta s�
 �r andra accesser till Internet fortfarande inte till�tna f�rr�n du
 explicit s�tter upp dem ocks�. Om det inte har tillhandah�llits en
 daemon f�r en viss tj�nst (s�som talk) s� finns det en "plug-in"
 daemon, men den �r varken s� flexibel eller s� enkel att s�tta upp som
 de andra daemonerna.

 Detta kan verka obetydligt, men det har en stor betydelse. SOCKS
 till�ter dig att vara slarvig. Med en d�lig konfigurerad SOCKS-server,
 s� kan n�gon fr�n insidan f� mer access till Internet �n vad som var
 meningen fr�n b�rjan. Med TIS-paketet s� har personerna p� insidan
 endast tillg�ng till det som systemadministrat�ren vill att de skall
 ha tillg�ng till.

 SOCKS �r l�ttare att konfigurera, l�ttare att kompilera och till�ter
 st�rre flexibilitet. TIS-paketet �r s�krare om man vill reglera
 anv�ndarna i det skyddade n�tverket. B�da tillhandah�ller absolut
 skydd fr�n utsidan.

 Jag kommer att t�cka installationen och konfigurationen av b�da.


 5.  Att f�rbereda Linuxsystemet

 5.1.  Att kompilera k�rnan

 B�rja med en ren installation av din Linuxdistribution (jag anv�nde
 RedHat 3.0.3 och exemplen h�r baseras p� den distributionen). Ju
 mindre programvara du har installerad desto mindre s�kerhetsh�l,
 bakd�rrar och/eller buggar kommer det att finnas som inbringar
 s�kerhetsproblem i ditt system. S� installera endast minimalt med
 applikationer.

 V�lj en stabil k�rna. Jag anv�nde Linux 2.0.14 k�rnan till mitt
 system, s� denna dokumentationen �r baserad p� dess inst�llningar.

 Du kommer att beh�va kompilera om Linuxk�rnan med passande altenativ.
 Vid denna tidpunkten b�r du titta i Kernel HOWTO, Ethernet HOWTO och
 NET-3 HOWTO om du inte redan gjort detta.

 H�r �r de n�tverksrelaterade inst�llningar som jag vet fungerar i
 `make config'


 1. Under `General setup'

    a. S�tt p� `Networking Support'

 2. Under `Networking Options'

    a. S�tt p� `Network firewalls'

    b. S�tt p� `TCP/IP Networking'

    c. St�ng av `IP forwarding/gatewaying' (OM DU INTE vill anv�nda IP-
       filtrering)

    d. S�tt p� `IP Firewalling'

    e. S�tt p� `IP firewall packet logging' (detta �r inte n�dv�ndigt
       men det �r en bra ide)

    f. St�ng av `IP: masquerading' (Jag t�cker inte detta �mnet h�r.)

    g. S�tt p� `IP: accounting'

    h. St�ng av `IP: tunneling'

    i. St�ng av `IP: aliasing'

    j. St�ng av `IP: PC/TCP compatibility mode'

    k. St�ng av `IP: Reverse ARP'

    l. S�tt p� `Drop source routed frames'

 3. Under `Network device support'

    a. S�tt p� `Network device support'

    b. S�tt p� `Dummy net driver support'

    c. S�tt p� `Ethernet (10 or 100Mbit)'

    d. V�lj ditt n�tverkskort

 Nu kan du kompilera om och installera om k�rnan och sedan starta om
 systemet.  Dina n�tverkskort skall nu dyka upp bland all text vid
 uppstarten. Om inte, g� igenom de andra HOWTOerna igen tills det
 fungerar.


 5.2.  Att konfigurera tv� n�tverkskort

 Om du har tv� n�tverkskort i din dator, s� m�ste du med all
 sannolikhet l�gga till ett appenduttryck i din /etc/lilo.conf-fil f�r
 att tala om IRQ och I/O-adress f�r b�da korten. Mitt appenduttryck ser
 ut s� h�r:

     append="ether=12,0x300,eth0 ether=15,0x340,eth1"




 5.3.  Att konfigurera n�tverksadresser

 Detta �r den riktigt intressanta delen. Nu har du n�gra olika val att
 g�ra.  Eftersom vi inte vill att Internet skall ha tillg�ng till n�gon
 del av det privata n�tverket, s� beh�ver vi inte anv�nda riktiga
 adresser. Det finns ett antal intressanta adresser som �r reserverade
 f�r privata n�tverk. Eftersom alla beh�ver fler adresser och eftersom
 dessa adresserna inte kan n�s �ver Internet s� �r de ett bra val.

 Ibland dessa adresser s� �r tex 192.168.2.xxx reserverad och vi kommer
 att anv�nda den i v�ra exempel.

 Din proxybrandv�gg kommer att vara medlem av b�da n�tverken och kan
 d�rf�r skicka igenom data till och fr�n det privata n�tverket.


             199.1.2.10   __________    192.168.2.1
       _  __  _        \ |          | /           _______________
      | \/  \/ |        \| Firewall |/           |               |
     / Internet \--------|  System  |------------| Workstation/s |
     \_/\_/\_/\_/        |__________|            |_______________|



 Om du skall anv�nda en filtrerande brandv�gg s� kan du fortfarande
 anv�nda de h�r adresserna. Du beh�ver anv�nda IP-maskering
 (Masquerading) f�r att det skall fungera. Med IP-maskering s� skickar
 brandv�ggen vidare alla paket och �vers�tter dem till "riktiga" IP-
 paket s� att de kan skickas p� Internet.

 Du m�ste tilldela den riktiga IP-adressen till n�tverkskortet som �r
 anslutet till Internetsidan (utsidan). Och tilldela 192.168.2.1 till
 Ethernet-kortet p� insidan.  Detta kommer att vara din proxy/gateway
 IP-adress. Du kan tilldela alla de andra maskinerna p� det skyddade
 n�tverket n�gon adress i omr�det 192.168.2.2 till 192.168.2.254.

 Eftersom jag anv�nder RedHat Linux s� konfigurerar jag n�tverket vid
 uppstart genom att l�gga till en ifcfg-eth1-fil i katalogen
 /etc/sysconfig/network-scripts. Denna filen l�ses under uppstarten f�r
 att konfigurera ditt n�tverk och dina routingtabeller.

 S� h�r ser min ifcfg-eth1 ut:


     #!/bin/sh
     #>>>Device type: ethernet
     #>>>Variable declarations:
     DEVICE=eth1
     IPADDR=192.168.2.1
     NETMASK=255.255.255.0
     NETWORK=192.168.2.0
     BROADCAST=192.168.2.255
     GATEWAY=199.1.2.10
     ONBOOT=yes
     #>>>End variable declarations




 Du kan ocks� anv�nda dessa script f�r att automatiskt ansluta till
 Internet med modem. Titta p� scriptet ipup-ppp.

 Om du skall anv�nda ett modem till din Internetanslutning s� kommer
 din IP-adress p� utsidan att tilldelas av din leverant�r n�r du
 ansluter.


 5.4.  Att testa ditt n�tverk

 B�rja med med att kolla ifconfig och route. Om du har tv� n�tverkskort
 s� b�r din ifconfig se ut ungef�r s� h�r:

   #ifconfig
   lo        Link encap:Local Loopback
             inet addr:127.0.0.0  Bcast:127.255.255.255  Mask:255.0.0.0
             UP BROADCAST LOOPBACK RUNNING  MTU:3584  Metric:1
             RX packets:1620 errors:0 dropped:0 overruns:0
             TX packets:1620 errors:0 dropped:0 overruns:0

   eth0      Link encap:10Mbps Ethernet  HWaddr 00:00:09:85:AC:55
             inet addr:199.1.2.10 Bcast:199.1.2.255  Mask:255.255.255.0
             UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
             RX packets:0 errors:0 dropped:0 overruns:0
             TX packets:0 errors:0 dropped:0 overruns:0
             Interrupt:12 Base address:0x310

   eth1      Link encap:10Mbps Ethernet  HWaddr 00:00:09:80:1E:D7
             inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
             UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
             RX packets:0 errors:0 dropped:0 overruns:0
             TX packets:0 errors:0 dropped:0 overruns:0
             Interrupt:15 Base address:0x350



 och din routingtabell ungef�r s� h�r:


   #route -n
   Kernel routing table
   Destination     Gateway         Genmask         Flags MSS    Window Use Iface
   199.1.2.0       *               255.255.255.0   U     1500   0       15 eth0
   192.168.2.0     *               255.255.255.0   U     1500   0        0 eth1
   127.0.0.0       *               255.0.0.0       U     3584   0        2 lo
   default         199.1.2.10      *               UG    1500   0       72 eth0



 Observera: 199.1.2.0 �r Internet-sidan av denna brandv�ggen och
 192.168.2.0 �r den privata sidan.

 F�rs�k nu att pinga Internet fr�n brandv�ggen. Jag brukade anv�nda
 nic.ddn.mil som testpunkt. Det �r fortfarande en bra test, men har
 visat sig mindre p�litlig �n jag hade hoppats. Om det inte fungerar
 med en g�ng, f�rs�k med att pinga n�gra andra st�llen som inte �r
 anslutna till ditt LAN. Om detta inte fungerar s� �r din PPP felaktigt
 konfigurerad. L�s NET-3 HOWTO igen och f�rs�k sedan igen.

 F�rs�k nu pinga en dator p� det skyddade n�tverket fr�n brandv�ggen.
 Alla datorer p� det privata n�tverket skall kunna pinga varandra. Om
 inte s� f�rs�k med NET-3 HOWTO igen och jobba lite till p� n�tverket.

 F�rs�k nu att pinga brandv�ggens yttre IP-adress (observera att detta
 inte �r en av 192.168.2.xxx adresserna) fr�n en dator inne i det
 skyddade n�tverket.  Om detta fungerar s� har du inte st�ngt av IP-
 vidareskickning (forwarding). Se till att vara s�ker p� att detta �r
 vad du vill i s�dana fall. Om du l�ter den vara p�slagen s� m�ste du
 �ven l�sa igenom avsnittet om IP-filtrering ocks�.

 F�rs�k nu att pinga Internet ifr�n det skyddade n�tverket (dvs bakom
 brandv�ggen). Anv�nd samma adress som fungerade n�r du gjorde detta
 fr�n brandv�ggen (tex nic.ddn.mil). �terigen, om du har st�ngt av IP-
 vidareskickning s� skall detta inte fungera men annars s� skall det
 fungera.

 Om du har IP-vidareskickning p�slagen och anv�nder "RIKTIGA" (inte
 192.168.2.*) IP-adresser till ditt privata n�tverk, och om du inte kan
 pinga Internet men du kan pinga Internet-sidan av din brandv�gg, s�
 kolla om n�sta router `uppstr�ms' routar paket f�r din privata
 n�tverksadress (din leverant�r kanske m�ste g�ra detta �t dig).

 Om du har gett ditt n�tverk reserverade adresser (192.168.2.*), s� kan
 inga paket routas till det �nd�. Om du har g�tt i f�rv�g och redan har
 IP-maskering p�slagen, s� skall detta testet fungera.

 Nu har du din grundl�ggande systemkonfiguration.


 5.5.  Att s�kra brandv�ggen

 En brandv�gg �r inte till n�gon nytta om den l�mnas vid�ppen f�r
 attacker genom en oanv�nd tj�nst. En "bad guy" skulle kunna f�
 tillg�ng till brandv�ggen och modifiera den s� att den passar hans
 egna syften.

 B�rja med att st�nga av alla tj�nster som inte beh�vs. Titta p� filen
 /etc/inetd.conf. Denna filen kontrollerar vad som kallas "super
 servern". Den i sin tur kontrollerar en m�ngd andra serverdaemoner och
 startar dem n�r de efterfr�gas.

 St�ng definitivt av netstat, systat, tftp, bootp och finger. F�r att
 st�nga av en tj�nst, s�tt ett # som f�rsta tecken p� raden som
 beskriver tj�nsten. N�r du �r f�rdig s� skickar du en SIG-HUP signal
 till inetd-processen genom att skriva "kill -HUP <pid>", d�r <pid> �r
 processnumret f�r inetd. Detta g�r att inetd l�ser om sin
 konfigurationsfil (inetd.conf) och �terstartas.

 Testa detta genom att telnetta till port 15 (porten f�r netstat) p�
 brandv�ggen. Om du f�r en utskrift fr�n netstat s� har du inte
 �terstartat inetd korrekt.


 6.  Att konfigurera IP-filtrering ( ipfwadm )

 Till att b�rja med s� b�r du ha IP-vidareskickning (IP Forwarding)
 p�slagen i din k�rna och ditt system skall vara ig�ng och skicka
 vidare allt som du skickar till den. Dina routingtabeller skall vara
 p� plats och du skall kunna ha tillg�ng till allt, b�de fr�n insidan
 till utsidan och fr�n utsidan till insidan.

 Men vi bygger en brandv�gg s� vi beh�ver b�rja begr�nsa vad som g�r
 att f� tillg�ng till.

 I mitt system s� skapade jag ett par script f�r att st�lla in
 brandv�ggens vidareskickningspolicy och redovisningspolicy. Jag k�r
 dessa script ifr�n scripten i /etc/rc.d s� att mitt system
 konfigureras vid uppstart.

 Med standardinst�llningarna s� skickar Linuxk�rnans system f�r IP-
 vidareskickning vidare allt. P� grund av detta s� b�r din brandv�gg
 b�rja med att neka access till allt och t�mma alla ipfwadm-regler som
 finns kvar sedan det k�rdes sist. F�ljande script fixar detta:


   #
   # setup IP packet Accounting and Forwarding
   #
   #   Forwarding
   #
   # By default DENY all services
   ipfwadm -F -p deny
   # Flush all commands
   ipfwadm -F -f
   ipfwadm -I -f
   ipfwadm -O -f



 Nu har vi den ultimata brandv�ggen. Inget kan komma igenom. Du har
 utan tvekan n�gra tj�nster som du beh�ver skicka vidare genom
 brandv�ggen, s� h�r kommer n�gra exempel som kan vara anv�ndbara f�r
 dig:


   #  Skicka vidare e-post till din server
   ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 192.1.2.10 25

   # Skicka vidare e-postanslutningar till utomst�ende e-postservrar
   ipfwadm -F -a accept -b -P tcp -S 196.1.2.10 25 -D 0.0.0.0/0 1024:65535

   # Skicka vidare www-anslutningar till din www-server
   /sbin/ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 196.1.2.11 80

   # Skicka vidare www-anslutningar till utomst�ende www-server
   /sbin/ipfwadm -F -a accept -b -P tcp -S 196.1.2.* 80 -D 0.0.0.0/0 1024:65535

   # Skicka vidare DNS-trafik
   /sbin/ipfwadm -F -a accept -b -P udp -S 0.0.0.0/0 53 -D 196.1.2.0/24



 Du kanske ocks� �r intresserad av att h�lla reda p� trafik som g�r
 igenom din brandv�gg. F�ljande script kommer att r�kna alla paket. Du
 kan l�gga till en eller ett par rader f�r att h�lla reda p� paket till
 ett enskilt system.



   # Flush the current accounting rules
   ipfwadm -A -f
   # Accounting
   /sbin/ipfwadm -A -f
   /sbin/ipfwadm -A out -i -S 196.1.2.0/24 -D 0.0.0.0/0
   /sbin/ipfwadm -A out -i -S 0.0.0.0/0 -D 196.1.2.0/24
   /sbin/ipfwadm -A in -i -S 196.1.2.0/24 -D 0.0.0.0/0
   /sbin/ipfwadm -A in -i -S 0.0.0.0/0 -D 196.1.2.0/24



 Om allt du ville ha var en filtrerande brandv�gg s� kan du sluta h�r.
 Ha skoj :-)


 7.  Att installera TIS proxyserver



 7.1.  Att f� tag p� programvaran

 TIS FWTK finns p� TIS ftp-sajt <ftp://ftp.tis.com>.

 G�r inte mistaget som jag gjorde. N�r du h�mtar filer fr�n TIS, L�S
 README-filerna. TIS FWTK �r inl�st i en g�md katalog p� deras server.
 TIS kr�ver att du sickar ett e-postmeddelande till fwtk-
 [email protected] <mailto:[email protected]> med endast ordet SEND i
 textkroppen f�r att f� reda p� namnet p� den g�mda katalogen.  Det
 beh�vs inget `subject' i meddelandet. Deras system kommer d� att e-
 posta tillbaka namnet p� katalogen (som g�ller i tolv timmar) s� att
 du kan ladda hem k�llkoden.

 N�r detta skrivs s� har TIS sl�ppt version 2.0 (beta) av FWTK. Denna
 versionen verkar kompilera bra (med ett par undantag) och allt
 fungerar f�r mig. Detta �r versionen som jag t�cker h�r. N�r de
 sl�pper den slutgiltliga koden s� kommer jag att uppdatera HOWTOn.

 F�r att installera FWTK, skapa en fwtk-2.0 katalog i din /usr/src
 katalog. Flytta din kopia av FWTK (fwtk-2.0.tar.gz) till denna
 katalogen och packa upp den (tar zxf fwtk-2.0.tar.gz).

 FWTK kan inte anv�nda proxyn p� SSL www-dokument men det finns en
 addon f�r detta skriven av Jean-Christophe Touvet. Den finns p�
 ftp.edelweb.fr <ftp://ftp.edelweb.fr/pub/contrib/fwtk/ssl-gw.tar.Z>.
 Touvet supportar inte denna koden.

 Jag anv�nder en modifierad version som inkluderar access till
 Netscapes s�kra nyhetsservrar som �r skriven av Eric Wedel. Den finns
 tillg�nglig p� mdi.meridian-data.com <ftp://mdi.meridian-
 data.com/pub/tis.fwtk/ssl-gw/ssl-gw2.tar.Z>.

 I v�rt exempel kommer jag att anv�nda Eric Wedels version.

 F�r att installera, skapa en ssl-gw katalog i din /usr/src/fwtk-2.0
 katalog och l�gg filerna i den.

 N�r jag installerade denna gatewayen s� kr�vdes det lite �ndringar
 innan den kunde kompileras tillsammans med resten av paketet.

 Den f�rsta �ndringen skall g�ras i filen ssl-gw.c. Jag kom p� att den
 inte inkluderade en fil som den beh�vde.


   #if defined(__linux)
   #include        <sys/ioctl.h>
   #endif



 F�r det andra s� f�ljde det inte med n�gon Makefile. Jag kopierade en
 ifr�n en av de andra gatewayernas kataloger och ersatte den gatewayens
 namn med ssl-gw.


 7.2.  Att kompilera TIS FWTK

 Version 2.0 av FWTK kompilerar mycket l�ttare �n n�gon av de tidigare
 versionerna. Jag hittade ett par saker som beh�vde �ndras innan BETA-
 versionen kompilerade ordentligt. F�rhoppningsvis s� finns dessa
 �ndringar i den slutgiltliga versionen.

 F�r att fixa till detta s� b�rja med att byta till katalogen
 /usr/src/fwtk/fwtk och kopiera filen Makefile.config.linux till
 Makefile.config.

 K�R INTE FIXMAKE. Instruktionerna s�ger �t dig att k�ra den. Om du g�r
 det s� kommer den att f�rst�ra Makefile-filerna i alla kataloger.

 Jag har en fix f�r fixmake. Problemet �r att sed-scriptet l�gger till
 en '.'  och '' i include-raden i alla Makefile-filerna. F�ljande sed-
 script fungerar.


   sed 's/^include[        ]*\([^  ].*\)/include \1/' $name .proto > $name



 Efter detta m�ste vi editera filen Makefile.config. Det finns tv�
 �ndringar som du kanske m�ste g�ra.

 F�rfattaren st�llde in k�ll-katalogen till sin hemkatalog. Vi
 kompilerar v�ran kod i /usr/src s� du b�r �ndra variabeln FWTKSRCDIR
 s� att det st�mmer �verens.


   FWTKSRCDIR=/usr/src/fwtk/fwtk



 Sedan, vissa Linuxsytem anv�nder gdbm-databasen. Makefile.config
 anv�nder dbm. Du kanske beh�ver �ndra detta. Jag beh�vde g�ra det f�r
 RedHat 3.0.3.


   DBMLIB=-lgdbm



 Sista fixen �r i x-gw. Buggen �r i BETA-versionen av socket.c koden.
 F�r att fixa det, ta bort f�ljande rader fr�n koden.


   #ifdef SCM_RIGHTS  /* 4.3BSD Reno and later */
                        + sizeof(un_name->sun_len) + 1
   #endif



 Om du lade till ssl-gw till din FWTK k�llkatalog s� m�ste du l�gga
 till den till listan av kataloger i Makefile.


   DIRS=   smap smapd netacl plug-gw ftp-gw tn-gw rlogin-gw http-gw x-gw ssl-gw



 Nu kan du k�ra make.


 7.3.  Att installera TIS FWTK

 K�r make install.

 Standardkatalogen f�r installation �r /usr/local/etc. Du kan �ndra
 detta (jag gjorde det inte) till en s�krare katalog. Jag valde att
 �ndra r�ttigheterna p� denna katalogen till chmod 700.

 Allt som �r kvar nu �r att konfigurera brandv�ggen.



 7.4.  Att konfigurera TIS FWTK

 Nu b�rjar det roliga. Vi m�ste l�ra systemet att anv�nda dessa nya
 tj�nster och skapa tabellerna f�r att kontrollera dem.

 Jag t�nker inte f�rs�ka skriva om manualen f�r TIS FWTK h�r. Jag
 kommer att visa dig inst�llningarna som fungerade f�r mig och f�rklara
 de problem som jag sprang p� och hur jag kom runt dem.

 Det finns tre filer som utg�r dessa kontroller.


 �  /etc/services

 �  Talar om f�r systemet vilka portar tj�nsterna finns p�.


 �  /etc/inetd.conf

 �  Talar om f�r inetd vilket program som skall k�ras n�r n�gon
    `knackar' p� en tj�nsts port.


 �  /usr/local/etc/netperm-table

 �  Talar om f�r FWTK-tj�nsterna vem som skall till�tas och vem som
    skall nekas access till tj�nster.

 F�r att f� ig�ng FWTK s� b�r du editera dessa filer nerifr�n och upp.
 Att editera services utan att inetd.conf eller netperm-table �r
 korrekt inst�llda kan g�ra ditt system o�tkomligt.


 7.4.1.  Filen /usr/local/etc/netperm-table

 Denna filen kontrollerar vem som f�r tillg�ng till tj�nsterna i TIS
 FWTK. Du b�r t�nka p� trafiken som anv�nder brandv�ggen fr�n b�da
 sidor. Personer utanf�r ditt n�tverk skall identifiera sig innan de
 f�r tillg�ng, men personer inuti ditt n�tverk kan till�tas att passera
 rakt igenom.

 Brandv�ggen anv�nder ett program som heter authsrv f�r att h�lla en
 databas med anv�ndarnamn och l�senord, s� att personer kan identifiera
 sig.  Autentiseringsdelen av netperm-table kontrollerar var databasen
 finns och vem som kan komma �t den.

 Jag hade lite problem med att st�nga av access till denna tj�nsten.
 Notera att permit-hosts-raden som jag visar inneh�ller en '*' vilket
 ger alla access.  Den korrekta inst�llningen �r authsrv: premit-hosts
 localhost om du kan f� det att fungera.


   #
   # Proxy configuration table
   #
   # Authentication server and client rules
   authsrv:      database /usr/local/etc/fw-authdb
   authsrv:      permit-hosts *
   authsrv:      badsleep 1200
   authsrv:      nobogus true
   # Client Applications using the Authentication server
   *:            authserver 127.0.0.1 114




 F�r att initialisera databasen, su:a till root och k�r ./authsrv i
 katalogen /var/local/etc f�r att skapa administrat�rens
 anv�ndarprofil. H�r f�ljer en exempelsession.

 L�s dokumentationen f�r FWTK f�r att l�ra dig hur man l�gger till
 anv�ndare och grupper.


     #
     # authsrv
     authsrv# list
     authsrv# adduser admin "Auth DB admin"
     ok - user added initially disabled
     authsrv# ena admin
     enabled
     authsrv# proto admin pass
     changed
     authsrv# pass admin "plugh"
     Password changed.
     authsrv# superwiz admin
     set wizard
     authsrv# list
     Report for users in database
     user   group  longname           ok?    proto   last
     ------ ------ ------------------ -----  ------  -----
     admin         Auth DB admin      ena    passw   never
     authsrv# display admin
     Report for user admin (Auth DB admin)
     Authentication protocol: password
     Flags: WIZARD
     authsrv# ^D
     EOT
     #



 Kontrollerna f�r telnet-gatewayen (tn-gw) �r okomplicerade och �r de
 f�rsta som du b�r s�tta upp.

 I mitt exempel s� till�ter jag datorer fr�n det privata n�tverket att
 passera igenom brandv�ggen utan att autentisera sig (permit-hosts
 196.1.2.* -passok). Men alla andra anv�ndare m�ste l�mna anv�ndarid
 och l�senord f�r att anv�nda proxyn (permit-hosts * -auth).

 Jag l�ter �ven ett annat system (196.1.2.202) f� tillg�ng till
 brandv�ggen utan att g� igenom brandv�ggen �ver huvud taget. Raderna
 med inetacl-in.telnetd fixar detta. Jag f�rklarar hur dessa rader
 anropas senare.

 Timeouten f�r telnet b�r vara kort.


   # telnet gateway rules:
   tn-gw:                denial-msg      /usr/local/etc/tn-deny.txt
   tn-gw:                welcome-msg     /usr/local/etc/tn-welcome.txt
   tn-gw:                help-msg        /usr/local/etc/tn-help.txt
   tn-gw:                timeout 90
   tn-gw:                permit-hosts 196.1.2.* -passok -xok
   tn-gw:                permit-hosts * -auth
   # Only the Administrator can telnet directly to the Firewall via Port 24
   netacl-in.telnetd: permit-hosts 196.1.2.202 -exec /usr/sbin/in.telnetd



 Det fungerar p� samma s�tt f�r r-kommandona som f�r telnet.

   # rlogin gateway rules:
   rlogin-gw:    denial-msg      /usr/local/etc/rlogin-deny.txt
   rlogin-gw:    welcome-msg     /usr/local/etc/rlogin-welcome.txt
   rlogin-gw:    help-msg        /usr/local/etc/rlogin-help.txt
   rlogin-gw:    timeout 90
   rlogin-gw:    permit-hosts 196.1.2.* -passok -xok
   rlogin-gw:    permit-hosts * -auth -xok
   # Only the Administrator can telnet directly to the Firewall via Port
   netacl-rlogind: permit-hosts 196.1.2.202 -exec /usr/libexec/rlogind -a



 Du b�r inte l�ta n�gon f� direkt tillg�ng till din brandv�gg och det
 inkluderar FTP, s� l�gg inte en FTP-server p� din brandv�gg.

 Nu till ftp-gw. �terigen s� g�r raden med permit-hosts att alla i det
 skyddade n�tverket f�r fri tillg�ng till Internet men alla andra m�ste
 autentisera sig. Jag har �ven med loggning av alla filer som s�nds och
 tas emot av mina kontroller (-log { retr stor }).

 Timeouten f�r FTP kontrollerar hur l�ng tid det kommer att ta att
 sl�ppa en d�lig f�rbindelse och dessutom hur l�ng tid en anslutning
 h�lls �ppen utan aktivitet.


   # ftp gateway rules:
   ftp-gw:               denial-msg      /usr/local/etc/ftp-deny.txt
   ftp-gw:               welcome-msg     /usr/local/etc/ftp-welcome.txt
   ftp-gw:               help-msg        /usr/local/etc/ftp-help.txt
   ftp-gw:               timeout 300
   ftp-gw:               permit-hosts 196.1.2.* -log { retr stor }
   ftp-gw:               permit-hosts * -authall -log { retr stor }



 WWW, gopher och bl�ddrarbaserad FTP kontrolleras av http-gw. De tv�
 f�rsta raderna skapar en katalog f�r att spara ftp och www dokument
 allteftersom de passerar genom brandv�ggen. Jag g�r s� att root blir
 �gare till filerna och s� att endast root kan l�sa katalogen.

 Timeouten f�r www skall vara kort. Den kontrollerar hur l�ng tid en
 anv�ndare skall v�nta p� d�liga f�rbindelser.


   # www and gopher gateway rules:
   http-gw:      userid          root
   http-gw:      directory       /jail
   http-gw:      timeout 90
   http-gw:      default-httpd   www.afs.net
   http-gw:      hosts           196.1.2.* -log { read write ftp }
   http-gw:      deny-hosts      *


 ssl-gw �r egentligen bara en `sl�pp igenom allt'-gateway. Var f�rsik�
 tig med den. I detta exemplet l�ter jag vem som helst i det skyddade
 n�tverket ansluta till vilken server som helst utanf�r n�tverket,
 f�rutom adresserna 127.0.0.* och 192.1.1.*, och d� endast till por�
 tarna 443 till 563. Portarna 443 till 563 �r k�nda SSL-portar.


   # ssl gateway rules:
   ssl-gw:         timeout 300
   ssl-gw:         hosts           196.1.2.* -dest { !127.0.0.* !192.1.1.* *:443:563 }
   ssl-gw:         deny-hosts      *


 H�r �r ett exempel p� hur man anv�nder plug-gw f�r att till�ta
 anslutningar till en nyhetsserver. I detta exemplet l�ter jag vem som
 helst i det skyddade n�tverket ansluta endast till ett system och d�
 endast till dess news-port.

 Den andra raden till�ter nyhetsservern att skicka sin data tillbaka
 till det skyddade n�tverket.

 Eftersom de flesta klienter f�rv�ntas h�lla kvar anslutningen medans
 anv�ndaren l�ser nyheter s� b�r timeouten vara l�ng.



   # NetNews Pluged gateway
   plug-gw:        timeout 3600
   plug-gw: port nntp 196.1.2.* -plug-to 199.5.175.22 -port nntp
   plug-gw: port nntp 199.5.175.22 -plug-to 196.1.2.* -port nntp



 Gatewayen f�r finger �r enkel. Alla i det skyddade n�tverket m�ste
 f�rst logga in och sedan till�ts de att anv�nda finger-programmet p�
 brandv�ggen. Alla andra f�r bara ett meddelande.


   # Enable finger service
   netacl-fingerd: permit-hosts 196.1.2.* -exec /usr/libexec/fingerd
   netacl-fingerd: permit-hosts * -exec /bin/cat /usr/local/etc/finger.txt



 Jag har inte satt upp Mail och X-Windows tj�nsterna �n s� jag
 inkluderar inte n�gra exempel. Om n�gon har fungerande exempel s� f�r
 ni g�rna e-posta dem till mig.


 7.4.2.  Filen /etc/inetd.conf

 H�r f�ljer en komplett /etc/inetd.conf fil. Alla on�diga tj�nster har
 kommenterats bort. Jag har med hela filen f�r att visa vad som b�r
 st�ngas av, s�v�l som f�r att visa hur man konfigurerar de nya
 tj�nsterna f�r brandv�ggen.
























   #echo stream  tcp  nowait  root       internal
   #echo dgram   udp  wait    root       internal
   #discard      stream  tcp  nowait  root       internal
   #discard      dgram   udp  wait    root       internal
   #daytime      stream  tcp  nowait  root       internal
   #daytime      dgram   udp  wait    root       internal
   #chargen      stream  tcp  nowait  root       internal
   #chargen      dgram   udp  wait    root       internal
   # FTP firewall gateway
   ftp-gw      stream  tcp  nowait.400  root  /usr/local/etc/ftp-gw  ftp-gw
   # Telnet firewall gateway
   telnet        stream  tcp  nowait      root  /usr/local/etc/tn-gw /usr/local/etc/tn-gw
   # local telnet services
   telnet-a    stream  tcp  nowait      root  /usr/local/etc/netacl in.telnetd
   # Gopher firewall gateway
   gopher        stream  tcp  nowait.400  root  /usr/local/etc/http-gw /usr/local/etc/http-gw
   # WWW firewall gateway
   http  stream  tcp  nowait.400  root  /usr/local/etc/http-gw /usr/local/etc/http-gw
   # SSL firewall gateway
   ssl-gw  stream  tcp     nowait  root /usr/local/etc/ssl-gw   ssl-gw
   # NetNews firewall proxy (using plug-gw)
   nntp    stream  tcp     nowait  root    /usr/local/etc/plug-gw plug-gw nntp
   #nntp stream  tcp     nowait  root    /usr/sbin/tcpd  in.nntpd
   # SMTP (email) firewall gateway
   #smtp stream  tcp     nowait  root    /usr/local/etc/smap smap
   #
   # Shell, login, exec and talk are BSD protocols.
   #
   #shell        stream  tcp     nowait  root    /usr/sbin/tcpd  in.rshd
   #login        stream  tcp     nowait  root    /usr/sbin/tcpd  in.rlogind
   #exec stream  tcp     nowait  root    /usr/sbin/tcpd  in.rexecd
   #talk dgram   udp     wait    root    /usr/sbin/tcpd  in.talkd
   #ntalk        dgram   udp     wait    root    /usr/sbin/tcpd  in.ntalkd
   #dtalk        stream  tcp     waut    nobody  /usr/sbin/tcpd  in.dtalkd
   #
   # Pop and imap mail services et al
   #
   #pop-2   stream  tcp  nowait  root  /usr/sbin/tcpd    ipop2d
   #pop-3   stream  tcp  nowait  root  /usr/sbin/tcpd    ipop3d
   #imap    stream  tcp  nowait  root  /usr/sbin/tcpd    imapd
   #
   # The Internet UUCP service.
   #
   #uucp    stream  tcp  nowait  uucp  /usr/sbin/tcpd  /usr/lib/uucp/uucico -l
   #
   # Tftp service is provided primarily for booting.  Most sites
   # run this only on machines acting as "boot servers." Do not uncomment
   # this unless you *need* it.
   #
   #tftp dgram   udp     wait    root    /usr/sbin/tcpd  in.tftpd
   #bootps       dgram   udp     wait    root    /usr/sbin/tcpd  bootpd
   #
   # Finger, systat and netstat give out user information which may be
   # valuable to potential "system crackers."  Many sites choose to disable
   # some or all of these services to improve security.
   #
   # cfinger is for GNU finger, which is currently not in use in RHS Linux
   #
   finger        stream  tcp  nowait  root   /usr/sbin/tcpd  in.fingerd
   #cfinger      stream  tcp  nowait  root   /usr/sbin/tcpd  in.cfingerd
   #systat       stream  tcp  nowait  guest  /usr/sbin/tcpd  /bin/ps -auwwx
   #netstat      stream  tcp  nowait  guest  /usr/sbin/tcpd  /bin/netstat -f inet
   #
   # Time service is used for clock syncronization.
   #
   #time stream  tcp  nowait  root  /usr/sbin/tcpd  in.timed
   #time dgram   udp  wait    root  /usr/sbin/tcpd  in.timed
   #
   # Authentication
   #
   auth          stream  tcp  wait    root  /usr/sbin/tcpd  in.identd -w -t120
   authsrv       stream  tcp  nowait  root  /usr/local/etc/authsrv authsrv
   #
   # End of inetd.conf




 7.4.3.  Filen /etc/services

 Det �r h�r allting b�rjar. N�r en klient ansluter till brandv�ggen s�
 ansluter den till en k�nd port (mindre �n 1024). Till exempel s�
 ansluter telnet p� port 23. Daemonen f�r inetd h�r anslutningen och
 letar upp namnet f�r tj�nsten i filen /etc/services. Sedan startar den
 programmet som h�r ihop med namnet i filen /etc/inetd.conf.

 Vissa av tj�nsterna som vi skapar finns inte normalt i filen
 /etc/services. Du kan para ihop vissa av dem med vilken port du vill.
 Till exempel s� har jag l�tit administrat�rens telnet-port (telnet-a)
 vara port 24. Du skulle kunna s�tta den till 2323 om du ville. F�r att
 administrat�ren (DU) skall kunna ansluta direkt till brandv�ggen s�
 m�ste han telnetta till port 24 och inte 23, och om du s�tter upp
 filen netperm-table som jag gjorde s� kan detta endast g�ras fr�n en
 maskin i ditt skyddade n�tverk.




   telnet-a        24/tcp
   ftp-gw          21/tcp           # this named changed
   auth            113/tcp   ident    # User Verification
   ssl-gw          443/tcp




 8.  SOCKS Proxyserver

 8.1.  Att installera proxyservern

 SOCKS proxyserver finns att h�mta ifr�n sunsite
 <ftp://sunsite.unc.edu/pub/Linux/system/Network/misc/socks-linux-
 src.tgz>. Det finns �ven ett exempel p� en konfigurationsfil i den
 katalogen som heter socks-conf. Packa upp filerna till en katalog p�
 ditt system och f�lj instruktionerna f�r hur man kompilerar det. Jag
 hade ett par problem n�r jag gjorde detta. Se till att dina Makefile-
 filer �r korrekta.

 En viktig sak att notera �r att proxyservern m�ste l�ggas till i
 inetd.conf. Du skall l�gga till en rad


   socks  stream  tcp  nowait  nobody  /usr/local/etc/sockd  sockd



 s� att servern kan k�ras d� den efterfr�gas.





 8.2.  Att konfigurera proxyservern

 SOCKS-programmet anv�nder tv� konfigurationsfiler. En som beskriver
 vilken access som till�ts, och en som routar f�rfr�gningar till den
 korrekta proxyservern. Access-filen skall finnas p� servern och
 routing-filen skall finnas p� alla Un*x-maskiner. DOS och Macintosh
 datorer g�r sin egen routing.


 8.2.1.  Accessfilen

 Med socks4.2 Beta s� heter accessfilen sockd.conf. Den skall inneh�lla
 tv� rader, en till�t-rad och en neka-rad. Varje rad har tre element:


 �  Identifieraren (permit/deny)

 �  IP-adressen

 �  Adressmodifieraren

 Identifieraren �r antingen permit eller deny. Du skall ha en rad f�r
 varje.

 IP-adressen �r en fyrabytes adress i vanligt format (tex 192.168.2.0).

 Adressmodifieraren �r ocks� en typisk IP-adress. Den fungerar som en
 n�tmask.  T�nk dig adressen som 32-bitars tal. Om en bit �r en `1' s�
 m�ste den motsvarande biten i adressen den kontrollerar vara samma som
 den i IP-adressen.  Till exempel om raden ser ut s� h�r


     permit 192.168.2.23 255.255.255.255



 s� till�ter den endast den IP-adress d�r alla bitar �r samma som i
 192.168.2.23, dvs endast 192.168.2.23. F�ljande rad


     permit 192.168.2.0 255.255.255.0



 till�ter alla adresser i gruppen 192.168.2.0 till 192.168.2.255, dvs
 hela klass C dom�nen. Man skall inte ha f�ljande rad


     permit 192.168.2.0 0.0.0.0



 eftersom den till�ter alla adresser, oavsett vilken det �r.

 S�, till�t f�rst alla adresser som du vill till�ta och neka sedan
 resten. F�r att till�ta alla i dom�nen 192.168.2.xxx fungerar f�ljande
 rader bra.


     permit 192.168.2.0 255.255.255.0
     deny 0.0.0.0 0.0.0.0



 Notera den f�rsta "0.0.0.0" i deny-raden. Med en modifierare som �r
 0.0.0.0 s� spelar f�ltet med IP-adressen ingen roll. Men att ha endast
 nollor �r normen eftersom det �r enkelt att skriva.

 Det �r till�tet med mer �n en rad av varje.

 Specifika anv�ndare kan ocks� ges eller nekas access. Detta g�rs via
 ident autentisering. Alla system st�der inte ident, tex Trumpet
 Winsock, s� jag tar inte upp detta h�r. Dokumentationen f�r SOCKS
 t�cker detta ganska bra.


 8.2.2.  Routingfilen

 Routingfilen i SOCKS �r d�ligt namnsatt till socks.conf. Jag s�ger
 "d�ligt namnsatt" eftersom det �r s� likt namnet p� accessfilen s� det
 kan vara l�tt att blanda ihop dem.

 Routingfilen finns f�r att tala om f�r SOCKS-klienterna n�r de skall
 anv�nda SOCKS eller inte. Till exempel i v�rat n�tverk s� beh�ver inte
 192.168.2.3 anv�nda SOCKS f�r att kommunicera med 192.168.2.1
 (brandv�ggen). Den har en direkt anslutning via Ethernet. Den
 definierar loopback-enheten, 127.0.0.1, automatiskt. Naturligtvis s�
 beh�vs inte SOCKS f�r att kommunicera med sig sj�lv. Det finns tre
 nyckelord:


 �  deny

 �  direct

 �  sockd

 deny talar om n�r SOCKS skall neka en f�rfr�gan. H�r anv�nds samma tre
 f�lt som i sockd.conf: identifierare, adress och modifierare.
 Generellt, eftersom detta �ven kontrolleras av accessfilen sockd.conf,
 s� s�tts f�ltet f�r modifieraren till 0.0.0.0. Om du vill g�ra s� att
 du inte kan kontakta n�gon dator, s� kan du g�ra det h�r.

 Raden med direct best�mmer vilka adresser man inte skall anv�nda SOCKS
 f�r. Detta �r adresser vilka man kan n� utan att g� igenom
 proxyservern.  �terigen har vi de tre f�lten identifierare, adress och
 modifierare. V�rt exempel skulle ha


     direct 192.168.2.0 255.255.255.0



 vilket ger direkt kontakt med alla datorer p� v�rt skyddade n�tverk.

 Raden med sockd talar om vilken dator som har daemonen f�r SOCKS-
 servern p� sig. Syntaxen �r


   sockd @=<serverlist> <IP address> <modifier>



 Notera `@='. Detta l�ter dig specificera IP-adresserna f�r en lista av
 proxyservrar. I v�rt exempel s� anv�nder vi endast en proxyserver. Men
 man kan ha m�nga, f�r att till�ta st�rre belastning och f�r redundans
 i fall n�got g�r s�nder.

 F�lten f�r IP-adress och modifierare fungerar som f�r de andra
 exemplena. Du specificerar vilka adresser som g�r vart genom dessa.


 8.3.  DNS bakom en brandv�gg

 Att s�tta upp en DNS innanf�r en brandv�gg �r en ganska enkel uppgift.
 Du beh�ver bara s�tta upp en DNS p� brandv�ggen och sedan l�ta alla
 maskiner bakom brandv�ggen anv�nda denna.


 8.4.  Att arbeta med en proxyserver

 8.4.1.  Unix

 F�r att dina applikationer skall fungera med proxyservern s� m�ste de
 vara "sockifierade". Du beh�ver tv� olika telnetar, en f�r direkt
 kommunikation och en f�r kommuntikation via proxyservern. Med SOCKS
 f�ljer instruktioner om hur man SOCKiferar ett program, s�v�l som ett
 par f�r-SOCKifierade program. Om du anv�nder den SOCKifireade
 versionen f�r en direkt anslutning s� kommer SOCKS automatiskt att
 byta till r�tt version. P� grund av detta s� vill vi �ndra namn p�
 alla programmen p� v�rt skyddade n�tverk och ers�tta dem med de
 SOCKifierade versionerna. "Finger" blir "finger.orig", "telnet" blir
 "telnet.orig", osv. Du m�ste informera SOCKS om dessa via filen
 include/socks.h.

 Vissa program tar hand om routing och sockifiering sj�lva. Netscape �r
 ett av dessa. Du kan anv�nda en proxyserver under Netscape genom att
 skriva in serverns adress (192.168.2.1 i v�rt fall) i SOCKS-f�ltet
 under Proxies. Man m�ste iallafall pilla lite med alla applikationer
 oavsett hur de hanterar en proxyserver.


 8.4.2.  MS Windows med Trumpet Winsock

 Trumpet Winsock har inbyggt st�d f�r proxyserver. I "setup" menyn,
 skriv in IP-adressen f�r proxyservern och alla adresser som kan n�s
 direkt.  Trumpet hanterar sedan alla utg�ende paket.


 8.4.3.  Att f� proxyservern att fungera med UDP-paket

 SOCKS-paketet fungerar endast med TCP-paket, inte UDP. Detta g�r det
 lite mindre anv�ndbart. M�nga anv�ndbara program, som talk och Archie,
 anv�nder UDP. Det finns ett paket som �r designat f�r att anv�ndas som
 en proxyserver f�r UDP-paket som heter UDPrelay, av Tom Fitzgerald
 <[email protected]>. Tyv�rr s� �r det inte, n�r detta skrivs, kompatibelt
 med Linux.


 8.5.  Nackdelar med proxyservrar

 Proxyservern �r, framf�r allt, en s�kerhetsenhet. Att anv�nda det f�r
 att �ka tillg�ngen till Internet med ett begr�nsat antal IP-adresser
 har m�nga nackdelar. En proxyserver medf�r b�ttre access till Internet
 fr�n insidan av det skyddade n�tverket, men det g�r insidan helt
 o�tkomligt fr�n utsidan. Detta betyder att inga servrar, talk eller
 archieanslutningar, eller direkt e-post fungerar till maskinerna i det
 skyddade n�tverket. Dessa nackdelar kan verka obetydliga, men t�nk p�
 det p� detta s�ttet:


 �  Du har lagt en rapport som du h�ller p� att jobba med p� din dator
    i ett brandv�ggsskyddat n�tverk. Du �r hemma och best�mmer dig f�r
    att du vill g� igenom den. Det kan du inte. Du kan inte n� din
    dator eftersom den �r bakom brandv�ggen. Du f�rs�ker att logga in
    p� brandv�ggen f�rst, men eftersom alla har proxyserveraccess, s�
    har ingen lagt upp ett konto �t dig p� den.

 �  Din dotter g�r p� college. Du vill m�jla henne. Du har n�gra
    privata saker att prata med henne om, och vill helst att hon
    skickar e-posten direkt till din maskin. Du litar helt och h�llet
    p� systemadministrat�ren, men det �r ju trots allt privat post. Men
    detta g�r inte.



 �  Of�rm�gan att anv�nda UDP-paket �r en stor nackdel med
    proxyservrar. Jag f�rest�ller mig att detta kommer att fungera
    snart.

 FTP skapar ett annat problem med en proxyserver. N�r man ger kommandot
 ls, s� �ppnar FTP-servern en socket p� klientmaskinen och skickar
 informationen genom den. En proxyserver till�ter inte detta, s� FTP
 fungerar inte.

 Dessutom �r proxyservrar l�ngsamma. P� grund av den st�rre overheaden
 s� �r n�stan alla andra s�tt att f� accessen snabbare.

 S� om du har IP-adresserna och inte bekymrar dig f�r s�kerheten s�
 skall du inte anv�nda en brandv�gg och/eller proxyserver. Om du inte
 har IP-adresserna och inte bekymrar dig f�r s�kerheten s� kan du
 kanske anv�nda en IP-emulator som Term, Slirp eller TIA. Term finns p�
 sunsite <ftp://sunsite.unc.edu>, Slirp finns p�
 blitzen.canberra.edu.au <ftp://blitzen.canberra.edu.au/pub/slirp> och
 TIA finns p� marketplace.com <http://www.marketplace.com>. Dessa paket
 �r snabbare, till�ter b�ttre anslutningar och tillhandah�ller b�ttre
 tillg�nglighet till det privata n�tverket fr�n Internet. Proxyservrar
 �r bra f�r de n�tverk som har m�nga datorer som vill ansluta till
 Internet `on the fly', med en inst�llning och lite arbete efter det.


 9.  Avancerade Konfigurationer

 Det finns en konfiguration som jag vill g� igenom innan jag avslutar
 detta dokumentet. Det som jag precis har g�tt igenom r�cker antagligen
 f�r de flesta.  Men det som f�ljer kommer att visa en mer avancerad
 konfiguration och kan dessutom klara upp lite fr�gor. Om du har fr�gor
 om det som jag just g�tt igenom, eller bara �r intresserad av
 m�ngsidigheten hos proxyservrar och brandv�ggar, l�s vidare.


 9.1.  Ett stort n�tverk med tyngdpunkten p� s�kerhet

 Antag till exempel att du �r ledare f�r en milis och du vill ha ett
 n�tverk. Du har 50 datorer och ett subn�t med 32 (5 bitar) IP-
 adresser. Du beh�ver lite olika niv�er p� access inom n�tverket
 eftersom du s�ger olika saker till dina anh�ngare. D�rf�r beh�ver du
 skydda vissa delar av n�tverket fr�n resten.

 Niv�erna �r:


 1. Den yttre niv�n. Denna niv�n �r �ppen f�r alla. Det �r h�r d�r du
    skr�nar och skr�vlar f�r att locka nya frivilliga.

 2. Troop. Detta �r niv�n f�r personer som har kommit f�rbi den yttre
    niv�n. Det �r h�r du l�r dem om den elaka statsmakten och hur man
    g�r bomber.

 3. Mercenary. Det �r h�r de riktiga planerna finns. P� denna niv�n
    lagras all information om hur den 3:e v�rldens regering skall ta
    �ver v�rlden, dina planer h�rr�rande Newt Gingrich, Oklahoma City
    och vad som verkligen finns i de d�r hangarerna i area 51.

 9.1.1.  Att s�tta upp n�tverket

 IP-adresserna arrangeras som f�ljer:


 �  En adress �r 192.168.2.255, vilken �r broadcastadressen och kan
    inte anv�ndas.

 �  23 av de 32 IP-adresserna allokeras till 23 datorer som skall vara
    �tkomliga fr�n Internet.

 �  En IP-adress g�r till en Linuxburk p� det n�tverket

 �  En g�r till en annan Linuxburk p� det n�tverket.

 �  Tv� IP-adresser g�r till routern.

 �  Fyra adresser blir �ver, men ges dom�nnamnen paul, ringo, john och
    george, bara f�r att f�rvilla lite grann.

 �  De skyddade n�tverken har b�da adresserna 192.168.2.xxx

 Sedan byggs tv� separata n�tverk i olika rum. De routas via infrar�d
 Ethernet s� de �r helt osynliga utanf�r rummen. Lyckligtvis s�
 fungerar infrar�d Ethernet precis som vanlig Ethernet.

 Dessa b�da n�tverk kopplas till en av Linuxburkarna med en extra IP-
 adress.

 Det finns en filserver som kopplar ihop de tv� skyddade n�tverken.
 Detta f�r att planerna f�r att ta �ver v�rlden involverar n�gra av de
 h�gre trupperna.  Filservern har adressen 192.168.2.17 f�r
 `Troop'-n�tverket och 192.168.2.23 f�r `Mercenary'-n�tverket. Den
 m�ste ha tv� olika IP-adresser eftersom den har tv� n�tverkskort. IP-
 vidareskickning �r avst�ngt.

 IP-vidareskickning �r �ven avst�ngt p� de tv� Linuxburkarna. Routern
 kommer inte att skicka vidare paket �mnade f�r 192.168.2.xxx adresser
 om den inte explicit f�r s�dana direktiv, s� Internet kan inte komma
 in. Anledningen att vidareskickning skall vara avst�ngt h�r �r att
 paket fr�n `Troop'-n�tverket inte skall kunna n�
 `Mercenary'-n�tverket, och vice versa.

 NFS-servern kan �ven st�llas in f�r att erbjuda olika filer till de
 olika n�tverken. Detta kan bli anv�ndbart, och lite trixande med
 symboliska l�nkar g�r s� att vissa filer kan delas av alla. Denna
 inst�llning och ett extra n�tverkskort g�r att denna filservern kan
 anv�ndas av alla tre n�tverken.


 9.1.2.  Att s�tta upp proxyservern

 Eftersom alla tre niv�erna vill kunna ha koll p� Internet f�r sina
 egna o�rliga syften, s� m�ste alla tre ha access till Internet. Det
 externa n�tverket �r direktkopplat till Internet s� vi beh�ver inte
 anstr�nga oss med proxyservrar d�r. `Mercenary' och `Troop' n�tverken
 �r bakom brandv�ggar s� vi beh�ver s�tta upp proxyservrar d�r.

 B�da n�tverken kommer att s�ttas upp likartat. B�da �r tilldelade
 samma IP-adresser. Jag l�gger in n�gra extra parametrar, bara f�r att
 g�ra det lite mer intressant.


 1. Ingen kan anv�nda filservern f�r access till Internet. Det skulle
    �ppna filservern f�r virus och andra hemska saker, och den �r
    hyfsat viktig, s� den f�r inte anv�ndas mot Internet.
 2. Vi kommer inte till�ta att trupperna har tillg�ng till World Wide
    Web. De �r under utbildning och den typen av informationsh�mtande
    kan vara skadlig.

 S� filen sockd.conf p� `Troop'-Linuxburken kommer ha en rad som den
 h�r:


     deny 192.168.2.17 255.255.255.255



 Och p� `Mercenary'-maskinen:


     deny 192.168.2.23 255.255.255.255



 Och, `Troop'-Linuxburken har �ven en rad som denna:


     deny 0.0.0.0 0.0.0.0 eq 80



 Detta s�ger att man skall neka alla maskiner som f�rs�ker komma �t
 port 80 (http porten). Det till�ter fortfarande alla andra tj�nster,
 endast www-access nekas.

 Sedan s� har b�da filerna f�ljande:


     permit 192.168.2.0 255.255.255.0



 f�r att till�ta alla datorer p� 192.168.2.xxx n�tverket att anv�nda
 denna proxyserver, f�rutom de som redan har blivit nekade (dvs
 filservern och www-access fr�n `Troop'-n�tverket).


 S� filen sockd.conf p� `Troop'-n�tverkets Linuxburk kommer se ut s�
 h�r:


     deny 192.168.2.17 255.255.255.255
     deny 0.0.0.0 0.0.0.0 eq 80
     permit 192.168.2.0 255.255.255.0



 och p� `Mercenary'-n�tverkets Linuxburk ser den ut s� h�r:


     deny 192.168.2.23 255.255.255.255
     permit 192.168.2.0 255.255.255.0



 Detta borde konfigurera allting korrekt. Alla n�tverk �r isolerade med
 lagom m�ngd interaktion. Alla borde vara lyckliga.

 Nu, ta �ver v�rlden!