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. 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. 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. 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 . 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. 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. 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. Érzékelési címzés tiltakozó támadások felderítése
Példák
Leginkább zárt
Többnyire nyitott
Booby csapdák
Lásd még




