Kako zaščititi omrežne storitve z uporabo TCP ovitkov v Linuxu


V tem članku bomo razložili, kaj so ovijalniki TCP in kako jih konfigurirati na konfiguriran požarni zid.

V zvezi s tem lahko to orodje predstavljate kot zadnji varnostni ukrep za vaš sistem. Z uporabo požarnega zidu in ovojnic TCP namesto, da bi dali prednost enemu drugemu, se prepričajte, da vaš strežnik nima ene same točke okvare.

Razumevanje hosts.allow in hosts.deny

Ko omrežna zahteva prispe na vaš strežnik, ovojniki TCP s pomočjo hosts.allow in hosts.deny (v tem vrstnem redu) ugotovijo, ali naj odjemalec sme uporabljati določeno storitev .

Te datoteke so privzeto prazne, vse so komentirane ali ne obstajajo. Tako je skozi sloj ovojnic TCP dovoljeno vse, vaš sistem pa se lahko za popolno zaščito zanese na požarni zid. Ker to ni zaželeno, iz razloga, ki smo ga navedli v uvodu, poskrbite, da obstajata obe datoteki:

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

Sintaksa obeh datotek je enaka:

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

kje,

  1. storitve je seznam storitev, ločenih z vejico, za katere je treba uporabiti trenutno pravilo.
  2. odjemalci predstavljajo seznam imen gostiteljev ali naslovov IP, ločenih z vejico, na katere vpliva pravilo. Sprejeti so naslednji nadomestni znaki:
    1. VSE se ujema z vsem. Velja tako za stranke kot za storitve.
    2. LOCAL se ujema z gostitelji brez pike v njihovem FQDN-ju, na primer localhost.
    3. ZNANO označuje situacijo, ko so ime gostitelja, naslov gostitelja ali uporabnik znani.
    4. NEZNANO je nasprotje ZNANEM.
    5. PARANOID povzroči, da se povezava prekine, če povratna iskanja DNS (najprej na naslovu IP za določitev imena gostitelja, nato na imenu gostitelja za pridobitev naslovov IP) v vsakem primeru vrnejo drug naslov.

    Morda ne pozabite, da ima pravilo, ki omogoča dostop do dane storitve v /etc/hosts.allow , prednost pred pravilom v /etc/hosts.deny , ki prepoveduje to. Če za isto storitev veljata dve pravili, bo upoštevano le prvo.

    Na žalost vse omrežne storitve ne podpirajo uporabe ovitkov TCP. Če želite ugotoviti, ali jih določena storitev podpira, naredite:

    # ldd /path/to/binary | grep libwrap
    

    Če zgornji ukaz vrne izhod, je lahko zavit v TCP. Primer tega sta sshd in vsftpd, kot je prikazano tukaj:

    Kako uporabiti zavijalce TCP za omejitev dostopa do storitev

    Ko urejate /etc/hosts.allow in /etc/hosts.deny , dodajte novo vrstico tako, da pritisnete Enter za zadnjo neprazno vrstico.

    Če želite dovoliti dostop SSH in FTP samo do 192.168.0.102 in localhost ter zavrniti vse druge, dodajte ti dve vrstici v /etc/hosts.deny :

    sshd,vsftpd : ALL
    ALL : ALL
    

    in naslednja vrstica v /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
    

    Te spremembe se izvedejo takoj, brez ponovnega zagona.

    Na naslednji sliki lahko vidite učinek odstranjevanja besede LOCAL iz zadnje vrstice: strežnik FTP postane nedosegljiv za localhost. Ko vrnemo nadomestni znak, je storitev spet na voljo.

    Če želite dovoliti vse storitve gostiteljem, kjer ime vsebuje example.com , dodajte to vrstico v hosts.allow :

    ALL : .example.com
    

    in če želite 10.0.1.0/24 zavrniti dostop do vsftpd do računalnikov, dodajte to vrstico v hosts.deny :

    vsftpd : 10.0.1.
    

    Na zadnjih dveh primerih opazite piko na začetku in na koncu seznama strank. Uporablja se za označevanje\"VSE gostitelji in/ali odjemalci, kjer ime ali IP vsebuje ta niz".

    Vam je bil članek v pomoč? Imate kakšno vprašanje ali komentar? Sprostite nam opombo s pomočjo spodnjega obrazca za komentar.