Questi due file controllano i cosiddetti tcp wrappers, un insieme di funzioni che permettono di controllare come dall'esterno si può accedere al vostro computer (una specie di filtro telefonico che impedisce che ci possano chiamare da certi numeri, o a certe ore).
Questi file permettono, per i programmi che sono stati predisposti per usarli, di specificare un controllo degli accessi che permetta di collegarsi a certi servizi solo da parte di certi host, aumentando quindi la sicurezza ad essi relativa. Il loro formato è riportato nella pagina di manuale accessibile con man 5 hosts_access.
Il primo file, come suggerisce il nome, elenca le regole che negano l'accesso, il secondo quelle che lo consentono. Si tenga presente che il funzionamento dei tcp wrappers è tale che prima viene controllato hosts.allow, e se una regola corrisponde l'accesso è garantito ed il controllo è finito, altrimenti viene controllato hosts.deny e se una regola corrisponde l'accesso è negato; di default l'accesso è garantito.
In genere allora quello che si fa è negare tutti gli accessi in hosts.deny e consentire solo quelli voluti in hosts.allow. Per questo l'esempio tipico di hosts.deny è il seguente:
ALL: ALL
La sintassi delle regole si intravede già in questo esempio; al solito righe vuote e tutto quello che segue un # viene ignorato, ogni riga poi ha la forma:
lista dei server: lista dei client : comando shelldove la terza parte (: comando shell) è opzionale e può essere omessa.
Un ulteriore esempio, più significativo del precedente, che consente l'accesso ad ssh, ma blocca tutto il resto eccetto in locale, è quello del contenuto di hosts.allow riportato di seguito:
sshd: ALL portmap: 127.0.0.1 leafnode: 127.0.0.1
In generale per lista dei server si intende il nome (o i nomi, se se ne vuole indicare più di uno) del programma che gestisce lo specifico servizio. Occorre fare attenzione, perché il nome è quello del programma che fornisce il servizio (ad esempio in.telnetd), non quello del servizio.
Nell'esempio indicato si sono indicati tre servizi, il primo è la secure shell, che permetti un collegamento sicuro da remoto, che è gestita come server dal programma sshd; il secondo è un servizio di sistema, il terzo è un programma che permette di tenere un servere di news in locale (a scopo di caching).
Nella lista dei client si indicano invece gli IP o le reti a cui si vuole consentire l'accesso. Per le reti in genere si usa la notazione sia numerica che alfabetica, e si può usare una * come wildcard per raggruppare indirizzi; si può anche specificare una netmask con un indirizzo de tipo:
131.155.72.0/255.255.254.0e specificare la lista degli indirizzi usando un file dando il pathname completo.