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!