Hostsallow - Linux Command - Unix Command

NAME

hosts_access - format gostiteljskih datotek za nadzor dostopa

OPIS

Ta priročnik opisuje preprost jezik za nadzor dostopa, ki temelji na odjemalcu (ime gostitelja / naslov, ime uporabnika) in vzorce strežnika (ime procesa, ime gostitelja / naslov). Primeri so podani na koncu. Neprimeren bralec se spodbuja, da preskoči v razdelek PRIMERI za hiter uvod . Podaljšana različica jezika za nadzor dostopa je opisana v dokumentu hosts_options (5). Razširitve so vključene v času izdelave programa z gradnjo z -DPROCESS_OPTIONS.

V naslednjem besedilu, daemon je ime procesa procesa procesorja v omrežju , stranka pa je ime in / ali naslov gostiteljske storitve. V nastavitveni datoteki inetd so navedena imena procesov v omrežju.

DATOTEKE ZA REGISTRACIJO DOSTOPA

Programska oprema za nadzor dostopa se posvetuje z dvema datotekama . Iskanje se ustavi na prvi tekmi.

Dostop bo odobren, če se par (daemon, odjemalec) ujema z vnosom v datoteki /etc/hosts.allow .

V nasprotnem primeru bo dostop zavrnjen, če se par (daemon, odjemalec) ujema z vnosom v datoteki /etc/hosts.deny .

V nasprotnem primeru bo dostop odobren.

Neveljavna datoteka za nadzor dostopa se obravnava kot prazna datoteka. Tako je nadzor dostopa mogoče izklopiti z zagotavljanjem datotek za nadzor dostopa.

PRAVILA ZA UPRAVLJANJE DOSTOPA

Vsaka datoteka nadzora dostopa je sestavljena iz nič ali več vrstic besedila. Te vrstice se obdelujejo po vrsti videza. Iskanje se zaključi, ko se najde tekmo.

Znak za novo vrstico je prezrt, če je pred njim znak črte. To vam omogoča, da razčlenite dolge črte, da jih boste lažje uredili.

Prazne črte ali vrstice, ki se začnejo z znakom "#", se prezrejo. To vam omogoča, da vstavite komentarje in presledke, tako da so tabele lažje brati.

Vse druge vrstice morajo izpolnjevati naslednjo obliko: stvari med [] so neobvezne:

daemon_list: client_list [: shell_command]

daemon_list je seznam ene ali več imen procesa procesa (vrednosti argv [0]) ali nadomestnih znakov (glejte spodaj).

client_list je seznam enega ali več gostiteljskih imen, naslovov gostiteljev, vzorcev ali nadomestnih znakov (glej spodaj), ki se bodo ujemali z imenom ali naslovom gostitelja stranke.

Bolj kompleksne oblike daemon @ host in user @ host so razložene v odsekih na vzorcih končne točke strežnika in na uporabniških poizvedbah uporabnikov.

Elemente seznama je treba ločiti s praznimi in / ali vejicami.

Z izjemo pregledov netgroup NIS (YP) so vse kontrole dostopa neobčutljive.

PATTERNS

Jezik za nadzor dostopa izvaja naslednje vzorce:

Niz, ki se začne z '.' znak. Ime gostitelja se ujema, če se zadnje komponente njenega imena ujemajo z določenim vzorcem. Na primer, vzorec `.tue.nl 'ustreza imenu gostitelja` wzv.win.tue.nl'.

Niz, ki se konča z '.' znak. Naslov gostitelja se ujema, če se njegova prva numerična polja ujemata z določenim nizom. Na primer, vzorec `131.155. ' se ujema z naslovom (skoraj) vsakega gostitelja v mreži Eindhoven University (131.155.xx).

Niz, ki se začne z znaki `@ ', se obravnava kot ime omrežne skupine NIS (prej YP). Ime gostitelja se ujema, če je gostitelj član določene skupine. Ujemanja v skupini NetGroup niso podprta za imena procesov daemon ali za uporabniška imena odjemalcev.

Izraz "nnnn / mmmm" se razlaga kot par "net / maska". Naslov gostitelja IPv4 se ujema, če je "mreža" enaka bitni IN naslovu in "maski". Na primer, vzorec neto / maske "131.155.72.0/255.255.254.0" se ujema z vsakim naslovom v območju "131.155.72.0" do "131.155.73.255".

Izraz oblike "[n: n: n: n: n: n: n: n] / m" se razlaga kot par "[net] / predfikslen". Naslov gostitelja IPv6 se ujema z, če so "prefixlen" bitovi "neto" enaki "prefixlen" bitom naslova. Na primer, vzorec [net] / predpono "[3ffe: 505: 2: 1 ::] / 64" se ujema z vsakim naslovom v razponu "3ffe: 505: 2: 1:" skozi "3ffe: 505: 2: 1: ffff: ffff: ffff: ffff ".

Niz, ki se začne s znakom "/", se obravnava kot ime datoteke . Ime gostitelja ali naslov se ujema, če se ujema z imenom gostitelja ali vzorcem naslovov, ki je naveden v imenovani datoteki. Format datoteke je nič ali več vrstic z nič ali več gostiteljskim imenom ali vzorci naslovov, ločenih s presledki. Vzorec imena datoteke se lahko uporabi kjerkoli, če se lahko uporabi ime gostitelja ali naslovni vzorec.

Dalečnice * * in `? se lahko uporablja za ujemanje imen gostiteljev ali naslovov IP . Ta način ujemanja ni mogoče uporabiti v povezavi z ujemanjem "net / mask", z ujemanjem imena gostitelja, ki se začne z '.' ali ujemanje IP naslovov, ki se konča z ».«.

WILDCARDS

Jezik nadzora dostopa podpira eksplicitne nadomestne znake:

VSE

Univerzalni nadomestni znak se vedno ujema.

LOKALNO

Ujema vse gostitelje, katerih ime ne vsebuje piko.

NEZNANO

Ujema vsak uporabnik, katerega ime ni znano in se ujema z nobenim gostiteljem, katerega ime ali naslov ni znan. Ta vzorec je treba uporabljati previdno: imena gostiteljev morda niso na voljo zaradi začasnih težav z nameščanjem strežnika. Omrežni naslov ne bo na voljo, če programska oprema ne bo mogla ugotoviti, s kakšno vrsto omrežja se pogaja.

ZNAM

Ujema vsak uporabnik, katerega ime je znano, in se ujema z vsemi gostitelji, katerih ime in naslov sta znana. Ta vzorec je treba uporabljati previdno: imena gostiteljev morda niso na voljo zaradi začasnih težav z nameščanjem strežnika. Omrežni naslov ne bo na voljo, če programska oprema ne bo mogla ugotoviti, s kakšno vrsto omrežja se pogaja.

PARANOID

Ujema vse gostitelje, katerih ime se ne ujema z njegovim naslovom. Ko je tcpd zgrajen z -DPARANOID (privzeti način), spusti zahteve takih odjemalcev, še preden si ogleda tabele za nadzor dostopa. Zgradite brez -DPARANOID, če želite več nadzora nad temi zahtevami.

OPERATORJI

RAZEN

Namenska uporaba je v obliki: `list_1 EXCEPT list_2 '; ta konstrukt se ujema z vsemi, kar se ujema s seznamom_1, razen če se ujema s seznamom_2 . Operater EXCEPT se lahko uporablja v seznamih daemon_list in straneh_listov. Izvajalec EXCEPT se lahko ugneši: če bi kontrolni jezik omogočal uporabo oklepajev, bi se izraz "EXCEPT b EXCEPT c" razčlenil kot "(IZJEME (b. RAZEN c))".

SHELL COMMANDS

Če pravilo za nadzor prvega ujemanja vsebuje ukaz lupine, je ta ukaz podvržen% zamenjavam (glej naslednji razdelek). Rezultat se izvaja s / bin / sh otrokovim procesom s standardnim vhodom, izhodom in napako, povezanimi z / dev / null . Na koncu ukaza navedite »&«, če ne želite čakati, dokler ni končan.

Ukazi Shell se ne smejo zanesti na nastavitev PATH za inetd. Namesto tega bi morali uporabljati absolutna imena poti ali pa bi morali začeti z izrecno PATH = katerokoli izjavo.

Dokument hosts_options (5) opisuje alternativni jezik, ki uporablja ukazno polje ukazne lupine na drugačen in nezdružljiv način.

% EXPANSIONS

V ukazih ukazne lupine so na voljo naslednje razširitve:

% a (% A)

Naslov gostitelja (strežnika) gostitelja .

% c

Podatki o strankah: uporabnik @ gostitelj, naslov @ uporabnik, ime gostitelja ali samo naslov, odvisno od tega, koliko informacij je na voljo.

% d

Ime procesorja procesa (vrednost argv [0]).

% h (% H)

Ime ali naslov gostitelja (strežnika), če ime gostitelja ni na voljo.

% n (% N)

Ime gostitelja (strežnika) gostitelja (ali "neznanega" ali "paranoidnega").

% p

ID procesa procesa.

% s

Podatki o strežniku: daemon @ host, daemon @ naslov ali samo ime za ime strežnika, odvisno od tega, koliko informacij je na voljo.

% u

Uporabniško ime odjemalca (ali "neznano").

%%

Razširi na en znak "%".

Znaki v% razširitvah, ki bi lahko zamenjali lupino, se nadomestijo z podčrtavami.

SERVER ENDPOINT rešitve

Da bi stranke ločili od omrežnega naslova, na katerega se povezujejo, uporabite vzorce obrazca:

process_name @ host_pattern: client_list ...

Takšni vzorci se lahko uporabljajo, kadar ima naprava različne internetne naslove z različnimi internetnimi gostitelji. Ponudniki storitev lahko uporabljajo to možnost, da ponudijo FTP, GOPHER ali WWW arhive z internetnimi imeni, ki morda celo pripadajo različnim organizacijam. Glej tudi možnost "twist" v dokumentu hosts_options (5). Nekateri sistemi (Solaris, FreeBSD) imajo lahko več kot en internetni naslov na enem fizičnem vmesniku; z drugimi sistemi boste morda morali uporabljati SLIP ali PPP pseudo vmesnike, ki živijo v namenskem omrežnem naslovnem prostoru.

Host_pattern izpolnjuje iste pravila sintakse kot imena gostiteljev in naslove v kontekstu odjemalca. Podatki o končni točki strežnika so ponavadi na voljo le s storitvami, usmerjenimi v povezavo.

KLIENT USERNAME LOOKUP

Ko gostiteljski odjemalec podpira protokol RFC 931 ali enega izmed njegovih potomcev (TAP, IDENT, RFC 1413), lahko oviti programi pridobijo dodatne informacije o lastniku povezave. Podatki o uporabniškem imenu odjemalca, če so na voljo, se prijavijo skupaj z imenom gostitelja stranke in se lahko uporabijo za ujemanje vzorcev, kot so:

daemon_list: ... user_pattern @ host_pattern ...

Ovitke za zmagovalce lahko konfigurirate v času prevajanja, da izvedejo poizvedbe uporabniškega imena po meri (privzeto) ali vedno zaslišujejo gostiteljskega odjemalca. V primeru pravilnih pogovorov z uporabniškim imenom bi zgornjo pravilo lahko uporabilo iskanje po imeniku le, če sta tako daemon_list kot host_pattern .

Uporabniški vzorec ima enako sintakso kot vzorec procesa procesa, zato se uporabljajo isti nadomestni znaki (članstvo v skupini ni podprto). Čeprav se ne smejo znebiti iskanja z uporabniškim imenom.

Podatkov o uporabniškem uporabniškem imenu ni mogoče zaupati, ko je najbolj potreben, tj. Kadar je odjemalski sistem ogrožen. Na splošno so ALL in (UN) KNOWN edini vzorci uporabniškega imena, ki so smiselni.

Iskanje po uporabniških imenih je mogoče samo s storitvami, ki temeljijo na TCP, in samo, če gostitelj odjemalca upravlja z ustreznim demonom; v vseh drugih primerih je rezultat "neznan".

Dobro znana napaka jedra UNIX lahko povzroči izgubo storitve, ko požarni zid blokira iskanje po imeniku. Dokument README ovitka opisuje postopek ugotavljanja, ali ima vaše jedro to težavo.

Iskanje po uporabniškem imenu lahko povzroči opazne zamude za uporabnike, ki niso UNIX. Privzeto časovno obdobje za iskanje po uporabniškem imeniku je 10 sekund: prekratek za spopadanje s počasnimi omrežji, vendar dovolj dolgo, da draži računalniške uporabnike.

Izbirni poizvedbe uporabniškega imena lahko ublažijo zadnjo težavo. Na primer, pravilo, kot so:


daemon_list: @pcnetgroup ALL @ ALL

bi se ujemal z člani pc netgroup brez iskanja imen uporabniških imen, vendar bi opravil lookups z uporabniškimi podatki z vsemi drugimi sistemi.

ODKRIVANJE NASLOVOV SPODBUJANJE NAPAKE

Napaka generatorja sekvencnih številk številnih implementacij TCP / IP omogoča vsiljivcem, da preprosto posnemajo zaupanja vredne gostitelje in prekinete prek, na primer, oddaljene storitve lupine. Storitev IDENT (RFC931 itd.) Se lahko uporablja za zaznavanje takih in drugih napačnih napadov gostitelja.

Pred sprejemom zahteve stranke lahko zavoji uporabijo storitev IDENT, da ugotovijo, ali stranka sploh ni poslala zahtevo. Ko gostiteljski odjemalec nudi storitev IDENT, se negativni rezultat iskanja po IDENT-ju (stranko ujema s »UNKNOWN @ gostiteljico«) močan dokaz o napadu gostitelja.

Pozitivni rezultat iskanja po IDENT-ju (stranko se ujema s »KNOWN @ gostiteljico«) je manj zaupanja vredna. Umikalcu je mogoče zamenjati povezavo s stranko in iskanje po IDENT-u, čeprav je to veliko težje kot spoofiranje samo odjemalske povezave. Morda je tudi, da strežnik IDENT-a laže.

Opomba: Iskanje po IDENT-u ne deluje s storitvami UDP.

PRIMERI

Jezik je dovolj prožen, da se lahko različne vrste politike za nadzor dostopa izrazijo z najmanjšim pretresom. Čeprav jezik uporablja dve kontrolni tabeli dostopa, se lahko najpogosteje uporabijo pravilniki, pri čemer je ena od tabel nepomembna ali celo prazna.

Pri branju spodnjih primerov je pomembno, da se zavedeta, da se tabela dovoljenj skenira pred zavrnilno tabelo, da se iskanje prekine, ko se najde zadetek, in da je dostop odobren, kadar sploh ni mogoče najti nobenega ujemanja.

Primeri uporabljajo imena gostiteljev in domen. Izboljšati jih je mogoče z vključitvijo informacij o naslovih in / ali omrežnih / netmaskih podatkih, da bi zmanjšali vpliv začasnih neuspehov pri iskanju strežnika imenikov.

ZELO ZAPRTO

V tem primeru je dostop privzeto zavrnjen. Dovoljeni dostop so dovoljeni samo izrecno pooblaščeni gostitelji.

Privzeti pravilnik (brez dostopa) se izvaja z trivialno zavrnitveno datoteko:

/etc/hosts.deny: VSE: VSE

To zavrača vso storitev vsem gostiteljem, razen če jim je dovoljen dostop do vnosov v dovoljeni datoteki.

Izrecno pooblaščeni gostitelji so navedeni v dovoljeni datoteki. Na primer:

/etc/hosts.allow: VSE: LOCAL @some_netgroup
ALL: .foobar.edu RAZEN terminalserver.foobar.edu

Prvo pravilo omogoča dostop od gostiteljev na lokalni domeni (brez imena '.' V imenu gostitelja) in od članov netgroupa some_netgroup. Drugo pravilo omogoča dostop od vseh gostiteljev v domeni foobar.edu (opazi vodilno piko), razen terminalserver.foobar.edu .

MOSTLY OPEN

Tu je dostop privzeto odobren; samo storitve, ki so izrecno določene, so zavrnjene.

Privzeti pravilnik (odobreni dostop) omogoča, da je dovoljena datoteka odvečna, da jo je mogoče izpustiti. Izrecno neodobreni gostitelji so navedeni v datoteki z zavrnitvijo. Na primer:

/etc/hosts.deny: ALL: some.host.name, .some.domain
VSE RAZEN in.fingerd: other.host.name, .other.domain

Prvo pravilo negira nekatere gostitelje in domene vse storitve; drugo pravilo še vedno dovoljuje prstne zahteve drugih gostiteljev in domen.

BOOBY TRAPS

Naslednji primer dovoljuje tftp zahteve od gostiteljev v lokalni domeni (obvestite vodilno piko). Zahteve drugih gostiteljev so zavrnjene. Namesto zahtevane datoteke se prstni sondi pošiljajo gostujočemu gostitelju. Rezultat se pošlje na superuporabnika.

/etc/hosts.allow:

in.tftpd: LOCAL, .my.domain /etc/hosts.deny: in.tftpd: ALL: spawn (/ nekaj / kjer / varno_finger -l @% h | \ / usr / ucb / mail -s% d-% h root) &

Ukaz safe_finger je opremljen s tcpd ometom in ga je treba namestiti na primeren kraj. Omejuje morebitno škodo podatkov, ki jih pošlje strežnik oddaljenega prsta. Zagotavlja boljšo zaščito kot standardni ukaz s prstom.

Razširitev zaporedij% h (gostiteljica gostitelja) in% d (ime storitve) je opisana v razdelku o ukazih lupine.

Opozorilo: ne pozabljajte, da je vaš prstni demon, razen če ste pripravljeni na neskončne zanke.

Na omrežnih požarnih zidovih je ta trik mogoče prevažati še bolj. Tipični omrežni požarni zid ponuja le omejen nabor storitev za zunanji svet. Vse druge storitve se lahko "bugged", tako kot zgoraj tftp primer. Rezultat je odličen sistem zgodnjega opozarjanja.

POGLEJ TUDI

tcpd (8) tcp / ip daemon program ovitka. tcpdchk (8), tcpdmatch (8), testni programi.

Pomembno: Uporabite ukaz man ( % man ), da vidite, kako se na vašem računalniku uporablja ukaz.