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,
- paslaugos yra kableliais atskirtas paslaugų, kurioms turėtų būti taikoma dabartinė taisyklė, sąrašas.
- klientai pateikia kableliais atskirtų prieglobos vardų arba IP adresų, kuriems taikoma taisyklė, sąrašą. Priimami šie pakaitos simboliai:
- VISI atitinka viską. Taikoma tiek klientams, tiek paslaugoms.
- LOCAL rungtyniauja šeimininkai be laikotarpio savo FQDN, pvz., „localhost“.
- ŽINOTI nurodo situaciją, kai žinomas pagrindinio kompiuterio vardas, pagrindinio kompiuterio adresas ar vartotojas.
- „UNKNOWN“ yra priešinga žinomai.
- 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ą.