NAME
hosts_access - format datoteka za kontrolu pristupa domaćinu
OPIS
Ova stranica sa uputstvima opisuje jednostavan jezik kontrole pristupa koji se zasniva na klijentu (ime / adresa hosta, korisničko ime) i šablon (ime procesa, ime domaćina / adresa). Primjeri su dati na kraju. Nestrpljivi čitač je ohrabren da pređe u odjeljak EXAMPLES za brzu predstavu . Produžena verzija jezika kontrole pristupa je opisana u dokumentu hosts_options (5). Ekstenzije se uključuju u vremenu izgradnje programa tako što ćete ga graditi pomoću -DPROCESS_OPTIONS.
U sledećem tekstu, daemon je naziv procesa procesa procesora mreže , a klijent je ime i / ili adresa servisa koja traži host. Imena procesnih mrežnih mreža su navedena u inetd konfiguracionoj datoteki.
DATOTEKA KONTROLE PRISTUPA
Softver kontrole pristupa konsultuje dve datoteke . Pretraživanje se zaustavlja na prvom meču.
Pristup će biti odobren kada se (daemon, klijent) par podudaraju sa unosom u /etc/hosts.allow datoteku.
U suprotnom, pristup će biti odbijen kada se (daemon, klijent) par podudara sa unosom u /etc/hosts.deny datoteku.
U suprotnom, pristup će biti odobren.
Nepostojeća datoteka kontrole pristupa tretira se kao da je prazna datoteka. Prema tome, kontrola pristupa se može isključiti ne obezbeđujući datoteke za kontrolu pristupa.
PRAVILA KONTROLE PRISTUPA
Svaka datoteka kontrole pristupa se sastoji od nula ili više linija teksta. Ove linije se obrađuju po redosledu pojavljivanja. Pretraživanje se prekida kada se pronađe meč.
Novi znak se ignoriše kada mu prethodi znak crne trake. To vam dozvoljava da razdvojite duge linije kako bi ih lakše uredili.
Prazne linije ili linije koje počinju znakom "#" su ignorisane. Ovo vam omogućava da ubacite komentare i prazninu tako da se tabele lakše čitaju.
Sve druge linije treba da zadovolje sledeći format, stvari između [] su neobavezne:
daemon_list: client_list [: shell_command]
daemon_list je lista jednog ili više procesa procesa daemon (vrijednosti argv [0]) ili džoker-ova (pogledajte dolje).
client_list je lista jednog ili više imena domaćina, adresa domaćina, obrasci ili džoker kartice (pogledajte dole) koji će biti upareni sa nazivom ili adresom klijenta.
Složenijiji oblici daemon @ host i user @ host objašnjeni su u odeljcima na šablonima krajnjih tačaka servera i na korisničkim lookupovima korisnika, respektivno.
Elementi liste trebaju biti razdvojeni praznim i / ili zarezom.
Sa izuzetkom pretraživanja netgrupe NIS (YP), sve kontrole kontrole pristupa nisu osjetljive na slučaj.
PATTERNS
Jezik kontrole pristupa primenjuje sledeće šablone:
Niz koji počinje sa `. ' karakter. Ime hosta odgovara ako poslednje komponente imena imenuju odgovarajuću šemu. Na primer, obrazac `.tue.nl 'odgovara imenu hosta` wzv.win.tue.nl'.
Niz koji se završava sa `. ' karakter. Adresa domaćina odgovara ako se njegova prva numerička polja podudaraju sa datim nizom. Na primjer, obrazac `131.155. ' odgovara adresi (skoro) svakog domaćina na mreži Eindhoven univerziteta (131.155.xx).
Niz koji počinje sa znakom `@ 'tretira se kao NIS (ranije YP) ime netgrupa. Ime hosta odgovara ako je član domaćina određene netgrupe. Netgroup mečevi nisu podržani za imena procesa procesa ili za korisnička imena klijenta.
Izraz forma `nnnn / mmmm` se tumači kao par` net / maske`. Adresa IPv4 hosta odgovara ako je `net 'jednak bitnom I adrese i` maski`. Na primjer, obrazac net / maske `131.155.72.0/255.255.254.0 'odgovara svakoj adresi u opsegu` 131.155.72.0' kroz '131.155.73.255'.
Izraz forma `[n: n: n: n: n: n: n: n] / m 'se tumači kao par' [net] / prefikslen '. Adresa IPv6 hosta odgovara ako su `prefikslen 'bitovi` net' jednaki 'prefikslenim' bitovima adrese. Na primer, šablon [net] / prefikslen "[3ffe: 505: 2: 1 ::] / 64" odgovara svakoj adresi u opsegu `3ffe: 505: 2: 1 :: 'kroz` 3ffe: 505: 2: 1: ffff: ffff: ffff: ffff '.
Niz koji počinje sa `/ 'karakterom tretira se kao ime datoteke . Ime domaćina ili adresa se podudaraju ako se podudaraju sa bilo kojim nazivom hosta ili šeme adrese navedenih u naznačenoj datoteki. Format datoteke je nula ili više linija sa nultim ili većim brojem imena hosta ili šema adresa odvojenih prostirkom. Šablon imena datoteka može se koristiti svuda gde se može koristiti ime hosta ili obrazac adresa.
Šabloni `* 'i`? može se koristiti za usklađivanje imena hostova ili IP adresa . Ovaj metod usklađivanja ne može se koristiti zajedno sa podudaranjem `net / mask ', podudaranjem imena hosta koji počinje sa`.' ili podudaranja IP adrese koja se završava sa `. '.
WILDCARDS
Jezik kontrole pristupa podržava eksplicitne džokove:
ALL
Univerzalna varijanta uvek se poklapa.
LOCAL
Odgovara bilo kojem hostu čije ime ne sadrži znak karaktera.
UNKNOWN
Odgovara svakom korisniku čije ime nije poznato, i odgovara bilo kojem hostu čije ime ili adresa nisu poznati. Ovaj obrazac treba koristiti pažljivo: imena domaćina mogu biti nedostupna zbog privremenih problema sa serverom nameštaja. Mrežna adresa neće biti dostupna kada softver ne može da utvrdi na koju vrstu mreže razgovara.
ZNAM
Odgovara svakom korisniku čije ime je poznato, i odgovara bilo kojem hostu čije ime i adresa su poznati. Ovaj obrazac treba koristiti pažljivo: imena domaćina mogu biti nedostupna zbog privremenih problema sa serverom nameštaja. Mrežna adresa neće biti dostupna kada softver ne može da utvrdi na koju vrstu mreže razgovara.
PARANOID
Odgovara bilo kojem hostu čije ime ne odgovara njegovoj adresi. Kada je tcpd izgrađen sa -DPARANOID (podrazumevani režim), pada zahtjeve takvih klijenata i pre nego što pregledaju tabele kontrole pristupa. Izgradite bez -DPARANOID kada želite više kontrole nad takvim zahtevima.
OPERATORI
IZUZETAK
Predviđena upotreba je u obliku: `list_1 EXCEPT list_2 '; ovaj konstrukt odgovara svemu što odgovara listi_1 osim ako se ne poklapa sa listom_2 . Operator EXCEPT se može koristiti u daemon_lists-u i klijentskim listama. Operator EXCEPT se može ugnežiti: ako kontrolni jezik dozvoljava korištenje zagrada, "EXCEPT b EXCEPT c" bi se parala kao "(EXCEPT (b EXCEPT c))".
Ako pravilo za kontrolu pristupa sa prvom podudaranjem sadrži komandu shell, ta naredba je podvrgnuta% zamenama (pogledajte sledeći odeljak). Rezultat se izvršava pomoću / bin / sh detetovog procesa sa standardnim ulazom, izlazom i greškom povezanom na / dev / null . Navedite `& 'na kraju komande ako ne želite čekati dok se ne završi.
Komande Shell-a ne bi trebalo da se oslanjaju na postavku PATH inetd-a. Umjesto toga, trebali bi koristiti apsolutna imena puteva, ili bi trebali početi sa eksplicitnom PATH = bilo kakvom izjavom.
Dokument hosts_options (5) opisuje alternativni jezik koji koristi komandno polje shell na drugačiji i nekompatibilan način.
% EKSPANZIJE
Sledeće ekspanzije su dostupne unutar komandi shell-a:
%aa)
Adresa klijenta (servera).
% c
Informacije o klijentu: korisnik @ host, korisnička adresa @, ime domaćina ili samo adresa, u zavisnosti od toga koliko je informacija na raspolaganju.
% d
Naziv procesa procesa (argv [0] vrijednost).
% h (% H)
Ime ili adresa hosta klijenta (servera), ako je ime hosta nedostupno.
% n (% N)
Ime klijenta (servera) hosta (ili "nepoznato" ili "paranoidno").
% p
Id procesa procesa.
% s
Informacije o serveru: daemon @ host, daemon @ adresa, ili samo ime daemon, u zavisnosti od toga koliko informacija je dostupno.
% u
Korisničko ime klijenta (ili "nepoznato").
%%
Proširuje se na jedan znak "%".
Znakovi u% proširenja koji mogu zbuniti ljusku zameniti su podčrtavajem.
SERVER ENDPOINT PATTERNS
Kako bi se klijentima razlikovali od mrežne adrese sa kojom se povezuju, koristite obrazce oblika:
process_name @ host_pattern: client_list ...
Uzorci poput ovih mogu se koristiti kada mašina ima različite internet adrese sa različitim internet hostnamesima. Pružaoci usluga mogu koristiti ovaj objekat da ponudi arhive FTP, GOPHER ili WWW sa internetskim imenima koja čak mogu pripadati različitim organizacijama. Pogledajte i opciju `twist 'u hosts_options (5) dokumentu. Neki sistemi (Solaris, FreeBSD) mogu imati više od jedne internet adrese na jednom fizičkom interfejsu; sa drugim sistemima, možda ćete morati da koristite SLIP ili PPP pseudo interfejse koji žive u namenskom mrežnom adresnom prostoru.
Host_pattern pokriva iste pravila sintakse kao imena i adrese domaćina u kontekstu client_list. Obično su informacije o krajnjoj tački servera dostupne samo sa uslugama usmerenim ka vezama.
KLIJENT USERNAME LOOKUP
Kada klijentski host podržava protokol RFC 931 ili jedan od njegovih potomaka (TAP, IDENT, RFC 1413) programi omota mogu preuzeti dodatne informacije o vlasniku veze. Informacije o korisničkom korisničkom klijentu, kada su dostupne, prijavljuju se zajedno sa nazivom imena klijenta i mogu se koristiti za usklađivanje šema kao što su:
daemon_list: ... user_pattern @ host_pattern ...
Omot mašine se mogu konfigurisati u vreme kompajliranja kako bi izvršili pretragu korisničkog imena na osnovu pravila (podrazumevano) ili da uvek ispituju host klijenta. U slučaju pretraživanja korisničkog imena na osnovu pravila, gore navedeno pravilo će uzrokovati korisničko ime samo kada su i daemon_list i host_pattern meč.
Korisnički obrazac ima istu sintaksu kao šablon procesora daemon-a, tako da se primenjuju isti džoker-kartice (članstvo u netgrupu nije podržano). Međutim, ne treba se odneti sa pretragom korisničkog imena.
Informacije o korisničkom korisničkom imenu ne mogu biti pouzdane kada je to najpotrebnije, odnosno kada je klijentski sistem ugrožen. U principu, ALL i (UN) KNOWN su jedini šabloni korisničkog imena koji imaju smisla.
Pretraživanje korisničkog imena je moguće samo sa uslugama zasnovanim na TCP-u, a samo kada klijentski host upravlja odgovarajućim demonomom; u svim ostalim slučajevima rezultat je "nepoznat".
Poznati jezgro jezgre UNIX-a može dovesti do gubitka usluge kada blokiranje imena korisnika blokira zaštitni zid. Dokument README o ovojnici opisuje proceduru saznanja da li vaš kernel ima tu grešku.
Pretraživanje korisničkog imena može uzrokovati primetne kašnjenja za korisnike koji nisu UNIX. Podrazumevani vremenski razmak za pretraživanje korisnika je 10 sekundi: prekratko je da se nosi sa sporim mrežama, ali dovoljno dugo da iritira korisnike računara.
Selektivno pretraživanje korisničkog imena može ublažiti poslednji problem. Na primjer, pravilo poput:
daemon_list: @pcnetgroup ALL @ ALL
bi se podudarala sa članovima pc netgroup-a, a ne bi vršila traženje korisničkog imena, ali bi vršila pretragu korisničkog imena sa svim drugim sistemima.
ODREĐIVANJE ADRESA SPOFIRING ATTACKS
Propust u generatoru redosleda broja mnogih TCP / IP implementacija dozvoljava nametnicima da jednostavno predstavljaju pouzdane hostove i da se probiju preko, na primjer, usluge udaljenog školjka. Usluga IDENT (RFC931 itd.) Može se koristiti za otkrivanje takvih i drugih napada prevarivanja adrese domaćina.
Pre prihvatanja zahtjeva klijenta, omotači mogu koristiti uslugu IDENT da bi saznali da klijent uopšte ne šalje zahtjev. Kada klijentski host obezbedi IDENT uslugu, rezultat negativnog IDENT-a (klijent se podudara sa 'UNKNOWN @ hostom') je jak dokaz o napadu napada hosta.
Pozitivan rezultat pretrage IDENT-a (klijent se podudara sa 'KNOWN @ hostom') je manje pouzdan. Moguće je da uljezi ometaju i klijentsku vezu i pretragu IDENT-a, iako je to mnogo teže nego prevara samo klijentske veze. Može se dogoditi da klijentov IDENT server leži.
Napomena: Pretrage IDENT-a ne rade sa UDP uslugama.
PRIMERI
Jezik je dovoljno fleksibilan da se različiti tipovi politike kontrole pristupa mogu izraziti sa minimumom šuma. Iako jezik koristi dve tabele kontrole pristupa, najčešće se mogu implementirati sa jednim od tabela koje su trivijalne ili čak prazne.
Kada čitate primere ispod, važno je shvatiti da je tabela dozvoljenog skeniranja pre odbijanja tabele, da se pretraživanje prekine kada se pronađe usklađivanje i taj pristup se odobrava kada se uopće ne pronađe nikakvo podudaranje.
Primjeri koriste imena domaćina i domena. One se mogu poboljšati uključivanjem adrese i / ili mrežnih / netmask informacija kako bi se smanjio uticaj privremenih grešaka u pretraživanju imena servera.
MOSTLY CLOSED
U tom slučaju, pristup je podrazumevano odbijen. Samo eksplicitno ovlašćeni hostovi su dozvoljeni pristup.
Podrazumevana politika (bez pristupa) se implementira sa trivijalnom datotekom za odbijanje:
/etc/hosts.deny: ALL: ALL
Ovo negira sve usluge svim domaćinima, osim ako im nije dozvoljen pristup stavkama u dozvoljenoj datoteki.
Izričito ovlašćeni hostovi navedeni su u dozvoljenoj datoteci. Na primjer:
/etc/hosts.allow: ALL: LOCAL @some_netgroup
ALL: .foobar.edu EXCEPT terminalserver.foobar.edu
Prvo pravilo dozvoljava pristup domaćinima u lokalnom domenu (nema ` .` u ime hosta) i od članova nekog netgroup-a neke_netgroup-a. Drugo pravilo dozvoljava pristup svim domaćinima u domenu foobar.edu (primijetite glavnu tačku), sa izuzetkom terminalserver.foobar.edu .
MOSTLY OPEN
Ovde se pristup podrazumevano odobrava; samo su eksplicitno navedeni hostovi odbijene usluge.
Podrazumevana politika (odobreni pristup) čini da dozvoljni fajl bude višak, tako da se može izostaviti. Izričito neodobreni hostovi su navedeni u datoteki koja odbija. Na primjer:
/etc/hosts.deny: SVE: some.host.name, .some.domain
SVE Osim in.fingerd: other.host.name, .other.domain
Prvo pravilo negira neke domete i domene sve usluge; drugo pravilo još uvek dozvoljava prst od drugih domaćina i domena.
BOOBY TRAPS
Sledeći primjer dozvoljava tftp zahtjeve domaćina u lokalnom domenu (primjetite glavnu tačku). Zahtevi od bilo kojeg domaćina se odbijaju. Umjesto tražene datoteke, sonda za prste se šalje nepravom domaćinu. Rezultat se šalje nadređenom.
/etc/hosts.allow:
in.tftpd: LOCAL, .my.domain /etc/hosts.deny: in.tftpd: SVE: spawn (/ neki / gde / safe_finger -l @% h | \ / usr / ucb / mail -s% d-% h root) &Komanda safe_finger dolazi sa tcpd omotačem i treba ga instalirati na odgovarajuće mesto. On ograničava moguće štete od podataka poslatih od servera udaljenog prsta. Omogućava bolju zaštitu od standardne komande prstiju.
Proširenje sekvenci% h (klijentski host) i% d (ime usluge) opisano je u odeljku o komandama shell-a.
Upozorenje: nemojte sisati svoj demon prsta, osim ako ste spremni za beskonačne petlje.
Na mrežnim mrežnim vatrozidima ovaj trik može se preneti čak i dalje. Tipičan mrežni zaštitni zid nudi samo ograničen skup usluga spoljnjem svetu. Sve ostale usluge mogu se "zaglušiti" baš kao i gore navedeni primer tftp. Rezultat je odličan sistem ranog upozorenja.
VIDI TAKO
tcpd (8) program tcp / ip daemon omot. tcpdchk (8), tcpdmatch (8), test programi.Važno: Koristite komandu čovjeka ( % čovjek ) da biste videli kako se na vašem računaru koristi komanda.