Hosts.deny - Linux Command - Unix-komento

NIMI

hosts_access - isäntäkäyttäjää koskevien tiedostojen muoto

KUVAUS

Tämä käsikirja kuvaa yksinkertaista käyttöoikeuskieltä, joka perustuu asiakkaan (isäntänimi / osoite, käyttäjänimi) ja palvelimen (prosessin nimi, isäntänimi / osoite) malliin. Esimerkkejä annetaan lopussa. Tytärlukijaa kannustetaan siirtymään EXAMPLES-osiolle nopeaan käyttöönottoon.

Käyttöoikeudenhallintakielen laajennettu versio on kuvattu hosts_options (5) -asiakirjassa. Laajennukset kytketään päälle ohjelman rakennusaikana rakentamalla -DPROCESS_OPTIONS.

Seuraavassa tekstissä daemon on verkko- daemoniprosessin prosessinimi ja asiakas on vastaanottavan palvelupyynnön nimi ja / tai osoite. Verkko-daemon-prosessinimet on määritetty inetd-määritystiedostossa.

ACCESS CONTROL FILES

Kulunvalvontaohjelmisto kuulee kahta tiedostoa . Haku päättyy ensimmäiseen otteluun:

*

Käyttöoikeus myönnetään, kun (daemon, client) pari vastaa tietueesta /etc/hosts.allow -tiedostoon.

*

Muutoin käyttöoikeus kielletään, kun ( daemon , client) -paristo vastaa tietueesta /etc/hosts.deny -tiedostoon.

*

Muussa tapauksessa käyttöoikeus myönnetään.

Ei-olemassa olevaa kulunvalvontatiedostoa käsitellään ikään kuin se olisi tyhjä tiedosto. Tällöin kulunvalvonta voidaan kytkeä pois päältä tarjoamalla pääsynvalvontatiedostoja.

ACCESS CONTROL SÄÄNNÖT

Jokainen kulunvalvontatiedosto koostuu nollasta tai useammasta tekstirivistä. Nämä viivat käsitellään ulkonäöltään. Hakuaika päättyy, kun ottelu löytyy.

*

Uuden rivin luonnetta ei huomioida, kun sitä edeltää kääntöpuolen merkki. Näin voit jakaa pitkät raidat, jotta niitä voidaan helpommin muokata.

*

Tyhjät rivit tai rivit, jotka alkavat "#" -merkillä, jätetään huomiotta. Näin voit lisätä kommentteja ja välilyöntejä niin, että taulukoita on helpompi lukea.

*

Kaikkien muiden rivien on täytettävä seuraava muoto, []: n välillä olevat asiat ovat valinnaisia:


daemon_list: client_list [: shell_command]

daemon_list on luettelo yhdestä tai useammasta daemon-prosessin nimeestä (argv [0] arvot) tai villimerkkeistä (ks. alla).

client_list on luettelo yhdestä tai useammasta isännän nimeä, isäntäosoitetta, kuvioita tai villimerkkejä (katso alla), joka vastaa asiakkaan isäntänimeä tai -osoitetta.

Monimutkaisempia muotoja daemon @ host ja user @ host selitetään palvelimen päätepistekuvioissa ja vastaavasti asiakkaan käyttäjänimissä.

Listaelementit on erotettava aihioilla ja / tai pilkuilla.

Lukuun ottamatta NIS (YP) -verkoston hakuja, kaikki kulunvalvontarkistukset eivät ole kelvollisia.

KUVIOT

Kulunvalvontakieli toteuttaa seuraavat mallit:

*

Merkkijono, joka alkaa `. ' merkki. Isäntänimi sovitetaan, jos sen viimeiset komponentit vastaavat määritettyä mallia. Esimerkiksi kuvio `.tue.nl 'vastaa isäntänimiä` wzv.win.tue.nl'.

*

Merkkijono, joka päättyy `. ' merkki. Isäntäosoite on sovitettu, jos sen ensimmäiset numeeriset kentät vastaavat määritettyä merkkijonoa. Esimerkiksi kuvio `131.155. ' vastaa (lähes) kaikkia Eindhovenin yliopiston verkoston isäntiä (131.155.xx).

*

Merkki, joka alkaa "@" -merkillä, käsitellään NIS (entinen YP) -verkoston nimi. Isännän nimi sovitetaan, jos se on määritetyn verkkoryhmän isäntäjäsen. Netgroup-otteluita ei tueta daemon-prosessien nimille tai asiakkaiden nimet.

*

Lomakkeen "nnnn / mmmm" ilmaus tulkitaan "net / mask" -pariksi. IPv4-isäntäosoite on sovitettu, jos `net 'on yhtä kuin osoite bitin AND ja' mask '. Esimerkiksi net / mask pattern `131.155.72.0/255.255.254.0 'vastaa kaikkia osoitteita` 131.155.72.0' - `131.155.73.255 '.

*

Ilmaisu "[n: n: n: n: n: n: n: n] / m" tulkitaan "[net] / prefixlen" -pariksi. IPv6-isäntäosoite on sovitettu, jos "prefixlen" bittiä "net" on yhtä kuin osoite "prefixlen" bittiä. Esimerkiksi [net] / prefixlen -kuvake [3ffe: 505: 2: 1 ::] / 64 'vastaa kaikkia osoitteita' 3ffe: 505: 2: 1 :: 'kautta `3ffe: 505: 2: 1: FFFF: FFFF: FFFF: FFFF'.

*

Merkki, joka alkaa `/ '-merkillä, käsitellään tiedostonimenä. Isäntänimi tai osoite sovitetaan, jos se vastaa mitä tahansa nimettyyn tiedostoon merkittyä isäntänimeä tai osoitekuvaketta. Tiedostomuoto on nolla tai enemmän rivejä, joissa on nolla tai enemmän isäntänimiä tai osoitemalleja, jotka on erotettu välilyönnillä. Tiedostonimikuvioa voidaan käyttää missä tahansa isännän nimeä tai osoitemallia voidaan käyttää.

*

Luonnokortit `* 'ja`?' voidaan käyttää vastaamaan hostnimiä tai IP-osoitteita. Tätä täsmäytystapaa ei voida käyttää yhdessä `net / mask '-sovittimen kanssa, jolloin isäntänimen vastaavuus alkaa`.' tai IP-osoitteiden yhteensopivuus päättyy `. '.

Jokerimerkit

Kulunvalvontakieli tukee eksplisiittisiä jakeita:

KAIKKI

Yleinen yleisnopeus, joka aina vastaa.

LOCAL

Sovittaa kaikki isännät, joiden nimeen ei ole dot-merkkiä.

TUNTEMATON

Sovittaa kaikki käyttäjät, joiden nimi on tuntematon, ja vastaa mitä tahansa isäntää, jonka nimi tai osoite on tuntematon. Tätä mallia tulee käyttää varoen: isännän nimet saattavat olla vanhentuneiden nimipalvelimien ongelmien takia. Verkko-osoite ei ole käytettävissä, kun ohjelmisto ei pysty selvittämään, millaista verkkoa se puhuu.

TUNNETTUJA

Sovittaa kaikki käyttäjät, joiden nimi on tiedossa, ja vastaa mitä tahansa isäntää, jonka nimi ja osoite tunnetaan. Tätä mallia tulee käyttää varoen: isännän nimet saattavat olla vanhentuneiden nimipalvelimien ongelmien takia. Verkko-osoite ei ole käytettävissä, kun ohjelmisto ei pysty selvittämään, millaista verkkoa se puhuu.

VAINOHARHAINEN

Sovittaa kaikki isännät, joiden nimi ei vastaa sen osoitetta. Kun tcpd on rakennettu -DARANOID: n (oletustilan) kanssa, se hylkää tällaisten asiakkaiden pyynnöt ennen kuin tarkastellaan käyttöoikeustilastoja. Rakenna ilman -PARANOID -ohjelmaa, kun haluat hallita enemmän tällaisia ​​pyyntöjä.

OPERATORS

PAITSI

Tarkoitettu käyttö on muotoa: `list_1 EXCEPT list_2 '; tämä rakenne vastaa mitä tahansa list1: stä, ellei se vastaa list_2: ta . EXCEPT-operaattoria voidaan käyttää daemon_listeissä ja client_listeissä. EXCEPT-operaattori voi olla sisäkkäinen: jos ohjauskieli sallii sulkeutumisen käytön, "EXCEPT b EXCEPT c" ilmaistaan ​​"(EXCEPT (b EXCEPT c))".

SHELL COMMANDS

Jos ensimmäisen sovitun kulunvalvontasääntö sisältää kuori-komennon, komento altistetaan% korvauksille (katso seuraava osio). Tulos suoritetaan / bin / sh- lapsiprosessilla, jossa standardi tulo, lähtö ja virhe kytketty / dev / null . Määritä komennon lopussa "&", jos et halua odottaa, kunnes se on valmis.

Shell-komennoilla ei pitäisi luottaa inetdin PATH-asetukseen. Sen sijaan heidän pitäisi käyttää absoluuttisia polkuja, tai heidän pitäisi aloittaa selkeä PATH = mikä tahansa lauseke.

Hosts_options (5) -dokumentti kuvaa vaihtoehtoista kieltä, joka käyttää shell-komentoa kentällä eri tavalla ja yhteensopimattomalla tavalla.

% EXPANSIONS

Seuraavat laajennukset ovat käytettävissä komentojen aikana:

% a (% A)

Asiakas (palvelin) isäntäosoite.

% C

Asiakkaan tiedot: käyttäjä @ isäntä, käyttäjä @ osoite, isäntänimi tai vain osoite riippuen siitä, kuinka paljon tietoa on saatavilla.

% d

Demo-prosessin nimi (argv [0] -arvo).

%HH)

Asiakkaan (palvelimen) isäntänimi tai osoite, jos isäntänimi ei ole käytettävissä.

% n (% N)

Asiakkaan (palvelimen) isäntänimi (tai "tuntematon" tai "paranoidinen").

% p

Demo-prosessin tunnus.

% s

Palvelimen tiedot: daemon @ host, daemon @ osoite tai vain daemon-nimi riippuen siitä, kuinka paljon tietoa on saatavilla.

% u

Asiakkaan käyttäjän nimi (tai "tuntematon").

%%

Laajenee yhteen "%" -merkkiin.

Merkinnät prosentteina, jotka saattavat sekoittaa kuori, korvataan alaviivoilla.

PALVELIMEN ENDPOINT-PIIRUSTUKSET

Jotta asiakkaat voitaisiin erottaa verkko-osoitteesta, johon he liittyvät, käytä lomakkeen malleja:


prosessinimi @ host_pattern: client_list ...

Tällaisia ​​kuvioita voidaan käyttää, kun koneessa on eri Internet-osoitteet eri Internet-palvelimen nimet. Palveluntarjoajat voivat käyttää tätä mahdollisuutta tarjota FTP-, GOPHER- tai WWW-arkistoja, joilla on Internet-nimiä, jotka voivat jopa kuulua eri organisaatioihin. Katso myös "twist" -vaihtoehto hosts_options (5) -asiakirjassa. Joissakin järjestelmissä (Solaris, FreeBSD) voi olla useampi kuin yksi internet-osoite yhdellä fyysisellä rajapinnalla. muiden järjestelmien kanssa saatat joutua turvautumaan SLIP- tai PPP-pseudo-rajapintoihin, jotka asuvat omistettuun verkko-osoitetilaan.

Host_pattern noudattaa samoja syntaksisääntöjä isännän nimiin ja osoitteisiin client_list-kontekstissa. Yleensä palvelimen päätepistetiedot ovat käytettävissä vain yhteyskohtaisilla palveluilla.

ASIAKAS USERNAME LOOKUP

Kun asiakas-isäntä tukee RFC 931-protokollaa tai jotain sen jälkeläisiä (TAP, IDENT, RFC 1413), kääreohjelmat voivat hakea lisätietoja yhteyden omistajasta. Asiakkaan käyttäjänimi-tiedot, kun niitä on saatavilla, kirjataan yhdessä isäntänimen kanssa, ja niitä voidaan käyttää esimerkiksi seuraavien mallien kanssa:


daemon_list: ... user_pattern @ host_pattern ...

Daemon-kääreitä voidaan konfiguroida koottua aikaa suorittamaan sääntöihin perustuvia käyttäjänimen hakuja (oletus) tai aina kysyä asiakkaan isännältä. Sääntöihin perustuvien käyttäjänimen hakujen tapauksessa yllä oleva sääntö aiheuttaisi käyttäjätunnuksen haku vain, kun sekä daemon_list että host_pattern vastaavat.

Käyttäjäkuviolla on sama syntaksi kuin daemon-prosessikuvaus, joten samaa villikorttia sovelletaan (verkkoyhdistystä ei tueta). Käyttäjähallintoja ei kuitenkaan saa päästä pois.

*

Asiakkaan käyttäjänimeä koskevia tietoja ei voida luottaa silloin, kun niitä tarvitaan eniten, eli kun asiakasjärjestelmä on vaarantunut. Yleensä ALL ja (YK) Tunnetut ovat ainoat järkevää käyttäjänimeä.

*

Käyttäjätunnusten haku on mahdollista vain TCP-pohjaisilla palveluilla, ja vain silloin, kun asiakas-isäntänä toimii sopiva demoni; kaikissa muissa tapauksissa tulos on "tuntematon".

*

Tunnettu UNIX-ytimen virhe saattaa aiheuttaa palvelun menetyksen, kun palomuuri estää käyttäjätunnusten hakuja. Kääre README -asiakirjassa kuvataan menettely, jolla selvitetään, onko ytimessä tämä vika.

*

Käyttäjätunnusten haku voi aiheuttaa huomattavia viiveitä muille kuin UNIX-käyttäjille. Käyttäjätunnusten oletusajatusaika on 10 sekuntia: liian lyhyt selviytyä hitaista verkostoista, mutta tarpeeksi kauan ärsyttää tietokoneen käyttäjiä.

Valikoiva käyttäjätunnusten haku voi helpottaa viimeistä ongelmaa. Esimerkiksi sääntö, kuten:


daemon_list: @ pcnetgroup ALL @ ALL

olisi yhteensopiva pc netgroupin jäsenten kanssa käyttämättä käyttäjätunnusten hakuja, mutta suorittaisi käyttäjänimen hakuja kaikkien muiden järjestelmien kanssa.

OSOITTEEN SIJOITUKSEN TUNNISTAMINEN

Monien TCP / IP-toteutusten järjestysnumeroiden generaattorin virhe mahdollistaa tunkeilijoiden helposti toisten luotettavien isäntien toimimisen ja murtautumisen esimerkiksi etäohjelupalvelun kautta. IDENT (RFC931 jne.) -palvelua voidaan käyttää havaitsemaan tällaiset ja muut isäntäosoitteen spoofing-hyökkäykset.

Ennen asiakkaan pyynnön hyväksymistä kääreillä voi käyttää IDENT-palvelua, jotta asiakkaat eivät lähettäneet pyyntöä lainkaan. Kun asiakastietokone tarjoaa IDENT-palvelua, negatiivinen IDENT-haun tulos (asiakas vastaa "UNKNOWN @ host") on vahva osoitus isännän spoofing-hyökkäyksestä.

Positiivinen IDENT-haun tulos (asiakas tuntee "KNOWN @ host") vähemmän luotettavaa. On mahdollista, että tunkeilija huijaa sekä asiakassovellusta että IDENT-hausta, vaikka tekeminen niin on paljon vaikeampaa kuin vain asiakasliittymän huijaaminen. Voi myös olla, että asiakkaan IDENT-palvelin valehtelee.

Huomaa: IDENT-haut eivät toimi UDP-palveluiden kanssa.

Esimerkit

Kieli on riittävän joustava, jotta eri tyyppisten kulunvalvontapoliittisten toimintatapojen voidaan ilmaista mahdollisimman vähän. Vaikka kieli käyttää kahta pääsynvalvontataulua, tavallisimmat käytännöt voidaan toteuttaa, jos jokin taulukko on vähäpätöinen tai jopa tyhjä.

Alla olevien esimerkkien lukemisen yhteydessä on tärkeää ymmärtää, että sallitun taulukon skannaus ennen hylkäystaulukkoa on, että haku päättyy, kun ottelu löytyy ja että käyttöoikeus myönnetään, kun yhtään ottelua ei löydy lainkaan.

Esimerkit käyttävät isäntä- ja verkkotunnuksia. Niitä voidaan parantaa lisäämällä osoite- ja / tai verkko- / verkkopeite-informaatio, jotta voidaan vähentää tilapäisten nimipalvelinten hakutapahtumien vaikutuksia.

KIINNITTÄÄ

Tällöin käyttöoikeus evätään oletusarvoisesti. Vain nimenomaisesti valtuutetut isännät ovat sallittuja.

Oletusarvoinen käytäntö (ei pääsyä) toteutetaan trivial deni file:

/etc/hosts.deny: KAIKKI: KAIKKI

Tämä kieltää kaiken palvelun kaikille isännille, ellei heillä ole sallittua pääsyä sallittujen tiedostojen kautta.

Erikseen valtuutetut isännät on lueteltu sallitustiedostossa. Esimerkiksi:

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

Ensimmäinen sääntö sallii pääsyn isäntäkoneista paikallisessa verkkotunnuksessa (ei `. ' Isännässä ) ja some_netgroup netgroupin jäseniltä. Toinen sääntö sallii pääsyn kaikilla foobar.edu- verkkotunnuksen isännillä (huomaa johtava piste), lukuun ottamatta terminalserver.foobar.edu .

AUKIOMAAN

Tässä käyttöoikeus myönnetään oletuksena; vain nimenomaisesti määritellyt isännät evätään palvelusta.

Oletusarvoinen käytäntö (myönnetty käyttöoikeus) tekee sallitun tiedoston tarpeettomaksi, jotta se voidaan jättää pois. Erikseen luvattomat isännät on lueteltu kieltäytymistiedoissa. Esimerkiksi:

/etc/hosts.deny: ALL: some.host.name, .some.domain
KAIKKI POISSA in.fingerd: other.host.name, .other.domain

Ensimmäinen sääntö kieltää kaikki isännät ja verkkotunnukset kaikki palvelut; toinen sääntö sallii edelleen sormien pyytämisen muista isännistä ja verkkotunnuksista.

BOOBY TRAPS

Seuraavassa esimerkissä tftp-pyynnöt sallivat paikallisen verkkotunnuksen isännät (huomaa johtava piste). Muilta isänniltä tulevat pyynnöt kielletään. Pyydetyn tiedoston sijaan sormenjäljet ​​lähetetään haavoittuvalle isännälle. Tulos lähetetään ylivaiheen käyttäjälle.

laittaa /etc/hosts.allow:

in.tftpd: LOCAL, .my.domain /etc/hosts.deny: in.tftpd: KAIKKI: spawn (/ some / where / safe_finger -l @% h | \ / usr / ucb / mail -s% d-% h root) &

Safe_finger-komennolla on tcpd-kääre ja se on asennettava sopivaan paikkaan. Se rajoittaa mahdolliset vahingot etätiedostopalvelimen lähettämistä tiedoista. Se antaa paremman suojan kuin standardi sormi komento.

% H (asiakas-isäntä) ja% d (palvelun nimi) -sarjan laajentaminen on kuvattu komentoriviltä.

Varoitus: älä särkää sormea, ellet ole valmis ääretön sormilenkit.

Verkko palomuurijärjestelmissä tämä temppu voidaan siirtää vieläkin pidemmälle. Tyypillinen verkon palomuuri tarjoaa vain rajoitetun joukon palveluita ulkomaille. Kaikki muut palvelut voidaan "vakoilla" aivan kuten edellä tftp-esimerkki. Tuloksena on erinomainen ennakkovaroitusjärjestelmä.

Tärkeää: Käytä man- komentoa ( % man ) nähdäksesi kuinka komentoa käytetään tietyssä tietokoneessa.

Aiheeseen liittyvät artikkelit