Hosts.allow - Linux komanda - Unix komanda

NAME

hosts_access - uzņēmējas piekļuves kontroles failu formāts

APRAKSTS

Šajā rokasgrāmatas lapā ir aprakstīta vienkārša piekļuves vadības valoda, kuras pamatā ir klients (resursdatora nosaukums / adrese, lietotājvārds) un serveris (procesa nosaukums, resursdatora nosaukums / adrese). Piemēri ir doti beigās. Neapmierinātam lasītājam ir ieteicams ātri pāriet uz sadaļu EXAMPLES, lai ātri ieviestu. Piekļuves kontroles valodas paplašinātā versija ir aprakstīta hosts_options (5) dokumentā. Paplašinājumi tiek ieslēgti programmu veidošanas laikā, veidojot -DPROCESS_OPTIONS.

Nākamajā tekstā dēmons ir tīkla dēmonu procesa nosaukums , un klients ir pakalpojuma saņēmēja pieprasītāja nosaukums un / vai adrese. Tīkla deemonu procesa nosaukumi ir norādīti inetd konfigurācijas failā.

PIEEJAS KONTROLES FILES

Piekļuves kontroles programmatūra konsultē divus failus . Meklēšana apstājas pirmajā spēlē.

Piekļuve tiks piešķirta, ja (dēmons, klients) pāra sakritīs ieraksts failā /etc/hosts.allow .

Pretējā gadījumā piekļuve tiks liegta, ja (dēmons, klients) pāra sakritīs ar ierakstu failā /etc/hosts.deny .

Pretējā gadījumā piekļuve tiks piešķirta.

Neeksistējošs piekļuves kontroles fails tiek uzskatīts par tukšu failu. Tādējādi piekļuves kontroli var izslēgt, nodrošinot piekļuves kontroles failus.

PIEKĻUVES KONTROLES NOTEIKUMI

Katrs piekļuves kontroles fails sastāv no nulles vai vairākām teksta rindām. Šīs līnijas tiek apstrādātas pēc izskata. Meklēšana tiek pārtraukta, kad tiek atrasta atbilstība.

Jauna līnijas rakstzīme tiek ignorēta, kad tai priekšā ir atpakaļzīmju zīme. Tas ļauj jums sadalīt garās līnijas, lai tās būtu vieglāk rediģēt.

Tukšas līnijas vai līnijas, kas sākas ar rakstzīmi "#", tiek ignorētas. Tas ļauj ievietot komentārus un atstarpes, lai tabulas būtu vieglāk lasāmas.

Visām pārējām līnijām jāatbilst šādam formātam, lietas starp [] ir neobligātas:

daemon_list: client_list [: shell_command]

daemon_list ir saraksts ar vienu vai vairākiem dēmonu procesu nosaukumiem (argv [0] vērtībām) vai aizstājējzīmes (skatiet zemāk).

client_list ir viens vai vairāki saimniekdatoru nosaukumi, uzņēmēja adreses, modeļi vai aizstājējzīmes (sk. tālāk), kas tiks salīdzināti ar klienta saimniekdatora nosaukumu vai adresi.

Sarežģītākās formas daemon @ host un user @ host ir izskaidrotas sadaļās par servera parametru modeļiem un klienta lietotājvārdu meklēšanu attiecīgi.

Sarakstu elementi jāatdala ar rindām un / vai komatiem.

Izņemot NIS (YP) tīkla grupas meklēšanu, visas piekļuves kontroles pārbaudes nav reģistrētas.

PATTERNS

Piekļuves kontroles valoda īsteno šādus modeļus:

Virkne, kas sākas ar `. ' raksturs. Mītnes nosaukums tiek saskaņots, ja tā nosaukuma pēdējie komponenti atbilst norādītajam paraugam. Piemēram, modelis `.tue.nl 'atbilst resursdatora nosaukumam` wzv.win.tue.nl'.

Virkne, kas beidzas ar `. ' raksturs. Mītnes adrese ir saskaņota, ja tā pirmie ciparu lauki atbilst dotajai virknei. Piemēram, modelis `131.155. ' atbilst (gandrīz) katra saimniekdatora adresei Eindhovenas Universitātes tīklā (131.155.xx).

Virkne, kas sākas ar `@ 'rakstzīmi, tiek uzskatīta par NIS (agrāk YP) tīkla grupas nosaukumu. Mītnes nosaukums tiek saskaņots, ja tas ir norādītās neto grupas uzņēmēja loceklis. Tīkla grupas spēles neatbalsta dēmonu procesu nosaukumus vai klienta lietotāju vārdus.

Formas "nnnn / mmmm" izteiksme tiek interpretēta kā "net / maska" pāra. IPv4 uzņēmējas adrese ir saskaņota, ja "net" ir vienāda ar bitwise AND adresi un masku. Piemēram, tīkla / maska ​​modelis `131.155.72.0/255.255.254.0 'atbilst katrai adresei diapazonā' 131.155.72.0 ', izmantojot' 131.155.73.255 '.

Formas "[n: n: n: n: n: n: n: n] / m" izteiksme tiek interpretēta kā "[net] / prefixlen" pāra poga. IPv6 uzņēmējas adrese tiek saskaņota, ja "prefixlen" biti no "net" ir vienādi ar adreses "prefixlen" bitiem. Piemēram, [net] / prefixlen raksts `[3ffe: 505: 2: 1 ::] / 64 'atbilst visām adresēm diapazonā' 3ffe: 505: 2: 1 :: ', izmantojot" 3ffe: 505: 2: 1: ffff: ffff: ffff: ffff '.

Virkne, kas sākas ar `/ 'rakstzīmi, tiek uzskatīta par faila nosaukumu . Mītnes nosaukums vai adrese ir saskaņota, ja tas atbilst jebkuram resursdatora nosaukumam vai adreses veidam, kas norādīts nosauktajā failā. Faila formāts ir nulle vai vairāk līniju ar nulli vai vairāk resursdatora nosaukumu vai adreses modeļus, kurus atdala atstarpes. Faila nosaukuma modeli var izmantot jebkurā vietā, kur var izmantot resursdatora nosaukumu vai adreses modeli.

Aizstājējzīmes * un `? ' var izmantot, lai saskaņotu resursdatora nosaukumus vai IP adreses . Šo saskaņošanas metodi nevar izmantot kopā ar "neto / maska" saskaņošanu, hostname atbilstību sākas ar "." vai IP adreses atbilstība beidzas ar `. '.

WILDCARDS

Piekļuves kontroles valoda atbalsta nepārprotamas aizstājējzīmes:

VISI

Universālā aizstājējzīme vienmēr atbilst.

LOCAL

Atbilst jebkuram uzņēmējam, kura vārds nesatur punktzīmi.

Nezinu

Atbilst jebkuram lietotājam, kura vārds nav zināms, un atbilst jebkurai uzņēmējai, kuras nosaukums vai adrese nav zināma. Šis modelis jālieto uzmanīgi: pagaidu vārda servera problēmu dēļ mītnes vārdi var nebūt pieejami. Tīkla adrese nebūs pieejama, ja programmatūra nevar noskaidrot, ar kāda veida tīklu tā runā.

ZINĀM

Atbilst jebkuram lietotājam, kura vārds ir zināms, un atbilst jebkurai uzņēmējai, kuras nosaukums un adrese ir zināmi. Šis modelis jālieto uzmanīgi: pagaidu vārda servera problēmu dēļ mītnes vārdi var nebūt pieejami. Tīkla adrese nebūs pieejama, ja programmatūra nevar noskaidrot, ar kāda veida tīklu tā runā.

PARANOID

Atbilst jebkurai uzņēmējai, kuras nosaukums neatbilst tās adresei. Kad tcpd ir veidots ar -DPARANOID (noklusējuma režīms), tas liek pieprasījumus no šiem klientiem, pat pirms piekļūšanas kontroles tabulām. Veidojiet bez -DPARANOID, ja vēlaties vairāk kontrolēt šādus pieprasījumus.

OPERATORI

IZŅEMOT

Paredzētais lietojums ir šāda: `list_1 EXCEPT list_2 '; šis konstrukts atbilst jebko, kas atbilst sarakstam_1, ja vien tas neatbilst sarakstam_2 . EXCEPT operatoru var izmantot daemon_lists un client_lists. EXCEPT operators var būt ligzdots: ja kontroles valoda ļautu izmantot iekavās, "izņemot B EXCEPT c" varētu parsēt kā "(EXCEPT (b EXCEPt c))".

SHELL KOMANDI

Ja pirmajam saskaņotajam piekļuves kontroles noteikumam ir apvalka komanda, šī komanda tiek pakļauta% aizstāšanai (skatiet nākamo sadaļu). Rezultāts tiek izpildīts ar / bin / sh child procesu ar standarta ievadi, izvadi un kļūdu, kas saistīta ar / dev / null . Norādiet `& 'komandas beigās, ja nevēlaties gaidīt, līdz tā ir pabeigta.

Shell komandām nevajadzētu paļauties uz inetd iestatījumu PATH. Tā vietā viņiem jāizmanto absolūti ceļu nosaukumi, vai arī tiem vajadzētu sākt ar skaidru PATH = jebkura veida paziņojumu.

Dokumentā hosts_options (5) aprakstīta alternatīva valoda, kas izmanto čaulas komandu lauku citā un nesavienojamā veidā.

% EXPANSIONS

Pamata komandās ir pieejamas šādas paplašinājumi:

% a (% A)

Klienta (servera) resursdatora adrese.

% c

Klienta informācija: lietotājs @ uzņēmēja, lietotāja @ adrese, resursdatora nosaukums vai tikai adrese, atkarībā no tā, cik daudz informācijas ir pieejama.

% d

Dēmona procesa nosaukums (argv [0] vērtība).

% h (% H)

Klienta (servera) resursdatora nosaukums vai adrese, ja resursdatora nosaukums nav pieejams.

% n (% N)

Klienta (servera) resursdatora nosaukums (vai "nezināms" vai "paranoid").

% p

Dēmona procesa ID.

% s

Servera informācija: daemon @ host, daemon @ adrese vai tikai dēmonu nosaukums, atkarībā no tā, cik daudz informācijas ir pieejama.

% u

Klienta lietotāja vārds (vai "nezināms").

%%

Paplašina uz vienu simbolu "%".

Simboli% paplašinājumos, kas var sajaukt apvalku, tiek aizstāti ar pasvītrojumiem.

SERVERA PĀRBAUDES MODEĻI

Lai atšķirtu klientus pēc tīkla adreses, ar kuru viņi izveidojuši savienojumu, izmantojiet veidlapas modeļus:

process_name @ host_pattern: client_list ...

Šos modeļus var izmantot, ja iekārtai ir atšķirīgas interneta adreses ar dažādiem interneta resursiem. Pakalpojumu sniedzēji var izmantot šo iespēju, lai piedāvātu FTP, GOPHER vai WWW arhīvus ar interneta nosaukumiem, kas var pat piederēt dažādām organizācijām. Skatiet arī variantu "vērpjot" hosts_options (5) dokumentā. Dažās sistēmās (Solaris, FreeBSD) vienā fiziskajā saskarnē var būt vairāk nekā viena interneta adrese; ar citām sistēmām jums var nākties izmantot SLIP vai PPP pseido saskarnes, kas dzīvo īpašā tīkla adreses telpā.

Host_pattern izpilda tādus pašus sintakses noteikumus kā resursdatoru nosaukumi un adreses klientu_list kontekstā. Parasti servera parametru informācija ir pieejama tikai ar pieslēgumu orientētiem pakalpojumiem.

KLIENTA USERNAME LOOKUP

Ja klienta mītne atbalsta RFC 931 protokolu vai vienu no tā pēcnācējiem (TAP, IDENT, RFC 1413), iesaiņojuma programmas var iegūt papildu informāciju par savienojuma īpašnieku. Klienta lietotājvārdu informācija, ja tā ir pieejama, tiek reģistrēta kopā ar klienta resursdatora nosaukumu, un to var izmantot, lai saskaņotu tādus modeļus kā:

daemon_list: ... user_pattern @ host_pattern ...

Dellen apvalkus var konfigurēt sastādīšanas laikā, lai veiktu ar noteikumiem saistītu lietotājvārdu meklēšanu (pēc noklusējuma) vai vienmēr uzzinātu klienta saimniekdatoru. Attiecībā uz noteiktiem lietotāja vārdiem, iepriekšminētais noteikums var izraisīt lietotājvārdu meklēšanu tikai tad, ja atbilst gan daemon_list, gan host_pattern .

Lietotāja modelim ir tāds pats sinhronais kā dēmona procesa modelis, tādēļ tiek izmantoti tie paši aizstājējzīmes (dalība grupās netiek atbalstīta). Neskatoties uz lietotājvārdu meklēšanu, to nevajadzētu uztvert.

Klienta lietotājvārdu informāciju nevar uzticēt, kad tas visvairāk nepieciešams, ti, kad klienta sistēma ir apdraudēta. Parasti ALL un (UN) KNOWN ir vienīgais lietotājvārdu modelis, kas ir jēga.

Lietotājvārdu meklējumi ir iespējami tikai ar TCP balstītiem pakalpojumiem un tikai tad, ja klienta uzņēmējai ir piemērots dēmons; visos citos gadījumos rezultāts ir "nezināms".

Labi pazīstama UNIX kodola kļūda var izraisīt pakalpojuma zaudēšanu, ja ugunsmūri bloķē lietotājvārdu meklēšanu. Iesaiņojuma README dokuments raksturo procedūru, lai noskaidrotu, vai jūsu kodolam ir šī kļūda.

Lietotāja vārdu meklēšana var radīt ievērojamu kavēšanos lietotājiem, kas nav UNIX lietotāji. Noklusējuma lietotājvārdu meklēšanas ilgums ir 10 sekundes: pārāk īss, lai tiktu galā ar lēniem tīkliem, bet pietiekami ilgi, lai kairinātu datoru lietotājus.

Izvēles lietotājvārdu meklēšana var mazināt pēdējo problēmu. Piemēram, šāds noteikums:


daemon_list: @ pcnetgroup ALL @ ALL

varētu saskaņot pc netgroup dalībniekus, neveicot lietotājvārdu meklēšanu, bet veicot lietotājvārdu meklēšanu ar visām citām sistēmām.

ATRAŠANĀS ADRESU PĀRKĀPŠANAS ATTACKĒŠANA

Daudzu TCP / IP implementāciju kārtas numuru ģeneratora trūkums ļauj iebrucējiem viegli uzdāvināt uzticamos saimniekus un izlauzties, izmantojot, piemēram, attālināto apvalku pakalpojumu. Pakalpojumu IDENT (RFC931 utt.) Pakalpojumu var izmantot, lai noteiktu šādu un citu uzņēmēja adreses spoofing uzbrukumus.

Pirms klienta pieprasījuma pieņemšanas pakas var izmantot IDENT pakalpojumu, lai noskaidrotu, ka klients vispār nav nosūtījis pieprasījumu. Ja klienta uzņēmēja nodrošina IDENT pakalpojumu, negatīvais IDENT meklēšanas rezultāts (klients atbilst `UNKNOWN @ host ') ir spēcīgs pierādījums tam, ka uzņēmējs spoofing uzbrukums.

Pozitīvs IDENT meklēšanas rezultāts (klients atbilst "KNOWN @ host") ir mazāk uzticams. Ieslodzītais var sabojāt gan klienta savienojumu, gan IDENT uzmeklēšanu, lai gan tas ir daudz sarežģītāks nekā spoofing tikai klienta savienojums. Iespējams, ka atrodas arī klienta IDENT serveris.

Piezīme. IDENT meklēšana nedarbojas ar UDP pakalpojumiem.

PIEMĒRI

Valoda ir pietiekami elastīga, lai dažāda veida piekļuves kontroles politiku varētu izteikt ar minimālu satraukumu. Lai gan valoda izmanto divas piekļuves kontroles tabulas, visbiežāk sastopamās politikas var īstenot, ja viena no tabulām ir niecīga vai pat tukša.

Lasot tālāk minētos piemērus, ir svarīgi apzināties, ka atļautā tabula tiek skenēta pirms nolieguma tabulas, ka meklēšana tiek pārtraukta, kad tiek atrasta atbilstība, un šī piekļuve tiek piešķirta, ja vispār netiek atrasta atbilstība.

Piemēri izmanto saimniekdatora un domēna vārdus. Tos var uzlabot, iekļaujot adreses un / vai tīkla / tīkla mask informāciju, lai samazinātu pagaidu vārda servera meklēšanas kļūmju ietekmi.

Visbiežāk slēgts

Šajā gadījumā pēc noklusējuma piekļuve tiek liegta. Ir atļauta piekļuve tikai skaidri atļautiem saimniekiem.

Noklusējuma politika (nav piekļuves) tiek ieviesta ar trivial deny failu:

/etc/hosts.deny: ALL: ALL

Tas liedz visiem pakalpojumiem visiem saimniekiem, ja vien tiem nav atļauta piekļuve ierakstiem atļautajā failā.

Skaidri autorizētie saimnieki ir uzskaitīti atļaušanas failā. Piemēram:

/etc/hosts.allow: ALL: LOCAL @ some_netgroup
ALL: .foobar.edu IZŅEMOT terminalserver.foobar.edu

Pirmais noteikums atļauj piekļuvi no saimniekiem vietējā domēnā (nē `. 'Resursdatora nosaukumā) un no tīkla some_netgroup dalībniekiem. Otrais noteikums ļauj piekļūt no visiem hostiem foobar.edu domēnā (ievērojiet galveno punktu), izņemot terminalserver.foobar.edu .

Visbiežāk atvērts

Šeit piekļuve tiek piešķirta pēc noklusējuma; tikai skaidri norādītie saimnieki tiek noraidīti pakalpojumā.

Noklusējuma politika (piešķirta piekļuve) padara atļauto failu lieku, lai to varētu izlaist. Neapstiprinātos saimniekdatoros ir norādīti noliedzošajā failā. Piemēram:

/etc/hosts.deny: ALL: some.host.name, .some.domain
VISI, IZŅEMOT in.fingerd: other.host.name, .other.domain

Pirmais noteikums noraida dažus saimniekus un domēnus visiem pakalpojumiem; otrais noteikums joprojām atļauj pirkstu pieprasījumus no citiem saimniekiem un domēniem.

BOOBY TRAPS

Nākamais piemērs ļauj tftp pieprasījumus no saimniekiem vietējā domēnā (pamanīt galveno punktu). Lūgumi no jebkura cita saimnieka tiek liegti. Pieprasītā faila vietā pirkstu zonde tiek nosūtīta uz pārkāpušo uzņēmēju. Rezultāts tiek nosūtīts administratoram.

/etc/hosts.allow:

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

Safe_finger komandai ir tcpd iesaiņojums, un tā jāuzstāda piemērotā vietā. Tas ierobežo iespējamo bojājumu no attālināta pirksta servera nosūtītajiem datiem. Tas nodrošina labāku aizsardzību nekā standarta pirksta komanda.

% H (klienta saimniekdatora) un% d (pakalpojuma nosaukums) secību paplašināšana ir aprakstīta čaulas komandu sadaļā.

Brīdinājums: nepakļaujiet pirkstu dēmonu, ja vien neesat gatavs bezgalīgu pirkstu cilpām.

Uz tīkla ugunsmūra sistēmām šo triku var pārnest vēl tālāk. Tipiskais tīkla ugunsmūris nodrošina ierobežotu pakalpojumu klāstu ārējai pasaulei. Visi pārējie pakalpojumi var tikt bugged tāpat kā iepriekš tftp piemērs. Rezultāts ir lieliska agrīnās brīdināšanas sistēma.

SKATĪT ARĪ

tcpd (8) tcp / ip daemon iesaiņojuma programma. tcpdchk (8), tcpdmatch (8), testa programmas.

Svarīgi: izmantojiet vīriešu komandu ( % man ), lai redzētu, kā komanda tiek izmantota jūsu konkrētajā datorā.