Kaip apsaugoti tinklo paslaugas naudojant „TCP Wrappers“ sistemoje „Linux“


Šiame straipsnyje mes paaiškinsime, kas yra TCP paketai ir kaip juos sukonfigūruoti sukonfigūruotai užkardai.

Šiuo atžvilgiu galite galvoti apie šį įrankį kaip apie pagrindinę jūsų sistemos saugumo priemonę. Naudodami ugniasienę ir TCP paketus, užuot teikę pirmenybę vienas kitam, įsitikinsite, kad jūsų serveris nepaliks nė vieno gedimo taško.

Suprasti šeimininkus. Leisti ir šeimininkus. Neigti

Kai tinklo užklausa pasiekia jūsų serverį, TCP apipavidalintojai naudoja hosts.allow ir hosts.deny (tokia tvarka) norėdami nustatyti, ar klientui turėtų būti leidžiama naudoti tam tikrą paslaugą .

Pagal numatytuosius nustatymus šie failai yra tušti, visi komentuoti arba jų nėra. Taigi viskas leidžiama per TCP įvyniojimo sluoksnį ir jūsų sistemai paliekama pasikliauti užkarda, kad būtų užtikrinta visa apsauga. Kadangi tai nėra pageidaujama, dėl įžangoje nurodytos priežasties įsitikinkite, kad egzistuoja abu failai:

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

Abiejų failų sintaksė yra ta pati:

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

kur,

  1. paslaugos yra kableliais atskirtas paslaugų, kurioms turėtų būti taikoma dabartinė taisyklė, sąrašas.
  2. klientai pateikia kableliais atskirtų prieglobos vardų arba IP adresų, kuriems taikoma taisyklė, sąrašą. Priimami šie pakaitos simboliai:
    1. VISI atitinka viską. Taikoma tiek klientams, tiek paslaugoms.
    2. LOCAL rungtyniauja šeimininkai be laikotarpio savo FQDN, pvz., „localhost“.
    3. ŽINOTI nurodo situaciją, kai žinomas pagrindinio kompiuterio vardas, pagrindinio kompiuterio adresas ar vartotojas.
    4. „UNKNOWN“ yra priešinga žinomai.
    5. PARANOID sukelia ryšį nutrūkti, jei atvirkštinės DNS paieškos (pirmiausia dėl IP adreso nustatant pagrindinio kompiuterio vardą, tada pagrindinio kompiuterio pavadinimo, norint gauti IP adresus) kiekvienu atveju pateikia kitą adresą.

    Turėtumėte nepamiršti, kad taisyklė, leidžianti prieigą prie tam tikros paslaugos, esančioje /etc/hosts.allow , turi viršenybę prieš taisyklę, esančią /etc/hosts.deny , draudžiančią tai. Be to, jei tai pačiai paslaugai taikomos dvi taisyklės, bus atsižvelgta tik į pirmąją.

    Deja, ne visos tinklo paslaugos palaiko TCP įvyniojimų naudojimą. Norėdami nustatyti, ar tam tikra paslauga juos palaiko, atlikite šiuos veiksmus:

    # ldd /path/to/binary | grep libwrap
    

    Jei pirmiau nurodyta komanda grąžina išvestį, ją galima apvynioti TCP. To pavyzdys yra sshd ir vsftpd, kaip parodyta čia:

    Kaip naudotis TCP paketais apriboti prieigą prie paslaugų

    Redaguodami /etc/hosts.allow ir /etc/hosts.deny , būtinai pridėkite naują eilutę paspausdami Enter po paskutinės ne tuščios eilutės.

    Norėdami leisti SSH ir FTP prieigą tik prie 192.168.0.102 ir „localhost“ bei paneigti visus kitus, pridėkite šias dvi eilutes aplanke /etc/hosts.deny :

    sshd,vsftpd : ALL
    ALL : ALL
    

    ir šią eilutę /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
    

    Šie pakeitimai įvyksta nedelsiant, nereikia iš naujo paleisti.

    Šiame paveikslėlyje galite pamatyti žodžio LOCAL pašalinimo iš paskutinės eilutės efektą: FTP serveris taps negalimas „localhost“. Pridėjus pakaitos simbolį, paslauga vėl bus prieinama.

    Norėdami leisti visoms paslaugoms laikyti kompiuterius, kurių pavadinime yra example.com , pridėkite šią eilutę hosts.allow :

    ALL : .example.com
    

    ir norėdami uždrausti prieigą prie vsftpd mašinoms 10.0.1.0/24, pridėkite šią eilutę hosts.deny :

    vsftpd : 10.0.1.
    

    Paskutiniuose dviejuose pavyzdžiuose atkreipkite dėmesį į tašką klientų sąrašo pradžioje ir pabaigoje. Jis naudojamas nurodyti „VISI pagrindiniai kompiuteriai ir (arba) klientai, kur pavadinime ar IP yra ta eilutė“.

    Ar šis straipsnis buvo jums naudingas? Ar turite klausimų ar komentarų? Nedvejodami meskite mums pastabą naudodami toliau pateiktą komentaro formą.