Hosts.deny - Linux Command - Unix naredba

IME

hosts_access - format datoteka za kontrolu pristupa domaćina

OPIS

Ova priručna stranica opisuje jednostavan jezik kontrole pristupa koji se temelji na obrascima klijenta (naziv / adresa računala, korisničko ime) i poslužitelj (naziv procesa, naziv glavnog računala / adresa). Primjeri su dani na kraju. Nestrpljiv čitatelj se potiče na preslušavanje u odjeljak PRIMJERI za brzi uvod.

Proširena verzija jezika pristupa kontroli opisana je u dokumentu hosts_options (5). Proširenja su uključena u vrijeme izrade programa izgradnjom s -DPROCESS_OPTIONS.

U sljedećem tekstu, daemon je naziv procesa procesa mrežnog demona, a klijent je naziv i / ili adresa usluge koja zahtijeva host. Nazivi procesnih demonnih procesa navedeni su u inetd konfiguracijskoj datoteci.

PRIJENOS UPRAVLJANJA PRISTUPA

Softver za kontrolu pristupa konzultira dvije datoteke . Pretraga prestaje na prvom susretu:

*

Pristup će biti odobren kada par (daemon, klijent) odgovara unosu u datoteci /etc/hosts.allow .

*

U suprotnom, pristup će biti odbijen kada par ( daemon , klijent) odgovara unosu u datoteci /etc/hosts.deny .

*

Inače, pristup će biti odobren.

Neistodljiva datoteka kontrole pristupa se tretira kao da je prazna datoteka. Tako se kontrola pristupa može isključiti pružanjem datoteka za kontrolu pristupa.

PRAVILA ZA KONTROLU PRISTUPA

Svaka datoteka kontrole pristupa sastoji se od nulte ili više redaka teksta. Ove linije obrađuju se redoslijedom izgleda. Pretraga prestaje kada se pronađe utakmica.

*

Novi redak se zanemaruje kada mu prethodi znak reprodukcije. To vam omogućuje da razvrstiš velike linije kako bi ih lakše uredili.

*

Zanemarene su prazne crte ili linije koje započinju znakom "#". To vam dopušta umetanje komentara i razmaka kako bi se tablice lakše čitale.

*

Sve ostale linije trebaju zadovoljiti sljedeći format, između [] opcija:


daemon_list: client_list [: shell_command]

daemon_list je popis jednog ili više naziva procesnih imena (argv [0] vrijednosti) ili zamjenskih znakova (vidi dolje).

client_list je popis jednog ili više naziva hosta, adresa hostova, uzoraka ili zamjenskih znakova (vidi dolje) koji će se podudarati s nazivom ili adresom klijenta klijenta.

Složeniji oblici demona @ host i user @ host objašnjeni su u odjeljcima o obrascima krajnjih točaka poslužitelja i na korisničkim nazivima pretraživanja.

Elementi popisa trebaju biti odvojeni prazninama i / ili zarezima.

S izuzetkom NIS (YP) mrežnih pretraga, sve provjere kontrole pristupa su osjetljive na veličinu slučaja.

OBRASCI

Jezik kontrole pristupa provodi sljedeće obrasce:

*

Niz koji počinje s "." lik. Naziv hosta se podudara ako zadnje komponente njegova imena odgovaraju određenom uzorku. Na primjer, uzorak ".tue.nl" odgovara nazivu hosta "wzv.win.tue.nl".

*

Niz koji završava s "." lik. Adresa domaćin se podudara ako su njegova prva numerička polja podudarna s danim nizom. Na primjer, obrazac `131.155. ' odgovara adresi (gotovo) svakog domaćina na mreži Sveučilišta Eindhoven (131.155.xx).

*

Niz koji počinje znakom "@" tretira se kao NIS (prethodno YP) naziv netgroup-a. Naziv hosta se podudara ako je član domaćin navedene neto grupe. Nogomet grupe nisu podržane za imena procesnih imena ili imena klijenta.

*

Izraz oblika `nnnn / mmmm 'tumači se kao par' net / mask '. IPv4 adresa domaćin se podudara ako je "net" jednak bitnom AND adrese i "maske". Na primjer, neto / maska ​​uzorka `131.155.72.0/255.255.254.0 'odgovara svaku adresu u rasponu' 131.155.72.0 'do` 131.155.73.255'.

*

Izraz obrasca "[n: n: n: n: n: n: n: n] / m" tumačen je kao par "[net] / prefixlen". IPv6 adresa domaćin se podudara ako je `prefixlen 'bita` net' jednaka 'prefixlen' bita adrese. Na primjer, [net] / prefixlen uzorak odgovara svaku adresu u rasponu '3ffe: 505: 2: 1 ::' kroz '3ffe: 505: 2: 1: FFFF: FFFF: FFFF: FFFF”.

*

Niz koji počinje s `/ 'znakom tretira se kao naziv datoteke. Naziv hosta ili adresa se podudaraju ako se podudara s bilo kojim nazivom ili adresnim obrascem navedenim u imenovanoj datoteci. Oblik datoteke je nula ili više redaka s nultom ili više naziva glavnog računala ili adresnim obrascima odijeljenim razmakom. Naziv uzorka datoteke može se upotrebljavati bilo gdje gdje se može koristiti ime računala ili adresa.

*

Zvjezdice `* 'i`?' može se upotrijebiti za usklađivanje naziva hosta ili IP adresa. Ova metoda podudaranja ne može se upotrebljavati zajedno s podudaranjem "net / mask", podudaranjem imena računala počevši od "." ili IP adresa koja završava s `. '.

Zamjenski znakovi

Jezik kontrole pristupa podržava eksplicitne zamjenske znakove:

SVI

Univerzalni zamjenski znak, uvijek se podudara.

LOKALNI

Podudara se s bilo kojim domaćinom čije ime ne sadrži znak točke.

NEPOZNATI

Podudara se s bilo kojim korisnicima čije je ime nepoznato te se podudara s bilo kojim domaćinom čije ime ili adresa nisu poznati. Ovaj uzorak trebao bi se koristiti s oprezom: nazivi računala možda neće biti dostupni zbog privremenih problema s poslužiteljem imena. Mrežna adresa neće biti dostupna kada softver ne može otkriti koju vrstu mreže s kojom razgovara.

ZNAN

Podudara se s bilo kojim korisnicima čije je ime poznato te se podudara s bilo kojim domaćinom čije ime i adresa su poznati. Ovaj uzorak trebao bi se koristiti s oprezom: nazivi računala možda neće biti dostupni zbog privremenih problema s poslužiteljem imena. Mrežna adresa neće biti dostupna kada softver ne može otkriti koju vrstu mreže s kojom razgovara.

paranoidan

Podudara se s bilo kojim domaćinom čije ime ne odgovara njegovoj adresi. Kada je tcpd izgrađen s -PARANOID (zadani način rada), klijenti odbijaju zahtjeve čak i prije pregledavanja tablica kontrole pristupa. Izgradite bez -PARANOID kad želite veću kontrolu nad takvim zahtjevima.

OPERATORI

OSIM

Namjena korištenja je u obliku: `list_1 EXCEPT list_2 '; ovaj konstrukt odgovara onome što se podudara s popisom1, osim ako ne odgovara list_2 . Operator EXCEPT može se koristiti u listama daemon i klijent_listima. Operator EXCEPT može biti ugniježđen: ako kontrolni jezik dopušta upotrebu zagrada, "EXCEPT b EXCEPT c" bi se analizirala kao "(IZGRAĐANJE (B IZUZETAK c))".

SHELL NOGOMI

Ako pravilo za kontrolu pristupa prvog podudaranja sadrži naredbu ljuske, ta je naredba podložna% supstitucijama (vidi sljedeći odjeljak). Rezultat je izvršen procesom / bin / sh dijete s standardnim ulazom, izlazom i pogreškom povezanom na / dev / null . Navedite `& 'na kraju naredbe ako ne želite čekati dok ne završi.

Shellove naredbe ne bi se trebale oslanjati na PATH postavku inetd-a. Umjesto toga, trebali bi upotrijebiti apsolutna imena staza, ili bi trebali početi s eksplicitnim PATH = bilo kojom izjavom.

Dokument hosts_options (5) opisuje alternativni jezik koji koristi polje naredbe ljuske na drukčiji i nekompatibilan način.

% EXPANSIONS

Sljedeći proširenja dostupni su unutar naredbi ljuske:

% a (% A)

Adresa klijenta (poslužitelja) domaćina.

% c

Informacije o klijentu: korisnik @ host, user @ adresa, naziv hosta ili samo adresa, ovisno o tome koliko je informacija dostupno.

% d

Naziv procesa demona (vrijednost argv [0]).

% h (% H)

Naziv hosta ili adresa klijenta (poslužitelja), ako naziv hosta nije dostupan.

% n (% N)

Naziv klijenta (poslužitelja) host (ili "nepoznat" ili "paranoid").

% p

ID procesa demona.

% s

Informacije o poslužitelju: daemon @ host, daemon @ adresa ili samo ime daemona, ovisno o tome koliko je informacija dostupno.

% u

Korisničko ime klijenta (ili "nepoznato").

%%

Proširuje se na jedan znak '%'.

Znakovi u% ekspanzija koji mogu zbuniti ljusku zamjenjuju se podvlakama.

PODRUČJA PRIJENOSA SERVERA

Da biste razlikovali klijente mrežnom adresom na koju se povezuju, upotrijebite obrasce obrasca:


naziv procesa @ host_pattern: klijent_list ...

Obrasci poput ovih mogu se koristiti kada stroj ima različite internet adrese s različitim internet host imenima. Davatelji usluga mogu koristiti ovaj objekt za ponuditi FTP, GOPHER ili WWW arhive s internetskim imenima koja mogu pripadati i različitim organizacijama. Vidi i opciju "twist" u dokumentu hosts_options (5). Neki sustavi (Solaris, FreeBSD) mogu imati više od jedne internet adrese na jednom fizičkom sučelju; s drugim sustavima možda ćete morati pribjeći SLIP ili PPP pseudo sučeljima koji žive u posvećenom mrežnom adresnom prostoru.

Host_pattern poštuje ista pravila sintakse kao nazivi domaćina i adrese u kontekstu client_list. Obično su informacije o krajnjoj točki poslužitelja dostupne samo za usluge usmjerene na vezu.

LOOKUP USERNAME KLIJENTA

Kada klijent klijenta podržava protokol RFC 931 ili jedan od njegovih potomaka (TAP, IDENT, RFC 1413), programi omotnica mogu preuzeti dodatne informacije o vlasniku veze. Podaci korisničkog imena klijenta, kada su dostupni, bilježe se zajedno s nazivom klijenta klijenta i mogu se koristiti za usklađivanje uzoraka poput:


daemon_list: ... user_pattern @ host_pattern ...

Omotni kolačići mogu se konfigurirati u vrijeme sastavljanja kako bi se izvršili traženja korisničkog imena s pravilima (zadano) ili uvijek ispitivati ​​klijenta klijenta. U slučaju nadzora korisničkog imena na temelju pravila, gore navedeno pravilo bi prouzrokovalo traženje korisničkog imena samo ako se podudaraju i daemon_list i host_pattern .

Korisnički obrazac ima istu sintakse kao uzorak procesa demona, tako da se primjenjuju iste zamjenske oznake (članstvo u mreži nije podržano). Ipak, ne smijete se oduševljavati s nadziranim korisničkim imenom.

*

Podaci o korisničkom imenu klijenta ne mogu se pouzdavati kada je to potrebno, tj. Kada je klijentov sustav ugrožen. Općenito, ALL i (UN) KNOWN su samo obrasci korisničkog imena koji imaju smisla.

*

Pretraživanja korisnićkih imena moguća su samo uz usluge temeljene na TCP-u, i to samo kada klijent klijenta pokreće odgovarajući demon; u svim ostalim slučajevima rezultat je "nepoznat".

*

Dobro poznati bug UNIX kernela može prouzročiti gubitak usluge kada se firewall zatvori traženje korisničkog imena. Dokument README omota opisuje postupak kako bi se ustanovilo je li vaš kernel ovo greška.

*

Pretraživanja korisnih imena mogu uzrokovati zamjetne odgode za korisnike koji nisu UNIX. Zadani vremenski rok za traženja korisničkog imena iznosi 10 sekundi: prekratak za rješavanje sporih mreža, ali dovoljno dugo da iritira korisnike računala.

Selektivna pretraživanja korisničkog imena mogu ublažiti posljednji problem. Na primjer, pravilo poput:


daemon_list: @pcnetgroup ALL @ ALL

bi se podudarao s članovima pc netgroup-a bez pretraživanja korisničkog imena, ali bi izvršio traženja korisničkog imena sa svim drugim sustavima.

OTKRIVANJE ADRESA POKRETANJA SPOOFINGA

Nedostatak u generatoru redoslijeda mnogih TCP / IP implementacija omogućava uljezima da se lakše oponašaju povjerljive domaćine i probiju putem, na primjer, udaljenog servera. Usluga IDENT (RFC931 itd.) Može se koristiti za otkrivanje takvih i drugih napada hostiranih adresa hostova.

Prije prihvaćanja zahtjeva klijenta, omotnici mogu koristiti IDENT uslugu kako bi saznali da klijent uopće nije poslao zahtjev. Kada klijent klijenta pruža IDENT uslugu, negativni IDENT rezultat pretraživanja (klijent odgovara "UNKNOWN @ host") jaki je dokaz napada domaćin spoofinga.

Pozitivan rezultat traženja IDENT-a (klijent odgovara `KNOWN @ hostu ') manje je pouzdan. Moguće je da uljeza prikriva i vezu klijenta i IDENT pretraživanje, iako je to mnogo teže nego variranje samo veze klijenta. Moguće je da i poslužitelj IDENT poslužitelja leži.

Napomena: IDENT traženja ne rade s UDP uslugama.

PRIMJERI

Jezik je dovoljno fleksibilan da se različiti tipovi pravila kontrole pristupa mogu izraziti s minimalnom bunom. Iako jezik upotrebljava dvije tablice kontrole pristupa, najčešća pravila mogu se implementirati s jednim od stolova koji su trivijalni ili čak prazni.

Prilikom čitanja niže navedenih primjera važno je shvatiti da se tablica za dozvolu skenira prije tablice za odbijanje, da pretraživanje završava kada se pronađe utakmica te da se pristup dodjeljuje kada se uopće ne pronađe utakmica.

Primjeri koriste nazive domaćina i domena. One se mogu poboljšati uključivanjem informacija o adresi i / ili mreži / mrežnoj masici kako bi se smanjio utjecaj privremenih pogrešaka traženja imena poslužitelja.

GLAVNO ZATVOREN

U tom slučaju pristup je uskraćen prema zadanim postavkama. Dopušteni su samo izričito ovlašteni domaćini.

Zadana pravila (bez pristupa) implementiraju se s trivijalnom dokumentom za odbijanje:

/etc/hosts.deny: ALL: ALL

To onemogućuje svu uslugu svim hostovima, osim ako im nije dopušteno pristup unosima u dopuštenom datoteci.

Izričito ovlašteni domaćini navedeni su u dopuštenoj datoteci. Na primjer:

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

Prvo pravilo dopušta pristup domaćinstava u lokalnoj domeni (ne `. 'U nazivu glavnog računala) i članova netgroup neke mreže. Drugo pravilo dopušta pristup svim hostovima u domeni foobar.edu (primijetite vodeću točku), osim terminalserver.foobar.edu .

MORA OTVORENO

Ovdje se pristup dodjeljuje prema zadanim postavkama; samo izričito navedeni domaćini su odbili uslugu.

Zadana pravila (dodijeljeni pristup) čine dozvoljenu datoteku redundantno tako da se može izostaviti. Izričito neovlašteni domaćini navedeni su u dokumentu za odbijanje. Na primjer:

/etc/hosts.deny: ALL: some.host.name, .some.domain
SVI IZUZETAK in.fingerd: other.host.name, .other.domain

Prvo pravilo poriče neke domaćine i domene sve usluge; drugo pravilo i dalje dopušta zahtjeve prstiju od drugih domaćina i domena.

BOOBY TRAPS

Sljedeći primjer dozvoljava tftp zahtjeve od domaćina u lokalnoj domeni (primijetite vodeću točku). Zahtjevi s bilo kojeg drugog domaćina odbijeni su. Umjesto zatražene datoteke, otisak prsta šalje se uvredljivom hostu. Rezultat je poslan nadređenom korisniku.

/etc/hosts.allow:

in.tftpd: LOCAL, .my.domain /etc/hosts.deny: in.tftpd: SVI: spawn (/ neki / gdje / sigurno_finger -l @% h | \ / usr / ucb / mail -s% d-% h korijen) &

Naredba safe_finger dolazi s tcpd omotom i trebala bi biti instalirana na prikladnom mjestu. To ograničava moguću štetu od podataka koje šalje poslužitelj daljinskog prsta. To daje bolju zaštitu od standardne naredbe prstom.

Proširenje sekvenci% h (klijentski host) i% d (naziv servisa) opisano je u odjeljku o naredbama ljuske.

Upozorenje: nemojte zamotati daemon prsta, osim ako ste spremni za beskonačne petlje prsta.

Na sustavima mrežnih vatrozida ovaj trik može se nositi još dalje. Tipični mrežni vatrozid pruža samo ograničeni skup usluga vanjskom svijetu. Sve ostale usluge mogu biti "zakočene" baš kao i gore navedeni primjer tftp. Rezultat je izvrstan sustav ranog upozoravanja.

Važno: Upotrijebite naredbu čovjek ( % man ) kako biste vidjeli kako se naredba koristi na vašem računalu.

povezani članci