Hosts.deny - Linux Command - Unix Command

NUMM

hosts_access - Format vun den Host-Access Control-Dateien

DESCRIPTION

Dës Handbuch Säit beschreift eng einfach Access Sproochkontrollstëmmung, déi op Client (Hostname / Adress, Usernumm) baséiert an Server (Prozessname, Hostname / Adress) Muster. Beispiller ginn am Ende. Den ongedëlleger Lieser gëtt ugebueden fir d'Beispiller Deel fir eng séier Introduktioun ze probéieren.

Eng verlängerter Versioun vun der Zougangssprooch ass an de Host_optiounen (5) Dokument beschriwwe ginn. Déi Erweiderunge ginn um Programm Zäit entwéckelt andeems Dir mat -DROPCESS_OPTIONS gebaut gouf.

Am Text kënnt Daemon den Prozessname vun engem Netzwierkdämonprozess , an de Client ass den Numm an / oder d'Adress vun engem Host Requesting Service. Netzwierk Daemon Prozessennamen ginn an der Konfiguratiounsdatei configuréiert.

ACCESS CONTROL FILES

D'Zougangssteuerungssoftware consults two files . D'Sich hält am éischte Match:

*

Den Zougang gëtt gewährt wann ee (Daemon, Client) Paar eng Eruewerung an der /etc/hosts.allow Datei gëtt.

*

Sinn den Zouganksdeel verweigert wann e ( Daemon , Client) Paar eng Eruewerung an der /etc/hosts.deny entsprécht .

*

Säin Zougank gëtt gewährt.

Eng net existéierende Zougangscontrolldatei gëtt behandelt wéi wann et e leere Fichier wier. Dofir ass Zougangskontroll kann ausgeschalt ginn, wann et keen Zougangsdateie gëtt.

ACCESS CONTROL RULES

All Zougangsdatei besteet aus Null oder méi Zeilen vun Text. Dës Linnen ginn an d'Uerdnung vum Erscheinungsbild veraarbecht. D'Sich terminéiert wann e Match fonnt gëtt.

*

E Newline Charakter gëtt ignoréiert wann e virun engem Backslash Charakter steet. Dëst erlaabt Iech, laang Zeilen ze bremsen, fir datt se méi einfach änneren.

*

Blank Zeilen oder Linnen, déi mat engem Zeechner # # beginn, ginn ignoréiert. Dëst erlaabt Iech d'Kommentaren an d'Whitespace ze maachen, fir datt d'Dëscher méi einfach maachen ze liesen.

*

All aner Linnen solle folgend Format benotzen, Saachen tëscht [] ass fakultativ:


daemon_list: client_list [: shell_command]

Daemon_ Lëscht ass eng Lëscht vun engem oder méi Daemon Prozessnamen (Argv [0] Wäerter) oder Wildcards (kuckt hei ënnendrënner).

Client_list ass eng Lëscht mat engem oder méi Hostnamen, Hostadressen , Mustern oder Wildcards (kuckt hei ënnendrënner), déi mat dem Clientnumm oder der Adress geschéckt ginn.

Déi méi komplex Formen Dämon @ Host an User @ Host ginn an de Sektioune vum Server Endpoint Muster erklärt an op Clientnennung Lookups respektiv.

Lëscht Elementer sollen duerch Rigel a / oder Kommanden ofgeschloss ginn.

Mat Ausnahm vun NIS (YP) Netgroup Lookups, sinn all Kontrastkontrollkonten ka Fall onbestänneg.

PATTERNS

D'Zutrittskontrollesprooch setzt déi folgend Mustere:

*

Eng String, déi mat engem `` beginnt. Charakter. E Providernumm gëtt matdeelen, wann déi lescht Komponentë vum Numm nom spezifizéierte Muster passen. Zum Beispill, dem Muster `.tue.nl 'mat dem Host-Numm` wzv.win.tue.nl'.

*

Eng String, déi mat engem `` endet. Charakter. Eng Hostadress gëtt mat ugepasst, wann hir éischt numeresch Felder mat der gejoger Saach passen. Zum Beispill, dem Muster `131.155. ' mat der Adress vun (bal) all Hoster op dem Eindhoven Universitéit Netzwierk (131.155.xx).

*

Eng String, déi mat engem @ @ Zeechner ufänkt, gëtt als NIS (fréieren YP) Netgroup Numm behandelt. En Hostname gëtt matdeelen, wann et e Hoster vun der spezifizéierter Netgroup ass. Netgroup Mätscher ginn net fir Daemon Prozessnamen oder fir Clientnummennamen ënnerstëtzt.

*

En Ausdrock vun der Form 'nnnn / mmmm' gëtt als "Net / Maske" Paart interpretéiert. Eng IPv4-Hostadress gëtt mat ugepasst, wann `net 'ass gläich wéi d'Béckwäerter AND vun der Adress an der` Maske'. Zum Beispill entsprécht d'Net / Masken-Muster `131.155.72.0/255.255.254.0 'mat all Adresse am Bereich` 131.155.72.0' bis `131.155.73.255 '.

*

En Ausdrock vun der Form '[n: n: n: n: n: n: n: n] / m' gëtt als '[net] / prefixlen' Paar interpretéiert. Eng IPv6-Hostadress gëtt mat ugepasst wann `prefixlen 'Bits vun' net 'ass mat den` prefixlen' Bits vun der Adress. Zum Beispill benotzt d'[net] / prefixlen Muster `[3ffe: 505: 2: 1 ::] / 64 'mat allen Adressen am Beräich" 3ffe: 505: 2: 1 ::' bis `3ffe: 505: 2: 1: ffff: ffff: ffff: ffff '.

*

E String, deen mat engem Zeeche / / Zeechner ufänkt, gëtt als Dateinumm behandelt. E Hostnam oder Adress gëtt matdeelen, wann et mat engem Hostnam oder Adressmuster mat der neier Datei bezeechent gëtt. De Fichierformat ass Null oder méi Zeilen mat Null oder méi Hostnamen oder Adressmuster, déi duerch Whitespace getrennt sinn. E Fichiernamesmuster kënnt iwwerall an engem Host Numm oder Adressmuster benotzt kënne benotzt ginn.

*

Wildcards `* 'an`?' kënne benotzt ginn fir Hostnumm oder IP Adress matdeelen. Dës Methode vum Matching kann net an Zesummenaarbecht mat `Net / Maske 'passen, Héichtnamen, déi mat dem Begruff` `. oder IP Adress déi mat ".

WILDCARDS

D'Zutrittskontroll Sprooch ënnerstëtzt explizit Platzhalter:

ALLEGUER

D'universell Wildcard, ëmmer erëm.

LOCAL

Trefft all Host, deem säin Numm keen Punkt Punkt enthält.

UNKNOWN

All Match Benotzer späichert deem säin Numm unbekannt ass a mat engem Host ass mat deem seng Numm oder Adress unbekannt sinn. Dëse Muster sollt mat Suergfalt benotzt ginn: D'Hostennamme kann net erreechbar sinn wéinst temporärer Server-Problematik. Eng Netzadress gëtt net erreecht wann d'Software net erausfanne kann wéi eng Zort Netzwierk et schwätzt.

BEKANNT

Mä jiddereen Benotzer deen iwwerall kennt, ass mat all de Benotzer geknappt an entsprécht all Host an deem Numm an Adress bekannt sinn. Dëse Muster sollt mat Suergfalt benotzt ginn: D'Hostennamme kann net erreechbar sinn wéinst temporärer Server-Problematik. Eng Netzadress gëtt net erreecht wann d'Software net erausfanne kann wéi eng Zort Netzwierk et schwätzt.

Paranoid

Trefft all Host deen säin Numm net mat senger Adress spillt. Wann tcpd gebaut gëtt mat -DPARANOID (Standardmodus) fällt Ufroen vun esou Clientn, souguer ier Dir d'Access Control-Tabellen kuckt. Build ouni -DPARANOID wann Dir méi Ufro méi Kontrollen wëllt.

OPERATORS

AUSSER

Ofgeschriwwe ginn ass vun der Form: `list_1 EXCEPT list_2 '; Dëst Konstrukt gëtt iwwer alles wat mat der Lëscht_1 passend ass, ausser et ass list_2 . De Betribsbetrib kann an daemon_lists an an client_lists benotzt ginn. De Betreiber AUSSER kann ugestréckt ginn: Wann d'Kontrollsprooch d'Verwuerderung vun Klammern erlaben, hätt e "AUSSEN B AUSSEN C" als "AUSSER B (b AUSSER C)" analyséiert.

SHELL COMMANDS

Wann d'éischt matgedeelt Zutrittskontroll Regel e Shell-Kommando enthält, gëtt dëse Kommando op% Ënnersetzungen subventionéiert (kuckt de nächste Abschnitt). De Resultat ass mat engem / bin / sh Kandprozedur mat Standardeingereechen, Ausgab an de Fehler mat / dev / null ugeschloss . Gitt eng `& 'am Enn vum Kommando fest, wann Dir net wart bis datt se ofgeschloss ass.

Shell Kommandë missten net op d'PATH-Einstellung vun der Inetd zougehalen ginn. Amplaz si se absolutt Weeër ze benotzen oder se mat engem explizit PATH = irgend eng Erklärung ze beginnen.

D' hosts_options (5) Dokument beschreift eng Alternativ Sprooch, déi de Shell-Kommando Feld an enger anerer an net kompatibel ass.

% EXPANSIONS

Déi folgend Expansioune sinn bannent de Shell Kommandoen:

% a (% A)

De Client (Server) Host Adress.

% c

Client Informatiounen: Benotzer @ Host, Benotzer @ Adress, e Hostnam oder nëmmen e Adress, jee no Fuerderen.

% d

Den Daemon-Prozessname (argv [0] value).

% h (% H)

De Client (Server) Host Numm oder Adress, wann de Provider net verfügbar ass.

% n (% N)

De Client (Server) Hostnumm (oder "onbekannt" oder "Paranoid").

% p

De Daemon Prozess id.

% s

Serverinformatioun: Daemon @ Host, Daemon @ Adress, oder nëmmen e Daemon-Numm, jee no Fuerderen.

% u

De Client Benotzer Numm (oder "onbekannt").

%%%

Erweidert op e puer "%" Charakter.

Charaktere vun% Expansioune déi d'Schuel verwiesselen kënnen ersaat duerch Ënnerscores.

SERVER ENDPOINT PATTERNS

Fir Cliente vun der Netzadress ze hunn, déi se matenee verbonne sinn, benotze Muster vun der Form:


process_name @ host_pattern: client_list ...

Muster wéi dës kënnen benotzt ginn, wann d'Maschinn aner Internet Adress mat verschiddenen Internet Hostnames huet. Service Providereuren kënnen dës Méiglechkeet fir FTP-, GOPHER- oder WWW-Archiven ze benotzen fir Internetnamen ze hunn, déi sogar zu verschiddenen Organisatiounen gehéieren. Kuckt och d'`twist 'Optioun an den Host'optiounen (5) Dokument. Verschidde Systemer (Solaris, FreeBSD) kënnen méi wéi eng Internetadress op enger physescher Interface hunn; mat anere Systemer déi Dir musst op SLIP oder PPP Pseudo-Interfaces opmaachen, déi an engem speziellen Netzwierk Adressraum wunnen.

De Host_pattern befollegt déiselwecht Syntaxreegele wéi Hostnimm a Adressen am Client_Lëscht Kontext. Normalerweis sinn Serverendpoint-Informatiounen nëmmen mat Verbindungsorientéierte Servicer verfügbar.

KLIENTEN BENOTZT IECH LOOKUP

Wann de Client-Host den RFC 931-Protokoll oder eng vun hiren Nokommen (TAP, IDENT, RFC 1413) ënnerstëtzt, kann d'Wrapperprogramm méi Informatiounen iwwer d'Besëtzer vun enger Verbindung eroflueden. Clientnutzungsinformatiounsinformatioun, wann et verfügbar ass, gëtt zesumme mam Clientnummennummel zougelooss a benotzt ka mat engem Muster matmaachen wéi:


daemon_list: ... user_pattern @ host_pattern ...

D'Daemon-Wrappers kënne bei der Compilatioun konfiguréiert sinn fir normaalt Regelen username lookups (Standard) ze maachen oder de Clientgeheem ëmmer auszeféieren. Am Fall vun regelrecht orientéiertem Username Lookups féiert d'obeweeg Regel normalerweis Noutwännegkeet nëmmen wann déi daemon_list an den Host_pattern mathuelen .

E Benotzerfrëndlechkeet huet déi selwecht Syntax als Dämonprozeßmuster, sou dass déi selwecht Wildcards zegutt hunn (netgroup Memberschaft gëtt net ënnerstëtzt). Et sollt net mat Usprochsupporten duerchgefouert ginn.

*

D'Clientnutzungsinformatioun kann net vertraut ginn, wann et am meeschten gebraucht gëtt, dh wann de Clientsystem kompromittéiert ass. Allgemeng, ALL an (UN) KNOWN sinn déi eenzeg Virnummmuster, déi Sënn maachen.

*

Username Lookups sinn nëmme mat TCP-baséiert Servicer méiglech, a nëmmen wann de Client-Host e passenden Daemon läuft; an all anere Fäll ass d'Resultat "onbekannt".

*

Een bekannte UNIX Kernelbug kann Verloscht vum Service verursaachen wann d'Usprechung vun der Benotzung vun engem Firewall blockéiert ass. De Wrapper README-Dokument beschreift eng Prozedur fir erauszefannen, ob Ären Kernel dësen Fichier huet.

*

Username Lookups kënnen zu erkennbaren Retard fir Net-UNIX Benotzer verursaachen. Den Default Timeout bei Username Lookups ass 10 Sekonnen: ze kuerz fir ze luesen Netzwierker ze manipuléieren, awer laang genuch fir PC Benotzer gereizt.

Selektive Benotzerne kuckt d'lescht Problem. Zum Beispill eng Regel wéi:


daemon_list: @pcnetgroup ALL @ ALL

géif Memberen vun der Net-Grupp vu PC net passen, ouni d'Usiichtenversécherung ze maachen, awer géifen E-Mail-Lookups mat all anere Systeme maachen.

DETZT ADRESS SPOOFING ATTACKS

E Feeler am Sequence Number Generator vu ville TCP / IP-Implementéierungen erméiglecht sech Eruewercher einfach Vertrauenshëllef anzekréien an ze briechen, wéi zB de Remote Shell-Service. Den IDENT (RFC931 etc.) Service kann benotzt ginn fir sou Saachen an aner Hostadressen Spottanfäegkeet ze detektéieren.

Ewei e Kandidat acceptéiert, kënnen d'Wackel d'IDENT-Service benotzen fir ze wëssen datt de Client net de Requête schécken huet. Wann de Client Provider IDENT-Service stellt, e negativ IDENT Lookup Resultat (de Client mat 'UNKNOWN @ Host') ass staark Beweis vun enger Hostespoutiounsattack.

Eng positiv IDENT Lookup Resultat (de Client mat "KNOWN @ Host") ass manner vertrauenswürdeg. Et ass méiglech datt eng Eruewerung fir d'Clientverbindung an d'IDENT Lookup ze verdeelen ass, obwuel et esou schwéier ass wéi am Spoiler nëmmen eng Clientverbindung. Et kann och sinn datt den IDENT-Server vum Client läit.

Bemierkung: IDENT Lookups schaffen net mat UDP Servicer.

Beispiller

D'Sprooch ass flexibel genuch, datt verschidden Zorte vun der Zutrittskontrollpolitik mat engem Minimum vu Mooss ausgedréckt ginn. Obwuel d'Sprooch zwee Zougangskontrolltabellen benotzt, kënne meeschtens déi gemeinsam Politiken mat engem vun den Dëscher agesat ginn, déi trivial oder souguer eidel sinn.

Wann Dir d'Beispiller ënnendrënner ofléisst, ass et wichteg fir ze realiséieren datt d'Tastuffestellung virun der Leerungstabelle gescannt gëtt, datt d'Sich ofgeschloss gëtt, wann e Match fonnt gëtt, an deen Zougang gëtt gewonnen, wann kee Match iwwerhaapt fonnt gëtt.

Beispiller benotzt Host a Domainnamen. Si kënne verbessert ginn andeems Adress- a / oder Netzwierk / Netmask-Informatiounen benotzt ginn, fir den Impakt vun temporäre Benotzernumm Net-Failure ze reduzéieren.

BEFROTENDT GESCHAFFT

An dësem Fall gëtt den Zougang gëtt standardiséiert. Nëmmen explizit autoriséiert Hosten erlaabt Zougang.

D'Standardpolitik (keen Zougang) gëtt mat enger trivial Versécherungsdatei implementéiert:

/etc/hosts.deny: ALL: ALL

Dat verneist all Service un all Hoster, wann se zougänglech zougänglech sinn duerch Eegeschaften an der Datei zegutt.

Déi explizit autoriséiert Hosten ginn an der Datei erlaabt. Zum Beispill:

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

Déi éischt Regel gitt Zougäng vun Hosten am lokalen Domain (nee `. 'Am Hostnam ) a vun Membere vun der Net_gruppe vun some_netgroup. Déi zweet Regel huet Zougang vun all de Spriecher am foobar.edu Domäik (kuckt de Lead Point), ausser de Terminalerver.foobar.edu .

MÉI OFEN

Hei gëtt den Zougang gëtt gewielt gëtt; nëmmen explizit geheescht Hoster ginn ofgeschloss.

D'Standardpolitik (Zougrëff ze hunn) léisst d'Datei erlaabt sinn datt se ewechgeholl gëtt. Déi explizit net autoriséiert Hosts ginn an der bestroft Datei notéiert. Zum Beispill:

/etc/hosts.deny: ALL: some.host.name, .some.domain
ALLEG AUSSER IN. Fingerd: other.host.name, .other.domain

Déi éischt Regel verneent verschidde Gäscht an Domainen all Servicer; Déi zweet Regel hält nach ëmmer Fanger wéi aner Hoster an Domänen.

BOOBY TRAPS

De nächste Beispill erméiglecht tftp Ufro vun Hosten am lokalen Domain (kuckt de Lead Point). D'Requête vun all anere Gastgeber verweigert ginn. Amplaz vun der gewënschter Datei gëtt eng Fanger-Sonde op de beleidegte Host geschéckt. D'Resultat ginn op den Superuser geschéckt.

/etc/hosts.allow:

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

De Befehl safe_finger kënnt mat der tcpd-wrapper a soll op engem gëeegente Plaz installéiert ginn. Et limitéiert Schued vu Daten, déi vum Fernfinger-Server geschéckt ginn. Et gëtt besser Schutz wéi de Standard Fanger Kommando.

D'Expansioun vum% h (Client Host) an% d (ServiceName) Sequenzen ass am Abschnitt iwwer Shell Kommandoen beschrieben.

Warnweis: Fänke däi Fanger Daemon net drop op, ausser Dir sidd fir onendlech Fanger Loops.

Op Netz Firewall Systeme kann dësen Trick esouguer weider ginn. Déi typesch Netz Firewall bitt nëmmen eng begrenzte Rei vu Servicer fir d'äussere Welt. All aner Servicer kënnen "bugged" genau wéi déi hei uewelt TFTP-Beispiller. D'Resultat ass en ausgezeechente Frühwarnsystem.

Wichteg: Benotzt de Mann Kommando ( % Mann ) fir ze kucken wéi e Kommando op Äre Computer benotzt.

Verbonnen Artikelen