Hosts.allow - Linux Command - Unix Command

NAAM

hosts_access - formaat van toegangsbeheer lêers vir die gasheer

BESKRYWING

Hierdie handleiding bladsy beskryf ' n eenvoudige toegangsbeheertaal wat gebaseer is op kliënt (gasheernaam / adres, gebruikersnaam) en bediener (proses naam, gasheer naam / adres) patrone. Voorbeelde word aan die einde gegee. Die ongeduldige leser word aangemoedig om na die EXAMPLES-afdeling te gaan vir 'n vinnige inleiding. ' N Uitgebreide weergawe van die toegangsbeheertaal word in die hosts_options (5) dokument beskryf. Die uitbreidings word aangeskakel tydens program-bou-tyd deur te bou met -DPROCESS_OPTIONS.

In die volgende teks is daemon die proses naam van 'n netwerk daemon proses , en kliënt is die naam en / of adres van 'n gasheer versoek diens. Netwerk daemon proses name word gespesifiseer in die inetd konfigurasie lêer.

TOEGANGSBEHEERLêers

Die toegangsbeheerprogrammatuur raadpleeg twee lêers . Die soektog stop by die eerste wedstryd.

Toegang sal verleen word wanneer 'n paar (daemon, kliënt) 'n item in die /etc/hosts.allow-lêer pas .

Andersins sal toegang geweier word wanneer 'n (daemon, kliënt) paar 'n item in die /etc/hosts.deny-lêer pas .

Andersins sal toegang verleen word.

'N Nie-bestaande toegangsbeheer lêer word behandel asof dit 'n leë lêer was. So kan toegangsbeheer afgeskakel word deur geen toegangsbeheer lêers te verskaf nie.

TOEGANGSBEHEERREëLS

Elke toegangsbeheer lêer bestaan ​​uit nul of meer reëls teks. Hierdie lyne word in volgorde van voorkoms verwerk. Die soektog eindig wanneer 'n wedstryd gevind word.

'N Nuwe karakter word geïgnoreer wanneer dit voorafgegaan word deur 'n terugslagkarakter. Dit laat jou toe om lang lyne op te breek sodat dit makliker is om te wysig.

Blanke lyne of lyne wat met 'n '#' karakter begin, word geïgnoreer. Dit laat jou toe om kommentaar en witspasie in te voeg sodat die tafels makliker om te lees.

Alle ander lyne moet voldoen aan die volgende formaat, dinge tussen [] opsioneel:

daemon_list: client_list [: shell_command]

daemon_list is 'n lys van een of meer daemon proses name (argv [0] waardes) of wildcards (sien hieronder).

client_list is 'n lys van een of meer gasheer name, gasheer adresse, patrone of wildcards (sien hieronder) wat ooreenstem met die kliënt se gasheernaam of -adres.

Die meer komplekse vorms daemon @ gasheer en gebruiker @ gasheer word in die afdelings oor bediener eindpuntpatrone en onderskeidelik op gebruikersnaamopnames van kliente verduidelik.

Lys elemente moet geskei word deur spasies en / of komma's.

Met die uitsondering van NIS (YP) netgroup-oproepe, is alle toegangsbeheerkontroles gevalleensensitief.

PATRONE

Die toegangsbeheertaal implementeer die volgende patrone:

'N Snaar wat begin met 'n `.' karakter. 'N Gasheernaam word ooreenstem as die laaste komponente van sy naam ooreenstem met die gespesifiseerde patroon. Byvoorbeeld, die patroon `.tue.nl 'pas by die gasheernaam` wzv.win.tue.nl'.

'N Snaar wat eindig met 'n `.' karakter. 'N Gasheeradres word ooreenstem as die eerste numeriese velde by die gegewe string pas. Byvoorbeeld, die patroon '131.155.' ooreenstem met die adres van (byna) elke gasheer op die Universiteit van Eindhoven (131.155.xx).

'N Snaar wat begin met 'n' @ 'karakter word behandel as 'n NIS (voorheen YP) netgroepnaam. 'N Gasheernaam word ooreenstem as dit 'n gasheer van die gespesifiseerde netgroep is. Netgroup-vuurhoutjies word nie ondersteun vir daemon-prosesname of vir gebruikersnaam van kliënte nie.

'N Uitdrukking van die vorm' nnnn / mmmm 'word as 'n' net / mask'-paar geïnterpreteer. 'N IPv4-gasheeradres word aangepas as `net' gelyk is aan die biswyse EN van die adres en die` masker '. Byvoorbeeld, die netto / maskerpatroon `131.155.72.0/255.255.254.0 'pas by elke adres in die reeks' 131.155.72.0 'tot' 131.155.73.255 '.

'N Uitdrukking van die vorm `[n: n: n: n: n: n] / m' word geïnterpreteer as 'n [net] / voorvoegselpaar. 'N IPv6-gasheeradres word ooreenstem as `voorvoegsel'-bisse van` net' gelyk is aan die `voorvoegsel'-bisse van die adres. Byvoorbeeld, die [net] / voorvoegselpatroon `[3ffe: 505: 2: 1 ::] / 64 'pas by elke adres in die reeks` 3ffe: 505: 2: 1 ::' through `3ffe: 505: 2: 1: ffff: ffff: ffff: ffff.

'N Snaar wat begin met 'n' / 'karakter word behandel as 'n lêernaam . 'N Gasheernaam of -adres word ooreenstem as dit ooreenstem met enige gasheernaam of adrespatroon wat in die genoemde lêer voorkom. Die lêerformaat is nul of meer lyne met nul of meer gasheernaam of adrespatrone geskei deur witruimte. 'N Lêernaampatroon kan gebruik word waarheen 'n gasheernaam of adrespatroon gebruik kan word.

Wildcards `* 'en`?' kan gebruik word om gasheername of IP-adresse te pas . Hierdie metode van ooreenstemming kan nie gebruik word in kombinasie met 'net / mask'-ooreenstem nie, die gasheernaam wat ooreenstem met'. ' of IP-adres wat ooreenstem met `. '.

wildcards

Die toegangsbeheertaal ondersteun eksplisiete wildkaarte:

ALMAL

Die universele wildkaart, kom altyd ooreen.

PLAASLIKE

Vergelyk enige gasheer wie se naam nie 'n puntkarakter bevat nie.

ONBEKEND

Vergelyk enige gebruiker wie se naam onbekend is, en pas by enige gasheer wie se naam of adres onbekend is. Hierdie patroon moet versigtig gebruik word: gasheername kan onbeskikbaar wees weens tydelike naam bediener probleme. 'N Netwerkadres sal nie beskikbaar wees as die programmatuur nie kan uitvind oor watter tipe netwerk dit praat nie.

bekend

Stem ooreen met enige gebruiker wie se naam bekend is, en pas by enige gasheer wie se naam en adres bekend is. Hierdie patroon moet versigtig gebruik word: gasheername kan onbeskikbaar wees weens tydelike naam bediener probleme. 'N Netwerkadres sal nie beskikbaar wees as die programmatuur nie kan uitvind oor watter tipe netwerk dit praat nie.

Paranoid

Vergelyk enige gasheer wie se naam nie ooreenstem met sy adres nie. Wanneer tcpd gebou is met -DPARANOID (verstekmodus), daal dit versoeke van sulke kliënte selfs voordat u na die toegangsbeheerstabelle kyk. Bou sonder -DPARANOID as jy meer beheer oor sulke versoeke wil hê.

OPERATORE

BEHALWE

Beoogde gebruik is van die vorm: `list_1 EXCEPT list_2 '; hierdie konstruk pas alles by wat lys_1 pas, tensy dit ooreenstem met lys_2 . Die EXCEPT-operateur kan in daemon_lists en in client_lists gebruik word. Die EXCEPT-operateur kan genesteer word: as die beheertaal die gebruik van hakies toelaat, sal 'n BEHALWE b, behalwe c ', ontleed as `(' N BEPERK (b BEHALWE C)) '.

SHELL COMMANDS

As die eerste-pas toegangsbeheerreël 'n dopopdrag bevat, word die bevel onderworpe aan% vervangings (sien volgende gedeelte). Die resultaat word uitgevoer deur 'n / bin / sh kind proses met standaard invoer, uitvoer en fout gekoppel aan / dev / null . Gee 'n `& 'aan die einde van die opdrag as jy nie wil wag totdat dit voltooi is nie.

Shell-opdragte moet nie staatmaak op die PATH-instelling van die inetd nie. In plaas daarvan moet hulle absolute padname gebruik, of hulle moet met 'n eksplisiete PATH = watter stelling ook al begin.

Die gids hosts_options (5) beskryf 'n alternatiewe taal wat die opdraggebied op 'n ander en onverenigbare manier gebruik.

% UITBREIDINGS

Die volgende uitbreidings is beskikbaar binne dop opdragte:

% a (% A)

Die kliënt (bediener) gasheer adres.

% c

Kliënt inligting: gebruiker @ gasheer, gebruiker @ adres, 'n gasheer naam, of net 'n adres, afhangende van hoeveel inligting beskikbaar is.

% d

Die daemon proses naam (argv [0] waarde).

% h (% H)

Die kliënt (bediener) gasheer naam of adres, indien die gasheer naam nie beskikbaar is nie.

% n (% N)

Die kliënt (bediener) gasheernaam (of "onbekend" of "paranoïes").

% p

Die daemon proses ID.

% s

Server inligting: daemon @ host, daemon @ address, of net 'n daemon naam, afhangende van hoeveel inligting beskikbaar is.

% u

Die kliënt gebruikersnaam (of "onbekend").

%%

Brei uit na 'n enkele `% 'karakter.

Karakters in% uitbreidings wat die dop kan verwar, word vervang deur onderstrepingstekens.

SERVER ENDPOINT PATTERNS

Om kliënte te onderskei deur die netwerkadres waaraan hulle gekoppel is, gebruik patrone van die vorm:

proses_naam @ host_pattern: client_list ...

Patrone soos hierdie kan gebruik word wanneer die masjien verskillende internetadresse met verskillende internet-hostname het. Diensverskaffers kan hierdie fasiliteit gebruik om FTP-, GOPHER- of WWW-argiewe aan te bied met internetname wat selfs aan verskillende organisasies behoort. Sien ook die opsie 'draai' in die hosts_options (5) dokument. Sommige stelsels (Solaris, FreeBSD) kan meer as een internetadres op een fisiese koppelvlak hê; Met ander stelsels moet jy dalk gebruik maak van SLIP- of PPP-pseudo-koppelvlakke wat in 'n toegewyde netwerkadresruimte woon.

Die host_pattern gehoorsaam dieselfde sintaksisreëls as gasheername en adresse in client_list konteks. Gewoonlik is bediener eindpunt inligting slegs beskikbaar met verbindingsgerigte dienste.

KLIËNTE USERNAME LOOKUP

Wanneer die kliënt gasheer die RFC 931-protokol of een van sy nasate (TAP, IDENT, RFC 1413) ondersteun, kan die wrapper programme addisionele inligting oor die eienaar van 'n verbinding kry. Kliënt gebruikersnaam inligting, wanneer beskikbaar, word saam met die kliënt se gasheernaam aangemeld, en kan gebruik word om patrone soos:

daemon_list: ... user_pattern @ host_pattern ...

Die daemon wrappers kan op kompileer tyd gekonfigureer word om reëlgedrewe gebruikersnaamopnames (standaard) uit te voer of om die kliënt se gasheer altyd te verneem. In die geval van reëlgedrewe gebruikersnaamopnames, sal die bogenoemde reël slegs gebruikersnaamopzoeking veroorsaak as beide die daemon_list en die host_pattern ooreenstem.

'N Gebruikerspatroon het dieselfde sintaksis as 'n daemon-prosespatroon, dus dieselfde wildcards is van toepassing (netgroup-lidmaatskap word nie ondersteun nie). 'N Mens moet egter nie met gebruikersnaamopnames weggevoer word nie.

Die gebruikersnaam van die kliënt kan nie vertrou word wanneer dit nodig is nie, dit wil sê wanneer die kliëntsisteem in gevaar gestel is. Oor die algemeen is ALLE en (VN) BEKEND die enigste gebruikersnaampatrone wat sin maak.

Gebruikersnaam-navrae is slegs moontlik met TCP-gebaseerde dienste, en slegs wanneer die kliënt se gasheer 'n geskikte daemon uitvoer. In alle ander gevalle is die resultaat onbekend.

'N Bekende UNIX-kernfout kan diensverlies veroorsaak as gebruikersnaamopnames deur 'n firewall geblokkeer word. Die wikkel README-dokument beskryf 'n prosedure om uit te vind of jou kern hierdie fout het.

Gebruikersnaamopnames kan merkbare vertragings vir nie-UNIX-gebruikers veroorsaak. Die standaard time-out vir gebruikersnaamopnames is 10 sekondes: te kort om stadige netwerke te hanteer, maar lank genoeg om PC-gebruikers te irriteer.

Selektiewe gebruikersnaamopnames kan die laaste probleem verlig. Byvoorbeeld, 'n reël soos:


daemon_list: @pcnetgroup ALL @ ALL

sou ooreenstem met lede van die rekenaar netgroep sonder gebruikersnaamopnames, maar sou gebruikersnaamopnames met alle ander stelsels gebruik.

DETECTING ADRES SPOOFING ATTACKS

'N fout in die volgorde genereerder van baie TCP / IP implementasies laat indringers maklik vertroude leërskare verpersoonlik en inbreek deur byvoorbeeld die remote shell-diens. Die IDENT (RFC931 ens.) Diens kan gebruik word om sulke en ander host-spoofing aanvalle op te spoor.

Voordat u 'n kliënt versoek aanvaar, kan die wrappers die IDENT-diens gebruik om uit te vind dat die kliënt glad nie die versoek gestuur het nie. Wanneer die kliënt se gasheer IDENT-diens lewer, is 'n negatiewe IDENT-opzoekresultaat (die kliënt se wedstryd 'UNKNOWN @ host') sterk bewys van 'n gasheerspoofing aanval.

'N Positiewe IDENT-opzoekresultaat (die kliënt pas by' BEKENDE @ gasheer ') is minder betroubaar. Dit is moontlik vir 'n indringer om beide die kliënt konneksie en die IDENT-opzoeking te spoof, alhoewel dit baie moeiliker is as om net 'n kliëntverbinding te spoof. Dit kan ook wees dat die kliënt se IDENT bediener lê.

Nota: IDENT-navrae werk nie met UDP-dienste nie.

VOORBEELDE

Die taal is buigsaam genoeg dat verskillende tipes toegangsbeheerbeleid uitgedruk kan word met 'n minimum van bohaai. Alhoewel die taal twee toegangsbeheerstabelle gebruik, kan die mees algemene beleide geïmplementeer word met een van die tabelle wat triviaal of selfs leeg is.

By die lees van die voorbeelde hieronder is dit belangrik om te besef dat die toelatings tabel voor die ontkenningstabel geskandeer word, dat die soektog beëindig word wanneer 'n wedstryd gevind word en dat toegang verleen word as daar glad nie 'n wedstryd gevind word nie.

Die voorbeelde gebruik gasheer- en domeinname. Hulle kan verbeter word deur adres- en / of netwerk- / netmaskerinligting in te sluit, om die impak van tydelike naaldbediener-opsoekfoute te verminder.

MEEST GESLUIT

In hierdie geval word toegang geweier by verstek. Slegs uitdruklik geautoriseerde hosts is toegelaat toegang.

Die standaardbeleid (geen toegang) word geïmplementeer met 'n triviale ontkenningslêer:

/etc/hosts.deny: ALL: ALL

Dit ontken alle diens aan alle gasheer, tensy hulle toegang toegelaat word deur inskrywings in die toelaatlêer.

Die eksplisiete gemagtigde leërs word in die toelaatlêer gelys. Byvoorbeeld:

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

Die eerste reël laat toegang van gashere in die plaaslike domein toe (nie `. 'In die gasheernaam nie) en van lede van die netgroep netgrootte groep. Die tweede reël verleen toegang van alle leërskare in die foobar.edu- domein (let op die voorste punt), met die uitsondering van terminalserver.foobar.edu .

Mees oop

Hier word toegang standaard verleen; Slegs eksplisiete gespesifiseerde gashere is geweierde diens.

Die verstekbeleid (toegang verleen) maak die toestaanlêer oortollig sodat dit weggelaat kan word. Die eksplisiete nie-gemagtigde leërskare word in die ontkenningslêer gelys. Byvoorbeeld:

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

Die eerste reël ontken sommige leërskare en domineer alle dienste; Die tweede reël laat nog steeds vinger versoeke van ander leërskare en domeine toe.

BOOBY TRAPS

Die volgende voorbeeld laat tftp versoeke van gashere in die plaaslike domein toe (let op die voorste punt). Versoeke van enige ander gasheer word geweier. In plaas van die aangevraagde lêer word 'n vinger sonde na die aanstootlike gasheer gestuur. Die resultaat word aan die supergebruiker gestuur.

/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 wortel) &

Die instruksies safe_finger kom met die tcpd wrapper en moet op 'n geskikte plek geïnstalleer word. Dit beperk moontlike skade aan data wat deur die eksterne vingerbediener gestuur word. Dit gee beter beskerming as die standaard vinger opdrag.

Die uitbreiding van die% h (kliënt gasheer) en% d (diensnaam) volgordes word in die afdeling oor skulpopdragte beskryf.

Waarskuwing: moenie jou vinger daemon booby-trap nie, tensy jy voorberei is vir oneindige vingerlusse.

Op die netwerk firewall stelsels kan hierdie truuk verder gedra word. Die tipiese netwerk firewall bied slegs 'n beperkte stel dienste aan die buitenste wêreld. Alle ander dienste kan net soos die bogenoemde TFTP-voorbeeld "bugged" word. Die resultaat is 'n uitstekende vroeë waarskuwingstelsel.

SIEN OOK

tcpd (8) tcp / ip daemon wrapper program. tcpdchk (8), tcpdmatch (8), toetsprogramme.

Belangrik: Gebruik die man opdrag ( % man ) om te sien hoe 'n opdrag op u rekenaar gebruik word.