Skip to main content

Hosts.allow - Linux Command

How to Run Linux/Unix Terminal on windows 7/8/8.1/10 (Június 2026)

How to Run Linux/Unix Terminal on windows 7/8/8.1/10 (Június 2026)
Anonim

Név

hosts_access - a gazdagép-hozzáférés Linux vezérlőfájljainak formátuma.

Leírás

Ez a kézikönyv a Linuxot egyszerű hozzáférési vezérlési nyelvként írja le, amely az ügyfél (gazdanév / cím, felhasználónév) és szerver (folyamatnév, gazdanév / cím) mintázatán alapul. Példák a végén. A türelmetlen olvasót arra ösztönözzük, hogy a példákhoz ugorjon egy gyors bevezetéshez. A hozzáférés-vezérlési nyelv kiterjesztett változata a hosts_options (5) dokumentum. 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, démon a hálózati démonfolyamat neve, és ügyfél a fogadó kérő szolgáltatás neve és / vagy címe. A hálózati démon folyamatneveket az inetd konfigurációs fájl tartalmazza.

Hozzáférés-vezérlő fájlok

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és akkor adható meg, ha egy (démon, ügyfél) páros egy adott bejegyzést /etc/hosts.allow fájlba.

Ellenkező esetben a hozzáférés meg fog tagadni, ha egy (démon, ügyfél) páros egy /etc/hosts.deny fájlba.

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éptető 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

daemon_list egy vagy több démonfolyamat neve (argv 0 érték) vagy helyettesítő karakter (lásd alább).

ügyfél lista egy vagy több gazdanevet, gazdagépet, mintát vagy helyettesítő (lásd alább) listát tartalmaz, amely illeszkedik az ügyfél gazda nevéhez vagy címéhez.

A bonyolultabb formák démon @ host és user @ host a kiszolgáló végpont-mintáiról és az ügyfél-felhasználónév-lekérdezésekről szóló szakaszokban találhatók.

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.x.x).

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 "n.n.n.n / m.m.m.m" formátum kifejezését "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 / mask 'illesztéshez, a` `hostname' 'kezdőbetűvel. 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, többek között:

'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 megegyezik minden olyan állomással, 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.

„Üzemeltetők”

'KIVÉVE'

A rendeltetésszerű használat az alábbi formában található: `list_1 EXCEPT list_2 '; ez a konstrukció megegyezik a mérkőzésekkel list_1 hacsak nem egyezik list_2 . 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 parancsok

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 a / Bin / sh gyermekprocesszor, standard bemenettel, kimenettel és hibával / Dev / null . Adjon meg egy `& 'parancsot a terminál 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 shell parancsmezőt más és nem kompatibilis 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 - Ügyfélinformációk: felhasználó @ host, felhasználó @ cím, gazdanév vagy csak egy cím, attól függően, hogy hány 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: démon @ host, démon @ 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.

Szerver végpont minták

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.

Ügyfélhasználat keresése

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 hozna létre felhasználónév-keresést, ha mind a daemon_list és a host_pattern mérkőzés.

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évvel kapcsolatos információ nem bízható meg, amikor a legtöbbre szüksége van, vagyis 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.

Érzékelési címzés tiltakozó támadások felderíté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.

Leginkább 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_netgroupMINDEN: .foobar.edu EXCEPT terminalserver.foobar.edu

Az első szabály lehetővé teszi a hozzáférést a helyi tartományban lévő gazdagépektől (a gazdanévben nincs `. ') És a some_netgroup netgroup. A második szabály lehetővé teszi a hozzáférést a foobar.edu domain (értesítsd a vezető pontot), kivéve a terminalserver.foobar.edu .

Többnyire 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.domainMINDEN 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 csapdák

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.

Figyelem: Ne csípje meg az ujjadémonjá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.

Lásd még

tcpd (8) tcp / ip démon csomagoló program.tcpdchk (8), tcpdmatch (8), tesztprogramok.

Fontos: Használja a Férfi parancs ( % Férfi ), hogy lássa, hogyan használják a parancsot az adott számítógépen.