Kuidas tagada võrguteenuseid Linuxi TCP-mähiste abil


Selles artiklis selgitame, mis on TCP ümbrised ja kuidas neid konfigureerida tulemüüriks.

Selles osas võite mõelda, et see tööriist on teie süsteemi ülim turvameede. Kasutades tulemüüri ja TCP-mähiseid, selle asemel, et eelistada üksteist, veendute, et teie serverisse ei jääks ükski rikke punkt.

Host.allow ja hosts.deny mõistmine

Kui võrgutaotlus teie serverisse jõuab, kasutavad TCP-mähised hosts.allow ja hosts.deny (selles järjekorras), et teha kindlaks, kas kliendil peaks olema lubatud antud teenust kasutada .

Vaikimisi on need failid tühjad, kõik on kommenteeritud või neid pole olemas. Seega on kõik lubatud TCP-mähiste kihi kaudu ja teie süsteem jääb täieliku kaitse saamiseks tuginema tulemüürile. Kuna see pole sissejuhatuses märgitud põhjusel soovitav, veenduge, et mõlemad failid oleksid olemas:

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

Mõlema faili süntaks on sama:

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

kus

  1. teenused on komadega eraldatud teenuste loend, millele praegust reeglit tuleks rakendada.
  2. kliendid esindavad komaga eraldatud hostinimede või IP-aadresside loendit, mida reegel mõjutab. Aktsepteeritakse järgmisi metamärke:
    1. KÕIK sobib kõigega. Kehtib nii klientide kui ka teenuste kohta.
    2. LOCAL vastab võõrustajatele, kelle FQDN-is pole perioodi, näiteks localhost.
    3. TEADLIK näitab olukorda, kus hostinimi, hostiaadress või kasutaja on teada.
    4. Tundmatu on vastand teadmusele.
    5. PARANOID põhjustab ühenduse katkemise, kui vastupidised DNS-otsingud (esmalt IP-aadressil hosti nime määramiseks, seejärel hosti nimel IP-aadresside saamiseks) tagastavad igal juhul erineva aadressi.

    Peaksite meeles pidama, et reegel, mis lubab juurdepääsu teenusele /etc/hosts.allow antud teenusele, on ülimuslik reegli suhtes, mis keelab /etc/hosts.deny seda. Lisaks, kui sama teenuse kohta kehtivad kaks reeglit, võetakse arvesse ainult esimest.

    Kahjuks ei toeta kõik võrguteenused TCP-ümbriste kasutamist. Tehke kindlaks, kas antud teenus neid toetab.

    # ldd /path/to/binary | grep libwrap
    

    Kui ülaltoodud käsk tagastab väljundi, saab selle TCP-ga mähkida. Selle näiteks on sshd ja vsftpd, nagu siin näidatud:

    Kuidas kasutada teenustele juurdepääsu piiramiseks TCP-mähisteid

    Redigeerides /etc/hosts.allow ja /etc/hosts.deny , lisage kindlasti uus rida, vajutades Enter pärast viimast mittetühja rida.

    Kui lubate SSH-le ja FTP-le juurdepääsu ainult 192.168.0.102-le ja localhostile ning keelate kõik teised, lisage need kaks rida jaotisse /etc/hosts.deny :

    sshd,vsftpd : ALL
    ALL : ALL
    

    ja järgmine rida jaotises /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
    

    Need muudatused toimuvad kohe, ilma et oleks vaja uuesti käivitada.

    Järgmisel pildil näete sõna LOCAL eemaldamise mõju viimaselt realt: FTP-server ei ole localhosti jaoks saadaval. Pärast metamärgi lisamist muutub teenus uuesti kättesaadavaks.

    Kõigi teenuste lubamiseks hostidele, kus nimi sisaldab example.com , lisage see rida jaotisse hosts.allow :

    ALL : .example.com
    

    ja et keelata 10.0.1.0/24 masinatele juurdepääsu vsftpd-le, lisage see rida hosts.deny :

    vsftpd : 10.0.1.
    

    Kahe viimase näite puhul märkige klientide loendi alguses ja lõpus olevat punkti. Seda kasutatakse\"KÕIK hostid ja/või kliendid, kus nimi või IP sisaldab seda stringi".

    Kas see artikkel oli teile kasulik? Kas teil on küsimusi või kommentaare? Heitke meile märkus, kasutades allolevat kommentaarivormi.