Uitgave 1.0
Mono-spaced Bold
Om de inhoud van het bestandmijn_onwijsgoed_verkopende_boekin uw huidige directory te zien, voert u het commandocat mijn_onwijsgoed_verkopende_boekin bij de shell-prompt en drukt u op Enter om het commando uit te laten voeren.
Druk op Enter om het commando te laten uitvoeren.Druk op Ctrl+Alt+F1 om naar de eerste virtuele terminal over te schakelen. Druk op Ctrl+Alt+F7 om terug te keren naar uw X-Windows sessie.
Mono-spaced Bold. Voorbeeld:
Onder bestandsgerelateerde klassen vallenfilesystemvoor bestandsystemen,filevoor bestanden, endirvoor directories. Elke klasse heeft haar eigen set van permissies.
Kies uit de hoofdmenubalk om Muis Voorkeuren te openen. In de Knoppen tab, klik de Linkshandige muis checkbox aan en klik om de primaire muisknop van links naar rechts te wisselen (waardoor de muis beter geschikt is geworden voor linkshandig gebruik).Om een speciaal teken in een gedit bestand op te nemen, kiest u uit de hoofdmenubalk. Vervolgens kiest u uit de Tekentabel menubalk, typ de naam van het teken in het Zoek veld en klik . Het teken dat u zoekt zal worden gemarkeerd in de Tekentafel. Dubbel-klik op dit teken om het in de Te kopiëren tekst veld op te nemen en klik dan de knop. Keer terug naar uw document en kies uit de gedit menubalk.
Mono-spaced Bold Italic of Proportional Bold Italic
Om verbinding te maken met een andere computer met behulp van ssh, typt usshbij een shell prompt.gebruikersnaam@domein.naamHetmount -o remountcommando mount opnieuw het genoemde bestandsysteem. Om bijvoorbeeld hetfile-system/homebestandsysteem opnieuw te mounten, gebruikt men hetmount -o remount /homecommando.Om de versie van een huidig geïnstalleerd pakket te zien, gebruikt u hetrpm -qcommando. Dit zal het volgende resultaat opleveren:package.package-version-release
Wanneer de Apache HTTP Server verzoeken accepteert, zet het childprocessen of threads ter afhandeling in. Deze groep van childprocessen of threads staan bekend als een server-pool. Onder Apache HTTP Server 2.0 is de verantwoordelijkheid voor het creëren en onderhouden van deze server-pools toegewezen aan een groep modules genaamd Multi-Processing Modules (MPMs). Anders dan bij de andere modules kan slechts één module van de MPM groep door de Apache HTTP Server geladen zijn.
Mono-spaced Roman en als volgt gepresenteerd:
books Desktop documentation drafts mss photos stuff svn books_tests Desktop1 downloads images notes scripts svgs
Mono-spaced Roman maar worden alsvolgt gepresenteerd en benadrukt:
package org.jboss.book.jca.ex1;
import javax.naming.InitialContext;
public class ExClient
{
public static void main(String args[])
throws Exception
{
InitialContext iniCtx = new InitialContext();
Object ref = iniCtx.lookup("EchoBean");
EchoHome home = (EchoHome) ref;
Echo echo = home.create();
System.out.println("Created Echo");
System.out.println("Echo.echo('Hello') = " + echo.echo("Hello"));
}
}
nmap commando gevolgd door de hostnaam of IP adres van de machine die bekeken moet worden.
nmap foo.example.com
Starting Nmap 4.68 ( http://nmap.org ) Interesting ports on foo.example.com: Not shown: 1710 filtered ports PORT STATE SERVICE 22/tcp open ssh 53/tcp open domain 70/tcp closed gopher 80/tcp open http 113/tcp closed auth
| Uitbuiting | Beschrijving | Opmerkingen | |||
|---|---|---|---|---|---|
| Lege of standaard wachtwoorden | Het leeg laten van een beheerderswachtwoord of het gebruiken van een standaard wachtwoord ingesteld door de leverancier. Dit is vaak heel gebruikelijk in hardware zoals routers en firewalls, hoewel sommige services die op Linux draaien een standaard beheerderswachtwoord kunnen bevatten (deze bevinden zich niet in Fedora 11). |
| |||
| Standaard gedeelde sleutels | Beveiligde services bevatten soms standaard beveiligingssleutels voor ontwikkelings of evaluatie test doeleinden. Als deze sleutels onveranderd blijven en ze worden in een productie omgeving op het Internet geplaatst, hebben alle gebruikers met dezelfde standaard sleutels toegang tot die gedeelde sleutel hulpbron, en alle gevoelige informatie die het bevat. |
| |||
| IP adres voor de gek houden (spoofing) | Een machine op afstand doet zich voor als een node in jouw locale netwerk, vindt kwetsbaarheden van je servers, en installeert een achterdeur programma of een paard van Troje om controle te krijgen over je netwerk hulpbronnen. |
| |||
| Afluisteren | Het verzamelen van data dat tussen twee actieve nodes op een netwerk uitgewisseld wordt door het afluisteren van de verbinding tussen de twee nodes. |
| |||
| Service kwetsbaarheden | Een aanvaller vindt een zwakte of kijkgat in een service die op het Internet draait; met deze kwetsbaarheid compromitteert de aanvaller het gehele systeem en alle data die het bevat, en kan mogelijk andere systemen in het netwerk in gevaar brengen. |
| |||
| Toepassings kwetsbaarheden | Aanvallers vinden fouten in bureaublad en werkstation toepassingen (zoals email clienten) en voeren willekeurige code uit, brengen paarden van Troje aan voor toekomstig in gevaar brengen, of laten systemen chrashen. Verdere uitbuiting kan plaatsvinden als het in gevaar gebrachte werkstation beheersrechten heeft op de rest van het netwerk. |
| |||
| Service weigerings (Denial of service - DoS) aanvallen | Een aanvaller of een groep van aanvallers coördineren tegen het netwerk of de server hulpbronen van een organisatie door het ongevraagd sturen van pakketten naar de doel host (of server, router, of werkstation). Dit veroorzaakt dat de hulpbronnen niet beschikbaar zijn voor rechtmatige gebruikers. |
|
/mnt/cdrom, gebruik je het volgende commando om het te importeren in de sleutelring (een databse van vertrouwde sleutels op het systeem):
rpm --import /mnt/cdrom/RPM-GPG-KEY
rpm -qa gpg-pubkey*
gpg-pubkey-db42a60e-37ea5438
rpm -qi commando uit gevolgd door de output van het vorige commando, zoals in dit voorbeeld:
rpm -qi gpg-pubkey-db42a60e-37ea5438
rpm -K /tmp/updates/*.rpm
gpg OK terug als de GPG sleutel met succes geverifieerd is. Als dat niet het geval is, wees er dan zeker van dat je de juiste Fedora publieke sleutel gebruikt en controleer ook de bron van de inhoud. Pakketten die niet voldoen aan de GPG verificatie moeten niet geinstalleerd worden, omdat ze door derden veranderd kunnen zijn.
rpm -Uvh /tmp/updates/*.rpm
rpm -ivh /tmp/updates/<kernel-pakket>
<kernel-pakket> in het vorige voorbeeld met de naam van de kernel RPM.
rpm -e <oude-kernel-pakket>
<oude-kernel-pakket> in het vorige voorbeeld met de naam van de oude kernel RPM.
glibc, welke gebruikt worden door een aantal toepassingen en services. Toepassingen die een gedeelde bibliotheek gebruiken laden de gedeelde code als de toepassing opgestart wordt, dus alle toepassingen die de vernieuwde bibliotheek gebruiken moeten gestopt en opnieuw opgestart worden.
lsof commando zoals in het volgende voorbeeld:
lsof /lib/libwrap.so*
tcp_wrappers pakket vernieuwd wordt.
sshd, vsftpd, en xinetd.
/sbin/service commando uit te voeren zoals in het volgende voorbeeld:
/sbin/service <service-naam> restart
<service-naam> met de naam van de service, zoals sshd.
xinetd servicesxinetd super service draaien alleen als er een actieve verbinding is. Voorbeelden van services die gecontroleerd worden door xinetd zijn Telnet, IMAP, en POP3.
xinetd iedere keer als een nieuw verzoek wordt ontvangen, worden verbindingen die optreden na de vernieuwing afgehandeld door de vernieuwde software. Als er echter active verbindingen zijn op het moment dat de door xinetd gecontroleerde service vernieuwd wordt, blijven die werken met de oude versie van de software.
xinetd gecontroleerd wordt te stoppen, vernieuw je het pakket voor de service en daarna stop je alle processen die op dat moment draaien. Om te bepalen of het proces draait gebruik je het ps commando en je gebruikt daarna het kill of killall commando om de huidige instances van de service te stoppen.
imap pakketten wordt vrijgegeven, vernieuw je de pakketten, en daarna type je het volgende commando in als root in een shell prompt:
ps -aux | grep imap
kill <PID>
kill -9 <PID>
<PID> met het proces identificatie nummer (dat je vindt in de tweede kolom van de output van het ps commando) voor een IMAP sessie.
killall imapd
[1] http://law.jrank.org/pages/3791/Kevin-Mitnick-Case-1999.html
[2] http://www.livinginternet.com/i/ia_hackers_levin.htm
[3] http://www.theregister.co.uk/2007/05/04/txj_nonfeasance/
[4] http://www.healthcareitnews.com/story.cms?id=9408
[5] http://www.internetworldstats.com/stats.htm
[6] http://www.cert.org
[7] http://www.cert.org/stats/fullstats.html
[8] http://www.newsfactor.com/perl/story/16407.html
[9] http://www.csoonline.com/article/454939/The_Global_State_of_Information_Security_
[10] http://www.sans.org/resources/errors.php
cat commando.
/sbin/grub-md5-crypt
/boot/grub/grub.conf. Open het bestand en onder de timeout regel in de hoofd sectie van het document, voeg je de volgende regel toe:
password --md5 <wachtwoord-hash>
/boot/grub/grub.conf bestand bewerkt worden.
title regel van het operating systeem dat je wilt beveiligen, en voeg een regel toe met het lock commando direct onder deze.
title DOS lock
password regel moet aanwezig zijn in de hoofd sectie van het /boot/grub/grub.conf bestand om deze methode goed te laten werken. Anders kan een aanvaller toegang krijgen tot de GRUB bewerker interface en de lock regel verwijderen.
lock regel toe aan de strofe, gevolgd door een password regel.
title DOS lock password --md5 <wachtwoord-hash>
/etc/passwd bestand wat leesbaar is voor iedereen, wat het systeem gevoelig maakt voor offline wachtwoordkraak aanvallen. Als een indringer toegang tot de machine kan krijgen als een gewone gebruiker, kan hij het /etc/passwd bestand naar zijn eigen machine kopiëren en daarna er een aantal wachtwoordkraak programma's op los laten. Als er een onveilig wachtwoord in het bestand is, is het slechts een kwestie van tijd voordat de wachtwoordkraker het ontdekt.
/etc/shadow, welke alleen leesbaar is door de root gebruiker.
odreddw,gwngh.
7 in voor d en het @ symbool voor w:
o7re77@,g@ngh.
H.
o7re77@,g@ngH.
passwd gebruiken, die bewust is van Pluggable Authentication Manager (PAM) en daarom controleert of het wachtwoord te kort is of op een andere manier eenvoudig te kraken. Deze controle wordt gedaan door de pam_cracklib.so PAM module. Om dat PAM aan te passen is, is het mogelijk om meer wachtwoord integriteit checkers toe te voegen, zoals pam_passwdqc (beschikbaar op http://www.openwall.com/passwdqc/) of een nieuwe module te schrijven. Voor een lijst van beschikbare PAM modules, refereer je naar http://www.kernel.org/pub/linux/libs/pam/modules.html. Voor meer informatie over PAM, refereer je naar Paragraaf 2.4, “Pluggable Authentication Modules (PAM)”.
chage commando of de grafische Gebruikersbeheerder (system-config-users) toepassing.
-M optie van het chage commando specificeert het maximale aantal dagen dat een wachtwoord geldig is. Bijvoorbeeld, om het wachtwoord van een gebruiker in te stellen om na 90 dagen te verlopen, gebruik je het volgende commando:
chage -M 90 <gebruikersnaam>
<gebruikersnaam> met de naam van de gebruiker. Om wachtwoord verloop uit te zetten, wordt gewoonlijk een waarde van 99999 na de -M optie ingevuld (dit komt overeen met 273 jaren).
chage commando ook in interactieve mode gebruiken om meerdere wachtwoord verlopen en andere account details te veranderen. Gebruik het volgende commando om in de interactieve mode te komen:
chage <gebruikersnaam>
[root@interch-dev1 ~]# chage davido Changing the aging information for davido Enter the new value, or press ENTER for the default Minimum Password Age [0]: 10 Maximum Password Age [99999]: 90 Last Password Change (YYYY-MM-DD) [2006-08-18]: Password Expiration Warning [7]: Password Inactive [-1]: Account Expiration Date (YYYY-MM-DD) [1969-12-31]: [root@interch-dev1 ~]#
system-config-users op de shell prompt.

sudoof met su. Een setuid programma is een programma dat werkt met de gebruikers ID (UID) van de eigenaar van het programma in plaats van de gebruiker van het programma. Zulke programma's worden aangegeven met een s in de eigenaars sectie van een lange formaat listing, zoals in het volgende voorbeeld:
-rwsr-xr-x 1 root root 47324 May 1 08:09 /bin/su
s kan in hoofd letter of kleine letter zijn. Als het in hoofdletter verschijnt, betekent het dat de achterliggende toestemmings bit niet gezet is.
pam_console.so, worden sommige activiteiten die normaal alleen voor de root gebruiker gereserveerd zijn, zoals opnieuw opstarten en het aankoppelen van verwijderbare media, toegestaan aan de eerste gebruiker die inlogt op de fysieke console (refereer naar Paragraaf 2.4, “Pluggable Authentication Modules (PAM)” voor meer informatie over de pam_console.so module). Echter, andere belangrijke systeembeheer taken, zoals het veranderen van netwerk instellingen, een nieuwe muis configureren, of netwerkapparaten aankoppelen, zijn niet mogelijk zonder beheersrechten. Het resultaat is dat systeembeheerders moeten beslissen hoeveel toegang de gebruikers op hun netwerk moeten krijgen.
| Methode | Beschrijving | Effecten | Het geen gevolgen voor | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Het veranderen van de root shell |
Bewerk het /etc/passwd bestand en verander de shell van /bin/bash naar /sbin/nologin.
|
|
| |||||||||||||||
| Root toegang onmogelijk maken via elk console apparaat (tty). |
Een leeg /etc/securetty bestand voorkomt root login op elk apparaat dat aangesloten is op de computer.
|
|
| |||||||||||||||
| Root SSH login niet toestaan |
Bewerk het /etc/ssh/sshd_config bestand en zet de PermitRootLogin parameter op no.
|
|
| |||||||||||||||
| Gebruik PAM om root toegang naar services te beperken. |
Bewerk het bestand voor de doel service in de /etc/pam.d/ map. Wees er zeker van dat pam_listfile.so nodig is voor authenticatie.[a]
|
|
| |||||||||||||||
[a] Refereer naar Paragraaf 2.1.4.2.4, “Root onmogelijk maken met PAM” voor details. | ||||||||||||||||||
/sbin/nologin in het /etc/passwd bestand. Dit belet toegang tot het root account met commando's die een shell nodig hebben, zoals de su en ssh commando's.
sudo commando, hebben nog steeds toegang naar het shell account.
/etc/securetty bestand te bewerken. Dit bestand bevat een lijst van alle apparaten waarop de root gebruiker in kan loggen. Als dit bestand niet bestaat, kan de root gebruiker inloggen op elk communicatie apparaat op het systeem, of dit nu een console is of een ruwe netwerk interface. Dit is gevaarlijk, omdat een gebruiker op zijn machine kan inloggen als root met Telnet, die het wachtwoord als leesbare tekst over het netwerk stuurt. Standaard staat het /etc/securetty bestand van Fedora de root gebruiker alleen toe om in te loggen op de console die fysiek aangekoppeld is aan de machine. Om te verkomen dat root inlogt, verwijder je de inhoud van dit bestand door het intypen van het volgende commando:
echo > /etc/securetty
/etc/securetty bestand voorkomt niett dat de root gebruiker inlogt op afstand met gebruik van de OpenSSH suite van gereedschappen omdat de console niet geopend wordt tot na de authenticatie.
/etc/ssh/sshd_config) te bewerken. Verander de regel die er uitziet als:
PermitRootLogin yes
PermitRootLogin no
kill -HUP `cat /var/run/sshd.pid`
/lib/security/pam_listfile.so module, een hoge flexibiliteit in het verbieden van specifieke accounts. De beheerder kan deze module gebruiken om te refereren naar een lijst van gebruikers die niet in mogen loggen. Hieronder is een voorbeeld van het gebruik van deze module voor de vsftpd FTP server in het /etc/pam.d/vsftpd PAM configuratie bestand (de \ karakter op het eind van de eerste regel in het volgende voorbeeld is niet nodig als het commando in een regel past):
auth required /lib/security/pam_listfile.so item=user \ sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
/etc/vsftpd.ftpusers bestand te raadplegen en toegang naar de service te verbieden voor elke gebruiker in de lijst. De beheerder kan de naam van dit bestand veranderen, en kan aparte lijsten voor elke service hebben of een centrale lijst gebruiken voor het verbieden van toegang naar meerdere services.
/etc/pam.d/pop en /etc/pam.d/imap voor mail clienten, of /etc/pam.d/ssh voor SSH clienten.
su of sudo.
su commandosu commando uitvoert, wordt deze gevraagd naar het root wachtwoord en, na authenticatie, krijgt deze een root shell prompt.
su commando, is de gebruiker de root gebruiker en heeft absolute beheerstoegang tot het systeem[13]. Bovendien ,zodra een gebruiker root wordt, is het voor hen mogelijk om het su commando te gebruiken om te veranderen naar elke andere gebruiker op het systeem zonder naar een wachtwoord gevraagd te worden.
usermod -G wheel <gebruikersnaam>
<gebruikersnaam> met de gebruikersnaam die je wilt toevoegen aan de wheel groep.
system-config-users op de shell prompt.
su (/etc/pam.d/su) in een tekstbewerker en verwijder de commentaar # in de volgende regel:
auth required /lib/security/$ISA/pam_wheel.so use_uid
wheel dit programma kunnen gebruiken.

wheel groep.
sudo commandosudo commando biedt een andere benadering voor het geven van beheerstoegang aan gebruikers. Als vertrouwde gebruikers een beheerscommando vooraf laten gaan door sudo, worden ze naarhun eigen wachtwoord gevraagd. Als ze authentiek verklaard zijn en aangenomen dat het commando toegestaan is, wordt daarna het beheerscommando uitgevoerd alsof ze de root gebruiker zijn.
sudo commando is als volgt:
sudo <commando>
<commando> vervangen worden door een commando dat normaal gereserveerd is voor de root gebruiker, zoals mount.
sudo commando moeten er aan denken om uit te loggen voordat ze van hun machine weglopen, omdat gebruikers van sudo het commando opnieuw kunnen gebruiken binnen een periode van vijf minuten zonder dat er naar hun wachtwoord gevraagd wordt. Deze instelling kan veranderd worden met het configuratiebestand, /etc/sudoers.
sudo commando staat een hoge mate van flexibiliteit toe. Bijvoorbreeld, alleen gebruikers die vermeld zijn in het /etc/sudoers configuratiebestand hebben het recht om het sudo commando te gebruiken en het commando wordt uitgevoerd in de shell van de gebruiker, niet in een root shell. Dit betekent dat de root shell helemaal uitgezet kan worden, zoals getoond is in Paragraaf 2.1.4.2.1, “De root shell onmogelijk maken”.
sudo commando biedt ook een uitgebreid controle spoor. Elke succesvolle authenticatie wordt vastgelegd in het bestand /var/log/messages en het opgegeven commando wordt tezamen met de gebruikersnaam van de opdrachtgever weggeschreven naar het bestand /var/log/secure.
sudo commando is dat een beheerder verschilende gebruikers toegang kan geven tot specifieke commando's gebaseerd op hun behoefte.
sudo configuratiebestand, /etc/sudoers, willen bewerken, moeten het visudo commando gebruiken.
visudo in en je voegt een regel die lijkt op de volgende toe in de gebruikersrechten specificatie sectie:
jan ALL=(ALL) ALL
jan, sudo kan gebruiken vanaf elke host en elk commando kan uitvoeren.
sudo:
%users localhost=/sbin/shutdown -h now
/sbin/shutdown -h now mag opgeven zolang het opgegeven wordt vanaf de console.
sudoers heeft een gedetaileerde lijst van opties voor dit bestand.
cupsd — De standaard printer server in Fedora.
lpd — Een alternatieve print server.
xinetd — Een super server die verbindingen controleert van een reeks van ondergeschikte servers, zoals gssftp en telnet.
sendmail — Het Sendmail Mail Transport Agent (MTA) is standaard aangezet, maar luitert alleen naar verbindingen van de localhost.
sshd — De OpenSSH server, wat een veilige vervanging is voor Telnet.
cupsd niet draaien. Hetzelfde geldt voor portmap. Als je geen NFSv3 volumes aankoppelt of NIS (de ypbind service) gebruikt, dan moet portmap uitgezet worden.

netdump, verzenden de inhoud van het geheugen onversleuteld over het netwerk. Geheugen dumps kunnen wachtwoorden bevatten of, nog erger, database ingangen en andere gevoelige informatie.
finger en rwhod onthullen informatie over gebuikers van het systeem.
rlogin, rsh, telnet, en vsftpd.
rlogin, rsh, en telnet) moeten vermeden worden ten gunste van SSH. Refereer naar Paragraaf 2.1.7, “Communicatie greedschappen met verbeterde beveiliging” voor meer informatie over sshd.
finger
authd (deze werd identd genoemd in vorige Fedora vrijgaves.)
netdump
netdump-server
nfs
rwhod
sendmail
smb (Samba)
yppasswdd
ypserv
ypxfrd
system-config-firewall). Dit gereedschap maakt ruime iptables regels voor een algemene firewall door het gebruik van een controle paneel interface.
iptables waarschijnlijk een betere optie. Refereer naar Paragraaf 2.8, “Firewalls” voor meer informatie. Refereer naar Paragraaf 2.9, “IPTables” voor een uitgebreide gids voor het iptables commando.
telnet en rsh. OpenSSH bevat een netwerk service sshd genaamd en drie commandoregel client toepassingen:
ssh — Een veilige console toegang client op afstand.
scp — Een veilig copiëer commando op afstand.
sftp — Een veilige pseudo-ftp client die interactieve bestand overdracht sessies toestaat.
sshd service inherent veilig is, moet de service up-to-date worden gehouden om beveiligingsdreigingen te voorkomen. Refereer naar Paragraaf 1.5, “Beveiligings vernieuwingen” voor meer informatie.
xinetd, een super service die extra toegangs, logging, verbindings, omleidings, en hulpbron gebruiks controle biedt.
xinetd om redundantie te maken voor service toegangscontrole. Refereer naar Paragraaf 2.8, “Firewalls” meer informatie over het maken van firewalls met iptables commando's.
hosts_options manula pagina voor informatie over de TCP wrapper functionaliteit en controle taal.
banner optie.
vsftpd. Om te beginnen maak je een banner bestand. Het kan zich overal op het systeem bevinden, maar het moet dezelfde naam hebben als de daemon. Voor dit voorbeeld, wordt het bestand /etc/banners/vsftpd genoemd en bevat de volgende regel:
220-Hello, %c 220-All activity on ftp.example.com is logged. 220-Inappropriate use will result in your access privileges being removed.
%c symbool levert client informatie, zoals de gebruikersnaam en hostnaam, of de gebruikersnaam en IP adres om de verbinding nog intimiderender te maken.
/etc/hosts.allow bestand:
vsftpd : ALL : banners /etc/banners/
spawn instructie.
/etc/hosts.deny bestand om alle verbindingspogingen van dat netwerk te verbieden, en log de pogingen in een speciaal bestand:
ALL : 206.182.68.0 : spawn /bin/ 'date' %c %d >> /var/log/intruder_alert
%d symbool levert de naam van de service waarnaar de aanvaller toegang probeert te krijgen.
spawn instructie in het /etc/hosts.allow bestand.
spawn instructie elk shell commando uitvoert, is het een goed idee om een speciaal script te maken om de beheerder te waarschuwen of een aantal commando's uit te voeren in het geval dat een bepaalde client probeert met de server te verbinden.
severity optie te gebruiken.
emerg vlag in de log bestanden in plaats van de standaard vlag, info, en je verbiedt de verbinding.
/etc/hosts.deny:
in.telnetd : ALL : severity emerg
authpriv logging faciliteit, maar verhoogt de prioriteit van de standaard waarde info naar emerg, welke de log boodschappen rechtstreeks naar de console stuurt.
xinetd om een valluik service in te stellen en het te gebruiken om hulpbron niveau's te controleren die beschikbaar zijn voor een gegeven xinetd service. Het instellen van hulpbron limieten kan helpen Weigering van service (DoS) aanvallen af te slaan. Refereer naar de manual pagina's voor xinetd en xinetd.conf voor een lijst van beschikbare opties.
xinetd is de mogelijkheid om hosts toe te voegen aan een globale no_access lijst. Hosts op die lijst wordt het verboden om latere verbindingen te maken naar services die beheerd worden door xinetd voor een specifieke periode of totdat xinetd opnieuw is gestart. Je kunt dit doen door de SENSOR atribuut te gebruiken. Dit is een eenvoudige manier om hosts te blokkeren die proberen om de poorten van de server te scannen.
SENSOR is een service te kiezen die je niet van plan bent te gebruiken. Voor dit voorbeeld wordt Telnet gebruikt.
/etc/xinetd.d/telnet en verander de flags regel in:
flags = SENSOR
deny_time = 30
deny_time attribuut zijn FOREVER, welke het verbod laat duren totdat xinetd opnieuw is opgestart, en NEVER, die de verbinding toestaat en het logt.
disable = no
SENSOR een goede manier is om verbindingen van ongewenste hosts te detecteren en te stoppen, heeft het twee nadelen:
SENSOR draait kan een Weigering van service aanval opzetten tegen bepaalde hosts door hun IP adressen te vervalsen en te verbinden met de verboden poort.
xinetd is de mogelijkheid om hulpbron limieten in te stellen voor de services die het controleert.
cps = <number_of_connections> <wait_period> — Beperkt de snelheid van binnenkomende verbindingen. Deze instructie heeft twee argumenten:
<number_of_connections> — Het aantal verbindingen per seconde die behandeld worden. Als de snelheid van de binnenkomende verbindingen hoger wordt, wordt de service tijdelijk uitgezet. De standaard waarde is vijftig (50).
<wait_period> — Het aantal seconden die gewacht wordt totdat de service weer aangezet wordt nadat het is uitgezet. Het standaard interval is tien (10) seconden.
instances = <number_of_connections> — Specificeert het totale aantal verbindingen die toegstaan zijn voor een service. Deze instructie acceptert een geheel getal of UNLIMITED.
per_source = <number_of_connections> — Specificeert het aantal verbindingen toegestaan naar een service voor iedere host. Deze instructie accepteert een geheel getal of UNLIMITED.
rlimit_as = <number[K|M]> — Specificeert de hoeveelheid geheugen adres ruimte die de service kan bezetten in kilobytes of megabytes. Deze instructie accepteert een geheel getal of UNLIMITED.
rlimit_cpu = <number_of_seconds> — Specificeert de tijd in seconden die een service magen vragen van de CPU. Deze instructie accepteert een geheel getal of UNLIMITED.
xinetd service het systeem overspoelt, resulterende in een weigering van service.
portmap service is een dynamische poort toekennings daemon voor RPC services zoals NIS en NFS. Het heeft zwakke authenticatie mechanismes en heeft de mogelijkheid om een brede reeks poorten toe te kennen aan de services die het controleert. Om deze redenen is het moeilijk te beveiligen.
Portmap beveiligen heeft alleen effect voor NFSv2 en NFSv3 implementaties, omdat NFSv4 het niet langer nodig heeft. Als je van plan bent om een NFSv2 of NFSv3 server te maken, is portmap vereist, en is de volgende paragraaf van toepassing.
portmap service omdat het geen ingebouwde vorm van authenticatie bevat.
portmap service te beperken, is het een goed idee om iptables regels toe te voegen aan de server en de toegang te beperken tot specifieke netwerken.
portmap service) vanaf het 192.168.0.0/24 netwerk. De tweede staat TCP verbindingen toe naar dezelfde poort vanaf de localhost. Dit is nodig voor de sgi_fam service gebruikt door Nautilus. Alle andere pakketten worden genegeerd.
iptables -A INPUT -p tcp -s! 192.168.0.0/24 --dport 111 -j DROP iptables -A INPUT -p tcp -s 127.0.0.1 --dport 111 -j ACCEPT
iptables -A INPUT -p udp -s! 192.168.0.0/24 --dport 111 -j DROP
ypserv genaamd, welke wordt gebruikt in combinatie met portmap en andere gerelateerde services om overzichten van gebruikersnamen, wachtwoorden en andere gevoelige informatie te verspreiden naar elke computer die beweert zich binnen het domein te bevinden.
/usr/sbin/rpc.yppasswdd — Ook de yppasswdd service genoemd, deze daemon staat gebruikers toe om hun NIS wachtwoorden te veranderen.
/usr/sbin/rpc.ypxfrd — Ook de ypxfrd service genoemd, deze daemon is verantwoordelijk voor NIS map verplaatsingen over het netwerk.
/usr/sbin/yppush — Deze toepassing geeft veranderde NIS databases door aan meerdere NIS servers.
/usr/sbin/ypserv — Dit is de NIS server daemon.
portmap service beveiligt zoals aangegeven in Paragraaf 2.2.2, “Portmap beveiligen”, en daarna de volgende zaken beschouwt, zoals netwerk planning.
/etc/passwd map zien:
ypcat -d<NIS_domein>-h<DNS_hostnaam>passwd
/etc/shadow bestand verkrijgen met het volgende commando:
ypcat -d<NIS_domein>-h<DNS_hostnaam>shadow
/etc/shadow bestand niet bewaard in een NIS map.
o7hfawtgmhwg.domain.com. Maak op dezelfde manier een andere willekeurige NIS domeinnaam. Dit maakt het veel moeilijker voor een aanvaller om toegang te krijgen tot de NIS server.
/var/yp/securenets bestand/var/yp/securenets bestand leeg is of niet bestaat (zoals het geval is na een standaard installatie), luistert NIS naar alle netwerken. Een van de eerste dingen om te doen is om netmasker/netwerk paren in het bestand te plaatsen zodat ypserv alleen verzoeken van het juiste netwerk beantwoordt.
/var/yp/securenets bestand:
255.255.255.0 192.168.0.0
/var/yp/securenets bestand aangemaakt is.
rpc.yppasswdd — de daemon die gebruikers toestaat hun login wachtwoord te veranderen. Poorten toekennen aan de andere twee NIS server daemons, rpc.ypxfrd en ypserv, staat toe om firewall regels te maken om de NIS server daemons verder te beschermen tegen indringers.
/etc/sysconfig/network:
YPSERV_ARGS="-p 834" YPXFRD_ARGS="-p 835"
iptables -A INPUT -p ALL -s! 192.168.0.0/24 --dport 834 -j DROP iptables -A INPUT -p ALL -s! 192.168.0.0/24 --dport 835 -j DROP
/etc/shadow map verstuurd wordt over het netwerk. Als een indringer toegang krijgt tot een NIS domein en het netwerkverkeer besnuffelt, kan deze gebruikersnamen en wachtwoord hashes verzamelen. Met genoeg tijd, kan een wachtwoord kraakprogramma zwakke wachtwoorden raden, en een aanvaller kan toegang krijgen tot een geldig account op het netwerk.
portmap service niet langer nodig zoals aangegeven is in Paragraaf 2.2.2, “Portmap beveiligen”. NFS verkeer gebruikt nu TCP in alle versies, in plaats van UDP, en vereist dit als NFSv4 gebruikt wordt. NFSv4 bevat nu Kerberos gebruiker en groep authenticatie, als onderdeel van de RPCSEC_GSS kernel module. Informatie over portmap wordt nog steeds gegeven, omdat Fedora NFSv2 en NFSv3 ondersteunt, welke beide portmap nog gebruiken.
/etc/exports bestand. Let er op om geen onnodige spaties toe te voegen bij het bewerken van dit bestand.
/etc/exports bestand deelt de map /tmp/nfs/ met de host bob.example.com met lees/schrijf rechten.
/tmp/nfs/ bob.example.com(rw)
/etc/exports bestand, echter, deelt dezelfde map met de host bob.example.com met alleen-lezen rechten en deelt het met de wereld met lees/schrijf rechten dankzij de enkele spatie achter de hostnaam.
/tmp/nfs/ bob.example.com (rw)
showmount commando om te verifieren wat er gedeeld wordt:
showmount -e <hostnaam>
no_root_squash optie nietnfsnobody gebruiker, een gebruikersaccount zonder rechten. Dit verandert de eigenaar van alle door root aangemaakte bestanden naar nfsnobody, wat verhindert dat programma's binnen gehaald worden waarbij de setuid bit gezet is.
no_root_squash wordt gebruikt, zijn root gebruikers op afstrand in staat om elk bestand in het gedeelde bestandssysteem te veranderen en toepassingen besmet met een trojaan achter te laten die andere gebruikers onopzettelijk uitvoeren.
MOUNTD_PORT — TCP en UDP poort voor mountd (rpc.mountd)
STATD_PORT — TCP en UDP poort voor status (rpc.statd)
LOCKD_TCPPORT — TCP poort voor nlockmgr (rpc.lockd)
LOCKD_UDPPORT — UDP poort nlockmgr (rpc.lockd)
rpcinfo -p commando uit op de NFS server om te zien welke poorten en RPC progragramma's gebruikt worden.
chown root <map_naam>
chmod 755 <map_naam>
/etc/httpd/conf/httpd.conf):
FollowSymLinks/ te maken.
IndexesUserDirUserDir instructie is standaard uitgezet omdat dit de aanwezigheid van een gebruikersaccount op het systeem kan bevestigen. Om het bladeren door gebruikersmappen op de server toe te staan, gebruik je de volgende instructies:
UserDir enabled UserDir disabled root
/root/. Om gebruikers toe te voegen aan de lijst uitgezette account, voeg je een door spaties gescheiden lijst van gebruikers toe aan de UserDir disabled regel.
IncludesNoExec instructie niet. Standaard kan de Server-Side Includes (SSI) module geen commando's uitvoeren. Het wordt aanbevolen dat je deze instelling niet verandert behalve als het obsoluut noodzakelijk is, om dat het in potentie een aanvaller in staat stelt om commando's op het systeem uit te voeren.
gssftpd — Een ftp daemon gebaseerd op xinetd en bewust van Kerberos, die geen authenticatie informatie over het netwerk verstuurt.
tux) — Een kernel-ruimte Web server met FTP mogelijkheden.
vsftpd — Een op zich staande, op veiligheid georienteerde uitvoering van de FTP service.
vsftpd FTP service.
vsftpd te veranderen, voeg je de volgende instructie toe aan het /etc/vsftpd/vsftpd.conf bestand:
ftpd_banner=<vul_hier_begroeting_in>
<vul_hier_begroeting_in> in bovenstaande instructie met de tekst van de begroetingsboodschap.
/etc/banners/. Het koptekst bestand voor FTP verbindingen is in dit voorbeeld /etc/banners/ftp.msg. Hieronder is een voorbeeld hoe zo'n bestand er uit kan zien:
######### # Hallo, alle activiteit op ftp.example.com wordt gelogged. #########
220 zoals opgegeven is in Paragraaf 2.2.1.1.1, “TCP wrappers en verbindings banners”.
vsftpd, voeg je de volgende instructie toe aan het /etc/vsftpd/vsftpd.conf bestand:
banner_file=/etc/banners/ftp.msg
/var/ftp/ map activeert het anonymous account.
vsftpd pakket. Dit pakket zet een mapstructuur op voor anonieme gebruikers en stelt de rechten voor mappen in op alleen-lezen voor anonieme gebruikers.
/var/ftp/pub/.
mkdir /var/ftp/pub/upload
chmod 730 /var/ftp/pub/upload
drwx-wx--- 2 root ftp 4096 Feb 13 20:05 upload
vsftpd de volgende regel toe aan het /etc/vsftpd/vsftpd.conf bestand:
anon_upload_enable=YES
vsftpd uit te zetten, voeg je de volgende instructie toe aan /etc/vsftpd/vsftpd.conf:
local_enable=NO
sudo rechten, is dit het eenvoudigst te doen met een PAM lijst zoals beschreven in Paragraaf 2.1.4.2.4, “Root onmogelijk maken met PAM”. Het PAM configuratie bestand voor vsftpd is /etc/pam.d/vsftpd.
vsftpd uit te zetten, voeg je de gebruikersnaam toe aan /etc/vsftpd.ftpusers
/etc/mail/sendmail.mc, wordt de effectiviteit van zulke aanvallen beperkt.
confCONNECTION_RATE_THROTTLE — Het aantal verbindingen die de server per seconde kan ontvangen. Standaard heeft Sendmail geen limiet op het aantal verbindingen. Als een limiet ingesteld is en bereikt wordt, worden verdere verbindingen vertraagd.
confMAX_DAEMON_CHILDREN — Het maximale aantal child processen die de server kan opstarten. Standaard kent Sendmail geen limiet toe aan het aantal child processen. Als een limiet ingesteld is en bereikt wordt, worden verdere verbindingen vertraagd.
confMIN_FREE_BLOCKS — Het minimale aantal vrije blokken die beschikbaar moet zijn voor de server om mail te accepteren. De standaard is 100 blokken.
confMAX_HEADERS_LENGTH — De maximaal aanvaardbare grootte (in bytes) van een bericht koptekst.
confMAX_MESSAGE_SIZE — De maximaal aanvaardbare grootte (in bytes) voor een enkel bericht.
/var/spool/mail/, nooit in een NFS gedeelde volume.
SECRPC_GSS kernel module geen op UID gebaseerde authenticatie gebruikt. Het wordt echter nog steeds als een goede praktijk beschouwd on de mail spool map niet op een NFS gedeelde volume te plaatsen.
/etc/passwd bestand moeten ingesteld worden met /sbin/nologin (met de root gebruiker als mogelijke uitzondering).
netstat -an of lsof -i. Deze methode is minder betrouwbaar omdat deze programma's niet met de machine verbinden vanaf het netwerk, maar in plaats daarvan controleren wat er op de server draait. Om deze reden zijn deze toepassingen vaak doelen voor aanvallers. Crackers proberen hun sporen te verbergen als ze ongeoorloofde poorten openen door het vervangen van netstat en lsof met hun eigen, veranderde versies.
nmap.
nmap -sT -O localhost
Starting Nmap 4.68 ( http://nmap.org ) at 2009-03-06 12:08 EST Interesting ports on localhost.localdomain (127.0.0.1): Not shown: 1711 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 111/tcp open rpcbind 113/tcp open auth 631/tcp open ipp 834/tcp open unknown 2601/tcp open zebra 32774/tcp open sometimes-rpc11 Device type: general purpose Running: Linux 2.6.X OS details: Linux 2.6.17 - 2.6.24 Uptime: 4.122 days (since Mon Mar 2 09:12:31 2009) Network Distance: 0 hops OS detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 1.420 seconds
portmap draait door de aanwezigheid van de sunrpc service. Er is echter ook een geheimzinnige service op poort 834. Om te controleren of de poort verbonden is met de officiele lijst van bekende services, type je:
cat /etc/services | grep 834
netstat of lsof Om poort 834 te controleren met netstat, gebruik je het volgende commando:
netstat -anp | grep 834
tcp 0 0 0.0.0.0:834 0.0.0.0:* LISTEN 653/ypbind
netstat is geruststellend omdat een cacker die een poort op een gekraakt systeem stiekem opent het niet zal toestaan dat dit ontdekt wordt met dit commando. De [p] optie laat ook het proces ID (PID) zien van de service die de poort opende. In dit geval behoort de open poort toe aan ypbind (NIS), wat een RPC service is die in combinatie met de portmap service afgehandeld wordt.
lsof commando laat soortgelijke informatie zien als netstat omdat het ook in staat is om open poorten te verbinden met services:
lsof -i | grep 834
ypbind 653 0 7u IPv4 1319 TCP *:834 (LISTEN) ypbind 655 0 7u IPv4 1319 TCP *:834 (LISTEN) ypbind 656 0 7u IPv4 1319 TCP *:834 (LISTEN) ypbind 657 0 7u IPv4 1319 TCP *:834 (LISTEN)
lsof, netstat, nmap, en services voor meer informatie.
nss-tools pakket geladen hebt
certutil -A -d /etc/pki/nssdb -n "root ca cert" -t "CT,C,C" -i ./ca_cert_in_base64_format.crt
/etc/pam_pkcs11/pam_pkcs11.conf bestand, en je zoekt de volgende regel:
enable_ocsp = false;
enable_ocsp = true;
/etc/pam_pkcs11/cn_map.
cn_map bestand:
MY.CAC_CN.123454 -> mijnloginid
MY.CAC_CN.123454de Common Name op jouw CAC is en mijnloginid je UNIX login ID is.
pklogin_finder debug
pklogin_finder gereedschap in de debug mode draait terwijl een in dienst genomen smart card ingebracht is, probeert het informatie te geven over de geldigheid van de certificaten, en als dat lukt probeert het een login ID te koppelen aan de certificaten op de card.


about:config om de lijst van de huidige configuratie opties te laten zien.
negotiate om de lijst van opties te beperken.
.example.com.

kinit om Kerberos kaartjes op te halen. Om de lijst van beschikbare kaartjes te laten zien, type je klist. Het volgende geeft een voorbeeld output van deze commando's:
[user@host ~] $ kinit
Password for user@EXAMPLE.COM:
[user@host ~] $ klist
Ticket cache: FILE:/tmp/krb5cc_10920
Default principal: user@EXAMPLE.COM
Valid starting Expires Service principal
10/26/06 23:47:54 10/27/06 09:47:54 krbtgt/USER.COM@USER.COM
renew until 10/26/06 23:47:54
Kerberos 4 ticket cache: /tmp/tkt10920
klist: You have no tickets cached
export NSPR_LOG_MODULES=negotiateauth:5 export NSPR_LOG_FILE=/tmp/moz.log
/tmp/moz.log, en kan je misschien een idee geven over het probleem. Bijvoorbeeld:
-1208550944[90039d0]: entering nsNegotiateAuth::GetNextToken() -1208550944[90039d0]: gss_init_sec_context() failed: Miscellaneous failure No credentials cache found
kinit uitvoeren.
kinit succesvol op je machine kunt uitvoeren maar je kunt geen authenticatie uitvoeren, zul je misschien zoiets als het volgende in het log bestand zien:
-1208994096[8d683d8]: entering nsAuthGSSAPI::GetNextToken() -1208994096[8d683d8]: gss_init_sec_context() failed: Miscellaneous failure Server not found in Kerberos database
/etc/krb5.conf bestand hebt. Bijvoorbeeld:
.example.com = EXAMPLE.COM example.com = EXAMPLE.COM
/etc/pam.d/ map bevat de PAM configuratie bestanden voor elke toepassing die zich bewust is van PAM. In eerdere versies van PAM werd het /etc/pam.conf bestand gebruikt, maar dit bestand is nu verouderd en wordt alleen gebruikt als de /etc/pam.d/ map niet betaat.
/etc/pam.d/ map. Ieder bestand in deze map heeft dezelfde naam als de service waarvoor het de toegang controleert.
/etc/pam.d/ map. Bijvoorbeeld, het login programma definieert zijn service naam als login en installeert het /etc/pam.d/login PAM configuratie bestand.
<module interface><controle vlag><module naam><module argumenten>
auth — Deze module geeft authenticatie voor gebruik. Bijvoorbeeld, het verzoekt en verifieert de geldigheid van een wachtwoord. Modules met deze interface kunnen ook legitimatie instellen, zoals lidmaatschap van een groep of Kerberos kaartjes.
account — Deze module interface verifieert of toegang is toegestaan. Bijvoorbeeld, het kan controleren of een gebruikersaccount verlopen is en of het een gebruiker toegestaan is op een bepaalde tijd van de dag in te loggen.
password — Deze module interface wordt gebruikt voor het veranderen van wachtwoorden van gebruikers.
session — Deze module interface configureert en beheert sessies. Modules met deze interface kunnen ook extra taken uitvoeren die nodig zijn om toegang toe te staan, zoals het aankoppelen van de persoonlijke map van de gebruiker en het beschikbaar maken van de mailbox van de gebruiker.
pam_unix.so biedt alle vier module interfaces.
auth required pam_unix.so
auth interface van de pam_unix.so module te gebruiken.
reboot commando gebruikt normaal meerdere gestapelde modules, zoals te zien is in zijn PAM configuratie bestand:
[root@MyServer ~]# cat /etc/pam.d/reboot #%PAM-1.0 auth sufficient pam_rootok.so auth required pam_console.so #auth include system-auth account required pam_permit.so
auth sufficient pam_rootok.so — Deze regel gebruikt de pam_rootok.so module om te controleren of de huidige gebruiker root is, door het verifieren dat het UID 0 is. Als deze test succes heeft, worden geen andere modules geraadpleegd en het commando wordt uitgevoerd. Als de test faalt, dan wordt de volgende module geraadpleegd.
auth required pam_console.so — Deze regel gebruikt de pam_console.so module om te proberen de gebruiker te bekrachtigen. Als deze gebruiker al ingelogd is op de console, controleert pam_console.so of er een bestand is in de /etc/security/console.apps/ map met dezelfde naam als de service naam (reboot). Als zo'n bestand bestaat, slaagt authenticatie en wordt de controle doorgegeven aan de volgende module.
#auth include system-auth — Deze regel is commentaar en wordt niet verwerkt.
account required pam_permit.so — Deze regel gebruikt de pam_permit.so module om de root gebruiker of iedereen die ingelogd is op de console toe te staan om het systeem te rebooten.
required — Het resultaat van de module moet succes zijn om de authenticatie te vervolgen. Als de test op dit punt faalt, wordt dit pas bericht aan de gebruiker totdat de rsultaten van alle module testen die naar die interface refereren compleet. zijn.
requisite — Het module resultaat moet succes zijn om de authenticatie te vervolgen. Als de test echter faalt op dit punt, wordt de gebruiker hiervan op de hoogte gebracht met een boodschap welke de eerste gefaalde required of requisite module test aangeeft.
sufficient — Het module resultaat wordt genegeerd als het faalt. Als echter het resultaat van een module met de vlag sufficient succes is en er hebben geen voorgaande modules met de vlag required gefaald, dan zijn er geen andere resultaten nodig en krijgt de gebruiker authenticatie voor de service.
optional — Het module resultaat wordt genegeerd. Een module met de vlag optional wordt alleen nodig voor succescolle authenticatie als geen andere module naar de interface refereert.
required modules worden aangeroepen is niet kritisch. Alleen de sufficient en requisite controle vlaggen maken dat de volgorde belangrijk wordt.
pam.d manual pagina en de PAM documentatie, welke zich bevindt in de /usr/share/doc/pam-<versie-nummer>/ map, waarin <versie-nummer> het versie nummer van PAM op jouw systeem is, beschrijft deze nieuwere syntax in detail.
/lib64/security/ map bewaren, wordt de map naam weggelaten omdat de toepassing gekoppeld is aan de juiste versie van libpam, welke de locatie van de juiste versie van de module kan bepalen.
pam_userdb.so module gebruikt informatie die bewaard wordt in een Berkeley DB bestand voor authenticatie van de gebruiker. Berkeley DB is is een open bron database systeem ingebouwd in vele toepassingen. De module neemt een db argument zodat Berkeley DB weet welke database gebruikt moet worden voor de gevraagde service.
pam_userdb.so regel in een PAM configuratie. De <pad-naar-bestand> is het volledige pad naar het Berkeley DB database bestand:
auth required pam_userdb.so db=<pad-naar-bestand>
/var/log/secure bestand.
#%PAM-1.0 auth required pam_securetty.so auth required pam_unix.so nullok auth required pam_nologin.so account required pam_unix.so password required pam_cracklib.so retry=3 password required pam_unix.so shadow nullok use_authtok session required pam_unix.so
#) op het begin van de regel.
auth required pam_securetty.so — Deze module verzekert dat als de gebruiker probeert in te loggen als root, de tty waarop de gebruiker ingelogd is vermeld wordt in het /etc/securetty bestand, als dat bestand bestaat.
Login incorrect boodschap.
auth required pam_unix.so nullok — Deze module vraagt de gebruiker om een wachtwoord en controleert dan het wachtwoord met gebruik van informatie die bewaard wordt in /etc/passwd en, als deze bestaat, /etc/shadow.
nullok instrueert de pam_unix.so module om een leeg wachtwoord toe te staan.
auth required pam_nologin.so — Dit is de laatse authenticatie stap. Het controleert of het /etc/nologin bestand bestaat. Als het bestaat en de gebruiker is geen root, dan faalt authenticatie.
auth modules gecontroleerd, zelfs als de eerste auth module faalt. Dit voorkomt dat de gebruiker weet in welke fase de authenticatie faalde. Deze kennis kan in handen van een aanvaller het gemakkelijker maken om te bepalen hoe het systeem gekraakt moet worden.
account required pam_unix.so — Deze module voert de nodige account verificatie uit. Bijvoorbeeld, als schaduw wachtwoorden worden gebruikt, controleert de account interface van de pam_unix.so module of het account verlopen is en of de gebruiker het wachtwoord niet veranderd heeft binnen de toegestane grace periode.
password required pam_cracklib.so retry=3 — Als een wachtwoord verlopen is, vraagt de wachtwoord component van de pam_cracklib.so module om een nieuw wachtwoord. Het test daarna het nieuwe wachtwoord om te zien of het eenvoudig bepaald kan worden door een kraak programma gebaseerd op een woordenboek.
retry=3 specificeert dat als de test de eerste keer faalt, de gebruiker nog twee kansen heeft om rrn sterk wachrwoord te maken.
password required pam_unix.so shadow nullok use_authtok — Deze regel specificeert dat als het programma het wachtwoord van de gebruiker verandert, moet het de password interface van de pam_unix.so module gebruiken om dit te doen.
shadow instrueert de module om schaduw wachtwoorden aan te maken als het wachtwoord van een gebruiker vernieuwd wordt.
nullok instrueert de module om de gebruiker toe te staan zijn wachtwoord te veranderen van een leeg wachtwoord, anders wordt een leeg wachtwoord behandeld als een account afsluiting.
use_authtok, geeft een goed voorbeeld van het belang van volgorde bij het stapelen van PAM modules. Dit argument instrueert de module om de gebruiker niet om een nieuw wachtwoord te vragen. In plaats daarvan accepteert het elk wachtwoord dat door een vorige wachtwoord module is opgenomen. Op deze manier, moeten alle nieuwe wachtwoorden de pam_cracklib.so test voor veilige wachtwoorden passeren voordat ze geaccepteerd worden.
session required pam_unix.so — De laatste regel instrueert de sessie interface van de pam_unix.so module om de sessie te beheren. Deze module logt de gebruikersnaam en het service type naar /var/log/secure aan het begin en het einde van iedere sessie. Deze module kan uitgebreid worden door het te stapelen met andere sessie modules voor extra functionaliteit.
/usr/share/doc/pam-<versie-numner>/ map, waarin <versie-nummer> het versie nummer van PAM op je systeem is.
pam_timestamp.so module. Het is belangrijk om te begrijpen hoe dit mechanisme werkt, omdat een gebruiker die wegloopt van een terminal terwijl pam_timestamp.so effectief is de machine open laat voor manipulatie voor iedereen met fysieke toegang tot de console.
pam_timestamp.so module een tijdsstempel bestand aan. Standaard wordt dit aangemaakt in de /var/run/sudo/ map. Als het tijdsstempel bestand al bestaat, vragen grafische administratieve programma's niet naar een wachtwoord. In plaats daarvan ververst de pam_timestamp.so module het tijdsstempel bestand, en reserveert eenextra vijf minuten van ongehinderde administratieve toegang.
/var/run/sudo/<gebruiker> bestand te bekijken. Voor het bureaublad, is het relevante bestand unknown:root. Als het aanwezig is en zijn tijdstempel minder dan vijf minuten oud, zijn de legitimaties geldig.

ssh, gebruik je het /sbin/pam_timestamp_check -k root commando om het tijdsstempel bestand te vernietigen.
/sbin/pam_timestamp_check -k root commando van dezelfde terminal uitvoeren als waarvan de toepassing met extra rechten hebt opgestart.
pam_timestamp.so module origineel aanriep om het /sbin/pam_timestamp_check -k commando te gebruiken. Log niet in als de root gebruiker om dit commando te gebruiken.
/sbin/pam_timestamp_check -k root </dev/null >/dev/null 2>/dev/null
pam_timestamp_check manual pagina voor meer informatie over het vernietigen van het tijdsstempel bestand met gebruik van pam_timestamp_check.
pam_timestamp.so module accepteert verscheidene instructies. De volgende zijn de twee meest gebruikte optios:
timestamp_timeout — Specificeert de periode (in seconden) waarvoor het tijdsstempel geldig is. De standaard waarde is 300 (vijf minuten).
timestampdir — Specificeert de map waarin het tidsstempel bestand bewaard wordt. De standaard waarde is /var/run/sudo/.
pam_timestamp.so module.
pam_console.so.
pam_console.so module aangeroepen door login of de grafische login programma's, gdm, kdm, en xdm. Als deze gebruiker de eerste gebruiker is die inlogt op de fysieke console — waarnaar gerefereerd wordt als de console gebruiker — geeft de module de gebruiker het eigendom van een aantal apparaten die normaal eigendom zijn van root. De console gebruiker heeft deze apparaten in eigendom totdat de laatste sessie van die gebruiker beeindigd wordt. Nadat deze gebruiker uitgelogd is, vervalt het eigendom van de apparaten terug aan de root gebruiker.
pam_console.so veranderen door de volgende bestanden te bewerken:
/etc/security/console.perms
/etc/security/console.perms.d/50-default.perms
50-default.perms bestand, moet je een nieuw bestand aanmaken (bijvoorbeeld, xx-name.perms) en de vereiste veranderingen aanbrengen. De naam van het nieuwe standaard bestand moet beginnen met een nummer groter dan 50 (bijvoorbeeld, 51-default.perms). Dit zal de standaarden in het 50-default.perms bestand overschrijven.
<console> en <xconsole> instructies in /etc/security/console.perms te veranderen naar de volgende waarden:
<console>=tty[0-9][0-9]* vc/[0-9][0-9]* :0\.[0-9] :0 <xconsole>=:0\.[0-9] :0
<xconsole> instructie helemaal te verwijderen en de <console> instructie te veranderen naar de volgende waarde:
<console>=tty[0-9][0-9]* vc/[0-9][0-9]*
/etc/security/console.apps/ map.
/sbin en /usr/sbin uit te voeren.
/sbin/halt
/sbin/reboot
/sbin/poweroff
pam_console.so module aan als een vereiste voor gebruik.
pam — Goede inleidings informatie over PAM, inclusief de structuur en doel van de PAM configuratie bestanden.
/etc/pam.conf als individuele configuratie bestanden in de /etc/pam.d/ map bespreekt. Standaard gebruikt Fedora de individuele configuratie bestanden in de /etc/pam.d/ map en negeert /etc/pam.conf zelfs als deze bestaat.
pam_console — Beschrijft het doel van de pam_console.so module. Het beschrijft ook de juiste syntax voor een regel in een PAM configuratie bestand.
console.apps — Beschrijft het formaat en de opties beschikbaar in het /etc/security/console.apps configuratie bestand, welke definieert welke toepassingen toege kend door PAM toegankelijk zijn voor de console gebruiker.
console.perms — Beschrijft het formaat en de opties beschikbaar in het /etc/security/console.perms configuratie bestand, welke permissies toegekend door PAM aan de console gebruiker beschrijft.
pam_timestamp — Beschrijft de pam_timestamp.so module.
/usr/share/doc/pam-<versie-nummer> — Bevat een System Administrators' Guide, een Module Writers' Manual, en de Application Developers' Manual, en ook een kopie van de PAM standaard, DCE-RFC 86.0, waarin <versie-nummer> het versie nummer van PAM is.
/usr/share/doc/pam-<versie-nummer>/txts/README.pam_timestamp — Bevat informatie over de pam_timestamp.so PAM module, waarin <versie-nummer> het versie nummer van PAM is.
iptables gebaseerde firewall filtert netwerkpakketten uit die niet welkom zijn in de netwerk stack van de kernel. Voor netwerk services die het gebruiken, voegen TCP Wrappers een extra beschermingslaag toe door het definieren van welke hosts wel of geen verbinding kunnen maken met "wrapped" netwerk services. Een van deze wrapped netwerk services is de xinetd super server. Deze server wordt een super server genoemd omdat het de verbindingen controleert van een subset van netwerk services en toegangs controle verder verbetert.

xinetd bij het controleren van toegang tot netwerk services en bespreekt hoe deze gereedschappen gebruikt kunnen worden om zowel logging als gebruiks beheer te verbeteren. Refereer naar Paragraaf 2.9, “IPTables” voor informatie over het gebruik van firewalls met iptables.
tcp_wrappers) wordt standaard geinstalleerd en biedt op host gebaseerde toegangscontrole voor netwerk services. Het belangrijkste onderdeel van het pakket is de /usr/lib/libwrap.a bibliotheek. In het algemeen is een service gewrapt met TCP een service die gecompileerd is met de libwrap.a bibliotheek.
/etc/hosts.allow en /etc/hosts.deny) om te bepalen of het de client wel of niet toegestaan is om verbinding te maken. In de meeste gevallen gebruikt het daarna de syslog daemon (syslogd) om de naam van de aanvragende client en de gewenste service naar /var/log/secure of /var/log/messages te schrijven.
libwrap.a bibliotheek. Sommige van die toepassingen zijn /usr/sbin/sshd, /usr/sbin/sendmail, en /usr/sbin/xinetd.
libwrap.a, type je het volgende commando in als de root gebruiker:
ldd <binaire-naam> | grep libwrap
<binaire-naam> met de naam van het netwerk service binaire bestand.
libwrap.a.
/usr/sbin/sshd gekoppled is met libwrap.a:
[root@myServer ~]# ldd /usr/sbin/sshd | grep libwrap
libwrap.so.0 => /lib/libwrap.so.0 (0x00655000)
[root@myServer ~]#
/etc/hosts.allow
/etc/hosts.deny
/etc/hosts.allow. — De service die gewrapt is met TCP gaat regel voor regel door het /etc/hosts.allow bestand en past de eerste regel toe die voor die service opgegeven is. Als het een overeenkomende regel vindt, dan wordt de verbinding toegestaan. Indien niet, dan gaat het verder met de volgende.
/etc/hosts.deny. — De service die gewrapt is met TCP gaat regel voor regel door het /etc/hosts.deny bestand. Als het een overeenkomende regel vindt, dan wordt de verbinding verboden. Indien niet, dan wordt de toegang naar de service toegestaan.
hosts.allow eerst toegepast worden, hebben ze voorrang boven regels opgegeven in hosts.deny. Als daarom toegang tot een service toegestaan wordt in hosts.allow, zal een regel die toegang weigert naar dezelfde service in hosts.deny genegeerd worden.
hosts.allow of hosts.deny heeft onmiddelijk effect, zonder het opnieuw moeten starten van de netwerk services.
/var/log/messages of /var/log/secure. Dit is ook het geval voor een regel die meerdere lijnen bevat zonder gebruik te maken van de backslash karakter. Het volgende voorbeeld is het relevante deel van een log boodschap voor het falen van een regel voor een van deze fouten.
warning: /etc/hosts.allow, line 20: missing newline or line too long
/etc/hosts.allow als /etc/hosts.deny is identiek. Elke regel moet op zijn eigen lijn zijn. Lege lijnen of lijnen die beginnen met een hash (#) worden genegeerd.
<daemon lijst>:<client lijst>[:<optie>:<optie>: ...]
<daemon lijst> — Een door komma's gescheiden lijst van proces namen (niet service namen) of de ALL wildcard. De daemon lijst accepteert ook operatoren (refereer naar Paragraaf 2.5.2.1.4, “Operatoren”) om grotere flexibiliteit toe te staan.
<client lijst> — Een door komma's gescheiden lijst van hostnamen, host IP adressen, speciale patronen, of wildcards welke de hosts identificeren voor wie de regel geldt. De client lijst accepteert ook operatoren getoond in Paragraaf 2.5.2.1.4, “Operatoren” om grotere flexibiltiet toe te staan.
<optie> — Een optionele actie of een door dubbelepunten gescheiden lijst van acties die uitgevoerd worden als de regel op gang komt.
vsftpd : .example.com
vsftpd) vanaf elke host in het example.com domein. Als deze regel verschijnt in hosts.allow wordt de verbinding toegestaan. Als deze regel verschijnt in hosts.deny wordt de verbinding verboden.
sshd : .example.com \ : spawn /bin/echo `/bin/date` access denied>>/var/log/sshd.log \ : deny
sshd) wordt geprobeert vanaf een host in het example.com domein, het echo commando wordt uitgevoerd om de poging toe te voegen aan een speciaal logbestand, en daarna de verbinding te verbieden. Omdat de optionele deny instructie wordt gebruikt, zal deze regel toegang verbieden zelfs als het verschijnt in het hosts.allow bestand. Refereer naar Paragraaf 2.5.2.2, “Optie velden” voor een meer uitgebreide beschrijving van de beschikbare opties.
ALL — Komt overeen met alles. Kan gebruikt worden voor zowel de daemon lijst als de client lijst.
LOCAL — Komt overeen met elke host die geen punt (.) bevat, zoals localhost.
KNOWN — Komt overeen met elke host waarvan de hostnaam en hostadres bekend zijn of waar de gebruiker bekend is.
UNKNOWN — Komt overeen met elke host waarvan de hostnaam of hostadres onbekend zijn of waar de gebruiker onbekend is.
PARANOID — Komt overeen met elke host waarvan de hostnaam niet overeenkomt met het host adres.
KNOWN, UNKNOWN, en PARANOID wildcards moeten zorgvuldig gebruikt worden, omdat ze bouwen op een werkende DNS server voor hun juiste werking. Elke onderbreking van naam resolutie kan legitieme gebruikers verhinderen om toegang te krijgen tot een service.
example.com domein:
ALL : .example.com
192.168.x.x netwerk:
ALL : 192.168.
192.168.0.0 tot en met 192.168.1.255:
ALL : 192.168.0.0/255.255.254.0
3ffe:505:2:1:: tot en met 3ffe:505:2:1:ffff:ffff:ffff:ffff:
ALL : [3ffe:505:2:1::]/64
example.com domein:
ALL : *.example.com
/etc/telnet.hosts bestand voor aale Telnet verbindingen:
in.telnetd : /etc/telnet.hosts
hosts_access man 5 pagina voor meer informatie.
portmap ondersteunt geen host opzoeken, wat betekent dat portmap geen hostnamen kan gebruiken om hosts te identificeren. Als gevolg hiervan moeten toegangs controle regels voor portmap in hosts.allow of hosts.deny IP adressen gebruiken, of het sleutelwoord ALL voor het specificeren van hosts.
portmap toegangs controle regels hebben misschien niet meteen effect. Het kan nodig zijn om de portmap service opnieuw op te moeten starten.
portmap, dus wees bedacht op deze beperkingen.
EXCEPT. Het kan gebruikt worden in zowel de daemon lijst als de client lijst van een regel.
EXCEPT operator staat specifieke uitzonderingen toe voor brede overeenkomsten binnen dezelfde regel.
hosts.allow bestand, wordt het aan alle example.com hosts toegestaan om naar alle services te verbinden behalve cracker.example.com:
ALL: .example.com EXCEPT cracker.example.com
hosts.allow bestand, kunnen clienten uit het 192.168.0.x netwerk alle services gebruiken behalve FTP:
ALL EXCEPT vsftpd: 192.168.0.
EXCEPT operatoren te vermijden. Dat staat beheerders toe om snel de betreffende bestanden door te nemen om te zien welke host wel of geen toegang hebben tot services, zonder rekening hoeven te houden met de EXCEPT operatoren.
severity instructie te gebruiken.
example.com domein gelogd naar de standaard authpriv syslog voorziening (omdat er geen voorzienings waarde is opgegeven) met een prioriteit van emerg:
sshd : .example.com : severity emerg
severity optie. Het volgende voorbeeld logt elke SSH verbindings poging van het example.com domein naar de local0 voorziening met een prioriteit van alert:
sshd : .example.com : severity local0.alert
syslogd) is ingesteld om te loggen naar de local0 voorziening. Refereer naar de syslog.conf manual pagina voor informatie over het instellen van aangepaste log voorzieningen.
allow of deny instructie als de laatste optie.
client-1.example.com, maar verbieden verbindingen van client-2.example.com:
sshd : client-1.example.com : allow sshd : client-2.example.com : deny
hosts.allow of hosts.deny. Sommige beheerders vinden dit een eenvoudiger manier voor het organiseren van toegangs regels.
spawn — Start een shell commando op als een child proces. Deze instructie kan taken uitvoeren zoals het gebruiken van /usr/sbin/safe_finger om meer informatie te krijgen over de client die een verbinding vraagt of het maken van speciale log bestanden met gebruik van het echo commando.
example.com domein stilletjes gelogd naar een speciaal bestand:
in.telnetd : .example.com \
: spawn /bin/echo `/bin/date` from %h>>/var/log/telnet.log \
: allow
twist — Vervangt de gevraagde service met het opgegeven commando. Deze instructie wordt vaak gebruikt om vallen op te zetten voor indringers (ook "honing pot" genoemd). Het kan ook gebruikt worden om boodschappen naar de verbindende client te sturen. De twist instructie moet aan het einde van de regel lijn gebruikt worden.
example.com domein een boodschap met gebruik van het echo commando:
vsftpd : .example.com \
: twist /bin/echo "421 This domain has been black-listed. Access denied!"
hosts_options manual pagina.
spawn en twist instructies gebruikt worden, bieden informatie over de client, server en de betrokken processen.
%a — Geet het IP adres van de client terug.
%A — Geeft het IP adres van de server terug.
%c — Geeft verschillende informatie over de client terug, zoals de gebruikersnaam en hostnaam, og de gebruikersnaam en het IP adres.
%d — Geeft de daemon proces naam terug.
%h — Geeft de hostnaam van de client terug (of IP adres, als de hostnaam niet beschikbaar is).
%H — Geeft de hostnaam van de server terug (of IP adres, als de hostnaam niet beschikbaar is).
%n — Geeft de kostnaam van de client terug. Als deze niet beschikbaar is, wordt unknown afgedrukt. Als de hostnaam en het hostadres van de client niet overeenkomen, wordt paranoid afgedrukt.
%N — Geeft de hostnaam van de server terug. Als deze niet beschikbaar is, wordt Als wordt unknown afgedrukt. Als de hostnaam en het hostadres van de server niet overeenkomen, wordt paranoid afgedrukt.
%p — Geeft het proces ID van de daemon terug.
%s — Geeft verscheidene soorten server informatie terug, zoals het daemon proces, en de host of IP adres van de server.
%u — Geeft de gebruikersnaam van de client terug. Als deze niet beschikbaar is, wordt unknown afgedrukt.
spawn commando om de client host te identificeren in een speciaal log bestand.
sshd) worden geprobeerd vanaf een host in het example.com domein, wordt het echo commando uitgevoerd om de poging te loggen, inclusief de hostnaam van de client (door de %h uitbreiding te gebruiken) naar een speciaal bestand:
sshd : .example.com \
: spawn /bin/echo `/bin/date` access denied to %h>>/var/log/sshd.log \
: deny
example.com domein verteld dat ze verbannen zijn van de server:
vsftpd : .example.com \ : twist /bin/echo "421 %h has been banned from this server!"
hosts_access (man 5 hosts_access) en de manual pagina voor hosts_options.
xinetd daemon is een met TCP gewrapte super service welek toegang controleert naar een subset van populaire netwerk services, inclusief FTP, IMAP, en Telnet. Het biedt ook service specifieke configuratie opties voor toegangs controle, verbeterde logging, verbinding, omleiding, en hulpbron gebruiks controle.
xinetd, ontvangt de super service het verzoek en controleert of er TCP wrapper toegangs regels zijn.
xinetd dat de verbinding toegestaan is onder de de eigen toegangs regels van die service. Het controleert ook of de service meer hulpbronnen toegewezen kan krijgen en of dit niet verboden wordt door een van de aangemaakte regels.
xinetd een instantiering van de gevraagde service en geeft de controle over de verbinding hieraan over. Nadat de verbinding gelegd is, neemt xinetd verder geen deel aan de communicatie tussen de client en de server.
xinetd zijn de volgende:
/etc/xinetd.conf — Het globale xinetd configuratie bestand.
/etc/xinetd.d/ — De map die alle service specifieke bestanden bevat.
/etc/xinetd.conf bestand bevat algemene configuratie instellingen die effect hebben voor iedere service onder de controle van xinetd. Het wordt gelezen als de xinetd service wordt opgestart, dus om veranderingen in de configuratie effect te laten krijgen, moet je de xinetd service opnieuw opstarten. Het volgende is een voorbeeld /etc/xinetd.conf bestand:
defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}
includedir /etc/xinetd.d
xinetd:
instances — Specificeert het maximum aantal gelijktijdige verzoeken dat xinetd kan verwerken.
log_type — Stelt xinetd in om de authpriv log voorziening te gebruiken, welke log ingangen naar het /var/log/secure bestand schrijft. Toevoegen van een instructie zoals FILE /var/log/xinetdlog zal een aangepast log bestand met de naam xinetdlog aan maken in de /var/log/ map.
log_on_success — Stelt xinetd in om succesvolle verbindingspogingen te loggen. Standaard worden het IP adres van de host op afstand en het proces ID van de server die het verzoek verwerkt opgeschreven.
log_on_failure — Stelt xinetd in om gefaalde verbindingspogingen of verboden verbindingen te loggen
cps — Stelt xinetd in om niet meer dan 25 verbindingen per seconde toe te staan aan elke service. Als deze limiet wordt overschreden, wacht de service gedurende 30 seconden.
includedir /etc/xinetd.d/ — voegt options toe die zijn opgegeven in service specifieke configuratie bestanden in de /etc/xinetd.d/ map. Refereer naar Paragraaf 2.5.4.2, “De /etc/xinetd.d/ map” vor meer informatie.
log_on_success als de log_on_failure instellingen in /etc/xinetd.conf verder aangepast in de service specifieke configuratie bestanden. Daarom kan er meer informatie verschijnen in het log bestand van een gegeven service dan wordt aangegeven in het /etc/xinetd.conf bestand. Refereer naar Paragraaf 2.5.4.3.1, “Logging opties” voor meer informatie.
/etc/xinetd.d/ map bevat de configuratie bestanden voor elke service die beheerd wordt door xinetd en de namen van de bestanden komen overeen met die van de service. Zoals met xinetd.conf, wordt deze map gelezen als de xinetd service wordt opgestart. Om veranderingen effect te laten hebben, moet de beheerder de xinetd service opnieuw opstarten.
/etc/xinetd.d/ map gebruikt dezelfde conventie als /etc/xinetd.conf. De belangrijkste reden dat de instelling voor elke service in een apart bestand wordt bewaard is om aanpassingen eenvoudiger te maken zonder effect te hebben op andere services.
/etc/xinetd.d/krb5-telnet bestand:
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/kerberos/sbin/telnetd
log_on_failure += USERID
disable = yes
}
telnet service:
service — Specificeert de service naam, gewoonlijk een van degene opgegeven in het /etc/services bestand.
flags — Stelt een aantal attributen in voor de verbinding. REUSE instrueert xinetd om de socket voor een Telnet verbinding te hergebruiken.
REUSE vlag is verouderd. Alle service gebruiken nu de REUSE vlag impliciet.
socket_type — Stel de netwerk socket type in naar stream.
wait — Specificeert of de service enkel-threaded (yes) of multi-threaded (no) is.
user — Specificeert onder welk gebruikers ID het proces draait.
server — Specificeert welk binaire programma uitgevoerd moet worden.
log_on_failure — Specificeert logging parameters voor log_on_failure bovenop die als ingesteld zijn in xinetd.conf.
disable — Specificeert of de service uitgezet (yes) of aangezet (no) is.
xinetd.conf manual pagina voor meer informatie over deze opties en hun gebruik.
xinetd. Deze paragraaf laat een aantal veel gebruikte opties zien.
/etc/xinetd.conf als de service specifieke bestanden in de /etc/xinetd.d/ map.
ATTEMPT — Logt het feit dat een gefaalde poging is gedaan (log_on_failure).
DURATION — Logt de tijdsduur dat de service is gebruikt door een systeem op afstand (log_on_success).
EXIT — Logt de exit status of terminal signaal van de service (log_on_success).
HOST — Logt het IP adres van de host op afstand (log_on_failure en log_on_success).
PID — Logt het proces ID van de server die het verzoek ontvangt (log_on_success).
USERID — Logt de gebruiker op afstand met de methode gedefinieerd in RFC 1413 voor alle multi-threaded services (log_on_failure en log_on_success).
xinetd.conf manual pagina.
xinetd services kunnen kiezen om de TCP wrapper host toegangsregels te gebruiken, toegangs controle te bieden met de xinetd configuratie bestanden, of een combinatie van beide. Refereer naar Paragraaf 2.5.2, “Configuratie bestanden voor TCP wrappers” voor meer informatie over TCP wrapper host toegangs controle bestanden.
xinetd om toegang tot de services te controleren.
xinetd beheerder de xinetd service opnieuw opstart.
xinetdalleen effect voor services die gecontroleerd worden door xinetd.
xinetd hosts toegangs controle verschilt van de methode die gebruikt wordt met TCP wrappers. Terwijl TCP wrappers alle toegangs instellingen in twee bestanden plaatst, /etc/hosts.allow en /etc/hosts.deny, wordt de toegangs controle van xinetd gevonden in het configuratie bestand van elke service in de /etc/xinetd.d/ map.
xinetd:
only_from — Staat alleen de opgegeven hosts het gebruik van de service toe.
no_access — Staat de opgegeven hosts het gebruik van de service niet toe.
access_times — Specificeert het tijdsslot waarbinnen een bepaalde service gebruikt mag worden. Het tijdsslot moet in 24-uur notatie opgegeven worden, UU:MM-UU:MM.
only_from enno_access opties kunnen een lijst van IP adressen of hostnamen gebruiken, of kunnen een heel netwerk specificeren. Net als TCPOwrappers, kan het combineren van xinetd toegangs controle met verbeterde loggings instelling de beveiliging verbeteren door het blokkeren van verzoeken van verbannen hostes terwijl iedere verbindings poging uitvoerig opgeslagen wordt.
/etc/xinetd.d/telnet bestand kan gebruikt worden om Telnet toegang vanaf een bepaalde netwerk groep te blikkeren en het tijdsslot te beperken waarbinnen zelfs goedgekeurde gebruikers in kunnen loggen:
service telnet
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/kerberos/sbin/telnetd
log_on_failure += USERID
no_access = 172.16.45.0/24
log_on_success += PID HOST EXIT
access_times = 09:45-16:15
}
10.0.1.0/24 netwerk, zoals 10.0.1.2, toegang tot de Telnet service probeert te krijgen, ontvang het de volgende boodschap:
Connection closed by foreign host.
/var/log/messages gelogd:
Sep 7 14:58:33 localhost xinetd[5285]: FAIL: telnet address from=172.16.45.107 Sep 7 14:58:33 localhost xinetd[5283]: START: telnet pid=5285 from=172.16.45.107 Sep 7 14:58:33 localhost xinetd[5283]: EXIT: telnet status=0 pid=5285 duration=0(sec)
xinetd toegangs controle gebruikt wordt, is het belangrijk om de relatie tussen de twee toegangs controle mechanismes te begrijpen.
xinetd als een client een verbinding aanvraagt:
xinetd daemon krijgt toegang tot de TCP wrappers host toegangs regels met gebruik van een libwrap.a bibliotheek aanroep. Als een weigerings regel overeenkomt met de client, wordt de verbinding verbroken. Als een toestemmings regel overeenkomt met de client, wordt de verbinding doorgegeven aan xinetd.
xinetd daemon controleert zijn eigen toegangs controle regels zowel voor de xinetd service als de gevraagde service. Als een weigerings regel overeen komt met de client, wordt de verbinding verbroken. Anders start xinetd een instantiatie van de gevraagde service op en geeft de controle over de verbinding door aan die service.
xinetd toegangs regels. Een verkeerde instelling kan ongewenste effecten hebben.
xinetd ondersteunen het verbinden van de service aan een IP adres en het omleiden van binnenkomende verzoeken voor die service naar een ander IP adres, hostnaam of poort.
bind optie in de service specifieke configuratie bestanden en verbindt de service met het IP adres van het systeem. Als dit ingesteld is, staat de bind optie alleen verzoeken naar het juiste IP adres toe voor toegang naar de service. Je kunt deze methode gebruiken om verschillende services te verbinden met verschillende neterk interfaces gebaseerd op de vereisten.
redirect optie accepteert een IP adres of hostnaam gevolgd door een poort nummer. Het stelt de service in om elk verzoek voor deze service om te leiden naar de opgegeven host en poort nummer. Deze eigenschap kan gebruikt worden om naar een ander poort nummer op hetzelfde systeem te wijzen, om het verzoek om te leiden naar een ander IP adres op dezelfde machine, om het verzoek te door te geven aan een totaal ander systeem en poort nummer, of elke combinatie van deze opties. Een gebruiker die verbindt met een bepaalde service op een systeem kan daarom omgeleid worden van een ander systeem zonder onderbreking.
xinetd daemon is in staat om deze omleiding uit te voeren door het maken van een proces dat blijft bestaan tijdens de duur van de verbinding tussen de vragende client machine en de host die de service in feite biedt, en dat de data overdracht tussen de twee systemen verzorgt
bind and redirect opties zijn het duidelijkst zichtbaar als ze tesamen worden gebruikt. Door een service te verbinden met een bepaald IP adres op een systeem en dan de verzoeken voor deze service om te leiden naar een tweede machine die alleen de eerste machine kan zien, kan een intern systeem worden gebruikt om services aan te bieden voor een totaal ander netwerk. Deze opties kunnen alternatief gebruikt worden om de zichtbaarheid te beperken van een bepaalde service op een multi-homed machine naar een bekend IP adres, en ook elk verzoek voor die service om te leiden naar een andere machine die speciaal voor dat doel is ingesteld.
service telnet
{
socket_type = stream
wait = no
server = /usr/kerberos/sbin/telnetd
log_on_success += DURATION USERID
log_on_failure += USERID
bind = 123.123.123.123
redirect = 10.0.1.13 23
}
bind and redirect opties in dit bestand verzekeren dat de Telnet service op de machine is verbonden met het externe IP adres (123.123.123.123), het adres dat het Internet ziet. Bovendien wordt elk verzoek voor de Telnet service die gestuurd wordt naar 123.123.123.123 omgeleid met een tweede netwerk adapter naar een intern IP adres (10.0.1.13) dat alleen toegang heeft to de firewall en interne systemen. De firewall bestuurt dan communicatie tussen de twee systemen, en het verbindende systeem denkt dat het verbonden is met 123.123.123.123 terwijl het in werkelijkheid met een ander systeem verbonden is.
xinetd ingesteld zijn met de bind en redirect opties, kan de gateway machine als een proxy functioneren tussen de systemen buiten en een bepaalde interne machine ingesteld om de service te verlenen. Bovendien zijn de verschillende xinetd toegangs controle en loggings opties ook beschikbaar voor extra bescherming.
xinetd daemon kan een basis niveau van bescherming bieden voor weigering van dienst (DoS) aanvallen. De instructies van de volgende lijst kunnen helpen om de effectiviteit van zo'n aanval te beperken:
per_source — Definieert het maximum aantal instantiaties van een service per bron IP adres. Het accepteert alleen gehele getallen als argument en kan gebruikt worden in zowel xinetd.conf als de configuratie bestanden specifiek voor een service in de xinetd.d/ map.
cps — Definieert het maximum aantal verbindingen per seconde. Deze instructie heeft twee gehele getallen als argument gescheiden door spaties. Het eerste argument is het maximum aantal verbindingen oer seconde toegestaan voor de service. Het tweede argument is het aantal secondes dat xinetd moet wachten voor dat de service weer beschikbaar komt. Het accepteert alleen gehele getallen als argument en kan gebruikt worden in zowel xinetd.conf als de configuratie bestanden specifiek voor een service in de xinetd.d/ map.
max_load — Definieert het CPU gebruik of gemiddelde load drempel voor een service. Het accepteert een drijvendekommagetal als argument.
uptime, who, en procinfo commando's voor meer informatie over gemiddelde load.
xinetd. Refereer naar de xinetd.conf manual pagina voor meer informatie.
xinetd is beschikbaar in de systeem documentatie en op het Internet.
xinetd, en toegangs controle.
/usr/share/doc/tcp_wrappers-<versie>/ — Deze map bevat een README bestand dat uitlegt hoe TCP wrappers werken en bespreekt de verschillende hostnaam en hostadres voor de gek houden risico's.
/usr/share/doc/xinetd-<versie>/ — Deze map bevat een README bestand dat de verschillende aspecten van toegangs controle bespreekt en een sample.conf bestand met verschillende ideetjes voor het veranderen van service specifieke configuratie bestanden in de /etc/xinetd.d/ map.
xinetd gerelateerde manual pagina's — Er bestaan een aantal manual pagina's voor de verschillende toepassingen en configuratie bestonden betrokken bij TCP wrappers en xinetd. De volgende zijn de belangrijkste:
man xinetd — De manual pagina voor xinetd.
man 5 hosts_access — De manual pagina voor de TCP wrapper hosts toegangscontrole bestanden.
man hosts_options — De manual pagina voor de optie velden van TCP wrappers.
man xinetd.conf — De manual pagina die de configuratie opties van xinetd laat zien.
xinetd, welke voorbeeld configuratie bestanden bevat, een volledige lijst van eigenschappen, en een informatieve FAQ.
xinetd configuratie bestanden te optimaliseren voor het bereiken van specifieke beveiligings doelen .
xinetd.
/etc/passwd of /etc/shadow, naar een Kerberos wachtwoord database kan vervelend zijn, omdat er geen geautomatiseerd mechanisme is om deze taak uit te voeren. Refereer naar Vraag 2.23 in de online Kerberos FAQ:
kinit te gebruiken. Het standaard sleuteltab bestand is /etc/krb5.keytab. De KDC beheer server, /usr/kerberos/sbin/kadmind, is de enigste service die een ander bestand gebruikt (het gebruikt /var/kerberos/krb5kdc/kadm5.keytab).
kinit commando laat een hoofdrolspeler die al ingelogd is het initiële kaartjes-verlenende kaarjte (TGT) verkrijgen en opslaan.
root[/instance]@REALM. Voor een typische gebruiker, is de root gelijk aan hun login ID. De instance is optioneel. Als de hoofdrolspeler een instance heeft, is het gescheiden van de root met een slash ("/"). Een lege string ("") wordt als een geldige instance beschouwd (welke verschilt van de standaard NULL instance), maar het gebruiken kan verwarrend zijn. Alle hoofdrolspelers in een gebied hebben hun eigen sleutel, welke voor gebruikers is afgeleid van een wachtwoord of willekeurig is ingesteld voor services.
kinit programma nadat de gebruiker heeft ingelogd.
kinit programma op de client ontsleuteld daarna de TGT met gebruik van de sleutel van de gebruiker, welke berekend wordt van het wachtwoord van de gebruiker. De sleutel van de gebruiker wordt alleen op de client machine gebruikt en wordt niet over het netwerk verstuurd.
ntpd. Refereer naar /usr/share/doc/ntp-<versie-nummer>/index.html voor meer informatie over het instellen van Network Time Protocol servers (waarin <versie-nummer> het versie nummer is van het ntp pakket geinstalleerd op je systeem).
/usr/share/doc/krb5-server-<versie-nummer> voor meer informatie (waarin <versie-nummer> het versie nummer is van het krb5-server pakket geinstalleerd op jouw systeem.
pam_krb5 module (geleverd in het pam_krb5 pakket) geinstalleerd is. Het pam_krb5 pakket bevat voorbeeld configuratie bestanden die services zoals login en gdm toestaan om gebruikers te authenticeren en ook om initiële legitimatie te verkrijgen met gebruik van hun wachtwoord. Als toegang tot netwerk services altijd wordt uitgevoerd met service die zich bewust zijn van Kerberos of services die GSS-API gebruiken zoals IMAP, kan het netwerk als redelijk veilig beschouwd worden.
ntp pakket voor dit doel. Refereer naar /usr/share/doc/ntp-<versie-nummer>/index.html (waarin <versie-nummer> het versie nummer is van het ntp pakket geinstalleerd op je systeem) voor details over het instellen van Network Time Protocol servers, en http://www.ntp.org voor meer informatie over NTP.
krb5-libs, krb5-server, en krb5-workstation pakketten op de specifieke computer die de KDC draait. Deze machine moet goed beveiligd zijn — indien mogelijk moet het geen andere services draaien dan de KDC.
/etc/krb5.conf en /var/kerberos/krb5kdc/kdc.conf configuratie bestanden om de gebiedsnaam en de domein naar gebied afbeelding weer te geven. Een eenvoudig gebied kan gemaakt worden door het vervangen van instantiaties van EXAMPLE.COM en example.com met de correcte domein naam — let er op om de hoofd en kleine letter namen in het juiste formaat te houden — en door het veranderen van de KDC van kerberos.example.com naar de naam van de Kerberos server. Bij conventie zijn alle gebiedsnamen in hoofsletters en alle DNS hostnamen en domeinnamen in kleine letters. Voor volledige details over het formaat van deze configuratie bestanden, refereer je naar hun respectievelijke manual pagina's.
kdb5_util programma vanaf een shell prompt:
/usr/kerberos/sbin/kdb5_util create -s
create commando maakt de database dat de sleutels voor het Kerberos gebied bewaart. De -s schakelaar forceert het aanmaken van een stash bestand waarin de meester server sleutel bewaard wordt. Als er geen stash bestand aanwezig is om de sleutel van te lezen, vraagt de Kerberos server (krb5kdc) de gebruiker naar het meester server wachtwoord (welek gebruikt kan worden om de sleutel te genereren) iedere keer als het opstart.
/var/kerberos/krb5kdc/kadm5.acl bestand. Dit bestand wordt gebruikt door kadmind om te bepalen welke hoofrolspelers beheerstoegang hebben tot de Kerberos database en hun niveau van toegang. De meeste organisaties kunnen volstaan met een enkele regel:
*/admin@EXAMPLE.COM *
kadmind is opgestart op de server, kan elke gebruiker toegang krijgen tot zijn services door het uitvoeren van kadmin op een van de clienten of servers in het gebied. Echter alleen gebruikers opgegeven in het kadm5.acl bestand kunnen de database op enige manier veranderen, behalve voor het veranderen van hun eigen wachtwoorden.
kadmin programma communiceert met de kadmind server over het netwerk, en gebruikt Kerberos om authenticatie af te handelen. Als gevolg hiervan moet de eerste hoofdrolspeler al bestaan voordat het met de server kan verbinden over het netwerk om het te beheren. Maak de eerste hoofdrolspeler met het kadmin.local commando, welke specifiek is ontworpen om gebruikt te worden op dezelfde host als de KDC en Kerberos niet gebruikt voor authenticatie.
kadmin.local commando op de KDC termial om de eerste hoofdrolspeler aan te maken:
/usr/kerberos/sbin/kadmin.local -q "addprinc username/admin"
/sbin/service krb5kdc start /sbin/service kadmin start /sbin/service krb524 start
addprinc commando in kadmin. kadmin en kadmin.local zijn commandoregel interfaces voor de KDC. Daarom zijn vele commando's — zoals addprinc — beschikbaar na het opstarten van het kadmin programma. Refereer naar de kadmin manual pagina voor meer informatie.
kinit uit om een kaartje te krijgen en het te bewaren in het legitimatie opslag bestand. Vervolgens gebruik je klist om de lijst van legitimaties in de opslag te zien en gebruik je kdestroy om de opslag en de legitimatie die het bevat te vernietigen.
kinit authenticatie uit te voeren met dezelfde systeem login gebruikersnaam (niet de Kerberos server). Als die gebruikersnaam niet overeenkomt met een hoofdrolspeler in de Kerberos database, geeft kinit een fout boodschap. Als dat gebeurt, geeft je kinit de naam van de juiste hoofdrolspeler mee als argument op de commandoregel (kinit <hoofdrolspeler>).
krb5.conf configuratie bestand. Terwijl ssh en slogin de voorkeurs mthodes zijn om in te loggen op client systemen, zijn kerberized versies van rsh en rlogin nog steeds beschikbaar, hoewel het gebruik hiervan vereist dat nog een aantal extra configuratie veranderingen gemaakt worden.
krb5-libs en krb5-workstation pakketten op alle client machines. Maak een geldig /etc/krb5.conf bestand voor iedere client (gewoonlijk kan dit hetzelfde krb5.conf bestand zijn gebruikt door de KDC).
ssh of kerberized rsh of rlogin, moet het zijn eigen hoofdrolspeler hebben in de Kerberos database. De sshd, kshd, en klogind server programma's hebben allemaal toegang nodig tot de sleutels voor de host service van de hoofdrolspeler. Bovendien moet het werkstation, om de kerberized rsh en rlogin services te gebruiken, het xinetd pakket geinstalleerd hebben.
kadmin voeg je een host hoofdrolspeler toe voor het werkstation op de KDC. De instance is in dit geval de hostnaam van het werkstation. Gebruik de -randkey optie voor het addprinc commando van de kadmin om de hoofdrolspeler aan te maken en ken het een wiilekeurige sleutel toe:
addprinc -randkey host/blah.example.com
kadmin op het workstation zelf, en het gebruik van het ktadd commando binnen kadmin:
ktadd -k /etc/krb5.keytab host/blah.example.com
ssh — OpenSSH gebruikt GSS-API voor authenticatie van gebruikers voor servers als de configuratie bestanden van zowel de client als de server beide GSSAPIAuthentication aangezet hebben. Als de client ook GSSAPIDelegateCredentials aangezet heeft, wordt de legitimatie van de gebruiker beschikbaar gemaakt op het systeem op afstand.
rsh en rlogin — Om kerberized versies van rsh en rlogin te gebruiken, zet je klogin, eklogin, en kshell aan.
krb5-telnet aangezet worden.
ftp. Wees er zeker van om de instance in te stellen naar de volledig gekwalificeerde hostnaam van de FTP serverm en zet dan gssftp aan.
cyrus-imap pakket Kerberos 5 als ook het cyrus-sasl-gssapi pakket geinstalleerd is. Het cyrus-sasl-gssapi pakket bevat de Cyrus SASL plugins welke GSS-API authenticatie ondersteunen. Cyrus IMAP moet correct werken met Kerberos zo lang de cyrus gebruiker in staat is om de juiste sleutel in /etc/krb5.keytab te vinden, en de root voor de hoofdrolspeler in ingesteld naar imap (aangemaakt met kadmin).
cyrus-imap kan gevonden worden in het dovecot pakket, welke ook toegevoegd is aan Fedora. Dit pakket bevat een IMAP server die, op dit moment GSS-API en Kerberos niet ondersteund.
gserver een hoofdrolspeler met een root cvs en is anders identiek aan de pserver.
foo.example.org → EXAMPLE.ORG
foo.example.com → EXAMPLE.COM
foo.hq.example.com → HQ.EXAMPLE.COM
krb5.conf bestand op het client systeem. Bijvoorbeeld:
[domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM
kadmind (het is ook de admin server voor jouw gebied), en een of meer KDC's (slaaf KDC's) bewaren alleen-lezen kopieën van de database en draaien kpropd.
krb5.conf en kdc.conf bestanden van de meester KDC te kopiëren naar de slaaf KDC.
kadmin.local op in een root shell op de meester KDC en gebruik zijn add_principal commando om een nieuwe regel aan te maken voor de host service van de meester KDC, en gebruik daarna zijn ktadd commando om gelijktijdig een willekeurige sleutel voor de service in te stellen en die sleutel op te slaan in het standaard keytab bestand van de meester. Deze sleutel zal door het kprop commando gebruikt worden voor authenticatie naar de slaaf servers. Je hoeft dit maar een keer te doen, onafhankelijk van hoeveel slaaf servers je installeert.
#kadmin.local -r EXAMPLE.COMAuthenticating as principal root/admin@EXAMPLE.COM with password.kadmin:add_principal -randkey host/masterkdc.example.comPrincipal "host/host/masterkdc.example.com@EXAMPLE.COM" created.kadmin:ktadd host/masterkdc.example.comEntry for principal host/masterkdc.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/masterkdc.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/masterkdc.example.com with kvno 3, encryption type DES with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/masterkdc.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5.keytab.kadmin:quit
kadmin op in een root shell op de slaaf KDC en gebruik zijn add_principal commando om een nieuwe regel aan te maken voor de host service van de slaaf KDC, en gebruik daarna zijn ktadd commando om gelijktijdig een willekeurige sleutel voor de service in te stellen en die sleutel op te slaan in het standaard keytab bestand van de slaaf. Deze sleutel wordt door de kpropd srviece gebruikt voor authenticatie van clienten.
#kadmin -p jimbo/admin@EXAMPLE.COM -r EXAMPLE.COMAuthenticating as principal jimbo/admin@EXAMPLE.COM with password.Password for jimbo/admin@EXAMPLE.COM:kadmin:add_principal -randkey host/slavekdc.example.comPrincipal "host/slavekdc.example.com@EXAMPLE.COM" created.kadmin:ktadd host/slavekdc.example.com@EXAMPLE.COMEntry for principal host/slavekdc.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/slavekdc.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/slavekdc.example.com with kvno 3, encryption type DES with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/slavekdc.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5.keytab.kadmin:quit
kprop service van de slaaf te voorzien met een nieuwe gebiedsdatabase. Om toegang te beperken, zal de kprop service op de slaaf KDC alleen vernieuwingen accepteren van clienten waarvan de hoofdrolspeler namen opgegeven zijn in /var/kerberos/krb5kdc/kpropd.acl. Voeg de naam van de host service van de master KDC toe aan dat bestand.
# echo host/masterkdc.example.com@EXAMPLE.COM > /var/kerberos/krb5kdc/kpropd.acl
/var/kerberos/krb5kdc/.k5.REALM), kopieer je het naar de slaaf KDC met een beschikbare veilige methode, of je maakt een dummy database en identiek stash bestand op de slaaf KDC door kdb5_util create -s uit te voeren (de dummy database zal overschreven worden door de eerste succesvolle database overdracht) en hetzelfde wachtwoord op te geven.
kprop service. Controleer daarna opnieuw of de kadmin service uitgezet is.
kprop commando zal lezen (/var/kerberos/krb5kdc/slave_datatrans), en gebruik daarna het kprop commando om zijn inhoud over te brengen naar de slaaf KDC.
# /usr/kerberos/sbin/kdb5_util dump /var/kerberos/krb5kdc/slave_datatrans# kprop slavekdc.example.com
kinit verifieer je dat een client systeem waarvan krb5.conf alleen de slaaf KDC laat zien in zijn lijst van KDC's voor jouw gebied, nu correct in staat is om initiele legitimatie te verkrijgen van de slaaf KDC.
kprop commando uitvoert om de database naar iedere slaaf KDC over te brengen, en stel de cron service in om het script periodiek uit te voeren.
A.EXAMPLE.COM toegaang te krijgen tot een service in het B.EXAMPLE.COM gebied, moeten beide gebieden een sleutel delen voor een hoofdrolspeler van de naam krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM, en beide sleutels moeten hetzelfde sleutel versie nummer ermee verbonden hebben.
# kadmin -r A.EXAMPLE.COMkadmin: add_principal krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COMEnter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM": Re-enter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM": Principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM" created. quit # kadmin -r B.EXAMPLE.COMkadmin: add_principal krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COMEnter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM": Re-enter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM": Principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM" created. quit
get_principal commando om te verifieren dat beide regels overeenkomende sleutel versie nummers (kvno waarden) en versleuteling types hebben
-randkey optie van het add_principal commando te gebruiken om een willekeurige sleutel toe te kennen in plaats van een wachtwoord, dumpen daarna de nieuwe regel uit de database van het eerste gebied, en importeren het in het tweede. Dit zal niet werken behalve als de meester sleutels voor de gebieds databases identiek zijn, omdat de sleutels in een database dump zelf versleuteld zijn met de meester sleutel.
A.EXAMPLE.COM gebied kunnen nu authentificeren voor services in het B.EXAMPLE.COM gebied. Anders gezegd, het B.EXAMPLE.COM gebied vertrouwt nu het A.EXAMPLE.COM gebied, of nog eenvoudiger, B.EXAMPLE.COM vertrouwt nu A.EXAMPLE.COM.
B.EXAMPLE.COM gebied kan de clienten van A.EXAMPLE.COM vertrouwen voor authenticatie voor services in het B.EXAMPLE.COM gebied, maar dit heeft geen effect of clienten in het B.EXAMPLE.COM gebied wel of niet vertrouwd worden voor authenticatie voor services in het A.EXAMPLE.COM gebied. Om vertrouwen in de andere richting te krijgen, moeten beide gebieden sleutels delen voor de krbtgt/A.EXAMPLE.COM@B.EXAMPLE.COM service (let op de omgekeerde volgorde van de twee gebieden vergeleken met het vorige voorbeeld).
A.EXAMPLE.COM authenticatie kunnen verkrijgen voor services in B.EXAMPLE.COM, en clienten van B.EXAMPLE.COM authenticatie kunnen verkrijgen voor services inC.EXAMPLE.COM, dan kunnen clienten in A.EXAMPLE.COM ook authenticatie verkrijgen voor services in C.EXAMPLE.COM, zelfs als C.EXAMPLE.COM A.EXAMPLE.COM niet direct vertrouwt. Dit betekent dat op een netwerk met meerdere gebieden die elkaar moeten vertrouwen, het maken van goede keuzes over de op te zetten vetrouwens relaties, de hoeveelheid werk aanzienlijk kan reduceren.
service/server.example.com@EXAMPLE.COM
EXAMPLE.COM is de naam van het gebied.
domain_realm sectie van /etc/krb5.conf om of een hostnaam (server.example.com) of een DNS domein naam (.example.com) te koppelen aan de naam van het gebied (EXAMPLE.COM).
A.EXAMPLE.COM, B.EXAMPLE.COM, en EXAMPLE.COM. Als een client in het A.EXAMPLE.COM gebied probeert authenticatie te krijgen voor een service in B.EXAMPLE.COM, zal het standaard eerst proberen legitimatie voor het EXAMPLE.COM gebied te krijgen, en deze legitimatie gebruiken om legitimatie te krijgen voor gebruik in het B.EXAMPLE.COM gebied.
A.EXAMPLE.COM, om dan authenticatie te krijgen voor een service in B.EXAMPLE.COM A.EXAMPLE.COM → EXAMPLE.COM → B.EXAMPLE.COM A.EXAMPLE.COM enEXAMPLE.COM delen een sleutel voor krbtgt/EXAMPLE.COM@A.EXAMPLE.COM
EXAMPLE.COM en B.EXAMPLE.COM delen een sleutel voor krbtgt/B.EXAMPLE.COM@EXAMPLE.COM
SITE1.SALES.EXAMPLE.COM, om dat authenticatie te krijgen voor een service in EVERYWHERE.EXAMPLE.COM SITE1.SALES.EXAMPLE.COM → SALES.EXAMPLE.COM → EXAMPLE.COM → EVERYWHERE.EXAMPLE.COM SITE1.SALES.EXAMPLE.COM en SALES.EXAMPLE.COM delen een sleutel voor krbtgt/SALES.EXAMPLE.COM@SITE1.SALES.EXAMPLE.COM
SALES.EXAMPLE.COM en EXAMPLE.COM delen een sleutel voor krbtgt/EXAMPLE.COM@SALES.EXAMPLE.COM
EXAMPLE.COM rn EVERYWHERE.EXAMPLE.COM delen een sleutel voor krbtgt/EVERYWHERE.EXAMPLE.COM@EXAMPLE.COM
DEVEL.EXAMPLE.COM en PROD.EXAMPLE.ORG DEVEL.EXAMPLE.COM → EXAMPLE.COM → COM → ORG → EXAMPLE.ORG → PROD.EXAMPLE.ORG DEVEL.EXAMPLE.COM en EXAMPLE.COM delen een sleutel voor krbtgt/EXAMPLE.COM@DEVEL.EXAMPLE.COM
EXAMPLE.COM en COM delen een sleutel voor krbtgt/COM@EXAMPLE.COM
COM en ORG delen een sleutel voor krbtgt/ORG@COM
ORG en EXAMPLE.ORG delen een sleutel voor krbtgt/EXAMPLE.ORG@ORG
EXAMPLE.ORG en PROD.EXAMPLE.ORG delen een sleutel voor krbtgt/PROD.EXAMPLE.ORG@EXAMPLE.ORG
capaths sectie van /etc/krb5.conf, zodat clienten die legitimatie hebben voor een gebied in staat zijn om op te zoeken welk gebied de volgende is in de keten die zal leiden tot het punt waarop het authenticatie kan aanvragen aan de servers.
capaths sectie is relatief ongecompliceerd: iedere regel in de sectie wordt genoemd naar een gebied waarin een client kan bestaan. Binnen die subsectie, wordt een lijst gegeven van tussengelegen gebieden waarvan de client legitimatie moet verkrijgen met als waarde de sleutel die overeenkomt met het gebied waarin een service kan bestaan. Als er geen tussenliggende gebieden zijn, wordt de waarde "." gebruikt.
[capaths]
A.EXAMPLE.COM = {
B.EXAMPLE.COM = .
C.EXAMPLE.COM = B.EXAMPLE.COM
D.EXAMPLE.COM = B.EXAMPLE.COM
D.EXAMPLE.COM = C.EXAMPLE.COM
}
A.EXAMPLE.COM gebied cross-gebied legitimatie verkrijgen voor B.EXAMPLE.COM rechtstreeks van de A.EXAMPLE.COM KDC.
C.EXAMPLE.COM gebied, moeten ze eerst de benodigde legitimaties verkrijgen van het B.EXAMPLE.COM gebied (dit vereist dat krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM bestaat), en dan die legitimatie gebruiken om legitimaties te verkrijgen voor gebruik in het C.EXAMPLE.COM gebied (met gebruik van krbtgt/C.EXAMPLE.COM@B.EXAMPLE.COM).
D.EXAMPLE.COM gebied, moeten ze eerst de benodigde legitimatie verkrijgen van het B.EXAMPLE.COM gebied, en dan legitimaties van het C.EXAMPLE.COM gebied voordat ze tenslotte legitmaties voor gebruik met het D.EXAMPLE.COM gebied kunnen krijgen.
A.EXAMPLE.COM gebied kunnen rechtstreeks cross-gebieds legitimatie verkrijgen van B.EXAMPLE.COM. Zonder de "." die dit aangeeft, zou de client anders proberen het hierarchische pad te gebruiken, in dit geval:
A.EXAMPLE.COM → EXAMPLE.COM → B.EXAMPLE.COM
/usr/share/doc/krb5-server-<versie-nummer>/ map (waarin <versie-nummer> het versie nummer is van het krb5-server pakket geinstalleerd op je systeem).
/usr/share/doc/krb5-workstation-<versie-nummer>/ map (waarin <versie-nummer> het versie nummer is van het krb5-workstation pakket geinstalleerd op je systeem).
man kerberos — Een inleiding voor het Kerberos systeem welke beschrijft hoe legitimaties werken en biedt aanbevelingen voor het verkrijgen en vernietigen van Kerberos kaartjes. Onderin refereert de manual pagina naar een aantal gerelateerde manual pagina's.
man kinit — Beschrijf hoe je dit commando kunt gebruiken om een kaartjes-verlenend kaartje kunt verkrijgen en opslaan.
man kdestroy — Beschrijft hoe je dit commando kunt gebruiken om Kerberos legitimaties te vernietigen.
man klist — Beschrijft hoe je dit commando kunt gebruiken om de opgeslagen Kerberos legitimaties te tonen.
man kadmin — Beschrijft hoe je dit commando kunt gebruiken om de Kerberos V5 database te beheren.
man kdb5_util — Beschrijft hoe je dit commando kunt gebruiken voor het aanmaken en uitvoeren van beheersfuncties op laag niveau voor de Kerberos V5 database.
man krb5kdc — Beschrijft beschikbare commandoregel opties voor de Kerberos V5 KDC.
man kadmind — Beschrijft beschikbare commandoregel opties voor de Kerberos V5 beheersserver.
man krb5.conf — Beschrijft het formaat en de opties beschikbaar in het configuratie bestand voor de Kerberos V5 bibliotheek.
man kdc.conf — Beschrijft het formaat en de opties beschikbaar in het configuratie bestand voor de Kerberos V5 AS en KDC.
racoon keying daemon handelt de IKE sleutel distributie en uitwisseling af. Refereer naar de racoon manual pagina voor meer informatie over deze daemon.
ipsec-tools RPM pakket geinstalleerd wordt op alle IPsec hosts (als een host-naar-host configuratie gebruikt wordt) of routers (als een netwerk-naar-netwerk configuratie gebruikt wordt). Het RPM pakket bevat essentiele bibliotheken, daemons, en configuratie bestanden voor het instellen van de IPsec verbinding, inclusief:
/sbin/setkey — manipuleert het sleutel beheer en beveiligings attributen van IPsec in de kernel. Dit programma wordt gecontroleerd door de racoon sleutel beheers daemon. Refereer naar de setkey(8) manual pagina voor meer informatie.
/usr/sbin/racoon — de IKU sleutelbeheers daemon, gebruikt om voor het beheren en controleren van beveiligings samenwerking en sleuteldeling tussen systemen verbonden met IPsec.
/etc/racoon/racoon.conf — het racoon daemon configuratie bestand gebruikt om verschillende aspecten van de IPsec verbinding in te stellen, inclusief authenticatie methodes en versleutelings algorithmes gebruikt in de verbinding. Refereer naar de racoon.conf(5) manual pagina voor een complete opsomming van de beschikbare instructies.
system-config-network om het Netwerkconfiguratie gereedschap op te starten.
ipsec0. Indien vereist, selecteer je het aanvinkhokje om de verbinding automatisch te activeren bij het opstarten van de computer. Klik op om verder te gaan.
racoon daemon de encryptie sleutel. Het ipsec-tools pakket moet geinstalleerd zijn als je automatische encryptie wilt gebruiken.
[root@myServer ~] # /sbin/ifconfig <device>
<device> het Ethernet apparaat is dat je wilt gebruiken voor de VPN verbinding.
eth0 Link encap:Ethernet HWaddr 00:0C:6E:E8:98:1D
inet addr:172.16.44.192 Bcast:172.16.45.255 Mask:255.255.254.0
inet addr: label.
[root@myServer ~]# service network restart

/etc/sysconfig/network-scripts/ifcfg-<nickname>
/etc/sysconfig/network-scripts/keys-<nickname>
/etc/racoon/<remote-ip>.conf
/etc/racoon/psk.txt
/etc/racoon/racoon.conf ook aangemaakt
/etc/racoon/racoon.conf veranderd om <remote-ip>.conf te bevatten.
ipsec1. Deze wordt gebruikt om de IPsec verbinding te identificeren en te onderscheiden van andere apparaten of verbindingen.
racoon.
Key_Value01, en de gebruikers zijn erover eens om racoon te gebruiken voor het automatisch genereren en delen van een authenticatie sleutel tussen iedere host. Beide host gebruikers besluiten om hun verbinding ipsec1 te noemen.
ipsec1,. dus het resulterende bestand wordt /etc/sysconfig/network-scripts/ifcfg-ipsec1 genoemd.
DST=X.X.X.XTYPE=IPSEC
ONBOOT=no
IKE_METHOD=PSK
X.X.X.X het IP adres van Werkstation B. Voor Werkstsation B, is X.X.X.X het IP adres van Werkstation A. Deze verbinding is niet ingesteld om op te starten tijdens het opstarten van de computer (ONBOOT=no) en het gebruikt een pre-gedeelde sleutel methode voor authenticatie (IKE_METHOD=PSK).
/etc/sysconfig/network-scripts/keys-ipsec1) dat beide werkstations noddig hebben voor autenticatie van elkaar. De inhoud van dit bestand moet op beide werkstations identiek zijn, en alleen de root gebruiker moet in staat zijn dit bestand te lezen of te schrijven.
IKE_PSK=Key_Value01
keys-ipsec1 bestand zodanig te veranderen dat alleen de root gebruiker dit bestand kan lezen of veranderen, voer je het volgende commando uit na het aanmaken van het bestand:
[root@myServer ~] # chmod 600 /etc/sysconfig/network-scripts/keys-ipsec1
keys-ipsec1 bestand op beide werkstations.Beide authenticatie sleutels moeten identiek zijn voor een juiste verbinding.
X.X.X.X.conf genoemd, waarin X.X.X.X het IP adres van de IPsec host op afstand is. Merk op dat dit bestand automatisch aangemaakt wordt als de IPsec tunnel actief is en moet niet direct bewerkt worden.
remote X.X.X.X{
exchange_mode aggressive, main;
my_identifier address;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2 ;
}
}
X.X.X.XX.X.X.X IP adres.
/etc/racoon/racoon.conf bestanden moeten identiek zijn op alle IPsec nodes behalve voor de include "/etc/racoon/X.X.X.X.conf" instructie. Deze instructie (en het bestand waarnaar het verwijst) wordt aangemaakt als de IPsec tunnel actief wordt. Voor Werkstation A is de X.X.X.X in de include instructie het IP adres van Werkstation B. Het omgekeerde geldt voor Werkstation B. Het volgende toont een typisch racoon.conf bestand als de IPsec verbinding actief is.
# Racoon IKE daemon configuration file.
# See 'man racoon.conf' for a description of the format and entries.
path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";
sainfo anonymous
{
pfs_group 2;
lifetime time 1 hour ;
encryption_algorithm 3des, blowfish 448, rijndael ;
authentication_algorithm hmac_sha1, hmac_md5 ;
compression_algorithm deflate ;
}
include "/etc/racoon/X.X.X.X.conf";
racoon.conf bestand bevat gedefinieerde paden voor IPsec configuratie, pre-gedeelde sleutel bestanden, en certificaten. De velden in sainfo anonymous beschrijven een fase 2 SA tussen IPsec nodes — het karakter van de IPsec verbinding (inclusief de ondersteunde encryptie algorithmes die gebruikt worden) en de methode voor het uitwisselen van sleutels. De volgende lijst definieert de velden van fase 2:
modp1024) van de Diffie-Hellman cryptografische sleutel uitwisselings groepen. Groep 2 gebruikt een 1024-bit modulair machtverheffen dat aanvallers belet om vorige IPsec overdrachten te ontsleutelen zelfs als de privé sleutel in gevaar is gebracht.
[root@myServer ~]# /sbin/ifup <nickname>
tcpdump commando uit om de netwerkpakketten te zien die tussen de hosts uitgewisseld wordt en verifieer dat ze versleuteld zijn met IPsec. Het pakket moet een AH koptekst bevatten en moet getoond worden als ESP pakkettern. ESP betekent dat het versleuteld is. Bijvoorbeeld:
[root@myServer ~]# tcpdump -n -i eth0 host <targetSystem> IP 172.16.45.107 > 172.16.44.192: AH(spi=0x0954ccb6,seq=0xbb): ESP(spi=0x0c9f2164,seq=0xbb)

ipsec1. Deze wordt gebruikt om de IPsec verbinding te identificeren en te onderscheiden van andere apparaten of verbindingen.
racoon

system-config-network om het Netwerkconfiguratie gereedschap op te starten.
ipsec0. Indien nodig selecteer je het aanvinkhokje om de verbinding outomatisch op te starten als de computer opgestart wordt. Klik op om verder te gaan.
racoon daemon de encryptie sleutel. Het ipsec-tools pakket moet geinstalleerd zijn als je automatische encryptie wilt gebruiken.

192.168.1.0 in voor het instellen van ipsec1, en vul je 192.168.2.0 in voor het instellen van ipsec0.

/etc/sysctl.conf en zet net.ipv4.ip_forward op 1.
[root@myServer ~]# /sbin/sysctl -p /etc/sysctl.conf
r3dh4tl1nux, en de beheerders van A en B komen overeen om racoon te gebruiken voor het automatisch genereren en delen van authenticatie sleutels tussen elke IPsec router. De beheerder van LAN A besluit de IPsec verbinding ipsec0 te noemen, terwijl de beheerder van LAN B de IPsec verbinding ipsec1 noemt.
ifcfg bestand voor een netwerk-naar-netwerk IPsec verbinding voor LAN A zien. De unieke naam om de verbinding in dit voorbeeld te identificeren is ipsec0, dus het resulterende bestand wordt /etc/sysconfig/network-scripts/ifcfg-ipsec0 genoemd.
TYPE=IPSEC
ONBOOT=yes
IKE_METHOD=PSK
SRCGW=192.168.1.254
DSTGW=192.168.2.254
SRCNET=192.168.1.0/24
DSTNET=192.168.2.0/24
DST=X.X.X.X
/etc/sysconfig/network-scripts/keys-ipsecX (waarin X 0 is voor LAN A en 1 voor LAN B) dat beide netwerken gebruiken voor authenticatie van elkaar. De inhoud van dit bestand moet identiek zijn en alleen de root gebruiker moet in staat zijn dit bestand te lezen of te schrijven.
IKE_PSK=r3dh4tl1nux
keys-ipsecX bestand te veranderen zodat alleen de root gebruiker dit bestand kan lezen of schrijven, gebruik je het volgende commando na het aanmaken van het bestand:
chmod 600 /etc/sysconfig/network-scripts/keys-ipsec1
keys-ipsecX bestand op beide IPsec routers. Beide sleutels moeten identiek zijn voor een juiste verbinding.
/etc/racoon/racoon.conf configuratie bestand voor de IPsec verbinding. Merk op dat de include regel onder in het bestand automatisch gegenereerd wordt en alleen verschijnt als de IPsec tunnel actief is.
# Racoon IKE daemon configuration file.
# See 'man racoon.conf' for a description of the format and entries.
path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";
sainfo anonymous
{
pfs_group 2;
lifetime time 1 hour ;
encryption_algorithm 3des, blowfish 448, rijndael ;
authentication_algorithm hmac_sha1, hmac_md5 ;
compression_algorithm deflate ;
}
include "/etc/racoon/X.X.X.X.conf"
X.X.X.X.conf genoemd (waarin X.X.X.X het IP adres is van de IPsec router op afstand). Merk op dat dit bestand automatisch gegenereerd wordt als de IPsec tunnel actief is en moet niet direct bewerkt worden.
remote X.X.X.X{
exchange_mode aggressive, main;
my_identifier address;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2 ;
}
}
/etc/sysctl.conf en zet net.ipv4.ip_forward op 1.
[root@myServer ~] # sysctl -p /etc/sysctl.conf
[root@myServer ~] # /sbin/ifup ipsec0
ifup op de IPsec verbinding. Om een lijst van routes voor het netwerk te zien, gebruik je het volgende commando:
[root@myServer ~] # /sbin/ip route list
tcpdump commando uit op het extern-routable apparaat (eth0 in dit geval) om de netwerkpakketten te zien die verstuurd worden tussen de kosts (of netwerken), en verifieer dat ze versleuteld zijn met IPsec. Bijvoorbeeld, om de IPsec verbinding van LAN A te controleren, gebruik je het volgende commando:
[root@myServer ~] # tcpdump -n -i eth0 host lana.example.com
12:24:26.155529 lanb.example.com > lana.example.com: AH(spi=0x021c9834,seq=0x358): \
lanb.example.com > lana.example.com: ESP(spi=0x00c887ad,seq=0x358) (DF) \
(ipip-proto-4)
[root@myServer ~] # /sbin/ifup <nickname>
<nickname> de naam is die je eerder hebt ingestled, zoals ipsec0.
[root@myServer ~] # /sbin/ifdown <nickname>