Nimi
hosts_access - isäntäkäyttäjän Linux-ohjaustiedostojen muoto.
Kuvaus
Tämä käsikirja kuvaa Linuxia yksinkertaisena pääsynvalvontakieltä, joka perustuu asiakkaan (isäntänimi / osoite, käyttäjänimi) ja palvelimen (prosessin nimi, isäntänimi / osoite) -malleihin. Esimerkkejä annetaan lopussa. Tytärlukijaa kannustetaan siirtymään esimerke-osioon nopean käyttöönoton yhteydessä. Käyttöoikeuden hallinnan kielen laajennettu versio on kuvattu kohdassa hosts_options (5) asiakirja. Laajennukset kytketään päälle ohjelman rakennusaikana rakentamalla -DPROCESS_OPTIONS.
Seuraavassa tekstissä, demoni on verkon demoni - prosessin prosessinimi ja asiakas on vastaanottavan palvelupyynnön nimi ja / tai osoite. Verkko-daemon-prosessinimet on määritetty inetd-määritystiedostossa.
Käyttöoikeustiedostoja
Kulunvalvontaohjelmisto kuulee kahta tiedostoa. Haku loppuu ensimmäisellä ottelulla.
Käyttöoikeus myönnetään, kun (daemon, client) pari vastaa tuloa laittaa /etc/hosts.allow tiedosto.
Muussa tapauksessa käyttöoikeus kielletään, kun (daemon, client) pari vastaa syöteä /etc/hosts.deny tiedosto.
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.
Kulunvalvontasää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 demoprosessin nimeestä (argv 0 arvot) tai villimerkkeistä (ks. alla).
asiakaslista 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.
Monimutkaisemmat muodot daemon @ isäntä ja käyttäjä @ kone selitetään palvelimien päätepistemallien ja asiakkaiden käyttäjänimitysten hakujen osissa.
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 (melkein) kaikkia Eindhovenin yliopiston verkoston isäntiä (131.155.x.x).
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.
Ilmaisu "n.n.n.n / m.m.m.m" 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, mukaan lukien:
'KAIKKI'
Yleinen yleisnopeus, joka aina vastaa.
'Paikallinen'
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 nimeä 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.
'Tunnettu'
Sovittaa kaikki käyttäjät, joiden nimi on tiedossa, ja vastaa mitä tahansa isäntää, jonka nimeä ja osoite on tiedossa.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ä.
'Toimijat'
'PAITSI'
Tarkoitettu käyttö on muotoa: `list_1 EXCEPT list_2 '; tämä rakenne vastaa mitä tahansa ottelua list_1 ellei se vastaa list_2 . 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-komennot
Jos ensimmäisen sovitun kulunvalvontasääntö sisältää kuori-komennon, komento altistetaan% korvauksille (katso seuraava osio). Tulos toteutetaan a / Bin / sh lapsiprosessi, johon on kytketty standardi tulo, lähtö ja virhe / Dev / null . Määritä `& 'terminaalikomennon 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ää kuori komentokenttää eri tavalla ja yhteensopimattomalla tavalla.
% Laajennukset
Seuraavat laajennukset ovat käytettävissä komentojen aikana:
% a (% A) - asiakas (palvelin) isäntäosoite.
% C - Asiakkaan tiedot: käyttäjän @ isäntä, käyttäjän @ 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ätunnus (tai "tuntematon").
%% - Laajenee yhteen "%" -merkkiin.
Merkinnät prosentteina, jotka saattavat sekoittaa kuori, korvataan alaviivoilla.
Palvelimen päätepistemallit
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.
Asiakastunnuksen haku
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 silloin, kun sekä daemon_list ja host_pattern ottelu.
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, 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. 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. 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. 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_netgroupKAIKKI: .foobar.edu EXCEPT terminalserver.foobar.edu Ensimmäinen sääntö sallii pääsyn isäntäkoneista paikallisessa verkkotunnuksessa (ei ole `. 'Isäntänimessä) ja some_netgroup netgroup. Toinen säännös sallii pääsyn kaikista isännöistä foobar.edu domain (huomaa johtava piste), lukuun ottamatta terminalserver.foobar.edu . 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.domainKAIKKI 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. 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: ALL: kutu (/ jotkut / missä / 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ä anna ansaan sormen demonia, ellet ole valmis ääretöntä sormen silmukoita varten. 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ä. tcpd (8) tcp / ip daemon kääreohjelma.tcpdchk (8), tcpdmatch (8), testausohjelmat.
Tärkeä: Käytä mies komento ( % mies ), miten komentoa käytetään tietyssä tietokoneessa. Osoituksen tunnistaminen haittaohjelmien hyökkäyksiltä
esimerkit
Pääosin suljettu
Useimmiten avoin
Booby Traps
Katso myös




