Lars Sommer < [email protected] > 11. april 2006
0.1 Forord og introduktion
0.1.1 Forord
BSD er godt. BSD kan gøres sikkert. Jeg interesserer mig for operativsyste- mer og sikkerhed. Her er en lille kombination.
0.1.2 Introduktion
Dette er ikke en bog! Dette er hverken en veldokumenteret vejledning eller opslagsværk! Dette er mine egne personlige noter til et par artikler og bøger. Det kan p ̊a ingen m ̊ade garanteres at du kan f ̊a noget somhelst brugbart ud af dette.
Hvis du kan bruge det til noget, skrive det bedre, eller blot har spørgsm ̊al eller kommentarer, er du velkommen til at skrive til mig p ̊a [email protected]
0.1.3 Tak til
• Mastering FreeBSD and OpenBSD Security, Yanek Korff, Paco Hope, Bruce Potter, O’Reilly 2005
• OpenBSD’s FAQ p ̊a http://www.openbsd.org/faq/index.html
• FreeBSD’s handbook p ̊a http://www.freebsd.org/doc/en US.ISO8859-
1/books/handbook/
• VIM, LaTeX, vilk ̊arlige folk der har forsøgt at omg ̊a min sikkerhed, folk p ̊a dkIRC
4
Kapitel 1
Sikkerhed med Free- og OpenBSD
1.1 Generelt
1.1.1 Hvad er sikkerhed?
- Konfidentialitet: At være bevidst om niveauer af fortrolighed. At sikre fortrolige data bedre end ikkefortrolige data.
- Integritet: At sikre at ens data er som den skal være. At sikre ens data indeholder det den skal. At bruge signaturer og hash-tjeks f.eks.
- Tilgængelighed: Ens sikkerhedselementer og ens data skal være til- gængeligt de rigtige steder. Duer ikke hvis en bruger har brugt al diskpladsen eller b ̊andbredden.
1.1.2 Hvilke risici er der?
- Angreb: Personer eller robotter laver tilfældige eller m ̊alrettede angreb.
- Programmelfejl: Programmer kan indeholde fejl, der gør systemet u-sikkert.
- Forkert brug: Dumme brugere eller uerfarne admins kan bruge korrekt programmel forkert.5
1.1.3 Sikkerhedsproces
- Initierende installation: Her sikres sikkerheden godt i første omgang
- Løbende vedligeholdelse: S ̊a snart et system er klar til brug, begynder det at ændre sig. Løbende vedligeholdelse kræver løbende sikkerheds- tjek.
- Uheld og efterforskning: Er skaden sket, skal der gøres ekstra meget for at fejl bliver fundet og rettet, og det sikres at de ikke kommer igen.1.1.4 SikkerhedsprincipperForskellige m ̊ader at h ̊andtere sikkerhed p ̊a:
- Tilføjesikkerhedhenadvejen:Findedetsvagestepunkt,ogsikredette, lidt ad gangen, hen ad vejen.
- Sikkerhedslag: Tilføje flere lag af sikkerhed, s ̊adan at man b ̊ade skal igennem firewall, ids, login osv.
- Fejlsikret: Hvis der sker en fejl eller et uheld, s ̊a sørg for at det ikke kan gøre stor skade, fx med jails.
- Minimer privilegierne: Enhver bruger og service, skal have s ̊a absolut f ̊a rettigheder som muligt.
- Fordel servicene: Hvis een ting fejler, skal resten kunne fungere.
- Simplificer: Jo mere avanceret, jo sværere at fejlfinde p ̊a, og jo sværereat opdatere og sikre.
- Dokumenter security through obscurity grundigt
- Mistænk som standard: Hvis noget tyder den mindste smule p ̊a at noget er usikkert, s ̊a regn med det er det, og tjek op p ̊a det.
- Opdater og følg med: Hold systemet opdateret, og følg med p ̊a mail- lister osv.
1.1.5 Se disse RFC’er
2196, 2504, 2828, 3013, 3365, 3631
6
Kapitel 2
Byggesten til sikkerhed
2.1 Filsystemet
2.1.1 UFS flag
Husk nogle flag kan ikke unsettes i visse securelevels.
Kommandoen chflags bruges til at sætte og afsætte flag. Man-siden for chflags er kort og præcis, med lister over flag osv.
Kandidater for schg-flaget: alle binaries og libraries (søg p ̊a foldere med navne som bin, sbin, lib, libexec, libdata), /etc/ssh, admins .ssh/authorized keys.
Append flag er usmart til logfilerne, da det ikke gir mulighed for rotation. At søge efter filer med flags kan man med find. Den skal have parametren
-flags. F.eks: find / -flags +uunlnk 2.1.2 POSIX Access Control Lists
B ̊ade ACL og UFS2 er kun til FreeBSD endnu. Det er en slags detaljeret udvidelse af normale unix permissions.
ACL sl ̊aes til p ̊a en partition via fstab eller ved at angive det i super- blokken p ̊a den. I fstab angives det som en option, acls, ala:
/dev/ad0s2g /usr ufs rw,userquota,groupquota,acls 2 2
For at angive det i superblokken, afmonteres partitionen, og der køres
7
en tunefs -a /usr
For at sætte og læse ACL’er, bruges setfacl og getfacl. Deres man-sider
indeholder gode forklaringer, samt eksempler p ̊a begge dele.
ACL p ̊a en fil, kan ikke ses med ls -l, men hvis der er sat ACL, vises et + efter de normale unix permissions.
ADVARSEL: Hverken UFS flag eller ACL er understøttet i NFS. S ̊a hvis NFS bruges, kan der nemt opst ̊a problemer hvis man prøver at h ̊andtere flag eller ACL via dette.
2.2 Kernen
2.2.1 sysctl
En kørende kerne kan tunes med sysctl. Se sysctl -a for alle options. Se mansiderne for sysctl(3) og (8).
2.2.2 kern.securelevel
Se man securelevel. Der er forskel p ̊a hvad der er tilladt i de enkelte levels (fra -1 til 3) i Free- og OpenBSD.
Root kan altid sætte højere securelevel, men ikke lavere, mens systemet kører.
2.2.3 Random pids
Nogle exploits beregner PID’er. Tilfældige PID’er er godt. Det gør OpenBSD altid. I FreeBSD skal det sl ̊aes til ved at sætte sysctl-variablen kern.randompid til 1
2.2.4 Core dumps
Coredumps indeholder vigtig info om crashede programmer. Bl.a. stackpo- intere og memoryadresser. Det kan være nyttigt for crackere. Hvis man ikke udvikler programmer selv, og vil have debug-mulighed, er det m ̊aske smart at sl ̊a fra. I FreeBSD sættes kern.coredump til 0
8
2.2.5 Netværkstweaking
Det kan være smart at reducere sin synlighed i netværk. Som default svarer man p ̊a forespørgsler til porte der ikke er ̊abne. Det sl ̊aes fra ved at sætte net.inet.tcp.blackhole til 2, og net.inet.udp.blackhole til 1. Dette tager en del netværksload af ens egen maskine, og det gør at angriberens skanning tager meget længere tid.
Scannere der identificerer OS, bruger tit pakker med SYN og FIN flag sat. Det er ikke normalt i ”normal”traffik, s ̊a dem kan man godt droppe. Det gør man ved at sætte net.inet.tcp.drop_synfin, men i FreeBSD kræver det at man inkluderer option TCP_DROP_SYNFIN i sin kerne.
2.3 Kontrol af brugerprocesser
2.3.1 Systemkaldet chroot
Skaber virtuelle root-foldere for processer. Kræver man opretter /etc,/dev,/lib,/bin osv inde i det virtuelle system.
Man kopierer sin binary ind i den virtuelle root, og ser om den kører.
Hvis ikke, kan man bruge ldd til at se hvilke libs den kræver. Hvis det stadig ikke kører, kan ktrace bruges til at se hvad den leder efter.
Til at lave /dev, bruges mknod. For at se parametre, ses p ̊a ls -l af den rigtige /dev. F.eks:
ls -l /dev/random
crw-rw-rw- 1 root wheel 45, 0 Aug 14 12:12 /dev/random S ̊a bruges:
sudo mknod /chrootenv/dev/random c 45 0
Et chroot’et miljø er ikke bare perfekt. Processer kan stadig se andre pro- cesser. I FreeBSD kan man sætte sysctl-variablene security.bsd.see_other_uids og security.bsd.see_other_gids til 0. Men hvis PID’s kan beregnes, kan
de stadig dræbes.
9
2.3.2 jail (kun p ̊a FreeBSD)
Udover UID og GID har processer ogs ̊a en Jail ID (JID). De kan kun tale med processer med samme JID. Bortset fra grundsystemet som har JID 0, og godt kan p ̊avirke andre JID’er.
P ̊a netværk kan chroot normalt alt, mens jail kun kan det der er specifikt tilladt.
Jails kan ikke køre mknod, hvorfor alt til jailets /dev skal laves p ̊a forh ̊and. Det gør ikke s ̊a meget hvis mem eller kmem er krævet, da et jail ikke kan læse eller skrive til omr ̊ader i mem eller kmem, som ikke har samme JID. Evt. kan man lave en /etc/devfs.conf i sit jail, s ̊a der bliver lavet de devs der skal bruges.
Man kan lave tynde og tykke jails. Et tyndt jail er nogenlunde som en chroot, mens et tykt jail nærmest er et helt komplet virtuelt system / virtuel maskine. Mansiden for jail(8) giver eksempler p ̊a hvordan man laver dem.
sysctl’s til kontrol af jails
security.jail.socket_unixiproute_only er sat p ̊a som default, og den sikrer at kun enkelte netværkshandlinger er tilladte gennem jails.
security.jail.sysvipc_allowed er ogs ̊a sat som default, og styrer om jailede ting kan bruge sysV-ipc’er. Der kan laves avancerede sysV-ipc’er, der kan omg ̊a jails, hvorfor denne er fin at have sat til.
Kommando til kontrol af jails
jexec kan bruges til at eksekvere processer inde i jails, ude fra hovedsystemet (JID0).Denkanogs ̊abrugestilatdræbeetheltjail(sudo jexec 3 kill -1)
2.4 Medfødt beskyttelse
OpenBSD leger secure by default, FreeBSD er lidt mere fleksibel
10
2.4.1 Bufferoverflow-beskyttelse
WXˆ (Write xor execute) RAM-beskyttelse
RAM-sider er enten skrivbare eller eksekverbare. Ikke begge dele. Det er en del af kernen og loaderen (ld.so). Hvis et program skriver eller eksekverer en eksekverbar eller en skrivbar RAM-side, crasher programmet. Kernen og loaderen prøver at sørge for at programmer har data og instruktioner p ̊a hver deres sider, men nogle programmer er bare d ̊arligt skrevet, og crasher s ̊a.
ProPolice Stack-beskyttelse
Normalt loades programmer til RAM ens hver gang de køres. ProPolice ind- sætter en tilfældig ”canary-værdi i hver eneste funktionsramme. N ̊ar pro- grammet returnerer, bliver der tjekket om denne værdi er ændret. Hvis den er det, crasher programmet. Der er 2ˆ32 mulige værdier.
2.4.2 Kryptografi
Kryptering er til bl.a. HTTPS, SSL, SSH, VPN og lign.
Udover fin softwarebaseret kryptering, indeholder b ̊ade Free- og OpenBSD et krypto-API/-Framework for hardware-kryptokort. Se crypto(9) i FreeBSD og crypto(4) i OpenBSD. Der kan dog være problemer med nye kort med AES-algoritmer.
2.4.3 Code Audit
B ̊ade Free- og OpenBSD laver code audit før noget ryger ind i OS’et. Men OpenBSD laver ogs ̊a code audit af alt i ports, hvorfor der endnu ikke er helt s ̊a mange ports til OpenBSD som til FreeBSD. Ofte indeholder OpenBSD ports en del patches, for at rette op p ̊a usikkerheder, hvorfor den enkelt port s ̊a ogs ̊a er blevet specielt tilpasset OpenBSD.
11
2.5 Optimeringer
En del ting kan finjusteres i /etc/sysctl.conf og i FreeBSD i /boot/loader.conf FreeBSD forsøger at skalere sig selv pænt, ved at se p ̊a CPU og RAM.
2.5.1 maxusers
I OpenBSD er det en kernevariabel, der kræver rekompilering af kernen.
I FreeBSD er den dynamisk, og udregnes ved boot, n ̊ar den st ̊ar til 0 (default)
2.5.2 maxfiles og somaxconn
Hvor mange filer m ̊a være ̊abne, og hvor mange indg ̊aende tcp-forbindelser m ̊a oprettes. Det sættes med kern.maxfiles, og med kern.ipc.somaxconn i FreeBSD og kern.somaxconn i OpenBSD.
2.5.3 Netværksbuffere
Hvis der skal overføres store filer, er det godt at sætte mængden af RAM til netværksbuffere højt. Det er net.inet.tcp.sendspace.
Hvis der skal modtages store filer, er det smart at sætte net.inet.tcp.recvspace højt.
Hvis man har for f ̊a mbufs (netstat -m, se limits), kan net.ipc.nmbclusters sættes om i FreeBSD. I OpenBSD er det en del af maxusers, men kan ogs ̊a sættes som en kerneoption NMBCLUSTERS.
12
Kapitel 3
Installation
3.1 Generelt
3.1.1 Overvej hvad du bygger
Eksempelvis workstation, hvor folk logger direkte ind, workgroupserver, hvor flere folk logger ind via fjernadgang, infrastrukturserver, som andre servere stoler p ̊a, og henter data fra. Jo længere henne, jo mere sikkerhed behøves m ̊aske.
Man kan ogs ̊a være ude for at lave multipurpose servere, som m ̊aske dækker over de to sidstnævnte i ovenst ̊aende, eller endnu mere.
3.1.2 Medier og netværk
Installeres fra originale cd’er, bør indholdet være korrekt. Hvis installatio- nen foreg ̊ar via netværk, kan der ske man-in-the-middle-angreb, s ̊a man f ̊ar korrupt data ind. En umiddelbar sikkerhed er at installere fra eget kontrol- leret repositorie. Kør altid md5-tjek p ̊a downloadede pakker, før de bruges. Optimalt hvis installationen foreg ̊ar fra egne maskiner, helt uden internet- forbindelse. Først n ̊ar maskinen er godt sikret, gives internetforbindelse.
DHCP er uden autentifikation eller ægthedstjek, s ̊a undg ̊a endelig dette, i alle sammenhænge!
13
3.1.3 Præeksisterende s ̊arbarheder
Der kan være huller i systemer n ̊ar de udkommer. FreeBSD skriver om dette
p ̊a http://www.freebsd.org/security/, og OpenBSD p ̊a http://openbsd.org/errata.html Begge har jo ogs ̊a maillinglister for emnet, s ̊a husk at tjek der.
Hvis du installerer en ældre udgave end nyeste, s ̊a er dette endnu vigti- gere!
Og husk self. at patche FØR du giver internetforbindelse til maskinen.
3.1.4 Opdeling af filsystemet
Man kan f.eks. opdele i /, swap, /tmp, /usr, /var, (og /home p ̊a OpenBSD) Det er godt at dele filsystemet op i flere partitioner. Det er det fordi:
Integritet
Hvis strømmen tages fra et system, vil det være de partitioner der sker flest ændringer p ̊a, der tager størst skade. Det vil sige at /var og /home m ̊aske rammes, men ikke / og /usr
Tilgængelighed
Nogle partitioner m ̊a ikke løbe tør for plads, f.eks. /. Nogle gange kører en proces m ̊aske vild i /tmp, og med opdeling, bliver skaden begrænset.
Sikkerhed
Mount options kan øge sikkerheden. F.eks. nosuid, noguid, readonly og mu- ligheden for at eksekvere binære filer kan ændres p ̊a enkelte partitioner.
Hastighed
Fragmentation kan ikke ske i nær s ̊a høj grad, n ̊ar der er flere mindre parti- tioner.
14
3.1.5 X
X tager klient/server-modellen helt op p ̊a applikationsniveau. En X-server kan være farlig. Kan m ̊aske køre ud til netværket p ̊a en workgroup server, men ellers bør den være sl ̊aet helt fra udadtil, hvis X overhoved skal eksistere.
3.2 Opdater systemet
Opdater dit system efter endt installation. Installer cvsup-without-gui.
Se efter en brugbar supfile. Kig i /usr/share/examples/cvsup
Linjen *default release=cvs tag=RELENG 5 3 siger at den opdaterer til STABLE. Hvis tag=., opdateres til CURRENT.
Og opdater: cvsup -L 1 -h cvsupx.freebsd.org /path/to/supfile Hvor x er et mirror i din nærhed.
Du kan gemme update-konfigurationen i /etc/make.conf:
SUP_UPDATE=yes
SUP=/usr/local/bin/cvsup
SUPFLAGS= -g -L 2 SUPHOST=cvsup.dk.FreeBSD.org SUPFILE=/usr/local/etc/standard-supfile
Og du kan s ̊a bruge make fra /usr/src til at opdatere med.
3.3 Første upgrade
Chapter 21 af FreeBSD handbook
Læs /usr/src/UPDATING
Lav en /etc/make.conf med gode indstilliner. Se man make.conf
Læs evt man mergemaster, hvis der er konfigurationer der skal merges.
15
3.4 OpenBSD installation
Husk:
Se hvilke flags mount automatisk sætter p ̊a de enkelte partitions. M ̊aske vil man godt kunne lave devs i /var, til chrooted named.
Læs man afterboot
Lav en brugerkonto til dig selv, konfigurer sudo ”username ALL = ALL”, eller hellere kun til hvad du har behov for.
3.4.1 Opdater systemet
cvs-checkout for den patch branch du vil bruge. Se liste af cvs’er p ̊a o- penbsd.org/anoncvs.html
setenv CVSROOT [email protected]:/cvs cd /usr
cvs checkout -P -r OPENBSD\X\X src
Hvor X X er den branch du bruger, f.eks. 3 8. Genbyg din kerne, og kør make world.
3.5 Hærdning efter installation og opdatering
3.5.1 Konfigurer brugere og grupper
Opret brugere f.eks. i /home og i /var/www/htdocs
Tillad dem at bruge ftp, hvis det er nødvendigt.
Skal de have mail-aliaser?
Opsæt quota af disk og andet for dem.
Medlemmer af gruppen wheel, kan læse devices, og bruge su til root.
Brugeren toor p ̊a FreeBSD er nærmest historisk. Slet den, hvis du ikke ved du skal bruge den.
16
3.5.2 Indstil mount options
Se efter at mount options er korrekte. Se i fstab og i man mount. Se bl.a. noauto, nodev, noexec, nosuid, rdonly, suiddir
3.5.3 Indstil sshd
Brug keys!
Følg en guide i at opsætte sshd med nøgler i stedet for passwords, og husk passphrases til nøglerne. Husk at sætte PasswordAuthentication til NO
Læs man sshd
Lav en liste af tilladte users med AllowUsers eller AllowGroups. Lav f.eks. en gruppe sshers
Sæt PermitRootLogin til NO, s ̊a man ikke kan logge direkte ind med root.
Sæt Protocol til 2, da der er mulighed for mitm-angreb med 1.
Se StrictModes st ̊ar til YES. Den tjekker at korrekte permissions er sat p ̊a de filer der har med ssh at gøre.
Sæt Port til noget andet end 22, for at forhindre en masse automatiske angreb. Gerne noget over 1024, eller højere, s ̊a default portskannere ikke ser den.
Se UsePrivilegeSeparation st ̊ar til YES. Den spawner en børneproces n ̊ar en bruger logger ind, og kører sessionen som denne bruger.
Sl ̊a al X11 fra, med mindre du ved det skal bruges.
3.5.4 Opsæt logning
Log hellere for meget end for lidt. Læs man syslog.conf og newsyslog.conf
3.5.5 Lav login bannere
Lav login bannere, s ̊a folk f ̊ar velkomster, og f.eks. advarsler om logging. /etc/motd, sshd config’s Banner, og tcpwrappers via inetd.
17
Kør inetd med -w, og sæt bannerdirektiver i /etc/hosts.allow
3.5.6 Opsæt NTP
Ved boot kan den sættes med f.eks. rdate eller ntpdate. ntpdate kan konfigureres med sysinstall p ̊a FreeBSD Eller sættes op selv i /etc/rc.conf med:
• ntpdate enable=”YES”
• ntpdate flags=-b public.ntp.adr.tld”
rdate kan via /etc/rc.conf.local p ̊a OpenBSD
• rdate flags=-n public.ntp.adr.tld”
Se www.eecis.udel.edu/ mills/ntp/servers.html for liste over servere
ntpd
B ̊ade rdate og ntpdate trækker kun tid fra een server. Hvis denne er forkert, eller forbindelsen er langsom, kan man f ̊a noget forkert ned. Der er ntpd bedre. Den tjekker p ̊a flere, og gør nogle beregninger.
ntpd sættes op med ntpd_enable=”YES” i FreeBSD, og ntpd=”YES” i OpenBSD
Det er vigtigt at lave en conf-fil, med minimum een server i. Læs man ntp.conf
18
Kapitel 4
Administration
4.1 Adgangskontrol
Hold systemets konti og brugeres konti skarpt adskildte. Systemkonti som named og bitlbee skal ikke have shells.
Det er en god ide at lade alle brugere have en gruppe med samme navn som deres brugernavn, og derudover ogs ̊a lade alle rigtige brugere være med i en fælles gruppe ”users”f.eks.
Sørg for at nye ting brugere laver, bliver lavet med deres egen gruppe.
Resursebegrænsninger, miljøvariable og lignende kan sættes i /etc/login.conf
Som default er der en umask p ̊a 022. M ̊aske er en umask p ̊a 077 smartere. Det kan ogs ̊a sættes i login.conf, og den enkelte bruger kan selv ændre det hvis denne vil.
Undg ̊a klartekst logins som telnet, rsh og rlogin, brug i stedet ssh.
Brug sudo i stedet for su, men ikke ”sudo su”. Mange programmer kan kalde shells (f.eks. vi og less), s ̊a pas p ̊a med hvad der tillades med sudo.
Vær specifik i sudoers-linjer. Man kan sagtens give de enkelte komman- doer de tilladte parametre.
19
4.2 Hverdagsting
Kan ske gennem ports eller packages. Ports tilbyder mere konfiguration og ofte nyere versioner.
Overvej at bruge CVS eller lign. til styring af conf-filer. S ̊a er der altid styr p ̊a dem.
4.2.1 Datagendannelse
Kan typisk deles op i fire kategorier:
- Katastrofegendannelse, hvor et helt system er forsvundet. F.eks. ved diskkrasj, brand, indbrud eller lign.
- Datagendannelse, hvor en bruger eller program har f ̊aet slettet data der ikke skulle slettes.
- Efterforskning, eksempelvis efter man har haft fremmede i systemet.
- Retssager, hvor man f.eks. skal genfinde gamle mails og lign.Ofte er programmerne dump eller amanda gode til backup.Datakompletheden sikres ikke med tar. Men det gør den med dump. Derfor er dump god til at tage backup af et helt system.Tænk over sikkerheden i backuppen. M ̊aske er det smart at kryptere sin backup.Hvis backuppen kører over netværk, s ̊a husk at kryptere trafikken. F.eks. med ssh eller vpn.Hvis ssh, er det smart at bruge keys, m ̊aske uden passphrases. S ̊a er det vigtigt at sætte en ”From=¡hostname¿”i auth keys, s ̊a kun de(n) korrekte maskine kan komme ind.4.3 OpgraderingDet er bedre at opdatere programmerne ofte, end sjældent. Ellers kommer der lige pludselig mange opdateringer, og tingene g ̊ar nemmere galt.20
Husk at patche hurtigt, n ̊ar sikkerhedspatches udkommer, ellers glemmes det nemt.
Man bør opdatere branch, n ̊ar der kommer en ny. B ̊ade Open- og Fre- eBSD har god dokumentation om det.
4.4 S ̊arbarhedsrespons
Følg med p ̊a postlister. B ̊ade Open- og FreeBSD’s, securityfocus, nogle applikationsspecifikke, og m ̊aske freshports til FreeBSD. Mange lister har announce-only, som er lavvolume-lister, hvor der kun kommer vigtige ting.
Husk p ̊a at automatiske angrebsscripts ikke tænker over om din server er stor eller ej. Derfor bør du altid regne med at blive angrebet.
Lav en reaktionsliste for hvordan forskellige sikkerhedshuller skal h ̊andteres.
Husk der er forskellige typer sikkerhedshuller. De der kan køres af al- le udefra, er farligere end de der kræver lokal brugerkonto. De der giver umiddelbar root-adgang, er værre end de der blot lammer dele af systemet.
Der er en række forskellige handlinger der kan udføres n ̊ar der kommer oplysninger om et sikkerhedshul:
- Lappe hullet NU, hvis der er patch, det er vigtigt, og der er tid.
- Lappe hullet indenfor kort tid, hvis der er patch men det er mindrevigtigt.
- Lappe hullet ved næste alm. vedligeholdelsesomgang, hvis det ikke er specielt vigtigt.
- Lukke servicen der er hullet og senere lappe, hvis det er vigtigt, men der ikke er tid. Det kan f.eks. bare være at ændre firewallen.
- Gøre ingenting, hvis det er komplet irrelevant. Dog kan det det jo blive relevant senere hen.21
4.5 Netværksservices
4.5.1 inetd
inetd tillader ofte en del gammeldags og usikre services som finger, telnet og rlogin. Sl ̊a dem fra!
Normalt tillader inetd 256 forbindelsesoprettelser pr sekund. Med mindre du har s ̊a mange, s ̊a sænk det tal, med parametren -R (rate)
Brug tcpwrappers. Det gør det nemt at styre forskellige regler for for- skellige hosts.
4.5.2 Ting der skal undg ̊aes
NFS kan ikke sættes sikkert op. Undg ̊a det! Brug CFS, SFS eller lign., hvis der skal bruges et netfilsystem.
YP / NIS. Hvis det er noget centralt auth der skal bruges, er kerberos med LDAP smart.
Hvis man skal have nogle filer distribueret ofte, som ala NIS, kan man bruge scp. Alternativt CVS/SVN over ssh.
4.5.3 NTP
Hvis der ikke holdes korrekt orden i tiden p ̊a servere, kan der bl.a. ske problemer som:
• umuligt at lave efterforskningsspor • CVS/SVN
• IRCd’er
• Stempling af mails ud
ntp er i base-systemet p ̊a b ̊ade open- og freebsd. Config-filen hedder:
• /etc/ntp.conf p ̊a freebsd
22
• /etc/ntpd.conf p ̊a openbsd
Tilladelser bør ske som med en firewall. Alts ̊a først nægt alt, og s ̊a tillad
enkelte.
Forbindelser kan ske med auth gennem key kryptering. Der er en smart kommando ntpd-genkeys, og en god dokumentation p ̊a ntp.org
4.6 Hold øje med systemet
F.eks. med nagios. http.//nagios.org/
For at kunne lave lokale tjek p ̊a fjernmaskiner, skal NRPE (Nagios Re- mote Plugin Executor) installeres. HUSK at bygge det med SSL (make WITH SSL=yes).
23