Hosts.deny - Linux Command - Unix parancs

NÉV

hosts_access - a gazda-hozzáférés-vezérlő fájlok formátuma

LEÍRÁS

Ez a kézikönyv oldal egy egyszerű hozzáférés-vezérlési nyelvet ír le, amely az ügyfélen (gazdanév / cím, felhasználói név) és kiszolgálón (folyamatnév, gazdanév / cím) alapul. Példák a végén. A türelmetlen olvasót arra ösztönözzük, hogy a gyorsasági bevezetéshez ugorjon az EXAMPLES részhez.

A hozzáférés-vezérlési nyelv kiterjesztett verzióját a hosts_options (5) dokumentum írja le. A bővítmények a program-készítési időben bekapcsolva a -DPROCESS_OPTIONS paranccsal épülnek fel.

A következő szövegben a daemon egy hálózati démonfolyamat neve, és az ügyfél az állomáskérő szolgáltatás neve és / vagy címe. A hálózati démon folyamatneveket az inetd konfigurációs fájl tartalmazza.

ACCESS CONTROL FILES

A hozzáférés-vezérlő szoftver két fájlt vizsgál meg. A keresés az első mérkőzésen megáll:

*

Hozzáférést kapunk, ha egy (démon, ügyfél) páros egy adott bejegyzést illeszt be az /etc/hosts.allow fájlba.

*

Ellenkező esetben a hozzáférés meg fog tagadni, ha egy ( démon , kliens) pár megfelel egy bejegyzésnek az /etc/hosts.deny fájlban.

*

Ellenkező esetben a hozzáférés megtörténik.

A nem létező hozzáférési vezérlő fájlt úgy kezeljük, mintha üres fájl lenne. Így a hozzáférés-vezérlés kikapcsolható a hozzáférés-vezérlési fájlok megadása nélkül.

BELÉPÉS-ELLENŐRZÉSI SZABÁLYOK

Minden beléptető állomány nulla vagy több szövegsorból áll. Ezek a sorok a megjelenés sorrendjében kerülnek feldolgozásra. A keresés akkor fejeződik be, amikor egy találatot talál.

*

Az újsoros karaktert figyelmen kívül hagyja, ha előz meg egy hátsó karakter. Ez lehetővé teszi a hosszú sorok felosztását, hogy azok könnyebben szerkeszthetők legyenek.

*

A "#" karakterrel kezdődő üres sorokat vagy sorokat figyelmen kívül hagyja. Ez lehetővé teszi, hogy beillesztse a megjegyzéseket és a szóközöket, hogy könnyebben olvashatóak legyenek a táblázatok.

*

Az összes többi sornak meg kell felelnie a következő formátumnak: a [] opciók választhatóak:


daemon_list: ügyfél_list [: shell_command]

A daemon_list egy vagy több démon folyamat nevét (argv [0] értékeket) vagy a helyettesítő karaktereket (lásd alább) tartalmazza.

A client_list egy vagy több gazdanevet , gazdagépet, mintát vagy helyettesítő (lásd alább) listát tartalmaz, amely a kliens gazdanevének vagy címének felel meg.

A bonyolultabb démon @ host és a felhasználó @ gazdagépeket a kiszolgáló végpont-mintáinak és az ügyfél-felhasználónév-lekérdezések szakaszainak magyarázata ismerteti.

A listaelemeket üres és / vagy vesszővel kell elválasztani.

A NIS (YP) netgroup lekérdezések kivételével minden beléptető ellenőrzés csekély jelentőségű.

MINTÁK

A hozzáférés-szabályozási nyelv a következő mintákat alkalmazza:

*

Egy olyan karakterlánc, amely egy `. ' karakter. A gazdagép illeszkedik, ha a neve utolsó összetevője megegyezik a megadott mintával. Például a `.tue.nl 'minta megfelel a` wzv.win.tue.nl' gazdanévnek.

*

Egy string, amely egy `. ' karakter. A gazdaszámítógép címét akkor adják meg, ha az első numerikus mezők megfelelnek az adott karakterláncnak. Például a "131.155" minta. megegyezik az Eindhoven Egyetemi Hálózat (majdnem) minden állomásának címével (131.155.xx).

*

Egy "@" karakterrel kezdődő karakterlánc NIS (korábban YP) netgroup névként kezelendő. A gazdanév akkor egyezik meg, ha a megadott hálózati csoport fogadó tagja. A hálózati csoportos egyezések nem támogatottak a démonfolyamatok neveihez vagy az ügyfél felhasználói nevekhez.

*

Az "nnnn / mmmm" formanyomtatványt "net / mask" pártként értelmezzük. Egy IPv4-gazdagépet egyeznek meg, ha a "net" egyenlő a címet a bit és a cím és a "maszk" értékével. Például a "131.155.72.0/255.255.254.0" háló / maszk mintázat megegyezik a "131.155.72.0" tartományban lévő összes címre a `131.155.73.255 'címen.

*

Az [n: n: n: n: n: n: n: n] / m formátumú kifejezést "[net] / prefixlen" -ként értelmezik. Egy IPv6-gazdagépet egyeznek meg, ha a "prefixlen" bitjei "net" -nek felelnek meg a cím "prefixlen" bitjeinek. Például a [net] / prefixlen minta [3ffe: 505: 2: 1 ::] / 64 'megfelel minden címnek a' 3ffe: 505: 2: 1 :: 'tartományban a `3ffe: 505: 2: 1: ffff: ffff: ffff: ffff”.

*

A `/ 'karakterrel kezdődő karakterláncot fájlnévnek kell tekinteni. A gazdagép neve vagy címe megegyezik, ha megfelel a megadott fájlban felsorolt ​​gazdanévnek vagy címmintának. A fájlformátum nulla vagy több olyan sor, ahol nulla vagy több gazdagépnév vagy címminták vannak elrendezve. A fájlnév minta használható bárhol, ahol a gazdagép vagy a címmintázat használható.

*

A `* 'és a`? "Karakterkészletek használható hostnevek vagy IP-címek illesztésére. Ez a leképezési módszer nem használható a `net / maszk" illesztéssel kombinálva, a `. 'Kezdődő gépnév illesztése. vagy az IP címet a `. 'végződéssel végezzük.

Helyettesítő karakterek

A hozzáférés-szabályozási nyelv támogatja a kifejezett karakterkészleteket:

MINDEN

Az univerzális helyettesítő, mindig megegyezik.

HELYI

Minden olyan állomásnak felel meg, amelynek neve nem tartalmaz dot karaktert.

ISMERETLEN

Olyan felhasználóknak felel meg, akiknek a neve ismeretlen, és megfelel minden olyan állomásnak, amelynek neve vagy címe ismeretlen. Ezt a mintát óvatosan kell használni: a gazdanevek nem érhetők el ideiglenes névkiszolgálói problémák miatt. A hálózati cím nem lesz elérhető, ha a szoftver nem tudja megmondani, hogy milyen típusú hálózattal beszél.

ISMERT

Megfelel minden olyan felhasználónak, akinek a neve ismert, és megfelel minden állomásnak, amelynek neve és címe ismert. Ezt a mintát óvatosan kell használni: a gazdanevek nem érhetők el ideiglenes névkiszolgálói problémák miatt. A hálózati cím nem lesz elérhető, ha a szoftver nem tudja megmondani, hogy milyen típusú hálózattal beszél.

PARANOID

Megtalál minden olyan állomást, amelynek neve nem egyezik a címével. Ha a tcpd a -DARANOID (alapértelmezett) móddal épül fel, az ilyen ügyfelektől érkező kérelmeket még a hozzáférési vezérlő táblák megtekintése előtt is le kell állítani. Build-without -DPARANOID nélkül, ha több ellenőrzést szeretne igénybe venni az ilyen kéréseknél.

OPERATORS

KIVÉVE

A rendeltetésszerű használat az alábbi formában található: `list_1 EXCEPT list_2 '; ez a konstrukció megegyezik a list1-nek megfelelõkkel, kivéve ha megfelel a list_2-nek . Az EXCEPT operátor használható démonlistákban és ügyféllistákban. Az EXCEPT operátor beágyazható: ha a vezérlőnyelv lehetővé teszi a zárójelek használatát, akkor a "EXCEPT b EXCEPT c" kifejezést "(EXCEPT (b EXCEPT c))" elemzésként értelmezhetjük ".

SHELL COMMANDS

Ha az első illeszkedő hozzáférés-vezérlési szabály egy shell parancsot tartalmaz, akkor a parancsot % helyettesítéseknek vetik alá (lásd a következő részt). Az eredményt egy / bin / sh child processzel végezzük, amely szabványos bemenettel, kimenettel és hibával kapcsolódik a / dev / nullhoz . Adjon meg egy parancsot a parancs végén, ha nem akarja megvárni, amíg befejeződik.

A Shell parancsok nem támaszkodhatnak az inetd PATH beállítására. Ehelyett abszolút elérési utakat kell használnia, vagy egy explicit PATH = bármilyen állítással kell kezdődnie.

A hosts_options (5) dokumentum olyan alternatív nyelvet ír le, amely a parancsértelmező mezőt eltérő módon és inkompatibilis módon használja.

BŐVÍTÉSEK

A következő kiterjesztések a shell parancsok alatt érhetők el:

% a (% A)

Az ügyfél (kiszolgáló) gazdagép címe.

% c

Az ügyfél adatai: felhasználó @ host, user @ cím, gazdanév vagy csak cím, attól függően, hogy mennyi információ áll rendelkezésre.

% d

A démon folyamat neve (argv [0] érték).

% h (% H)

Az ügyfél (kiszolgáló) gazdanév vagy cím, ha a gazdanév nem érhető el.

% n (% N)

Az ügyfél (kiszolgáló) gazdanév (vagy "ismeretlen" vagy "paranoid").

% p

A démon folyamat id.

% s

A kiszolgáló adatai: daemon @ host, daemon @ cím, vagy csak egy démon neve, attól függően, hogy mennyi információ áll rendelkezésre.

% u

Az ügyfél felhasználói neve (vagy "ismeretlen").

%%

Egyetlen "%" karakterre bővül.

A héj összetévesztését okozó% -os bővítésekben szereplő karaktereket aláhúzás jelöli.

SERVER ENDPOINT PATTERNS

Annak érdekében, hogy megkülönböztesse az ügyfeleket az általuk csatlakozott hálózati címhez, használja az űrlap mintáit:


folyamat_neve @ host_pattern: ügyfél_list ...

Az ilyen minták akkor használhatók, ha a gép különböző internetes címeket tartalmaz különböző internetes állomásnevekkel. A szolgáltatók ezt a lehetőséget használhatják az olyan FTP, GOPHER vagy WWW archívumok számára, amelyek internetes nevekkel rendelkeznek, és amelyek akár különböző szervezetekhez is tartozhatnak. Lásd még a "twist" opciót a hosts_options (5) dokumentumban. Egyes rendszerek (Solaris, FreeBSD) egynél több internetes címet tartalmazhatnak egy fizikai interfészen; más rendszerekkel esetleg SLIP vagy PPP pszeudo interfészekhez kell fordulni, amelyek egy dedikált hálózati címtartományban élnek.

A host_pattern ugyanazokat a szintaxisokat ismeri el, mint a gazdagépek és címek a klienslistában. Általában a kiszolgáló végpont információi csak kapcsolódási szolgáltatásokkal érhetők el.

AZ ÜGYFÉL FELHASZNÁLÓI VIZSGÁLATA

Ha az ügyfélgép támogatja az RFC 931 protokollt vagy az egyik leszármazottját (TAP, IDENT, RFC 1413), a csomagolóprogramok további információkat találhatnak a kapcsolat tulajdonosairól. Az ügyfelek felhasználónevének adatai, ha rendelkezésre állnak, az ügyfél-gazdanévvel együtt kerülnek naplózásra, és felhasználhatók a következő mintákhoz:


daemon_list: ... user_pattern @ host_pattern ...

A démoncsomagolók fordítási idő alatt beállíthatók szabály-alapú felhasználónév-lekérdezések végrehajtásához (alapértelmezett), vagy mindig megkérdezhetik az ügyfélfiókot. Szabály-alapú felhasználónév-keresések esetében a fenti szabály csak akkor hozza létre a felhasználónév-keresést, ha a démon_list és a host_pattern is egyeznek.

A felhasználói mintának ugyanaz a szintaxisa, mint a démon folyamatmintája, ezért ugyanazok a helyettesítő karakterek érvényesek (a netgroup tagság nem támogatott). A felhasználónevek lekérdezéseit azonban nem szabad elviselni.

*

Az ügyfél-felhasználónév adatait nem lehet megbízni abban az esetben, amikor a legtöbbre szükség van, azaz amikor az ügyfélrendszer sérült. Általánosságban elmondható, hogy az ALL és az (UN) KNOW az egyetlen olyan felhasználói névmintázat, amely értelmes.

*

A felhasználónevek keresése csak TCP-alapú szolgáltatások esetén lehetséges, és csak akkor, ha az ügyfélfiók megfelelő démont futtat; minden más esetben az eredmény "ismeretlen".

*

A jól ismert UNIX rendszermag hibát okozhat, ha a felhasználónév-kereséseket blokkolja egy tűzfal. A wrapper README dokumentum leír egy eljárást annak megállapítására, hogy a rendszermagnak van-e hibája.

*

A felhasználónév-keresések észrevehető késedelmet okozhatnak a nem UNIX-felhasználók számára. A felhasználónév-keresések alapértelmezett időtúllépése 10 másodperc: túl rövid ahhoz, hogy megbirkózzon a lassú hálózatokkal, de elég hosszú ahhoz, hogy bosszantsa a PC-felhasználókat.

A szelektív felhasználónév-felkutatások enyhíthetik az utolsó problémát. Például olyan szabály, mint például:


daemon_list: @pcnetgroup ALL @ ALL

a pc netgroup tagjai a felhasználónév-keresések elvégzése nélkül egyeznek a felhasználókkal, ugyanakkor minden más rendszerrel végrehajtják a felhasználónév-kereséseket.

A CÍMKÉZISEK BEHELYEZÉSE

A számos TCP / IP implementáció sorozatszám-generátorában a hibák lehetővé teszik a betolakodók számára, hogy könnyen beolvassák a megbízható állomásokat, és betörhetnek például a távoli héj-szolgáltatáson keresztül. Az IDENT (RFC931 stb.) Szolgáltatás fel lehet használni ilyen és egyéb címzett spoofing támadások észlelésére.

Mielőtt elfogadja az ügyfélkérést, a csomagolók az IDENT szolgáltatást használhatják annak megállapítására, hogy az ügyfél egyáltalán nem küldte el a kérelmet. Amikor az ügyfél-gazdagép IDENT szolgáltatást nyújt, egy negatív IDENT keresési eredmény (az ügyfél megfelel az "UNKNOWN @ host" -nak) erős bizonyítékot szolgáltat a host-spoofing támadásra.

A pozitív IDENT keresési eredmény (az ügyfél megegyezik a "KNOWN @ host" -gal) kevésbé megbízható. Lehetséges, hogy egy betolakodó mind az ügyfélkapcsolatot, mind az IDENT keresést megtévesztheti, bár ez sokkal nehezebb, mint az ügyfélkapcsolat megcsonkítása. Lehet, hogy az ügyfél IDENT-kiszolgálója hazudik.

Megjegyzés: Az IDENT lekérdezések nem működnek az UDP szolgáltatással.

PÉLDÁK

A nyelv elég rugalmas ahhoz, hogy a hozzáférés-szabályozási politika különböző típusai minimálisan felmerülhessenek. Bár a nyelv két hozzáférési vezérlő táblát használ, a legáltalánosabb irányelvek végrehajthatók, ha az egyik táblázat triviális vagy akár üres.

Az alábbi példák olvasása során fontos észrevenni, hogy a letiltási táblázatot a megtagadási táblázat előtt ellenőrzi, hogy a keresés befejeződik, amikor egy találatot talál, és a hozzáférés akkor érhető el, ha egyáltalán nincs találat.

A példák a gazda- és domainneveket használják. Javíthatók a cím- és / vagy hálózati / hálómaszk-információk bevitelével, hogy csökkentse az ideiglenes névkiszolgáló-keresési hibák hatását.

Legtöbbször ZÁRT

Ebben az esetben a hozzáférés alapértelmezés szerint megtagadható. Csak a kifejezetten engedélyezett gazda engedélyezett.

Az alapértelmezett házirend (nincs hozzáférés) egy triviális tagadási fájllal valósul meg:

/etc/hosts.deny: ALL: ALL

Ez megtagadja az összes kiszolgálót minden állomás számára, hacsak nem engedélyezettek a hozzáférési fájl bejegyzései.

A kifejezetten engedélyezett gazdagépeket a engedélyező fájl tartalmazza. Például:

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

Az első szabály lehetővé teszi a helyi domainben lévő gazdagépek (a gazdagépnévben nem található "." És a net_group csoport tagjait. A második szabály lehetővé teszi a foobar.edu tartomány összes állomásához való hozzáférést (észleli a vezető pontot), kivéve a terminalserver.foobar.edu fájlt .

LEGYEN NYITOTT

Itt a hozzáférés alapértelmezés szerint megadható; csak a kifejezetten megnevezett állomásokat utasítják el a szolgáltatás.

Az alapértelmezett házirend (hozzáférési engedély) teszi lehetővé az engedélyező fájlt, hogy elhagyható legyen. Az expliciten nem engedélyezett gazdagépeket a deny fájl tartalmazza. Például:

/etc/hosts.deny: ALL: some.host.name, .some.domain
MINDEN KIVÉVE in.fingerd: other.host.name, .other.domain

Az első szabály tagadja a házigazdák és domainek minden szolgáltatását; a második szabály továbbra is lehetővé teszi a többi gazda és domain domain ujjkérését.

BOOBY TRAPS

A következő példa lehetővé teszi a tftp kéréseket a helyi tartománybeli gazdagépektől (észreveheti a vezető pontot). A többi állomástól érkező kérések megtagadhatók. A kért fájl helyett egy ujjlenyomatot küld a sértő állomásnak. Az eredményt elküldjük a feletteseknek.

/etc/hosts.allow:

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

A safe_finger parancs a tcpd csomagolóanyaggal érkezik, és megfelelő helyen kell telepíteni. Ez korlátozza a távoli ujj szerver által küldött adatok esetleges károsodását. Jobb védelmet nyújt, mint a szabványos ujjparancs.

A% h (kliens állomás) és a% d (szolgáltatásnév) szekvenciák kiterjesztését a shell parancsok szakaszában ismertetjük.

Figyelmeztetés: ne csípje meg az ujjademonját, hacsak nem készen áll a végtelen ujjhurokra.

A hálózati tűzfal rendszereken ez a trükk még tovább fut. A tipikus hálózati tűzfal csak korlátozott számú szolgáltatást nyújt a külvilág számára. Minden más szolgáltatást "bugged" lehet, mint a fenti tftp példát. Az eredmény egy kiváló korai figyelmeztető rendszer.

Fontos: Az ember paranccsal ( % man ) tekintse meg, hogyan használják a parancsot az adott számítógépen.

kapcsolódó cikkek