Com protegir els serveis de xarxa mitjançant embolcalls TCP a Linux


En aquest article explicarem què són els embolcalls TCP i com configurar-los al tallafoc configurat.

En aquest sentit, podeu pensar en aquesta eina com una mesura de seguretat definitiva per al vostre sistema. Mitjançant l'ús d'un tallafoc i embolcalls TCP, en comptes d'afavorir uns sobre els altres, us assegurareu que el vostre servidor no es quedi amb un únic punt de fallada.

Entendre hosts.allow i hosts.deny

Quan una sol·licitud de xarxa arriba al vostre servidor, els embolcalls TCP utilitzen hosts.allow i hosts.deny (en aquest ordre) per determinar si el client hauria de poder utilitzar un servei determinat. .

Per defecte, aquests fitxers estan buits, tots comentats o no existeixen. Així, tot està permès a través de la capa d'embolcalls TCP i el vostre sistema es deixa confiar en el tallafoc per a una protecció total. Com que això no es desitja, per la raó que vam indicar a la introducció, assegureu-vos que existeixin tots dos fitxers:

# ls -l /etc/hosts.allow /etc/hosts.deny

La sintaxi dels dos fitxers és la mateixa:

<services> : <clients> [: <option1> : <option2> : ...]

on,

  1. serveis és una llista separada per comes de serveis als quals s'ha d'aplicar la regla actual.
  2. els clients representen la llista de noms d'amfitrió o adreces IP separats per comes afectats per la regla. S'accepten els següents comodins:
    1. TOT coincideix amb tot. S'aplica tant als clients com als serveis.
    2. LOCAL coincideix amb els amfitrions sense punt al seu FQDN, com ara localhost.
    3. CONEGUT indica una situació on es coneix el nom d'amfitrió, l'adreça de l'amfitrió o l'usuari.
    4. DESCONEGUT és el contrari de CONEGUT.
    5. PARANOID fa que es cancel·li una connexió si les cerques de DNS inverses (primer a l'adreça IP per determinar el nom de l'amfitrió, després al nom d'amfitrió per obtenir les adreces IP) retornen una adreça diferent en cada cas.

    És possible que tingueu en compte que una regla que permet l'accés a un servei determinat a /etc/hosts.allow té prioritat sobre una regla a /etc/hosts.deny que prohibeix això. A més, si s'apliquen dues normes al mateix servei, només es tindrà en compte la primera.

    Malauradament, no tots els serveis de xarxa admeten l'ús d'embolcalls TCP. Per determinar si un servei determinat els admet, feu el següent:

    # ldd /path/to/binary | grep libwrap
    

    Si l'ordre anterior retorna la sortida, es pot embolicar en TCP. Un exemple d'això són sshd i vsftpd, com es mostra aquí:

    Com utilitzar embolcalls TCP per restringir l'accés als serveis

    Quan editeu /etc/hosts.allow i /etc/hosts.deny, assegureu-vos d'afegir una nova línia prement Retorn després de l'última línia no buida.

    Per permetre l'accés SSH i FTP només a 192.168.0.102 i localhost i negar tots els altres, afegiu aquestes dues línies a /etc/hosts.deny:

    sshd,vsftpd : ALL
    ALL : ALL
    

    i la línia següent a /etc/hosts.allow:

    sshd,vsftpd : 192.168.0.102,LOCAL
    
    #
    # hosts.deny	This file contains access rules which are used to
    #		deny connections to network services that either use
    #		the tcp_wrappers library or that have been
    #		started through a tcp_wrappers-enabled xinetd.
    #
    #		The rules in this file can also be set up in
    #		/etc/hosts.allow with a 'deny' option instead.
    #
    #		See 'man 5 hosts_options' and 'man 5 hosts_access'
    #		for information on rule syntax.
    #		See 'man tcpd' for information on tcp_wrappers
    #
    sshd,vsftpd : ALL
    ALL : ALL
    
    #
    # hosts.allow	This file contains access rules which are used to
    #		allow or deny connections to network services that
    #		either use the tcp_wrappers library or that have been
    #		started through a tcp_wrappers-enabled xinetd.
    #
    #		See 'man 5 hosts_options' and 'man 5 hosts_access'
    #		for information on rule syntax.
    #		See 'man tcpd' for information on tcp_wrappers
    #
    sshd,vsftpd : 192.168.0.102,LOCAL
    

    Aquests canvis es produeixen immediatament sense necessitat de reiniciar.

    A la imatge següent podeu veure l'efecte d'eliminar la paraula LOCAL de l'última línia: el servidor FTP no estarà disponible per a localhost. Després de tornar a afegir el comodí, el servei torna a estar disponible.

    Per permetre tots els serveis als amfitrions on el nom conté example.com, afegiu aquesta línia a hosts.allow:

    ALL : .example.com
    

    i per denegar l'accés a vsftpd a les màquines a 10.0.1.0/24, afegiu aquesta línia a hosts.deny:

    vsftpd : 10.0.1.
    

    En els dos últims exemples, observeu el punt al principi i al final de la llista de clients. S'utilitza per indicar \TOTS els hosts i/o clients on el nom o la IP conté aquesta cadena.

    T'ha estat útil aquest article? Tens alguna pregunta o comentari? No dubteu a enviar-nos una nota mitjançant el formulari de comentaris a continuació.