I wrapper TCP sono in grado di fare molto di più che consentire e negare l'accesso ai servizi. Con l'argomento comando facoltativo, possono inviare banner di connessione, avvertire di attacchi da host particolari e migliorare la registrazione.
Banner wrapper TCP per un servizio
Per implementare un banner wrapper TCP per un servizio, utilizzare l'opzione banner. Questo esempio implementa un banner per vsftpd. Devi creare un file banner in qualsiasi punto del sistema, assegnandogli lo stesso nome del demone. In questo esempio, il file è chiamato /etc/banners/vsftpd e contiene le seguenti righe:
220-Hello, %c 220-All activity on ftp.example.com is logged. 220-Inappropriate use results in access privileges being removed.
Il %c token fornisce una varietà di informazioni sui clienti. Il token %d (non mostrato) si espande al nome del demone a cui il client ha tentato di connettersi. Affinché questo banner venga visualizzato alle connessioni in entrata, aggiungi la seguente riga al file /etc/hosts.allow:
# vi /etc/hosts.allow vsftpd : ALL : banners /etc/banners/
Wrapper TCP per avvisare da potenziali attacchi
I wrapper TCP possono avvisarti di potenziali attacchi da un host o da una rete utilizzando la direttiva spawn. La direttiva spawn esegue qualsiasi comando della shell. In questo esempio, viene tentato l'accesso dalla rete 200.182.68.0/24. Inserisci la seguente riga nel file /etc/hosts.deny per negare qualsiasi tentativo di connessione da quella rete e per registrare i tentativi in un file speciale:
# vi /etc/hosts.deny ALL : 200.182.68.0 : spawn /bin/echo `date` %c %d >> /var/log/intruder_alert
Per consentire la connessione e registrarla, inserisci la direttiva spawn nel file /etc/hosts.allow.
Nega l'accesso e registra il tentativo di connessione
La voce seguente in /etc/hosts.deny nega a tutti gli accessi client a tutti i servizi (a meno che non sia specificamente consentito in /etc/hosts.allow) e registra il tentativo di connessione:
# vi /etc/hosts.deny ALL : ALL : spawn /bin/echo “%c tried to connect to %d and was blocked” >> /var/log/tcpwrappers.log
Il livello di registro può essere elevato utilizzando l'opzione di gravità. Si supponga che chiunque tenti di accedere a un server FTP sia un intruso. Per denotare ciò, inserisci un flag emerg nei file di registro invece del flag predefinito, info e nega la connessione. Per fare ciò, inserisci la seguente riga in /etc/hosts.deny:
# vi /etc/hosts.deny sshd : ALL : severity emerg
Questo utilizza la funzione di registrazione predefinita authpriv, ma eleva la priorità dal valore predefinito di info a emerg, che invia i messaggi di registro direttamente alla console.
Nega l'accesso da un dominio specifico
L'esempio seguente afferma che se viene tentata una connessione al daemon SSH (sshd) da un host nel dominio example.com, eseguire il comando echo per aggiungere il tentativo a un file di registro speciale e negare la connessione. Poiché viene utilizzata la direttiva facoltativa di negazione, questa riga nega l'accesso anche se appare nel file /etc/hosts.allow:
# vi /etc/hosts.allow sshd : .example.com \ : spawn /bin/echo `/bin/date` access denied >> /var/log/sshd.log \ : deny
Ogni campo di opzione (spawn e nega) è preceduto dalla barra rovesciata (\) per evitare il fallimento della regola a causa della lunghezza.
Comprendere i wrapper TCP (/etc/hosts.allow &/etc/hosts.deny) in Linux