Hosts.allow - Linux Command - Unix komanda

VARDAS

hosts_access - priimančiosios prieigos valdymo failų formatas

APIBŪDINIMAS

Šiame vadovo puslapyje aprašoma paprastoji prieigos valdymo kalba, pagrįsta kliento (kompiuterio vardo / adreso, vartotojo vardo) ir serverio (proceso vardo, vardo / adreso) modeliais. Pavyzdžiai pateikiami pabaigoje. Nepaklausiu skaitytuvu siūloma greitai pereiti į skyrių " PAVYZDYS". Greituoju įvedimo prieigos valdymo kalba versija yra aprašyta hosts_options (5) dokumente. Plėtiniai įjungiami programos sukūrimo metu, pastatydami -DPROCESS_OPTIONS.

Toliau pateiktame tekste daemonas yra tinklo daemon proceso pavadinimas , o klientas - tai prašančiosios paslaugos serverio pavadinimas ir (arba) adresas. Tinklo daemon proceso pavadinimai yra nurodyti inetd konfigūracijos rinkmenoje.

ACCESS CONTROL FILES

Prieigos valdymo programinė įranga konsultuoja du failus . Paieška baigiasi pirmoje rungtynėje.

Prieiga bus suteikta, kai a (daemon, klientas) pora atitinka įrašą failo /etc/hosts.allow .

Priešingu atveju, prieiga bus uždrausta, kai a (daemon, klientas) pora atitinka įrašą failo /etc/hosts.deny .

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) arba pakaitos simbolių sąrašas (žr. žemiau).

client_list yra vieno ar kelių vardų, priimančiųjų adresų, šablonų ar pakaitos simbolių sąrašas (žr. toliau), kuris bus suderintas su kliento kompiuterio vardu arba adresu.

Sudėtingesnės formos " daemon @ host" ir " user @ host" yra paaiškintos serverių pasekmių modelių ir kliento vartotojo paieškos atitinkamuose skyriuose.

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.

PATTERNS

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 šeimininko adresą Eindhoveno universiteto tinkle (131.155.xx).

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 "nnnn / mmmm" 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 ".".

WILDCARDS

Prieigos valdymo kalba palaiko aiškius pakaitos simbolius:

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 ar adresas nežinomi. Š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

Pateikia visus naudotojus, kurių vardai žinomi, ir atitinka bet kurį kompiuterį, kurio vardas ir adresas yra žinomi. Š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 atitinka 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 COMMANDS"

Jei pirmoji suderinta prieigos kontrolės taisyklė turi komandą shell, tai komanda pakeičiama% (žr. Kitą skyrių). Rezultatas vykdomas naudojant / bin / sh child procesą su standartine įvestimi, išvedimu ir klaida, prijungta prie / dev / null . Nurodykite `& 'komandos pabaigoje, jei nenorite laukti, kol baigsis.

"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.

Dokumentas hosts_options (5) aprašo alternatyvią kalbą, kuri naudoja lauką "shell" komandą kitokiu ir nesuderinamu būdu.

% EXPANSIONS

Toliau pateikiamos išplėtimo galimybės komandų apvalkalo:

% a (% A)

Kliento (serverio) adresas.

% c

Kliento informacija: user @ host, user @ adresas, hosto vardas arba tiesiog adresas, priklausomai nuo to, kiek informacijos yra.

% d

Demono proceso pavadinimas (argv [0] vertė).

% h (% H)

Kliento (serverio) pagrindinio kompiuterio vardas arba adresas, jei prieglobos vardas nepasiekiamas.

% n (% N)

Kliento (serverio) vardas (arba "nežinomas" arba "paranojikas").

% p

Demonų proceso id.

% s

Serverio informacija: "daemon @ host", "daemon @ address" arba tik "daemon" pavadinimas, priklausomai nuo to, kiek informacijos yra.

% u

Kliento vartotojo vardas (arba "nežinoma").

%%

Išplečiama į vieną simbolį "%".

Veiklus% plėtinius, kurie gali supainioti apvalkalą, pakeičiami žymomis.

SERVERIO ENDPOINT PATTERNS

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 USERNAME LOOKUP

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 paieškas, aukščiau pateikta taisyklė gali sukelti naudotojo vardą tik tada, kai suderinami ir daemon_list, ir host_patternas .

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 vartotojo vardo informacijos negalima patikėti, kai to reikia labiausiai, ty 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.

NURODYMAI ADRESUI DUOMENYS

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.

PAVYZDŽIAI

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į.

DAUGIAU UŽDARYTA

Š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_netgroup
ALL: .foobar.edu IŠSKYRUS terminalaserver.foobar.edu

Pirmoji taisyklė leidžia pasiekti prieigą iš hostų vietos domenuose (ne ".", Esančioje kompiuterio pavadinime) ir tinklo tinklo some_netgroup nariams. Antroji taisyklė leidžia prieigą iš visų hostetų foobar.edu domeno ( pažymėkite pagrindinį tašką), išskyrus terminalserver.foobar.edu .

DAUGIAU ATIDARYTA

Č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.domain
VISI 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ų.

BOOBY TRAPS

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: nenaudokite pirštų demono, jei esate pasiruošęs begaliniam pirštų kilpui.

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.

TAIP PAT ŽR

tcpd (8) tcp / ip daemon apvyniojimo programa. tcpdchk (8), tcpdmatch (8), bandymo programos.

Svarbu: naudokite komandą man ( % man ), kad pamatytumėte, kaip komanda naudojama jūsų konkrečiame kompiuteryje.