vardas
hosts_access - prieigos prie "Linux" valdymo failų formatas.
apibūdinimas
Šiame vadovo puslapyje Linux apibūdinama kaip paprasta prieigos valdymo kalba, pagrįsta kliento (kompiuterio vardas / adresas, vartotojo vardas) ir serverio (proceso pavadinimas, vardas / adresas) modelius. Pavyzdžiai pateikiami pabaigoje. Nepaklustajam skaitytojui siūloma greitai pereiti į skyrių "Pavyzdžiai", kad būtų galima greitai jį įdiegti. Išplėstinė prieigos kontrolės kalbos versija aprašyta hosts_options (5) dokumentą. Plėtiniai įjungiami programos sukūrimo metu, pastatydami -DPROCESS_OPTIONS.
Šiame tekste daemonas yra tinklo proceso proceso pavadinimas ir klientas yra prašančiosios paslaugos teikėjo vardas ir pavardė ir (arba) adresas. Tinklo daemon proceso pavadinimai yra nurodyti inetd konfigūracijos rinkmenoje.
Prieigos valdymo failai
Prieigos valdymo programinė įranga konsultuoja du failus. Paieška baigiasi pirmoje rungtynėje.
Prieiga bus suteikta, kai (daemon, klientas) pora atitinka įrašą /etc/hosts.allow failas
Priešingu atveju, prieiga bus uždrausta, kai (daemon, klientas) pora atitinka įrašą /etc/hosts.deny failas
Priešingu atveju prieiga bus suteikta.
Neegzistuojanti prieigos valdymo byla laikoma tuščią failą. Taigi, prieigos valdymą galima išjungti, nesuteikiant prieigos valdymo failų.
Prieigos kontrolės taisyklės
Kiekviena prieigos valdymo byla susideda iš nulio ar daugiau teksto eilučių. Šios linijos apdorojamos išdėstymo tvarka. Paieška baigiasi, kai randama atitiktis.
Naujos eilutės simbolis yra ignoruojamas, kai prieš jį yra grįžtamojo rutulio simbolis. Tai leidžia sulaužyti ilgas eilutes, kad jas būtų lengviau redaguoti.
Tuščios eilutės ar linijos, prasidedančios simboliu "#", ignoruojamos. Tai leidžia įterpti komentarus ir tarpą, kad būtų lengviau skaityti lenteles.
Visos kitos eilutės turėtų atitikti tokį formatą, dalykai tarp yra pasirenkami:
daemon_list: client_list : shell_command
daemon_list yra vieno ar kelių demonų proceso pavadinimų (argv 0 vertės) ar pakaitos simbolių sąrašas (žr. žemiau).
client_list yra vieno ar kelių pavadinimų, priimančiųjų adresų, šablonų ar pakaitos simbolių sąrašas (žr. toliau), kuris bus suderintas su kliento kompiuterio vardu arba adresu.
Sunkesnės formos daemon @ host ir user @ host yra paaiškinti skyriuose apie serverio pasekmių modelius ir kliento vartotojo vardus atitinkamai.
Elementai sąrašo turėtų būti atskirti ruošiniai ir / arba kableliais.
Išskyrus NIS (YP) tinklo grupes, visi prieigos kontrolės patikrinimai yra nereikšmingi.
Modeliai
Prieigos valdymo kalba įgyvendina šiuos modelius:
Styga, prasidedanti "." charakteris. Kompiuterio vardas suderinamas, jei jo pavadinimo paskutiniai komponentai atitinka nurodytą modelį. Pavyzdžiui, modelis `.tue.nl 'atitinka serverio pavadinimą` wzv.win.tue.nl'.
Styga, kuri baigiasi "." charakteris. Priimančiojo adresas sutampa, jei jo pirmieji skaitmeniniai laukai atitinka nurodytą eilutę. Pavyzdžiui, modelis "131.155." atitinka (beveik) kiekvieno kompiuterio adresą Eindhoveno universiteto tinkle (131.155.x.x).
Styga, prasidedanti simboliu `@ ', laikoma NIS (anksčiau YP) tinklo grupės pavadinimu. Hosto vardas suderinamas, jei jis yra nurodytos tinklo grupės priimančioji šalis. Netgroup rungtynės nepalaikomos demonų proceso pavadinimams ar klientų naudotojų vardams.
Formos "n.n.n.n.m.m.m" išraiškos interpretuojama kaip "neto / kaukės" pora. IPv4 hosto adresas sutampa, jei "net" yra lygus bituminiam "AND" adresui ir "maskui". Pavyzdžiui, tinklas / kaukė "131.155.72.0/255.255.254.0" atitinka kiekvieną "131.155.72.0" iki "131.155.73.255" diapazono adresą.
Formos "n: n: n: n: n: n: n: n / m" išraiškos interpretuojama kaip "net / prefixlen" pora. IPv6 hosto adresas sutampa, jei "prefixlen" bitai iš "neto" yra lygūs "prefixlen" adreso bitams. Pavyzdžiui, net / prefixlen modelis `3ffe: 505: 2: 1 :: / 64 'atitinka kiekvieną adresą diapazone' 3ffe: 505: 2: 1 :: 'iki' 3ffe: 505: 2: 1: ffff: ffff: ffff: ffff '.
Styga, prasidedanti simboliu `/ ', laikoma failo pavadinimu. Kompiuterio vardas arba adresas suderinamas, jei jis atitinka bet kurį nurodyto failo vardą arba adreso struktūrą. Failo formatas yra nulis ar daugiau eilučių su nuline ar daugiau vardų ar adresų, atskirtų tarpu. Failo pavadinimo raštas gali būti naudojamas visur, kur gali būti naudojamas vardas ar adresas.
Pažymėjimai `* 'ir`?' gali būti naudojamas norint surinkti vardus ar IP adresus. Šis atitikties metodas negali būti naudojamas kartu su "neto / kaukės" suderinimu, o prieglobos pavadinimo atitikimas pradedamas skaičiumi "." arba IP adreso atitikimas baigiasi ".".
Ženkliukai
Prieigos valdymo kalba palaiko aiškius pakaitos simbolius, įskaitant:
"VISI"
Universali wildcard, visada atitinka.
"VIETINIS"
Pateikia visus kompiuterius, kurių pavadinime nėra taškų simbolio.
"Nežinomas"
Pateikia visus naudotojus, kurių vardai nežinomi, ir atitinka bet kurį kompiuterį, kurio vardas arba adresas yra nežinoma. Šis modelis turi būti naudojamas atsargiai: dėl laikinų vardų serverio problemų prieglobos vardai gali būti nepasiekiami. Tinklo adresas nebus pasiekiamas, kai programinė įranga negalės suprasti, kokio tipo tinklu jis kalba.
'ŽINOMAS'
Atitinka bet kurį naudotoją, kurio vardas žinomas, ir atitinka bet kurį kompiuterį, kurio vardas ir adresas yra žinomas.Šis modelis turi būti naudojamas atsargiai: dėl laikinų vardų serverio problemų prieglobos vardai gali būti nepasiekiami. Tinklo adresas nebus pasiekiamas, kai programinė įranga negalės suprasti, kokio tipo tinklu jis kalba.
"PARANOID"
Atitinka visus kompiuterius, kurių pavadinimas neatitinka jo adreso. Kai tcpd yra sukurtas naudojant "-DPARANOID" (numatytasis režimas), tokie klientai užpildo prašymus dar prieš žiūrėdami į prieigos valdymo lenteles. Sukurkite be -DPARANOID, kai norite daugiau kontroliuoti tokius prašymus.
"OPERATORIAI"
"IŠSKYRUS"
Numatytasis naudojimas yra tokios formos: `list_1 EXCEPt list_2 '; šis konstruktas atitinka viską, kas atitinka list_1 nebent jis atitiktų list_2 . EXCEPT operatorius gali būti naudojamas daemon_lists ir client_lists. "EXCEPT" operatorius gali būti prisegtas: jei kontrolės kalba leistų naudoti skliaustus, "EXCEPT b EXCEPT c" būtų parsisiunčiamas kaip "(EXCEPT (b EXCEPT c))".
"Shell" komandos
Jei pirmoji suderinta prieigos kontrolės taisyklė turi komandą shell, tai komanda pakeičiama% (žr. Kitą skyrių). Rezultatas vykdomas: a / bin / sh vaiko procesas su standartiniu įėjimu, išvedimu ir klaidos prijungimu prie / dev / null . Terminalo komandos pabaigoje nurodykite `& ', jei nenorite laukti, kol jis bus baigtas.
"Shell" komandos neturėtų remtis "inetd" nustatymu PATH. Vietoj to jie turėtų naudoti absoliučius kelio pavadinimus, arba jie turėtų prasidėti aiškiu PATH = bet kuriuo teiginiu.
The hosts_options (5) dokumentas apibūdina alternatyvią kalbą, kuri naudoja lauką "shell" komandą kitokiu ir nesuderinamu būdu.
% Išplėtimas
Toliau pateikiamos išplėtimo galimybės komandų apvalkalo:
% a (% A) - kliento (serverio) priimančiojo adresas.
% c - Informacija apie klientą: user @ host, user @ address, host name arba tiesiog adresas, priklausomai nuo to, kiek informacijos yra.
% d - "Daemon" proceso pavadinimas ("argv 0 vertė").
% h (% H) - kliento (serverio) pagrindinio kompiuterio vardas ar adresas, jei prieglobos vardas yra nepasiekiamas.
% n (% N) - kliento (serverio) prieglobos vardas (arba "nežinoma" arba "paranojikas").
% p - Demonų proceso id.
% s - Informacija apie serverį: "daemon @ host", "daemon @ address" arba tik "daemon" pavadinimas, priklausomai nuo to, kiek informacijos yra.
% u - kliento vartotojo vardas (arba "nežinomas").
%% - Išplečiama į vieną simbolį "%".
Veiklus% plėtinius, kurie gali supainioti apvalkalą, pakeičiami žymomis.
Serverio parametrų modeliai
Norint atskirti klientus nuo prisijungimo prie tinklo adreso, naudokite formos modelius:
process_name @ host_pattern: client_list …
Tokie modeliai gali būti naudojami, kai mašina turi skirtingus interneto adresus su skirtingais interneto pavadinimais. Paslaugų teikėjai gali pasinaudoti šia galimybe, kad galėtų pasiūlyti FTP, GOPHER arba WWW archyvus su internetiniais pavadinimais, kurie net gali priklausyti skirtingoms organizacijoms. Taip pat žiūrėkite "twist" parinktį hosts_options (5) dokumente. Kai kurios sistemos ("Solaris", "FreeBSD") gali turėti daugiau nei vieną interneto adresą vienoje fizinėje sąsajoje; naudodamiesi kitomis sistemomis gali tekti pasinaudoti SLIP arba PPP pseudo sąsajomis, kurios gyvena tam skirtoje tinklo adresų erdvėje.
Host_patternas laikosi tų pačių sintaksės taisyklių, kaip ir vardai ir adresai, esantys kliento_ kontekste. Paprastai serverio informacijos apie galutinę galią galima gauti tik su ryšiu orientuotomis paslaugomis.
Kliento vartotojo vardas
Kai kliento kompiuteris palaiko RFC 931 protokolą arba vieną iš jo palikuonių (TAP, IDENT, RFC 1413), paketų programos gali nuskaityti papildomos informacijos apie ryšio savininką. Kliento vartotojo vardo informacija, kai ji yra, registruojama kartu su kliento kompiuterio vardu ir gali būti naudojama tokiems modeliams, kaip:
daemon_list: … user_pattern @ host_pattern …
Demonų aplankai gali būti sukonfigūruoti kompiliavimo metu, kad būtų galima atlikti taisyklingų vartotojo vardų paieškos (pagal nutylėjimą) arba visada paklausti kliento kompiuterio. Tais atvejais, kai taisyklėmis grindžiamas naudotojo vardo peržvalgos, pirmiau nurodyta taisyklė gali sukelti naudotojo iešką tik tada, kai abu daemon_list ir host_pattern rungtynės.
Naudotojo raštas turi tą patį sintaksę, kaip demonų proceso modelis, todėl taikomi tie patys pakaitos simboliai (neto grupės narystė nepalaikoma). Nepaisant to, niekas neturėtų užvaldyti naudotojo vardo paieškos.
Kliento naudotojo vardo informaciją negalima patikėti, kai to reikia labiausiai, t. Y. Kai kliento sistema yra pažeista. Apskritai, ALL ir (UN) KNOWN yra vienintelis naudotojo vardo modelis, kuris turi prasmę.
Vartotojo vardų peržvalgos yra įmanomos tik naudojant TCP pagrįstas paslaugas ir tik tada, kai kliento priimančiojoje veikia tinkamas daemonas; visais kitais atvejais rezultatas yra "nežinoma".
Gerai žinoma UNIX branduolio klaida gali sukelti paslaugos praradimą, kai užkoduoti užblokuoti vartotojo vardų paieškos. Į pakuotės dokumentą README aprašoma procedūra, skirta išsiaiškinti, ar jūsų branduolys turi šią klaidą.
Vartotojo vardų paieškos gali sukelti pastebimą vėlavimą ne UNIX vartotojams. Numatytoji naudotojo vardo paieškos laiko praleidimo trukmė yra 10 sekundžių: per trumpas, kad susidorotų su lėtais tinklais, bet pakankamai ilgai, kad dirgintų kompiuterio vartotojus.
Pasirinktiniai naudotojo vardo paieškos gali sumažinti paskutinę problemą. Pvz., Tokia taisyklė kaip:daemon_list: @ pcnetgroup ALL @ ALL
atitiktų kompiuterio tinklo grupes, neatliktų naudotojo vardų paieškos, bet atliktų naudotojo vardų paieškos su visomis kitomis sistemomis. Daugelio TCP / IP įdiegimų sekos numerio generavimo trūkumas leidžia įsibrovėliams lengvai įtakoti patikimus kompiuterius ir sugadinti per, pvz., Nuotolinę apvalkalo paslaugą.Paslauga IDENT (RFC931 ir tt) gali būti naudojama norint nustatyti tokius ir kitus prieglobsčio vietos atakas. Prieš priimdami kliento užklausą, aplankai gali naudotis "IDENT" paslauga, norėdami sužinoti, kad klientas visai nepateikė užklausos. Kai kliento priegloba teikia IDENT paslaugą, neigiamas IDENT paieškos rezultatas (klientas atitinka "UNKNOWN @ host") yra tvirtas įrodymas, kad buvo užpuolimo spąstai. Teigiamas IDENT paieškos rezultatas (klientas atitinka "KNOWN @ host") yra mažiau patikimas. Įtinkamasis gali užblokuoti tiek kliento ryšį, tiek ir IDENT paieškos, nors tai daro daug sunkiau, nei apgauti tik kliento ryšį. Taip pat gali būti, kad kliento IDENT serveris yra melas. Pastaba: IDENT paieška neveikia su UDP paslaugomis. Kalba yra pakankamai lanksti, kad skirtingų tipų prieigos kontrolės politika gali būti išreikšta kuo mažiau. Nors kalba naudoja dvi prieigos valdymo lenteles, labiausiai paplitusios strategijos gali būti įgyvendintos, kai viena iš lentelių yra nereikšminga arba net tuščia. Perskaitydami žemiau pateiktus pavyzdžius, svarbu suprasti, kad leistina lentelė yra nuskaityta prieš atsisakant lentelės, kad paieška baigiasi, kai randama atitiktis, o ta prieiga suteikiama, kai nėra jokio atitikimo. Pavyzdžiai naudoja priimančiosios ir domenų pavadinimus. Jos gali būti patobulintos, įtraukiant adreso ir (arba) tinklo / tinklo maskų informaciją, siekiant sumažinti laikinųjų vardų serverių paieškos nepakankamumo poveikį. Šiuo atveju prieiga neleidžiama pagal numatytuosius nustatymus. Leidžiama naudoti tik aiškiai įgaliotus kompiuterius. Numatytoji politika (be prieigos) yra įdiegta trivialus uždrausti failą: /etc/hosts.deny: ALL: ALL Tai užkerta kelią bet kokiai paslaugai visiems kompiuteriams, nebent jiems leidžiama pasiekti įrašus leidimo byloje. Aiškiai įgaliotieji kompiuteriai yra išvardyti leidimo byloje. Pavyzdžiui: /etc/hosts.allow: ALL: LOCAL @some_netgroupALL: .foobar.edu IŠSKYRUS terminalaserver.foobar.edu Pirmoji taisyklė leidžia prieigą iš hostų vietos domenuose (ne ".", Esančio kompiuterio pavadinime) ir iš kai_netgroup netgroup. Antroji taisyklė leidžia prieigą iš visų kompiuterių foobar.edu domenas (pranešimas pagrindinis taškas), išskyrus terminalaserver.foobar.edu . Čia prieiga suteikiama pagal numatytuosius nustatymus; tik aiškiai nurodyti šeimininkai atsisako paslaugos. Numatytoji politika (prieiga suteikta) leidžia leisti failą nereikalingą, kad jį būtų galima praleisti. Aiškiai neleistini kompiuteriai yra išvardyti atsisakymo failo. Pavyzdžiui: /etc/hosts.deny: ALL: some.host.name, .some.domainVISI IŠSKYRIA in.fingerd: other.host.name, .other.domain Pirmoji taisyklė atmetė kai kuriuos kompiuterius ir domenus, visas paslaugas; antroji taisyklė vis dar leidžia pirštų prašymus iš kitų kompiuterių ir domenų. Kitas pavyzdys leidžia tftp prašymus iš vietinių domenų kompiuterių (pastebėkite pagrindinį tašką). Prašymai iš bet kurios kitos šeimos yra atmesti. Vietoj prašomo failo pirštų zondas siunčiamas pažeidėją priimančiam asmeniui. Rezultatas siunčiamas administratoriui. /etc/hosts.allow: in.tftpd: LOCAL, my domain/etc/hosts.deny:in.tftpd: ALL: spawn (/ some / where / safe_finger -l @% h | / usr / ucb / mail -s% d-% h root) &
"Safe_finger" komanda ateina su tcpd pakuote ir turėtų būti įdiegta tinkamoje vietoje. Tai riboja galimą žalą iš nuotolinio piršto serverio siunčiamų duomenų. Tai suteikia geresnę apsaugą nei standartinė piršto komanda. % H (kliento prieglobos) ir% d (paslaugos pavadinimo) sekų išplėtimas aprašytas skyriuje apie apvalkalo komandas. Įspėjimas: Negalima šaudyti pirštų demono, nebent esate pasiruošęs begaliniam pirštų kilpos. Tinklo ugniasienės sistemose šį triuką galima atlikti dar labiau. Tipiškas tinklo užkardos teikia tik ribotą paslaugų komplektą išoriniam pasauliui. Visos kitos paslaugos gali būti "pažeistos", kaip nurodyta tftp pavyzdyje. Rezultatas yra puiki ankstyvojo įspėjimo sistema. tcpd (8) tcp / ip daemon apvyniojimo programa.tcpdchk (8), tcpdmatch (8), bandymo programos.
Svarbu: Naudoti vyras komanda ( % vyras ), kad pamatytumėte, kaip komanda naudojama jūsų konkrečiame kompiuteryje. Aptikti adreso šnipinėjimo ataką
Pavyzdžiai
Dažniausiai uždaryta
Dažniausiai atvira
Booby Spąstai
Taip pat žiūrėkite













