Hosts.allow - Linux Command - Unix Command

NIMI

hosts_access - host-juurdepääsu kontrollifailide formaat

KIRJELDUS

Käsiraamat kirjeldab lihtsat juurdepääsu kontrollkile, mis põhineb kliendil (hostinimi / aadress, kasutajanimi) ja server (protsessi nimi, hostinimi / aadress) mustrid. Näited on toodud lõpus. Ilmselgelt lugeja on soovitatav skript NAVIGATUD jaotisest kiireks tutvumiseks . Juurdepääsukontrolli keele laiendatud versiooni on kirjeldatud hosts_options (5) dokumendis. Laiendused on sisse lülitatud programmi koostamise ajal, ehitades koos -DPROCESS_OPTIONS-ga.

Järgmises tekstis on deemon võrgu deemoni protsessi protsessi nimi ja klient on teenusepakkuja nimi ja / või aadress. Võrgu deemoni protsessi nimed on määratud inetd-konfiguratsioonifailis.

JUURDEPÄÄSU KONTROLLI FAILID

Juurdepääsu kontrollsüsteem konsulteerib kahes failis . Otsing lõpeb esimese mängu ajal.

Juurdepääs antakse siis, kui (deemon, klient) paar vastab kirjale /etc/hosts.allow failis.

Vastasel korral keelatakse juurdepääs, kui (deemon, klient) paar vastab faili /etc/hosts.deny kirjale .

Vastasel juhul antakse juurdepääs.

Mitte-olemasolevat juurdepääsu kontrollifaili käsitletakse nii, nagu oleks see tühi fail. Seega saab juurdepääsu kontrollist välja lülitada, kui ei anta juurdepääsu kontrollifaile.

JUURDEPÄÄSU KONTROLLI EESKIRJAD

Iga juurdepääsukontrolli fail koosneb nullist või enamast teksti rida. Need jooned on töödeldud välimuse järjekorras. Otsimine lõpeb, kui vastet leitakse.

Uut tähemärki ignoreeritakse, kui sellele eelneb tagurpidi kriipsjärgu tähis. See võimaldab teil pikki ridu lõhkuda, nii et neid oleks lihtsam muuta.

Tühjad read või read, mis algavad # -ga, ignoreeritakse. See võimaldab teil lisada kommentaare ja tühikut, et tabeleid oleks lihtsam lugeda.

Kõik muud liinid peaksid vastama järgmisele vormingule, asjad [] on vabatahtlikud:

daemon_list: client_list [: shell_command]

daemon_list on üks või mitu deemoni protsessi nime (argv [0] väärtused) või metamärke (vt allpool).

client_list on ühe või mitme hosti nime, hosti aadresside, mustrite või metamärke (vt allpool), mis vastab kliendi hosti nime või aadressile.

Mida keerukamad vormid deemon @ host ja user @ host on seletatud serveri lõpp-punkti mustrite ja kliendi kasutajanime otsingute osades.

Nimekirjade elemendid tuleks eraldada toorikute ja / või komadega.

Erinevalt NIS (YP) võrgupõhistest otsingutest on kõik juurdepääsukontrolli kontrollimised registreerimata.

PATTERNID

Juurdepääsu kontrolli keel rakendab järgmisi mustreid:

String, mis algab tähega `. ' iseloomu. Hostinimi vastab, kui tema nime viimased komponendid vastavad määratud mustriga. Näiteks sobib mustriga `.tue.nl 'host nimi` wzv.win.tue.nl'.

String, mis lõpeb "." iseloomu. Vastuvõttev aadress vastab, kui selle esimesed numbriväljad vastavad antud stringile. Näiteks mustriga `131.155. ' sobib Eindhoveni ülikooli võrgu (peaaegu) iga hosti aadressiga (131.155.xx).

String, mis algab sümboliga `@ ', loetakse NIS-i (varem YP) võrgunimeks. Hostinimi vastab, kui see on määratletud võrguserveri hostiliige. Dellen protsessi nimesid või klientide kasutajanimesid ei toeta Netgroupi vasteid.

Vormi "nnnn / mmmm" väljendus tõlgendatakse kui "net / mask" paari. IPv4 host-aadress on sobitatud, kui `net 'võrdub aadressi ja maski bitwise AND -ga. Näiteks sobib võrgu / maskide mustriga `131.155.72.0/255.255.254.0 'kõik aadressid vahemikus' 131.155.72.0 'läbi' 131.155.73.255 '.

Vormi "[n: n: n: n: n: n: n: n] / m" väljend on tõlgitud kui "[net] / prefixlen" paar. IPv6 host-aadress on sobitatud, kui `prefixlen 'bitid on võrdsed aadressi` prefixlen'-bittidega. Näiteks sobib [net] / prefixlen'i mustriga `[3ffe: 505: 2: 1 ::] / 64 'kõik aadressid vahemikus' 3ffe: 505: 2: 1 :: 'kuni' 3ffe: 505: 2: 1: ffff: ffff: ffff: ffff '.

String, mis algab tähega `/ ', käsitletakse failinimeks . Vastuvõtuvõrgu nimi või aadress sobib, kui see vastab nimega failis loetletud hosti nimele või aadressimudelile. Failivorming on null või enam nulli või rohkem nime või aadressi mustreid, mis on eraldatud tühikutega. Failinime struktuuri saab kasutada ükskõik kus saab kasutada hosti nime või aadressimustrit.

Märgistused `* 'ja`?' saab kasutada masinanimede või IP-aadresside sobitamiseks. Seda sobitamismeetodit ei saa kasutada koos võrgu / maski sobitamisega, masinanime sobitamine, mis algab tähega "." või IP-aadressi kokkulangevus, mis lõpeb ".".

WILDCARDS

Juurdepääsukontrolli keel toetab selgesõnalisi metamärke:

KÕIK

Universaalne metamärk, alati vastab.

LOCAL

Sobib iga hosti, kelle nimi ei sisalda tähemärki.

EI TEAVE

Sobib iga kasutaja, kelle nimi on tundmatu, ja sobib iga hostiga, kelle nimi või aadress on teadmata. Seda mustrit tuleb hoolikalt kasutada: ajutine nimeserveri probleemide tõttu ei pruugi hostinimed olla saadaval. Võrguteade pole saadaval, kui tarkvara ei saa aru, millist tüüpi võrku ta räägib.

TEATUD

Sobib iga kasutaja, kelle nimi on tuntud ja vastab kõigile hostidele, kelle nimi ja aadress on teada. Seda mustrit tuleb hoolikalt kasutada: ajutine nimeserveri probleemide tõttu ei pruugi hostinimed olla saadaval. Võrguteade pole saadaval, kui tarkvara ei saa aru, millist tüüpi võrku ta räägib.

PARANOID

Vastab kõikidele hostidele, kelle nimi ei vasta tema aadressile. Kui tcpd on loodud -DPARANOID (vaikimisi režiim), langeb sellistest klientidest päring isegi enne, kui vaadata juurdepääsu kontrolllaudu. Kui soovite selliseid taotlusi paremini kontrollida, ehitage ilma moraanita.

OPERAATORID

VÄLJA ARVATUD

Kavandatud kasutus on vormis: `list_1 EXCEPT list_2 '; see konstruktsioon vastab kõigile, mis vastab list_1, kui see ei vasta list_2-le . EXCEPT operaatorit saab kasutada daemon_listis ja client_lists. EXCEPT operaator võib olla lingitud: kui kontrollikeel lubaks sulgude kasutamist, oleks sõna "EXCEPT b EXCEPT c" parsida kui `(EXCEPT (b EXCEPt c)) '.

SHELL COMMANDS

Kui esimese sobivusega juurdepääsu kontrollimise reegel sisaldab shellikäsku, on see käsk substitutsioonide% asendamiseks (vt järgmist sektsiooni). Tulemust teostab / bin / sh lapprocess standardse sisendiga, väljund ja viga, mis on ühendatud / dev / null . Määrake käsu lõpus `& ', kui te ei soovi oodata, kuni see on lõpule jõudnud.

Shelli käsklused ei tohiks tugineda inetdi PATH-i seadistusele. Selle asemel peaksid nad kasutama absoluutseid tee nimesid või peaks algama selge PATH = kõik avaldusega.

Dokument hosts_options (5) kirjeldab alternatiivset keelt, mis kasutab shelli käsuvälja teistsugusel ja ühildumatul viisil.

% EXPANSIONS

Kogu käskudes on saadaval järgmised laiendused:

% a (% A)

Kliendi (serveri) hosti aadress.

% c

Kliendi teave: kasutaja @ host, kasutaja @ aadress, hostinimi või lihtsalt aadress, sõltuvalt sellest, kui palju teavet on saadaval.

% d

Deemoni protsessi nimi (argv [0] väärtus).

% h (% H)

Kliendi (serveri) hosti nimi või aadress, kui hosti nimi pole saadaval.

% n (% N)

Kliendi (serveri) hosti nimi (või "tundmatu" või "paranoiline").

% p

Deemoni protsessi ID.

% s

Serveriteave: daemon @ host, daemon @ aadress või lihtsalt deemoni nimi, sõltuvalt sellest, kui palju teavet on saadaval.

% u

Kliendi kasutajanimi (või "tundmatu").

%%

Laiendab ühte tähemärki "%".

Laiendused% -des, mis võivad kesta segadust tekitada, asendatakse alakriipsudega.

SERVERI KÄSIRAAMATUD

Selleks, et eristada kliente võrguteadetest, millega nad ühendavad, kasutage vormi mustreid:

protsessi_nimi @ host_pattern: klient_list ...

Selliseid mustreid saab kasutada siis, kui masinal on erinevad Interneti-aadressid erinevate Interneti-hostinimedega. Teenusepakkujad saavad seda võimalust kasutada FTP-, GOPHER- või WWW-arhiivide pakkumiseks Interneti-nimedega, mis võivad isegi kuuluda erinevatesse organisatsioonidesse. Vt ka hosts_options (5) dokumendis 'keerdumine'. Mõnel süsteemil (Solaris, FreeBSD) võib ühes füüsilises liideses olla rohkem kui üks Interneti-aadress; teiste süsteemidega peate kasutama spetsiaalse võrgu aadressiruumis asuvaid SLIP- või PPP-pseudo-liideseid.

Host_pattern järgib samu süntaksireegleid nagu hosti nimed ja aadressid client_list kontekstis. Tavaliselt on serveri lõpp-punkti teave saadaval ainult ühendusega seotud teenustega.

KLIENDI USERNAME LOOKUP

Kui klient hosti toetab RFC 931 protokolli või mõnda tema järeltulijat (TAP, IDENT, RFC 1413), võivad ümbrisprogrammid saada ühenduse omaniku kohta lisateavet. Kliendi kasutajanime info, kui see on saadaval, logitakse koos kliendi hosti nimega ja seda saab kasutada selliste mustrite sarnasuse jaoks nagu:

daemon_list: ... user_pattern @ host_pattern ...

Déemon-pakendajaid saab konfigureerida kompileerimise ajal, et täita reeglipõhiseid kasutajanime otsinguid (vaikimisi) või alati kliendimängu küsitleda. Reeglitel põhinevate kasutajanimede otsingute korral võib ülaltoodud reegel põhjustada kasutajanime otsingut ainult juhul, kui sobivad nii daemon_list kui host_pattern .

Kasutajamudelil on sama süntaks nagu deemoni protsessi muster, seega kasutatakse samu metamärke (võrgumaterjali ei toetata). Kuid küll ei tohiks kasutajanime otsimisega kaasa minna.

Kliendi kasutajatunnust ei saa enam usaldusväärselt usaldada, st kui kliendisüsteemi on ohustatud. Üldiselt on ALL ja (UN) KNOWN ainus mõistlik kasutajanimede muster.

Kasutajate otsimine on võimalik ainult TCP-põhiste teenuste korral ja ainult siis, kui klient-hosti käitab sobivat deemonit; kõigil teistel juhtudel on tulemuseks "teadmata".

Tuntud UNIX-i tuumaprobleem võib tulemüüri tõttu blokeerida kasutajanimeotsinguid teenuse kaotamise korral. Pakendiriba README dokument kirjeldab protseduuri, et selgitada välja, kas teie kernelil on see viga.

Kasutajate otsingud võivad põhjustada märkimisväärseid viivitusi mitte-UNIXi kasutajatele. Kasutajanime otsimise vaikimisi aeg on 10 sekundit: liiga lühike aeglase võrguga toimetulemiseks, kuid piisavalt pikk, et ärritada arvuti kasutajaid.

Valikuline kasutajanime otsimine võib leevendada viimast probleemi. Näiteks reegel, näiteks:


daemon_list: @ pcnetgroup ALL @ ALL

vastaks pc-võrgu liikmetele ilma kasutajanime otsimist tegemata, kuid viiks läbi kõigi teiste süsteemide kasutajanimede otsingud.

AADRESSI KOKKUPUUTE TÄITMISE MÄÄRAMINE

Paljude TCP / IP-rakenduste jadamisnumbrite generaatori viga võimaldab sissetungijatel hõlpsasti tuua esile usaldusväärseid hoste ja lõhkuda näiteks kaugekrauseri teenuse kaudu. IDENT (RFC931 jne) teenust saab kasutada selliste ja teiste host-aadresside rämpsposti rünnakute tuvastamiseks.

Enne kliendi taotluse vastuvõtmist saavad pakendajad kasutada IDENT-teenust, et teada saada, et klient ei saa päringut üldse saata. Kui klient-hostija pakub IDENT-i teenust, on negatiivne IDENT-i otsingu tulemus (klient vastab "UNKNOWN @ hostile") on tugev tõendusmaterjal rünnakute rünnaku kohta.

Positiivne IDENT-i otsingu tulemus (klient vastab KNOWN @ host) on vähem usaldusväärne. Võimaldab sissetungija röövida nii kliendiühendust kui ka IDENT-i otsingut, kuigi see on palju keerulisem kui lihtsalt kliendiga ühendamine. Võib ka olla, et kliendi IDENT-server valetab.

Märkus: IDENT-otsing ei tööta UDP-teenustega.

NÄITED

Keel on piisavalt paindlik, et erinevat tüüpi juurdepääsu kontrollimise poliitikat saab väljendada minimaalse rahutu. Kuigi keelt kasutab kahte juurdepääsu kontrolllauda, ​​saab kõige tavalisemaid eeskirju rakendada ühe tabeli abil, mis on triviaalsed või isegi tühjad.

Alljärgnevate näidete lugemisel on oluline mõista, et lubatav tabel skannitakse enne kui keelduda tabelist, et otsing lõpeb mängu leidmisel ja see juurdepääs antakse, kui ühtegi vastet üldse ei leita.

Näidetes kasutatakse hosti ja domeeninimesid. Neid saab parandada, lisades aadressi ja / või võrgu / võrgumärgisega seotud teabe, et vähendada ajutise nimiserveri otsingu ebaõnnestumiste mõju.

KÕIGE SULETUD

Sellisel juhul keelatakse juurdepääs vaikimisi. Lubatud juurdepääs on ainult selgesõnaliselt lubatud hostidel.

Vaikimisi reegleid (juurdepääsu pole) rakendatakse triviaalse keelamise failiga:

/etc/hosts.deny: KÕIK: KÕIK

See keelab kõik teenused kõikidele hostidele, välja arvatud juhul, kui neile on luba faili sisestustega lubatud juurdepääs.

Selgesõnaliselt lubatud hostid on loetletud lubatud failis. Näiteks:

/etc/hosts.allow: ALL: LOCAL @some_netgroup
KÕIK: .foobar.edu VÄLJA terminalisiderver.foobar.edu

Esimene reegel lubab ligipääsu hostidelt kohalikule domeenile (nimega "." Hosti nimele) ja mõnede võrkude grupi members. Teine reegel lubab juurdepääsu foobar.edu domeeni kõigile hostidele ( märkige juhtiv punkt), välja arvatud terminalserver.foobar.edu .

KÕIGE AVATUD

Siin antakse juurdepääs vaikimisi; ainult selgesõnaliselt määratud hostidest keeldutakse teenuse osutamisest.

Vaikimisi määratud poliitika (juurdepääs on lubatud) muudab lubatud faili koondatuks, nii et seda saab ära jätta. Selgesõnaliselt volitatud hostid on loetletud keeldumisfailis. Näiteks:

/etc/hosts.deny: KÕIK: mõned.host.nimi, .some.domain
KÕIK VÄLJA ARVATUD: in.fingerd: muu.host.name, .other.domain

Esimene reegel keelab mõned hostid ja domeenid kõik teenused; teine ​​reegel lubab endiselt sõrme päringuid teistelt hostidelt ja domeenidest.

BOOBY TRAPS

Järgmine näide lubab tftp päringuid hostidelt kohalikus domeenis (märkige juhtiv punkt). Kõikidest teistest hostidelt päringutele lükatakse tagasi. Taotletud faili asemel saadetakse sõrme sond rikkuvale võõrustajale. Tulemus saadetakse serverile.

/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-käsk kaasas tcpd ümbrisega ja tuleb paigaldada sobivasse kohta. See piirab serveri saadetud andmeedastust võimalikku kahju. See annab parema kaitse kui tavaline sõrmejälg.

% H (klient-hosti) ja% d (teenuse nime) järjestuste laiendamine on kirjeldatud käskude käskude osas.

Hoiatus: ärge püüdke sõrmejälgida, kui te ei ole valmis lõputute sõrmekõnede jaoks.

Võrgu tulemüüri süsteemides saab seda trikki veelgi edasi viia. Tüüpiline võrgu tulemüür pakub ainult vähese hulga teenuseid välismaailma jaoks. Kõiki teisi teenuseid saab "kopeerida" nagu ülaltoodud tftp-näide. Tulemuseks on suurepärane varajase hoiatamise süsteem.

VAATA KA

tcpd (8) tcp / ip deemoni pakkimisprogramm. tcpdchk (8), tcpdmatch (8), testprogrammid.

Tähtis: kasutage käsuga man ( % man ), et näha, kuidas käsku kasutatakse teie konkreetsel arvutis.