  Brandvggar och Proxyservers HOWTO (Firewall HOWTO)
  Mark Grennan, markg@netplus.net. Svensk versttning av
  Tomas Carlsson <mailto:md5tc@mdstud.chalmers.se>
  v0.4, 8 November 1996, Svensk version 15 Juni 1998

  Detta dokument r designat fr att lra ut grunderna i brandvggssys
  tem och att ge dig lite detaljer om hur man konfigurerar bde en fil
  trerande och proxy brandvgg p en Linuxbaserad PC. En (engelsk) HTML-
  version av detta dokument finns tillgnglig p http://okcfo
  rum.org/~markg/Firewall-HOWTO.html
  ______________________________________________________________________

  Innehllsfrteckning





















































  1. Introduktion

     1.1 Feedback
     1.2 Disclaimer
     1.3 Copyright
        1.3.1 Svensk version
        1.3.2 Engelsk version, ofrndrad frn originaldokumentet
     1.4 Anledningar till att jag skriver detta
     1.5 Att gra
     1.6 Ytterligare Lsning
     1.7 versttarens kommentarer

  2. Att frst brandvggar

     2.1 Nackdelar med brandvggar
        2.1.1 IP Filtrerande Brandvggar
        2.1.2 Proxyservrar

  3. Att konfigurera brandvggen

     3.1 Hrdvarukrav

  4. Programvara fr brandvggar

     4.1 Tillgngliga paket
     4.2 TIS Firewall Toolkit eller SOCKS

  5. Att frbereda Linuxsystemet

     5.1 Att kompilera krnan
     5.2 Att konfigurera tv ntverkskort
     5.3 Att konfigurera ntverksadresser
     5.4 Att testa ditt ntverk
     5.5 Att skra brandvggen

  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 brandvgg
     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 ntverk med tyngdpunkten p skerhet
        9.1.1 Att stta upp ntverket
        9.1.2 Att stta upp proxyservern

  ______________________________________________________________________

  1.  Introduktion

  Originalversionen av Firewall-HOWTO skrevs av David Rudder,
  drig@execpc.com. Jag skulle vilja tacka honom fr att han tillt mig
  att uppdatera hans arbete.

  Brandvggar har ftt stor uppmrksamhet som `det ultimata' i
  Internetskerhet den senaste tiden. Som med de flesta saker som fr
  stor uppmrksamhet, s fljer med detta missuppfattningar. Denna HOWTO
  kommer att ta upp grunderna om vad en brandvgg r fr ngot, hur man
  stter upp en, vad proxyservrar r, hur man stter upp proxyservrar
  och applikationerna fr denna teknik utanfr skerhetens sfr.


  1.1.  Feedback

  All feedback r vldigt vlkommen.  VAR VNLIG ATT RAPPORTERA ALLA
  ORIKTIGHETER I DETTA DOKUMENT!!!. Jag r mnsklig och bengen att gra
  fel. Om du hittar ngra s r jag mycket intresserad att rtta till
  dem. Jag kommer att frska svara p alla e-postmeddelanden, men jag
  r upptagen s bli inte frolmpad om jag inte gr det.

  Min e-postadress r markg@netplus.net


  1.2.  Disclaimer

  JAG R INTE ANSVARIG FR NGRA SKADOR SOM INTRFFAR P GRUND AV
  AGERANDE SOM R BASERAT P DETTA DOKUMENT. Detta dokument r tnkt att
  vara en introduktion till hur brandvggar och proxyservrar fungerar.
  Jag r inte, och jag ltsas inte heller att vara, en skerhetsexpert.
  Jag r bara en person som har lst fr mycket och tycker om datorer
  mer n de flesta. Snlla, jag skriver detta fr att hjlpa 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 versttning skall inte ses som juridiskt bindande, det r den
  engelska versionen som gller. Se nsta delavsnitt.

  Om inte annat anges, s r Linux HOWTO dokument
  kopieringsrttsskyddade av dess respektive frfattare. Linux HOWTO
  dokument fr reproduceras och distribueras i sin helhet eller i delar
  i vilket medium som helst, fysiskt eller elektroniskt, s lnge som
  denna kopieringsrttsnotis finns med i alla kopior. Komersiell
  distribution r tillten och uppmuntrad; men, frfattaren skulle vilja
  bli informerad om en sdan distribution.

  Alla versttningar, hrledda arbeten eller frenade arbeten som
  infrlivar ngot Linux HOWTO dokument mste tckas under denna
  kopieringsrttsnotisen. Dvs att du fr inte producera ett hrleda ett
  arbete ur en HOWTO och sedan lgga till ytterligare restriktioner fr
  dess distribution. Undantag fr dessa regler kan tilltas under
  srskilda frhllanden; var vnlig att kontakta koordinatorn fr Linux
  HOWTOs.

  Kort sagt, vi vill gynna spridandet av denna information genom s
  mnga kanaler som mjligt. Men vi vill behlla kopieringsrtten p
  HOWTO-dokumenten och vill bli informerade om alla planer p att
  distribuera HOWTOs.
  Om du har ngra frgor, var vnlig kontakta Mark Grennan p
  <markg@netplus.net>.


  1.3.2.  Engelsk version, ofrndrad frn originaldokumentet

  Det r denna som gller

  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
  <markg@netplus.net>.


  1.4.  Anledningar till att jag skriver detta

  ven om det har varit mnga diskussioner i comp.os.linux.* om
  brandvggar det senaste ret, s hade jag svrt fr att hitta den
  information jag behvde fr att stta upp en brandvgg.
  Originalversionen av denna HOWTO hjlpte 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
  behver fr att skapa en fungerande brandvgg p ngra timmar, inte
  veckor.

  Jag knner ocks att jag borde ge tillbaka ngonting till
  Linuxvrlden.


  1.5.  Att gra


    Ge lite instruktioner om hur man stter upp klienterna.

    Hitta en bra UDP proxyserver som fungerar med Linux


  1.6.  Ytterligare Lsning


    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 fr TIS Firewall Toolkit

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

  Dessutom s arbetar jag med ett skerhetsprojekt som jag kallar fr
  Secure Linux. P www-sajten fr Secure Linux s samlar jag all
  information, dokumentation och program som man behver fr att skapa
  ett plitligt Linuxsystem. E-posta mig om du vill ha information.


  1.7.  versttarens kommentarer

  Jag kommer anvnda versttningen `Internet' i detta dokument, med
  vilket jag menar det allmnt knda Internet. Men informationen i detta
  dokument br ven glla fr vilket annat interntverk som helst,
  tminstonde ett som anvnder samma protokoll som Internet.

  Jag har ndrat alla frekomster av `NET-2 HOWTO' till `NET-3 HOWTO'
  eftersom det r den versionen av det dokumentet som r aktuell fr
  tillfllet.

  De tillgg som jag har gjort i texten har jag markerat med `(Sv)'.



  2.  Att frst brandvggar

  En brandvgg r en term som anvnds fr en bildel. I bilar s r
  brandvggar fysiska objekt som separerar motorn frn passagerarna. De
  r till fr att skydda passageraren ifall bilens motor fattar eld
  medans den fortfarande lter fraren anvnda motorns kontroller.

  En brandvgg i en dator r en enhet som skyddar ett privat ntverk
  frn den publika delen (Internet som helhet).

  Brandvggsdatorn, frn och med nu kallad "brandvggen", kan n bde
  det skyddade ntverket och Internet. Det skyddade ntverket kan inte
  n Internet och Internet kan inte n det skyddade ntverket.

  Fr att ngon skall kunna n Internet frn insidan av det skyddade
  ntverket, s mste de gra en telnetanslutning till brandvggen och
  anvnda Internet drifrn.

  Den enklaste formen av branvgg r ett `dual homed' system (ett system
  med tv ntverksanslutningar). Om du kan LITA p ALLA dina anvndare,
  s kan du helt enkelt stta upp ett Linuxsystem (kompilera med IP
  forwarding/gatewaying avstngt) och ge alla anvndare konton till den.
  De kan sedan logga in p detta system och anvnda telnet, FTP, lsa e-
  post och andra tjnster som du erbjudit. Med denna instllning s r
  brandvggen den enda dator p ditt privata ntverk som vet ngonting
  om vrlden utanfr. De andra systemen p ditt skyddade ntverk behver
  inte ens ngon default route.

  Detta mste upprepas: Fr att ovanstende brandvgg skall fungera s
  MSTE DU LITA P ALLA DINA ANVNDARE!. Jag rekommenderar inte detta.





  2.1.  Nackdelar med brandvggar

  Det finns tv typer av brandvggar.

  1. IP Filtrerande Brandvggar - som blockerar all ntverkstrafik utom
     viss utvald trafik.

  2. Proxyservrar - som gr ntverksanslutningarna t dig.


  2.1.1.  IP Filtrerande Brandvggar


  En IP filtrerande brandvgg arbetar p paketnivn. Den r designad fr
  att kontrollera fldet av paket baserat p kllan, destinationen,
  porten och pakettypen som finns lagrade i varje paket.

  Denna typ av brandvgg r vldigt sker men den saknar all form av
  anvndbara loggningsfunktioner. Den kan hindra personer frn att komma
  t privata system men den kommer inte att tala om vem som accessade
  dina publika system eller vem som accessade Internet frn insidan.

  Filtrerande brandvggar r absoluta filter. ven om du vill ge ngon
  access till dina privata servrar frn utsidan s kan du inte gra
  detta utan att ge alla access till servrarna.

  Linux innehller mjukvara fr paketfiltrering i krnan frn och med
  version 1.3.x.


  2.1.2.  Proxyservrar

  Proxyservrar tillter indirekt access till Internet genom brandvggen.
  Det bsta exemplet p hur detta fungerar r en person som telnettar
  till ett system och sedan telnettar drifrn till ytterligare ett
  system. Men med en proxyserver s grs detta automatiskt. Nr 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 gr.

  Den stora frdelen med proxyservrar r att de r helt skra, nr de r
  korrekt konfigurerade. De tillter inte ngra anslutningar igenom dem.
  Det finns inga direkta IP-routes.


  3.  Att konfigurera brandvggen

  3.1.  Hrdvarukrav

  I vrt exempel s r datorn en 486-DX66 med 16Mb minne och en 500Mb
  Linuxpartition. Detta systemet har tv ntverkskort, ett anslutet till
  vrt privata LAN och det andra anslutet till ett LAN som vi kallar fr
  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 fr ett fretag. Man skulle
  kunna anvnda ett ntverkskort och ett modem med en PPP-lnk till
  Internet. Pongen r att brandvggen mste ha tv IP-adresser.

  Jag vet mnga personer som har sm LANs hemma med tv eller tre
  datorer anslutna. Ngot som man skulle kunna tnka 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 frdubbla genomstrmmningen om endast en person tog hem data
  frn Internet. :-)


  4.  Programvara fr brandvggar

  4.1.  Tillgngliga paket

  Om allt du vill ha r en filtrerande brandvgg, s behver du endast
  Linux och de grundlggande ntverkspaketen. Ett paket som kanske inte
  fljer 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 stta upp en proxyserver s behver du ett av fljande
  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 fr brandvggar. Programmen gr i stort sett
  samma sak som SOCKS-paketet, men med en annan designstrategi. Dr
  SOCKS har ett program som tcker alla Internettransaktioner, s har
  TIS ett program fr varje tjnst som nskar anvnda brandvggen.

  Fr att jmfra de bda, lt oss anvnda exemplet med www och telnet
  access.  Med SOCKS stter du upp en konfigurationsfil och en daemon.
  Genom denna fil och daemon s aktiveras bde www och telnet, svl som
  alla andra tjnster som du inte stngt av.

  Med TIS-paketet kan du stta upp en daemon fr var och en av www och
  telnet, svl som konfigurationsfiler fr bda. Nr du gjort detta s
  r andra accesser till Internet fortfarande inte tilltna frrn du
  explicit stter upp dem ocks. Om det inte har tillhandahllits en
  daemon fr en viss tjnst (ssom talk) s finns det en "plug-in"
  daemon, men den r varken s flexibel eller s enkel att stta upp som
  de andra daemonerna.

  Detta kan verka obetydligt, men det har en stor betydelse. SOCKS
  tillter dig att vara slarvig. Med en dlig konfigurerad SOCKS-server,
  s kan ngon frn insidan f mer access till Internet n vad som var
  meningen frn brjan. Med TIS-paketet s har personerna p insidan
  endast tillgng till det som systemadministratren vill att de skall
  ha tillgng till.

  SOCKS r lttare att konfigurera, lttare att kompilera och tillter
  strre flexibilitet. TIS-paketet r skrare om man vill reglera
  anvndarna i det skyddade ntverket. Bda tillhandahller absolut
  skydd frn utsidan.

  Jag kommer att tcka installationen och konfigurationen av bda.


  5.  Att frbereda Linuxsystemet

  5.1.  Att kompilera krnan

  Brja med en ren installation av din Linuxdistribution (jag anvnde
  RedHat 3.0.3 och exemplen hr baseras p den distributionen). Ju
  mindre programvara du har installerad desto mindre skerhetshl,
  bakdrrar och/eller buggar kommer det att finnas som inbringar
  skerhetsproblem i ditt system. S installera endast minimalt med
  applikationer.

  Vlj en stabil krna. Jag anvnde Linux 2.0.14 krnan till mitt
  system, s denna dokumentationen r baserad p dess instllningar.

  Du kommer att behva kompilera om Linuxkrnan med passande altenativ.
  Vid denna tidpunkten br du titta i Kernel HOWTO, Ethernet HOWTO och
  NET-3 HOWTO om du inte redan gjort detta.

  Hr r de ntverksrelaterade instllningar som jag vet fungerar i
  `make config'


  1. Under `General setup'

     a. Stt p `Networking Support'

  2. Under `Networking Options'

     a. Stt p `Network firewalls'

     b. Stt p `TCP/IP Networking'

     c. Stng av `IP forwarding/gatewaying' (OM DU INTE vill anvnda IP-
        filtrering)

     d. Stt p `IP Firewalling'

     e. Stt p `IP firewall packet logging' (detta r inte ndvndigt
        men det r en bra ide)

     f. Stng av `IP: masquerading' (Jag tcker inte detta mnet hr.)

     g. Stt p `IP: accounting'

     h. Stng av `IP: tunneling'

     i. Stng av `IP: aliasing'

     j. Stng av `IP: PC/TCP compatibility mode'

     k. Stng av `IP: Reverse ARP'

     l. Stt p `Drop source routed frames'

  3. Under `Network device support'

     a. Stt p `Network device support'

     b. Stt p `Dummy net driver support'

     c. Stt p `Ethernet (10 or 100Mbit)'

     d. Vlj ditt ntverkskort

  Nu kan du kompilera om och installera om krnan och sedan starta om
  systemet.  Dina ntverkskort 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 ntverkskort

  Om du har tv ntverkskort i din dator, s mste du med all
  sannolikhet lgga till ett appenduttryck i din /etc/lilo.conf-fil fr
  att tala om IRQ och I/O-adress fr bda korten. Mitt appenduttryck ser
  ut s hr:

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




  5.3.  Att konfigurera ntverksadresser

  Detta r den riktigt intressanta delen. Nu har du ngra olika val att
  gra.  Eftersom vi inte vill att Internet skall ha tillgng till ngon
  del av det privata ntverket, s behver vi inte anvnda riktiga
  adresser. Det finns ett antal intressanta adresser som r reserverade
  fr privata ntverk. Eftersom alla behver fler adresser och eftersom
  dessa adresserna inte kan ns ver Internet s r de ett bra val.

  Ibland dessa adresser s r tex 192.168.2.xxx reserverad och vi kommer
  att anvnda den i vra exempel.

  Din proxybrandvgg kommer att vara medlem av bda ntverken och kan
  drfr skicka igenom data till och frn det privata ntverket.


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



  Om du skall anvnda en filtrerande brandvgg s kan du fortfarande
  anvnda de hr adresserna. Du behver anvnda IP-maskering
  (Masquerading) fr att det skall fungera. Med IP-maskering s skickar
  brandvggen vidare alla paket och verstter dem till "riktiga" IP-
  paket s att de kan skickas p Internet.

  Du mste tilldela den riktiga IP-adressen till ntverkskortet 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
  ntverket ngon adress i omrdet 192.168.2.2 till 192.168.2.254.

  Eftersom jag anvnder RedHat Linux s konfigurerar jag ntverket vid
  uppstart genom att lgga till en ifcfg-eth1-fil i katalogen
  /etc/sysconfig/network-scripts. Denna filen lses under uppstarten fr
  att konfigurera ditt ntverk och dina routingtabeller.

  S hr 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 anvnda dessa script fr att automatiskt ansluta till
  Internet med modem. Titta p scriptet ipup-ppp.

  Om du skall anvnda ett modem till din Internetanslutning s kommer
  din IP-adress p utsidan att tilldelas av din leverantr nr du
  ansluter.


  5.4.  Att testa ditt ntverk

  Brja med med att kolla ifconfig och route. Om du har tv ntverkskort
  s br din ifconfig se ut ungefr s hr:

    #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 ungefr s hr:


    #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 brandvggen och
  192.168.2.0 r den privata sidan.

  Frsk nu att pinga Internet frn brandvggen. Jag brukade anvnda
  nic.ddn.mil som testpunkt. Det r fortfarande en bra test, men har
  visat sig mindre plitlig n jag hade hoppats. Om det inte fungerar
  med en gng, frsk med att pinga ngra andra stllen som inte r
  anslutna till ditt LAN. Om detta inte fungerar s r din PPP felaktigt
  konfigurerad. Ls NET-3 HOWTO igen och frsk sedan igen.

  Frsk nu pinga en dator p det skyddade ntverket frn brandvggen.
  Alla datorer p det privata ntverket skall kunna pinga varandra. Om
  inte s frsk med NET-3 HOWTO igen och jobba lite till p ntverket.

  Frsk nu att pinga brandvggens yttre IP-adress (observera att detta
  inte r en av 192.168.2.xxx adresserna) frn en dator inne i det
  skyddade ntverket.  Om detta fungerar s har du inte stngt av IP-
  vidareskickning (forwarding). Se till att vara sker p att detta r
  vad du vill i sdana fall. Om du lter den vara pslagen s mste du
  ven lsa igenom avsnittet om IP-filtrering ocks.

  Frsk nu att pinga Internet ifrn det skyddade ntverket (dvs bakom
  brandvggen). Anvnd samma adress som fungerade nr du gjorde detta
  frn brandvggen (tex nic.ddn.mil). terigen, om du har stngt av IP-
  vidareskickning s skall detta inte fungera men annars s skall det
  fungera.

  Om du har IP-vidareskickning pslagen och anvnder "RIKTIGA" (inte
  192.168.2.*) IP-adresser till ditt privata ntverk, och om du inte kan
  pinga Internet men du kan pinga Internet-sidan av din brandvgg, s
  kolla om nsta router `uppstrms' routar paket fr din privata
  ntverksadress (din leverantr kanske mste gra detta t dig).

  Om du har gett ditt ntverk reserverade adresser (192.168.2.*), s kan
  inga paket routas till det nd. Om du har gtt i frvg och redan har
  IP-maskering pslagen, s skall detta testet fungera.

  Nu har du din grundlggande systemkonfiguration.


  5.5.  Att skra brandvggen

  En brandvgg r inte till ngon nytta om den lmnas vidppen fr
  attacker genom en oanvnd tjnst. En "bad guy" skulle kunna f
  tillgng till brandvggen och modifiera den s att den passar hans
  egna syften.

  Brja med att stnga av alla tjnster som inte behvs. Titta p filen
  /etc/inetd.conf. Denna filen kontrollerar vad som kallas "super
  servern". Den i sin tur kontrollerar en mngd andra serverdaemoner och
  startar dem nr de efterfrgas.

  Stng definitivt av netstat, systat, tftp, bootp och finger. Fr att
  stnga av en tjnst, stt ett # som frsta tecken p raden som
  beskriver tjnsten. Nr du r frdig s skickar du en SIG-HUP signal
  till inetd-processen genom att skriva "kill -HUP <pid>", dr <pid> r
  processnumret fr inetd. Detta gr att inetd lser om sin
  konfigurationsfil (inetd.conf) och terstartas.

  Testa detta genom att telnetta till port 15 (porten fr netstat) p
  brandvggen. Om du fr en utskrift frn netstat s har du inte
  terstartat inetd korrekt.


  6.  Att konfigurera IP-filtrering ( ipfwadm )

  Till att brja med s br du ha IP-vidareskickning (IP Forwarding)
  pslagen i din krna och ditt system skall vara igng och skicka
  vidare allt som du skickar till den. Dina routingtabeller skall vara
  p plats och du skall kunna ha tillgng till allt, bde frn insidan
  till utsidan och frn utsidan till insidan.

  Men vi bygger en brandvgg s vi behver brja begrnsa vad som gr
  att f tillgng till.

  I mitt system s skapade jag ett par script fr att stlla in
  brandvggens vidareskickningspolicy och redovisningspolicy. Jag kr
  dessa script ifrn scripten i /etc/rc.d s att mitt system
  konfigureras vid uppstart.

  Med standardinstllningarna s skickar Linuxkrnans system fr IP-
  vidareskickning vidare allt. P grund av detta s br din brandvgg
  brja med att neka access till allt och tmma alla ipfwadm-regler som
  finns kvar sedan det krdes sist. Fljande 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 brandvggen. Inget kan komma igenom. Du har
  utan tvekan ngra tjnster som du behver skicka vidare genom
  brandvggen, s hr kommer ngra exempel som kan vara anvndbara fr
  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 utomstende 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 utomstende 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 hlla reda p trafik som gr
  igenom din brandvgg. Fljande script kommer att rkna alla paket. Du
  kan lgga till en eller ett par rader fr att hlla 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 brandvgg s kan du sluta hr.
  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>.

  Gr inte mistaget som jag gjorde. Nr du hmtar filer frn TIS, LS
  README-filerna. TIS FWTK r inlst i en gmd katalog p deras server.
  TIS krver att du sickar ett e-postmeddelande till fwtk-
  request@tis.com <mailto:fwtk-request@tis.com> med endast ordet SEND i
  textkroppen fr att f reda p namnet p den gmda katalogen.  Det
  behvs inget `subject' i meddelandet. Deras system kommer d att e-
  posta tillbaka namnet p katalogen (som gller i tolv timmar) s att
  du kan ladda hem kllkoden.

  Nr detta skrivs s har TIS slppt version 2.0 (beta) av FWTK. Denna
  versionen verkar kompilera bra (med ett par undantag) och allt
  fungerar fr mig. Detta r versionen som jag tcker hr. Nr de
  slpper den slutgiltliga koden s kommer jag att uppdatera HOWTOn.

  Fr 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 anvnda proxyn p SSL www-dokument men det finns en
  addon fr 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 anvnder en modifierad version som inkluderar access till
  Netscapes skra nyhetsservrar som r skriven av Eric Wedel. Den finns
  tillgnglig p mdi.meridian-data.com <ftp://mdi.meridian-
  data.com/pub/tis.fwtk/ssl-gw/ssl-gw2.tar.Z>.

  I vrt exempel kommer jag att anvnda Eric Wedels version.

  Fr att installera, skapa en ssl-gw katalog i din /usr/src/fwtk-2.0
  katalog och lgg filerna i den.

  Nr jag installerade denna gatewayen s krvdes det lite ndringar
  innan den kunde kompileras tillsammans med resten av paketet.

  Den frsta ndringen skall gras i filen ssl-gw.c. Jag kom p att den
  inte inkluderade en fil som den behvde.


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



  Fr det andra s fljde det inte med ngon Makefile. Jag kopierade en
  ifrn 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 lttare n ngon av de tidigare
  versionerna. Jag hittade ett par saker som behvde ndras innan BETA-
  versionen kompilerade ordentligt. Frhoppningsvis s finns dessa
  ndringar i den slutgiltliga versionen.

  Fr att fixa till detta s brja med att byta till katalogen
  /usr/src/fwtk/fwtk och kopiera filen Makefile.config.linux till
  Makefile.config.

  KR INTE FIXMAKE. Instruktionerna sger t dig att kra den. Om du gr
  det s kommer den att frstra Makefile-filerna i alla kataloger.

  Jag har en fix fr fixmake. Problemet r att sed-scriptet lgger till
  en '.'  och '' i include-raden i alla Makefile-filerna. Fljande sed-
  script fungerar.


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



  Efter detta mste vi editera filen Makefile.config. Det finns tv
  ndringar som du kanske mste gra.

  Frfattaren stllde in kll-katalogen till sin hemkatalog. Vi
  kompilerar vran kod i /usr/src s du br ndra variabeln FWTKSRCDIR
  s att det stmmer verens.


    FWTKSRCDIR=/usr/src/fwtk/fwtk



  Sedan, vissa Linuxsytem anvnder gdbm-databasen. Makefile.config
  anvnder dbm. Du kanske behver ndra detta. Jag behvde gra det fr
  RedHat 3.0.3.


    DBMLIB=-lgdbm



  Sista fixen r i x-gw. Buggen r i BETA-versionen av socket.c koden.
  Fr att fixa det, ta bort fljande rader frn 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 kllkatalog s mste du lgga
  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 kra make.


  7.3.  Att installera TIS FWTK

  Kr make install.

  Standardkatalogen fr installation r /usr/local/etc. Du kan ndra
  detta (jag gjorde det inte) till en skrare katalog. Jag valde att
  ndra rttigheterna p denna katalogen till chmod 700.

  Allt som r kvar nu r att konfigurera brandvggen.



  7.4.  Att konfigurera TIS FWTK

  Nu brjar det roliga. Vi mste lra systemet att anvnda dessa nya
  tjnster och skapa tabellerna fr att kontrollera dem.

  Jag tnker inte frska skriva om manualen fr TIS FWTK hr. Jag
  kommer att visa dig instllningarna som fungerade fr mig och frklara
  de problem som jag sprang p och hur jag kom runt dem.

  Det finns tre filer som utgr dessa kontroller.


    /etc/services

    Talar om fr systemet vilka portar tjnsterna finns p.


    /etc/inetd.conf

    Talar om fr inetd vilket program som skall kras nr ngon
     `knackar' p en tjnsts port.


    /usr/local/etc/netperm-table

    Talar om fr FWTK-tjnsterna vem som skall tilltas och vem som
     skall nekas access till tjnster.

  Fr att f igng FWTK s br du editera dessa filer nerifrn och upp.
  Att editera services utan att inetd.conf eller netperm-table r
  korrekt instllda kan gra ditt system otkomligt.


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

  Denna filen kontrollerar vem som fr tillgng till tjnsterna i TIS
  FWTK. Du br tnka p trafiken som anvnder brandvggen frn bda
  sidor. Personer utanfr ditt ntverk skall identifiera sig innan de
  fr tillgng, men personer inuti ditt ntverk kan tilltas att passera
  rakt igenom.

  Brandvggen anvnder ett program som heter authsrv fr att hlla en
  databas med anvndarnamn och lsenord, 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 stnga av access till denna tjnsten.
  Notera att permit-hosts-raden som jag visar innehller en '*' vilket
  ger alla access.  Den korrekta instllningen 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




  Fr att initialisera databasen, su:a till root och kr ./authsrv i
  katalogen /var/local/etc fr att skapa administratrens
  anvndarprofil. Hr fljer en exempelsession.

  Ls dokumentationen fr FWTK fr att lra dig hur man lgger till
  anvndare 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 fr telnet-gatewayen (tn-gw) r okomplicerade och r de
  frsta som du br stta upp.

  I mitt exempel s tillter jag datorer frn det privata ntverket att
  passera igenom brandvggen utan att autentisera sig (permit-hosts
  196.1.2.* -passok). Men alla andra anvndare mste lmna anvndarid
  och lsenord fr att anvnda proxyn (permit-hosts * -auth).

  Jag lter ven ett annat system (196.1.2.202) f tillgng till
  brandvggen utan att g igenom brandvggen ver huvud taget. Raderna
  med inetacl-in.telnetd fixar detta. Jag frklarar hur dessa rader
  anropas senare.

  Timeouten fr telnet br 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 stt fr r-kommandona som fr 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 br inte lta ngon f direkt tillgng till din brandvgg och det
  inkluderar FTP, s lgg inte en FTP-server p din brandvgg.

  Nu till ftp-gw. terigen s gr raden med permit-hosts att alla i det
  skyddade ntverket fr fri tillgng till Internet men alla andra mste
  autentisera sig. Jag har ven med loggning av alla filer som snds och
  tas emot av mina kontroller (-log { retr stor }).

  Timeouten fr FTP kontrollerar hur lng tid det kommer att ta att
  slppa en dlig frbindelse och dessutom hur lng tid en anslutning
  hlls 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 blddrarbaserad FTP kontrolleras av http-gw. De tv
  frsta raderna skapar en katalog fr att spara ftp och www dokument
  allteftersom de passerar genom brandvggen. Jag gr s att root blir
  gare till filerna och s att endast root kan lsa katalogen.

  Timeouten fr www skall vara kort. Den kontrollerar hur lng tid en
  anvndare skall vnta p dliga frbindelser.


    # 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 `slpp igenom allt'-gateway. Var frsik
  tig med den. I detta exemplet lter jag vem som helst i det skyddade
  ntverket ansluta till vilken server som helst utanfr ntverket,
  frutom adresserna 127.0.0.* och 192.1.1.*, och d endast till por
  tarna 443 till 563. Portarna 443 till 563 r knda 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      *


  Hr r ett exempel p hur man anvnder plug-gw fr att tillta
  anslutningar till en nyhetsserver. I detta exemplet lter jag vem som
  helst i det skyddade ntverket ansluta endast till ett system och d
  endast till dess news-port.

  Den andra raden tillter nyhetsservern att skicka sin data tillbaka
  till det skyddade ntverket.

  Eftersom de flesta klienter frvntas hlla kvar anslutningen medans
  anvndaren lser nyheter s br timeouten vara lng.



    # 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 fr finger r enkel. Alla i det skyddade ntverket mste
  frst logga in och sedan tillts de att anvnda finger-programmet p
  brandvggen. Alla andra fr 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 tjnsterna n s jag
  inkluderar inte ngra exempel. Om ngon har fungerande exempel s fr
  ni grna e-posta dem till mig.


  7.4.2.  Filen /etc/inetd.conf

  Hr fljer en komplett /etc/inetd.conf fil. Alla ondiga tjnster har
  kommenterats bort. Jag har med hela filen fr att visa vad som br
  stngas av, svl som fr att visa hur man konfigurerar de nya
  tjnsterna fr brandvggen.
























    #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 hr allting brjar. Nr en klient ansluter till brandvggen s
  ansluter den till en knd port (mindre n 1024). Till exempel s
  ansluter telnet p port 23. Daemonen fr inetd hr anslutningen och
  letar upp namnet fr tjnsten i filen /etc/services. Sedan startar den
  programmet som hr ihop med namnet i filen /etc/inetd.conf.

  Vissa av tjnsterna 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 ltit administratrens telnet-port (telnet-a)
  vara port 24. Du skulle kunna stta den till 2323 om du ville. Fr att
  administratren (DU) skall kunna ansluta direkt till brandvggen s
  mste han telnetta till port 24 och inte 23, och om du stter upp
  filen netperm-table som jag gjorde s kan detta endast gras frn en
  maskin i ditt skyddade ntverk.




    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 hmta ifrn 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 flj instruktionerna fr hur man kompilerar det. Jag
  hade ett par problem nr jag gjorde detta. Se till att dina Makefile-
  filer r korrekta.

  En viktig sak att notera r att proxyservern mste lggas till i
  inetd.conf. Du skall lgga till en rad


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



  s att servern kan kras d den efterfrgas.





  8.2.  Att konfigurera proxyservern

  SOCKS-programmet anvnder tv konfigurationsfiler. En som beskriver
  vilken access som tillts, och en som routar frfrgningar till den
  korrekta proxyservern. Access-filen skall finnas p servern och
  routing-filen skall finnas p alla Un*x-maskiner. DOS och Macintosh
  datorer gr sin egen routing.


  8.2.1.  Accessfilen

  Med socks4.2 Beta s heter accessfilen sockd.conf. Den skall innehlla
  tv rader, en tillt-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 fr
  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
  ntmask.  Tnk dig adressen som 32-bitars tal. Om en bit r en `1' s
  mste den motsvarande biten i adressen den kontrollerar vara samma som
  den i IP-adressen.  Till exempel om raden ser ut s hr


      permit 192.168.2.23 255.255.255.255



  s tillter den endast den IP-adress dr alla bitar r samma som i
  192.168.2.23, dvs endast 192.168.2.23. Fljande rad


      permit 192.168.2.0 255.255.255.0



  tillter alla adresser i gruppen 192.168.2.0 till 192.168.2.255, dvs
  hela klass C domnen. Man skall inte ha fljande rad


      permit 192.168.2.0 0.0.0.0



  eftersom den tillter alla adresser, oavsett vilken det r.

  S, tillt frst alla adresser som du vill tillta och neka sedan
  resten. Fr att tillta alla i domnen 192.168.2.xxx fungerar fljande
  rader bra.


      permit 192.168.2.0 255.255.255.0
      deny 0.0.0.0 0.0.0.0



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

  Det r tilltet med mer n en rad av varje.

  Specifika anvndare kan ocks ges eller nekas access. Detta grs via
  ident autentisering. Alla system stder inte ident, tex Trumpet
  Winsock, s jag tar inte upp detta hr. Dokumentationen fr SOCKS
  tcker detta ganska bra.


  8.2.2.  Routingfilen

  Routingfilen i SOCKS r dligt namnsatt till socks.conf. Jag sger
  "dligt namnsatt" eftersom det r s likt namnet p accessfilen s det
  kan vara ltt att blanda ihop dem.

  Routingfilen finns fr att tala om fr SOCKS-klienterna nr de skall
  anvnda SOCKS eller inte. Till exempel i vrat ntverk s behver inte
  192.168.2.3 anvnda SOCKS fr att kommunicera med 192.168.2.1
  (brandvggen). Den har en direkt anslutning via Ethernet. Den
  definierar loopback-enheten, 127.0.0.1, automatiskt. Naturligtvis s
  behvs inte SOCKS fr att kommunicera med sig sjlv. Det finns tre
  nyckelord:


    deny

    direct

    sockd

  deny talar om nr SOCKS skall neka en frfrgan. Hr anvnds samma tre
  flt som i sockd.conf: identifierare, adress och modifierare.
  Generellt, eftersom detta ven kontrolleras av accessfilen sockd.conf,
  s stts fltet fr modifieraren till 0.0.0.0. Om du vill gra s att
  du inte kan kontakta ngon dator, s kan du gra det hr.

  Raden med direct bestmmer vilka adresser man inte skall anvnda SOCKS
  fr. Detta r adresser vilka man kan n utan att g igenom
  proxyservern.  terigen har vi de tre flten identifierare, adress och
  modifierare. Vrt exempel skulle ha


      direct 192.168.2.0 255.255.255.0



  vilket ger direkt kontakt med alla datorer p vrt skyddade ntverk.

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


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



  Notera `@='. Detta lter dig specificera IP-adresserna fr en lista av
  proxyservrar. I vrt exempel s anvnder vi endast en proxyserver. Men
  man kan ha mnga, fr att tillta strre belastning och fr redundans
  i fall ngot gr snder.

  Flten fr IP-adress och modifierare fungerar som fr de andra
  exemplena. Du specificerar vilka adresser som gr vart genom dessa.


  8.3.  DNS bakom en brandvgg

  Att stta upp en DNS innanfr en brandvgg r en ganska enkel uppgift.
  Du behver bara stta upp en DNS p brandvggen och sedan lta alla
  maskiner bakom brandvggen anvnda denna.


  8.4.  Att arbeta med en proxyserver

  8.4.1.  Unix

  Fr att dina applikationer skall fungera med proxyservern s mste de
  vara "sockifierade". Du behver tv olika telnetar, en fr direkt
  kommunikation och en fr kommuntikation via proxyservern. Med SOCKS
  fljer instruktioner om hur man SOCKiferar ett program, svl som ett
  par fr-SOCKifierade program. Om du anvnder den SOCKifireade
  versionen fr en direkt anslutning s kommer SOCKS automatiskt att
  byta till rtt version. P grund av detta s vill vi ndra namn p
  alla programmen p vrt skyddade ntverk och erstta dem med de
  SOCKifierade versionerna. "Finger" blir "finger.orig", "telnet" blir
  "telnet.orig", osv. Du mste informera SOCKS om dessa via filen
  include/socks.h.

  Vissa program tar hand om routing och sockifiering sjlva. Netscape r
  ett av dessa. Du kan anvnda en proxyserver under Netscape genom att
  skriva in serverns adress (192.168.2.1 i vrt fall) i SOCKS-fltet
  under Proxies. Man mste iallafall pilla lite med alla applikationer
  oavsett hur de hanterar en proxyserver.


  8.4.2.  MS Windows med Trumpet Winsock

  Trumpet Winsock har inbyggt std fr proxyserver. I "setup" menyn,
  skriv in IP-adressen fr proxyservern och alla adresser som kan ns
  direkt.  Trumpet hanterar sedan alla utgende paket.


  8.4.3.  Att f proxyservern att fungera med UDP-paket

  SOCKS-paketet fungerar endast med TCP-paket, inte UDP. Detta gr det
  lite mindre anvndbart. Mnga anvndbara program, som talk och Archie,
  anvnder UDP. Det finns ett paket som r designat fr att anvndas som
  en proxyserver fr UDP-paket som heter UDPrelay, av Tom Fitzgerald
  <fitz@wang.com>. Tyvrr s r det inte, nr detta skrivs, kompatibelt
  med Linux.


  8.5.  Nackdelar med proxyservrar

  Proxyservern r, framfr allt, en skerhetsenhet. Att anvnda det fr
  att ka tillgngen till Internet med ett begrnsat antal IP-adresser
  har mnga nackdelar. En proxyserver medfr bttre access till Internet
  frn insidan av det skyddade ntverket, men det gr insidan helt
  otkomligt frn utsidan. Detta betyder att inga servrar, talk eller
  archieanslutningar, eller direkt e-post fungerar till maskinerna i det
  skyddade ntverket. Dessa nackdelar kan verka obetydliga, men tnk p
  det p detta sttet:


    Du har lagt en rapport som du hller p att jobba med p din dator
     i ett brandvggsskyddat ntverk. Du r hemma och bestmmer dig fr
     att du vill g igenom den. Det kan du inte. Du kan inte n din
     dator eftersom den r bakom brandvggen. Du frsker att logga in
     p brandvggen frst, men eftersom alla har proxyserveraccess, s
     har ingen lagt upp ett konto t dig p den.

    Din dotter gr p college. Du vill mjla henne. Du har ngra
     privata saker att prata med henne om, och vill helst att hon
     skickar e-posten direkt till din maskin. Du litar helt och hllet
     p systemadministratren, men det r ju trots allt privat post. Men
     detta gr inte.



    Ofrmgan att anvnda UDP-paket r en stor nackdel med
     proxyservrar. Jag frestller mig att detta kommer att fungera
     snart.

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

  Dessutom r proxyservrar lngsamma. P grund av den strre overheaden
  s r nstan alla andra stt att f accessen snabbare.

  S om du har IP-adresserna och inte bekymrar dig fr skerheten s
  skall du inte anvnda en brandvgg och/eller proxyserver. Om du inte
  har IP-adresserna och inte bekymrar dig fr skerheten s kan du
  kanske anvnda 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, tillter bttre anslutningar och tillhandahller bttre
  tillgnglighet till det privata ntverket frn Internet. Proxyservrar
  r bra fr de ntverk som har mnga datorer som vill ansluta till
  Internet `on the fly', med en instllning 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 gtt igenom rcker antagligen
  fr de flesta.  Men det som fljer kommer att visa en mer avancerad
  konfiguration och kan dessutom klara upp lite frgor. Om du har frgor
  om det som jag just gtt igenom, eller bara r intresserad av
  mngsidigheten hos proxyservrar och brandvggar, ls vidare.


  9.1.  Ett stort ntverk med tyngdpunkten p skerhet

  Antag till exempel att du r ledare fr en milis och du vill ha ett
  ntverk. Du har 50 datorer och ett subnt med 32 (5 bitar) IP-
  adresser. Du behver lite olika niver p access inom ntverket
  eftersom du sger olika saker till dina anhngare. Drfr behver du
  skydda vissa delar av ntverket frn resten.

  Niverna r:


  1. Den yttre nivn. Denna nivn r ppen fr alla. Det r hr dr du
     skrnar och skrvlar fr att locka nya frivilliga.

  2. Troop. Detta r nivn fr personer som har kommit frbi den yttre
     nivn. Det r hr du lr dem om den elaka statsmakten och hur man
     gr bomber.

  3. Mercenary. Det r hr de riktiga planerna finns. P denna nivn
     lagras all information om hur den 3:e vrldens regering skall ta
     ver vrlden, dina planer hrrrande Newt Gingrich, Oklahoma City
     och vad som verkligen finns i de dr hangarerna i area 51.

  9.1.1.  Att stta upp ntverket

  IP-adresserna arrangeras som fljer:


    En adress r 192.168.2.255, vilken r broadcastadressen och kan
     inte anvndas.

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

    En IP-adress gr till en Linuxburk p det ntverket

    En gr till en annan Linuxburk p det ntverket.

    Tv IP-adresser gr till routern.

    Fyra adresser blir ver, men ges domnnamnen paul, ringo, john och
     george, bara fr att frvilla lite grann.

    De skyddade ntverken har bda adresserna 192.168.2.xxx

  Sedan byggs tv separata ntverk i olika rum. De routas via infrard
  Ethernet s de r helt osynliga utanfr rummen. Lyckligtvis s
  fungerar infrard Ethernet precis som vanlig Ethernet.

  Dessa bda ntverk kopplas till en av Linuxburkarna med en extra IP-
  adress.

  Det finns en filserver som kopplar ihop de tv skyddade ntverken.
  Detta fr att planerna fr att ta ver vrlden involverar ngra av de
  hgre trupperna.  Filservern har adressen 192.168.2.17 fr
  `Troop'-ntverket och 192.168.2.23 fr `Mercenary'-ntverket. Den
  mste ha tv olika IP-adresser eftersom den har tv ntverkskort. IP-
  vidareskickning r avstngt.

  IP-vidareskickning r ven avstngt p de tv Linuxburkarna. Routern
  kommer inte att skicka vidare paket mnade fr 192.168.2.xxx adresser
  om den inte explicit fr sdana direktiv, s Internet kan inte komma
  in. Anledningen att vidareskickning skall vara avstngt hr r att
  paket frn `Troop'-ntverket inte skall kunna n
  `Mercenary'-ntverket, och vice versa.

  NFS-servern kan ven stllas in fr att erbjuda olika filer till de
  olika ntverken. Detta kan bli anvndbart, och lite trixande med
  symboliska lnkar gr s att vissa filer kan delas av alla. Denna
  instllning och ett extra ntverkskort gr att denna filservern kan
  anvndas av alla tre ntverken.


  9.1.2.  Att stta upp proxyservern

  Eftersom alla tre niverna vill kunna ha koll p Internet fr sina
  egna orliga syften, s mste alla tre ha access till Internet. Det
  externa ntverket r direktkopplat till Internet s vi behver inte
  anstrnga oss med proxyservrar dr. `Mercenary' och `Troop' ntverken
  r bakom brandvggar s vi behver stta upp proxyservrar dr.

  Bda ntverken kommer att sttas upp likartat. Bda r tilldelade
  samma IP-adresser. Jag lgger in ngra extra parametrar, bara fr att
  gra det lite mer intressant.


  1. Ingen kan anvnda filservern fr access till Internet. Det skulle
     ppna filservern fr virus och andra hemska saker, och den r
     hyfsat viktig, s den fr inte anvndas mot Internet.
  2. Vi kommer inte tillta att trupperna har tillgng till World Wide
     Web. De r under utbildning och den typen av informationshmtande
     kan vara skadlig.

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


      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 sger att man skall neka alla maskiner som frsker komma t
  port 80 (http porten). Det tillter fortfarande alla andra tjnster,
  endast www-access nekas.

  Sedan s har bda filerna fljande:


      permit 192.168.2.0 255.255.255.0



  fr att tillta alla datorer p 192.168.2.xxx ntverket att anvnda
  denna proxyserver, frutom de som redan har blivit nekade (dvs
  filservern och www-access frn `Troop'-ntverket).


  S filen sockd.conf p `Troop'-ntverkets Linuxburk kommer se ut s
  hr:


      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'-ntverkets Linuxburk ser den ut s hr:


      deny 192.168.2.23 255.255.255.255
      permit 192.168.2.0 255.255.255.0



  Detta borde konfigurera allting korrekt. Alla ntverk r isolerade med
  lagom mngd interaktion. Alla borde vara lyckliga.

  Nu, ta ver vrlden!


