Hosts.allow - Linux Command - Unix Command

NAMME

hosts_access - formaat fan host-bestannen bestannen

BESKRIUWING

Dizze hantlieding beskriuwt in ienfâldige tagongsrjochte-taal dy't basearre is op kliïnt (hostnamme / adres, brûkersnamme), en server (prosesamme, hostnamme / adres). Foarbylden wurde oan 'e ein jûn. De ûngeduldige lêzer wurdt stimulearre om nei de eksposysje foar in rappe ynlieding te skriuwen. In ferlingde ferzje fan 'e tagongsrjochte-taal wurdt beskreaun yn it dokumint hosts_options (5). De taheaksels wurde oanmakke by programma bou tiid troch te bouwen mei -DPROCESS_OPTIONS.

Yn de neikommende tekst is daemon de prosesamme fan in netwurk daemonproses , en kliïnt is de namme en / of adres fan in host fersyk service. Netwurk daemon-prosesnames wurde oanjûn yn 't ynetd konfiguraasjetriem.

ACCESS CONTROL FILES

De tagongsrjochtsskonsert software konsultearret twa bestannen . De syktocht stopet op it earste wedstriid.

Tagong sil ferliend wurde as in (daemon, client) pear in tagong yn de /etc/hosts.allow bestiet.

Oars wurde de tagong wegere as in (daemon, client) pear oerienkomt mei in yngong yn de /etc/hosts.deny-bestân .

Oars wurde tagong ferliend.

In net besteande tagongsrjochtenbestân wurdt behannele as as it in lege bestân wie. Dêrtroch kin tagongskontrôle ôfsluten wurde troch gjin beskikbere triembehearder te meitsjen.

ACCESS CONTROL RULES

Elke tagongsbestân bestân bestiet út nul of mear rigels fan tekst. Dizze rigels wurde ferwurke yn 'e oarder fan ferskinen. It sykbalke is termine as in wedstriid fûn is.

In nijline-karakter wurdt bewarre as it foarôfgeand fan in backslash-karakter is. Dit soarget jo om lange linen te brekken, sadat se makliker te bewurkjen binne.

Blanklinen of linen dy't begjinne mei in `# 'karakter binne bewarre. Dit soarget foar jo ynstellings en lokaasjes yn te setten sadat de tabellen makliker te lêzen binne.

Alle oare linen moatte it folgjende formaat befetsje, dingen tusken [] as fak optionaal:

daemon_list: client_list [: shell_command]

daemon_list is in list mei ien of mear daemonprosesnammen (argv [0] wearden) of wildcards (sjoch hjirûnder).

client_list is in list mei ien of mear hostnammen, hostadressen , patroanen of wildcards (sjoch hjirûnder) dy't oerienkomt wurde tsjin de kliïnten hostnamme of adres.

De kompleksere foarmen daemon @ host en brûker @ host wurde eksplisyt yn 'e seksjes op tsjinner-endpunten-patroanen en respektivelik op client-username-sykopsjes.

List-eleminten moatte skieden wurde troch blanken en / of komma's.

Mei útsûndering fan NIS (YP) netgroup-opsjes, alle kontrôlekontrôlets binne tagonklikensensyf.

PATTERNS

De tagongspesektor taal ymportearret de neifolgjende patroanen:

In string dy't begjint mei in '.' personaazje. In hostnamme is oanjûn as de lêste komponinten fan syn namme oerienkomme mei it spesifike patroan. Bygelyks it patroan '.tue.nl' komt oerien mei de hostnamme 'wzv.win.tue.nl'.

In string dy't einiget mei in '.' personaazje. In hostadres is oanjûn as de earste numerike fjilden passe by de opjûne string. Bygelyks it model '131.155.' komt oerien mei it adres fan (hast) elke host op it netwurk fan Eindhoven (131.155.xx).

In string dy't begjint mei in `@ 'karakter wurdt behannele as in NIS (earder YP) netgroupnamme. In hostnamme is oanjûn as it in host-lid is fan de oantsjutte netgroup. Netgroup-wedstriden wurde net stipe foar daemon-proses-nammen of foar brûkersnammenammen.

In útdruk fan 'e foarm' nnnn / mmmm 'wurdt ynterpretearre as in' net / masker 'paar. In adres adres IPv4 is oanjûn as `net 'is lyk oan it bitissjen fan it adres en de` mask'. Bygelyks, it net / maskermodel `131.155.72.0/255.255.254.0 'komt oerien mei elk adres yn it berik' 131.155.72.0 'troch` 131.155.73.255'.

In útdrukking fan 'e foarm' [n: n: n: n: n: n: n: n] / m 'wurdt ynterpretearre as in' net '/ prefixlen' paar. In adresadres fan IPv6 is oanjûn as `prefixlen 'bits fan` net' is lyk oan 'prefixlen' bits fan it adres. Bygelyks, it [net] / prefixlen-pattern '[3ffe: 505: 2: 1 ::] / 64' komt oerien mei elk adres yn it berikke '3ffe: 505: 2: 1 ::' troch `3ffe: 505: 2: 1: ffff: ffff: ffff: ffff '.

In string dy't begjint mei in `/ 'karakter wurdt behannele as in triemnamme . In hostnamme of adres is oanjûn as er alle hostnamme of adresfilm oerienkommt yn de neamde triem. It triemfoarm is nul of mear rigels mei nul of mear hostnamme of adres-patroanen, skieden troch whitespace. In triemnammepatroan kin oeral brûkt wurde om in host namme of adres-pattern te brûken.

Wildcards `* 'en`?' kin brûkt wurde om oanmelden of IP-adressen te bepalen . Dizze metoade fan oerienkomst kin net brûkt wurde yn kombinaasje mei 'net / masker' oerienkomst, hostnamme dy't begjint mei `. of IP-adres oerienkomt mei einiget mei `. '.

WILDCARDS

De tagongskontrôletsjetaal stipet eksplisite wildcards:

ALLE

De universele wyldek kaart, altyd oerienkommend.

PLEATSLIK

Meitsje in host mei hokker namme gjin bepaald karakter befetsje.

ÛNBEKEND

Spesjalearret elke brûker dy't syn namme ûnbekend is en befettet elke host dy't syn namme of adres net is. Dit patroone moat brûkt wurde mei soarch: hostnammen kinne net beskikber wêze fanwege temporäre nammer tsjinnersproblemen. In netwurksadres sil net beskikber wêze as de software net kin útfine hokker type netwurk dat it praat.

KNOWN

Meitset elke brûker dy't syn namme is bekend, en befettet elke host mei namme en adres bekend. Dit patroone moat brûkt wurde mei soarch: hostnammen kinne net beskikber wêze fanwege temporäre nammer tsjinnersproblemen. In netwurksadres sil net beskikber wêze as de software net kin útfine hokker type netwurk dat it praat.

PARANOID

Meitsje in host mei hokker namme net oerienkomt mei har adres. As tcpd ynboud is mei -DPARANOID (standertmodus) falt fersiken fan sokke kliïnten noch foardat jo sykje op de tagongsrjochten tabellen. Bouwe sûnder -DPARANOID as jo mear kontrôle hawwe oer sokke fersiken.

OPERATORS

ÚTSEIN

It befeilige gebrûk is fan 'e foarm:' list_1 EXCEPT list_2 '; dit konstrukt mei elk wat oerienkommt mei list_1, útsein as hy list_2 komt . De brûker EXCEPT kin brûkt wurde yn daemon_lists en yn client_lists. De brûker EXCEPT kin ynsteld wurde: as de kontrôle taal it gebrûk fan 'e klokken fergiftiget, dan sil' a bitsjutt b b AKSCEPT c 'as' (in útsûndering (b EXCEPT c)) plesje.

SHELL COMMANDS

As de earste-oantsjutte tagongsrjochtenbestjoeren befettet in shellbehearder, wurdt dit kommando ûnderwerp fan subsydzjes ûndersteld (sjoch neikommende paragraaf). It resultaat wurdt útfiert troch in / bin / sh bernproses mei standertynfier, útfier en flater ferbûn mei / dev / null . Jou in '&' oan 'e ein fan it kommando as jo net wachtsje wolle oant it dien is.

Shellbehearders moatte net berekkenje op de PATH-ynstelling fan de ynetd. Ynstee dêrfan moatte se absolute paadnammen brûke, of se moatte begjinne mei in explicit PATH = wat ferklearring.

De hosts_options (5) dokumint beskriuwt in alternative taal dy't it kommando fjild foar shell brûkt yn in oare en net kompatible manier.

% EXPANSIONS

De folgjende útwreidingen binne binnen de shellkommando's beskikber:

% a (% A)

De klant (server) hostadres .

% c

Clientynformaasje: brûker @ host, brûker @ adres, in hostnamme, of krekt in adres, ôfhinklik fan hoefolle ynformaasje beskikber is.

% d

De daemonprosesnamme (argv [0] wearde).

% h (% H)

De klant (server) host namme of adres, as de hostnamme net beskikber is.

% n (% N)

De klant (tsjinner) hostnamme (of "ûnbekend" of "paranoïden").

% p

De daemonproses id.

% s

Tsjinner ynformaasje: daemon @ host, daemon @ adres, of gewoan in daemonnamme, ôfhinklik fan hoefolle ynformaasje beskikber is.

% u

De brûkernamme fan klant (of "ûnbekend").

%%

Ferwacht nei in inkele `% 'karakter.

Characters yn% útwreidings dy't de shell misse kinne ferfange troch ûnderskate wearden.

SERVER ENDPOINT PATTERNS

Om de kliïnten ûnderskiede te litten troch it netwurkadres dat se ferbine, brûk de patroanen fan it formulier:

process_name @ host_pattern: client_list ...

Patterns lykas dizze kinne brûkt wurde as de masine hat ferskillende ynternetadressen mei ferskillende ynternet-hostnammen. Tsjinstferlieners kinne dizze opsjes brûke om FTP-, GOPHER- of WWW-argiven oan te bieden mei ynternetnammen dy't sels hearre kinne oan ferskate organisaasjes. Sjoch ek de opsje 'twist' yn de host_options (5) dokumint. Guon systemen (Solaris, FreeBSD) kinne mear as ien ynternetadres hawwe op ien fysike ynterface; Mei oare systemen kinne jo miskien oan SLIP of PPP pseudo-ynterfakken hawwe dy't yn in bepaalde netwurk adresromte wenje.

De host_pattern befettet deselde sysaksje-regels as hostnammen en adressen yn client_list-kontekst. Meartalich is tsjintwurdige endpoint-ynformaasje allinich beskikber mei ferbining-rjochte tsjinsten.

CLIENT USERNAME LOOKUP

As it kliïnt hostet it protokol RFC 931 of ien fan 'e neikommendaten (TAP, IDENT, RFC 1413), kinne de wrapperprogramma ekstra ynformaasje oer de eigner fan in ferbining krije. Keppele brûkersnamme-ynformaasje, as beskikber is, wurdt tagelyk oanmeld mei de hostnamme fan kliïnt, en kin brûkt wurde om patroanen lykas:

daemon_list: ... user_pattern @ host_pattern ...

De daemon-wrapper kinne konfigurearre wurde by it kompilearjen fan tiid foar it útfieren fan regel-oanwêzige brûkersbehearders (standert) of om altyd de client-host te kontrolearjen. Yn it gefal fan regelbûne brûkersbehearders soe de boppesteande regel allinich sykje brûke as wannear't sawol de daemon_list en de host_pattern oerienkomme.

In brûkerspatroan hat itselde syntaksis as in daemonproses patroan, dus itselde wildcards tapasse (netgroup-lidmaat wurdt net stipe). Men moat net mei brûkersbehearders fuortfierd wurde, hoewol.

De ynformaasjeynformaasje fan kliïnte kin net fertroud wêze as it meast nedich is, dus as it kliïntysteem befetsje is. Yn it algemien binne ALL en (UN) KNOWN de iennige brûkersnammen dy't sin betsjutte.

Brûkersoartochten binne allinich mei TCP-basearre tsjinsten mooglik, en allinich wannear't de klant host in gaadlike daemon rint; Yn alle oare gefallen is it resultaat "ûnbekend".

In bekende UNIX-kernel-bug kin in ferwidering fan tsjinst wurde, as brûkers fan lookups troch in firewall blokkearre wurde. It dokumint README-dokumint beskriuwt in proseduere om te begjinnen as jo kernel dizze brek hat.

Brûkersoartochten kinne spitigere ferzjes foar net-UNIX-brûkers feroarsaakje. De standerttiid foar brûkersbehearders is 10 sekonden: te koart om mei slang netwurden te hanneljen, mar lang genôch om PC brûkers te reitsjen.

Selektearre brûkersbehearders kinne it lêste probleem ferleegje. Bygelyks in regel as:


daemon_list: @pcnetgroup ALL @ ALL

soe lid wurde fan 'e pc netgroup lykwols sûnder brûkersbehearder te dwaan, mar soe gebrûk meitsje fan brûkersnammen mei alle oare systemen.

DATEKTING ADDRESS SPOOFING ATTACKS

In flak yn 'e sequentnumer generator fan in soad TCP / IP-ymplementaasjes lit yntrienten maklik fertroude hosts ynsette en ek trochbringe, bygelyks de remote shell service. De tsjinst IDENT (RFC931 ensfh.) Kin brûkt wurde om soksoarte en oare hostadres te spoofjen oanfallen.

Foardat jo in kliïnterfange akseptearje, kinne de winkers de IDENT-tsjinst brûke om te finen dat de kliïnt it fersyk hielendal net stjoert. Wannear't de client-host de IDENT-tsjinst jout, in negative IDENT-resultatresultaat (de kliïnt bepaalt `UNKNOWN @ host ') is sterk bewiis foar in host spoofing-oanfal.

In positive IDENT-resultatresultaat (de kliïnt bepaalt `KNOWN @ host ') is minder fertrouber. It is mooglik foar in yntrofer om de client-ferbining te ferwiderjen en de IDENT-sykopsje, hoewol sa is folle hurder as spoofjen mar krekt in client-ferbining. It kin ek wêze dat de IDENT-tsjinner fan it client leit.

Taljochting: IDENT-sykopsjes wurkje net mei UDP-tsjinsten.

EXAMPLES

De taal is fluggich genôch dat ferskate soarten kontrôles fan tagongsrjochtskontrôles mei in minimaler foarkommen wurde kinne. Hoewol de taal brûkt twa tagonklikstafels, kin it meast foarkommende belied ynfierd wurde mei ien fan 'e tafels dy't trivial of sels leech binne.

By it lêzen fan de hjirboppe foarbylden is it wichtich om te realisearjen dat it tafel tafel foar it tastafel skansearre wurdt, dat it sykjen begjint as in wedstriid fûn is, en dat tagong is ferkocht as der gjin match mear fûn is.

De foarbylden brûke host en domeinnammen. Se kinne ferbettere wurde troch ynklusyf adres- en / of netwurk- / netmaske-ynformaasje, om de ynfloed fan tydlike nammetsjinner-serverfoutjes te ferleegjen.

MOSTLY CLOSED

Yn dit gefal wurdt tagong wegere as standert. Allinne eksplisearre autorisearre hosts binne tagong ta tagong.

It standert belied (gjin tagong) wurdt ymplementearre mei in triviale lege bestân:

/etc/hosts.deny: ALL: ALL

Dit leauwt alle tsjinsten foar alle hosts, as it net tagong is tagong troch yndrukken yn it fergese triem.

De explicitly authorized hosts are listed in the allow file. Bygelyks:

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

De earste regel jout tagong fan hosts yn it lokale domein (gjin `. 'Yn' e hostnamme) en fan leden fan 'e netnetgroup fan some_netgroup . De twadde regel jout tagong fan alle hosts yn it foobar.edu- domein ( markearje de liedende punten), mei útsûndering fan terminalserver.foobar.edu .

MOSTLY OPEN

Hjirby wurdt tagong troch standert jûn; Allinnich eksplisearre gegevens wurde wegere tsjinst.

It standert belied (tagong ferliest) makket it fergunningdatabank redundant sadat it wegere wurde kin. De explicitly non-authorized hosts are listed in the deny file. Bygelyks:

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

De earste regel leart inkele hosts en domeinen alle tsjinsten; De twadde regel jout noch fingerferfangings fan oare hosts en domeinen.

BOOBY TRAPS

It folgjende foarbyld jout tftp-oanfragen fan hosts yn 'e lokale domein (besjen de liedende punten). Fersiken fan oare oare hosts wurde wegere. Ynstee fan 'e frege triem wurdt in finger probe nei de besefende host ferstjoerd. It resultaat is mailen nei de superbus.

/etc/hosts.allow:

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

It kommando safe_finger komt mei de tcpd-wrapper en moat yn in gaadlik plak ynstallearre wurde. It beheine mooglike skea fan gegevens dy't ferstjoerd wurde troch de remote finger tsjinner. It jout bêste beskerming as de standert fingerbehearder.

De útwreiding fan de% h (client host) en% d (tsjinstnamme) sequins wurdt beskreaun yn 'e seksje oer shellkommando's.

Warskôging: lit jo finger-daemon net ynbrekke, útsein jo binne taret foar unfinigere fingersleopen.

Op netwurk-firewall-systemen kin dizze trick noch fierder drage wurde. De typyske netwurk-brânmuorre biedt allinich in beheind tal tsjinsten foar de bûtenwrâld. Alle oare tsjinsten kinne "bugge" wurde krekt as it hjirboppe tftp foarbyld. It resultaat is in uitstekkend early-warning system.

SJOCH EK

tcpd (8) tcp / ip daemon wrapper programma. tcpdchk (8), tcpdmatch (8), testprogramma's.

Wichtich: Brûk de manbehearder ( % man ) om te sjen hoe't in kommando brûkt wurdt op jo bepaalde komputer.