Hosts.deny - Komanda Linux - Komanda Unix

NAME

hosts_access - format e dosjeve të kontrollit të qasjes në strehë

PËRSHKRIM

Kjo faqe manuale përshkruan një gjuhë të thjeshtë të kontrollit të qasjes që bazohet në klient (emri / adresa, emri i përdoruesit) dhe serveri (emri i procesit, emri i hostit / adresa). Shembujt jepen në fund. Lexuesi i paduruar inkurajohet të kalojë në seksionin EXAMPLES për një hyrje të shpejtë.

Një version i zgjeruar i gjuhës së kontrollit të qasjes përshkruhet në dokumentin hosts_options (5). Zgjerimet ndizen në kohën e ndërtimit të programit duke ndërtuar me -DPROCESS_OPTIONS.

Në tekstin e mëposhtëm, daemon është emri i procesit të një procesi daemon të rrjetit , dhe klienti është emri dhe / ose adresa e një shërbimi kërkues pritës. Emrat e proceseve të daemonit të rrjetit janë të specifikuara në skedarin e konfigurimit inetd.

FILES PËR KONTROLLIN E HYRJES

Programi i kontrollit të qasjes konsultohet me dy skedarë . Kërkimi ndalet në ndeshjen e parë:

*

Qasja do të jepet kur një çift (daemon, client) përputhet me një hyrje në skedarin /etc/hosts.allow .

*

Përndryshe, qasja do të mohohet kur një çift ( daemon , client) përputhet me një hyrje në skedarin /etc/hosts.deny .

*

Përndryshe, qasja do të jepet.

Një skedar jo-ekzistues i kontrollit të qasjes trajtohet sikur të ishte një skedar i zbrazët . Kështu, kontrolli i qasjes mund të fiket duke mos siguruar skedarë të kontrollit të qasjes.

RREGULLAT E KONTROLLIT TË HYRËS

Çdo skedar i kontrollit të qasjes përbëhet nga zero ose më shumë rreshta teksti. Këto linja përpunohen në mënyrë të dukshme. Kërkimi mbaron kur gjendet një ndeshje.

*

Karakteri i rreshtave injorohet kur ajo paraprihet nga një karakter kthyes. Kjo ju lejon të ndani linjat e gjata në mënyrë që ata të jenë më të lehtë për të redaktuar.

*

Linjat ose rreshtat e zbrazët që fillojnë me një karakter "#" shpërfillen. Kjo ju lejon të futni komente dhe hapësira të bardha në mënyrë që tabelat të jenë më të lehta për t'u lexuar.

*

Të gjitha linjat e tjera duhet të plotësojnë formatin e mëposhtëm, gjërat ndërmjet [] janë opsionale:


daemon_list: klienti_list [: shell_komand]

daemon_list është një listë e një ose më shumë emrave të proceseve daemon (vlerat argv [0]) ose wildcards (shih më poshtë).

klienti_list është një listë e një ose më shumë emrave të strehuesit , adresave të strehuesit, modeleve ose wildcards (shih më poshtë) që do të përputhen me emrin ose adresën e klientit të klientit.

Format më komplekse të daemon @ host dhe user @ host shpjegohen në seksionin e modeleve të skedarëve të endpoint serverit dhe në lookups të përdoruesve të klientëve.

Elementet e listës duhet të ndahen me boshllëqe dhe / ose me pika.

Me përjashtim të lookups NIS (YP) netgroup, të gjitha kontrollet e kontrollit të qasjes janë rast i pandjeshëm.

MODELET

Gjuha e kontrollit të qasjes zbaton modelet e mëposhtme:

*

Një varg që fillon me një. karakter. Emri i host përputhet nëse përbërësit e fundit të emrit të tij përputhen me modelin e specifikuar. Për shembull, modeli `.tue.nl 'përputhet me emrin e strehuesit` wzv.win.tue.nl'.

*

Një varg që përfundon me një `. ' karakter. Një adresë pritëse përputhet nëse fushat e para numerike përputhen me vargun e dhënë. Për shembull, modeli '131.155.' përputhet me adresën e (pothuajse) çdo host në rrjetin e Universitetit Eindhoven (131.155.xx).

*

Një varg që fillon me një karakter "@" trajtohet si një emër NIS (formerly YP) netgroup. Emri i host përputhet nëse është anëtar pritës i grupit të specifikuar. Ndeshjet e Netgroup nuk mbështeten për emrat e proceseve të daemonit ose për emrat e përdoruesve të klientëve.

*

Një shprehje e formës `nnnn / mmmm 'është interpretuar si një palë` net / mask'. Një adresë IPv4 host përputhet nëse `neto 'është e barabartë me AND bitwise të adresës dhe' maskë '. Për shembull, modeli neto / maskë `131.155.72.0/255.255.254.0 'përputhet me çdo adresë në rangun' 131.155.72.0 'përmes` 131.155.73.255'.

*

Një shprehje e formës [n: n] / m 'interpretohet si një palë `[net] / prefixlen'. Një adresë IPv6 host përputhet nëse copa `prefixlen 'të' neto 'është e barabartë me bitet` prefixlen' të adresës. Për shembull, modeli [neto] / prefixlen [3ffe: 505: 2: 1 ::] / 64 'përputhet me çdo adresë në rangun' 3ffe: 505: 2: 1 :: 'përmes `3ffe: 505: 2: 1: ffff: ffff: ffff: ffff '.

*

Një varg që fillon me një karakter `/ 'trajtohet si një emër skedari. Emri i hostit ose adresa përputhet nëse përputhet me ndonjë emër ose model adresash të listuar në skedarin e emëruar. Formati i skedarit është zero ose më shumë rreshta me zero ose më shumë emra të përdoruesit ose modelet e adresave të ndara nga hapësira e bardhë. Një model i emrit të skedarit mund të përdoret kudo që mund të përdoret emri i një hosti ose modeli i adresës.

*

Wildcards `* 'dhe`?' mund të përdoret për të përputhur hostnames ose IP adresa. Kjo metodë e përputhjes nuk mund të përdoret në lidhje me përputhjen "neto / maskë", hostname matching duke filluar me `. ' ose adresë IP që përputhet me ".".

wildcards

Gjuha e kontrollit të qasjes mbështet wildcards eksplicite:

ALL

Karakteristika universale, gjithmonë përputhet.

LOKAL

Përputhet me çdo mikpritës, emri i të cilit nuk përmban karakter dot.

UNKNOWN

Përputhet me çdo përdorues, emri i të cilit është i panjohur dhe përputhet me cilindo nga emri i të cilit nuk është i njohur ose adresa. Ky model duhet të përdoret me kujdes: emrat e host mund të mos jenë të disponueshëm për shkak të problemeve të përkohshme të serverit të emrit. Një adresë rrjeti do të jetë e padisponueshme kur softueri nuk mund të kuptojë se çfarë lloji të rrjetit me të cilin po flas.

njohur

Përputhet me çdo përdorues, emri i të cilit është i njohur dhe përputhet me çdo host, emri dhe adresa e të cilit njihen. Ky model duhet të përdoret me kujdes: emrat e host mund të mos jenë të disponueshëm për shkak të problemeve të përkohshme të serverit të emrit. Një adresë rrjeti do të jetë e padisponueshme kur softueri nuk mund të kuptojë se çfarë lloji të rrjetit me të cilin po flas.

paranojak

Përputhet me çdo host emri i të cilit nuk përputhet me adresën e tij. Kur tcpd është ndërtuar me -DPARANOID (modaliteti i parazgjedhur), ajo heq kërkesat nga klientë të tillë edhe para se të shikoni në tabelat e kontrollit të qasjes. Ndërtoni pa -DPARANOID kur doni më shumë kontroll mbi kërkesat e tilla.

OPERATORËT

PËRVEÇ

Përdorimi i planifikuar është i formës: `list_1 EXCEPT list_2 '; ky konstrukt përputhet me çdo gjë që përputhet me listën_1 përveç nëse përputhet me list_2 . Operatori EXCEPT mund të përdoret në listat e daemon dhe në listat e klientëve. Operatori EXCEPT mund të mbivendoset: nëse gjuha e kontrollit do të lejonte përdorimin e kllapave, 'a EXCEPT b EXCEPT c' do të analizohej si `(një EKCEPT (b EXCEPT c)) '.

SHENJES KOMANDAT

Nëse rregulli i kontrollit të qasjes së parë përputhet me një komandë shell, ky komandë i nënshtrohet zëvendësimeve% (shih seksionin tjetër). Rezultati është ekzekutuar nga një proces i fëmijës / bin / sh me hyrje standarde, dalje dhe gabime të lidhur me / dev / null . Specifikoni një `& 'në fund të komandës nëse nuk dëshironi të prisni derisa të keni përfunduar.

Komandat e Shell nuk duhet të mbështeten në vendosjen e PATH të inetd. Në vend të kësaj, ata duhet të përdorin emrat absolute të rrugës, ose duhet të fillojnë me një PATH të qartë: çfarëdo deklarate.

Dokumenti hosts_options (5) përshkruan një gjuhë alternative që përdor fushën e komandës shell në një mënyrë të ndryshme dhe të papajtueshme.

SHPENZIME

Zgjerimet e mëposhtme janë në dispozicion brenda komandave shell:

% a (% A)

Adresa e klientit (server).

% c

Informacioni i klientit: user @ host, user @ address, një emër host ose vetëm një adresë, varësisht se sa informacion është i disponueshëm.

% d

Emri i procesit daemon (vlera argv [0]).

% h (% H)

Emri klienti (server) ose adresa e strehuesit, nëse emri i mbajtësit nuk është i disponueshëm.

% n (% N)

Emri klienti (server) host (ose "i panjohur" ose "paranojak").

% p

Procesi i demokracisë id.

% s

Informacioni i serverit: daemon @ host, daemon @ adresa, ose vetëm një emër demoni, në varësi të asaj se sa informacion është i disponueshëm.

% u

Emri i përdoruesit të klientit (ose "i panjohur").

%%

Zgjeron në një karakter të vetëm '%'.

Figurë në% të zgjerimeve që mund të ngatërrojnë shell janë zëvendësuar me nënvizime.

SHËRBIMET PËRDORUESIT TË PËRDORIMIT

Me qëllim të dallimit të klientëve nga adresa e rrjetit me të cilën ata lidhen, përdorni modelet e formës:


process_name @ host_pattern: klienti_list ...

Modelet si këto mund të përdoren kur makina ka adresa të ndryshme në internet me emra të ndryshëm të rrjetit të internetit. Ofruesit e shërbimeve mund ta përdorin këtë strukturë për të ofruar arkiva FTP, GOPHER ose WWW me emra të internetit që mund t'i përkasin edhe organizatave të ndryshme. Shih gjithashtu opsionin `twist 'në dokumentin hosts_options (5). Disa sisteme (Solaris, FreeBSD) mund të kenë më shumë se një adresë interneti në një ndërfaqe fizike; me sisteme të tjera ju mund të keni nevojë të shfrytëzoni SLIP ose PPP pseudo interfaces që jetojnë në një hapësirë ​​të dedikuar të adresave të rrjetit.

Host_pattern respekton të njëjtat rregulla sintakse si emrat dhe adresat e strehuesit në kontekstin e client_list. Zakonisht, informacioni i skedarit të serverit është i disponueshëm vetëm me shërbime të lidhura me lidhje.

SHKARKIMI I USERNAME TË KLIENTIT

Kur klienti i klientit mbështet protokollin RFC 931 ose një prej pasardhësve të tij (TAP, IDENT, RFC 1413) programet e mbështjellësve mund të marrin informacion shtesë rreth pronarit të një lidhjeje. Informacioni mbi emrin e klientit, kur është në dispozicion, regjistrohet së bashku me emrin e klientit të klientit dhe mund të përdoret për të përputhur modelet si:


daemon_list: ... user_pattern @ host_pattern ...

Mbështetësit e daemonit mund të konfigurohen në kohëzgjatjen e përpilimit për të kryer kërkime të emrave të përdoruesve të drejtuara nga rregulli (default) ose për të marrë gjithmonë pyetjen e klientit të klientit. Në rastin e lookup- veemrave të përdoruesve të drejtuar nga sundimi, rregulli i mësipërm do të shkaktonte lookup përdoruesi vetëm kur të dyja daemon_list dhe host_pattern përputhen.

Një model përdoruesi ka të njëjtën sintaksë si një model i procesit daemon, kështu aplikohen të njëjtat shkronja të zeza (anëtarësia e rrjetit nuk mbështetet). Sidoqoftë, nuk duhet të ballafaqohemi me lookups për përdoruesit.

*

Informacioni i përdoruesit të klientit nuk mund të besohet kur nevojitet më shumë, dmth. Kur sistemi i klientit është komprometuar. Në përgjithësi, GJITHA dhe (UN) NJOHUR janë të vetmet modele të përdoruesit që kanë kuptim.

*

Kërkimet e emrave të përdoruesve janë të mundshme vetëm me shërbime të bazuara në TCP, dhe vetëm kur klienti i klientit drejton një demon; në të gjitha rastet e tjera rezultati është "i panjohur".

*

Një bug i kernelit i njohur UNIX mund të shkaktojë humbje të shërbimit kur lookup-et e përdoruesve të bllokohen nga një firewall. Dokumenti i mbështjellësit README përshkruan një procedurë për të gjetur nëse yt kernel ka këtë bug.

*

Lookups e përdoruesve mund të shkaktojnë vonesa të dukshme për përdoruesit jo-UNIX. Kohëzgjatja e parazgjedhur për kërkimet e përdoruesit është 10 sekonda: shumë e shkurtër për të përballuar rrjetet e ngadalta, por mjaft kohë për të irrituar përdoruesit e kompjuterave.

Lookups selektive përdoruesi mund të lehtësojë problemin e fundit. Për shembull, një rregull si:


daemon_list: @pcnetgroup ALL @ ALL

do të përputhen me anëtarët e netgroup pc pa bërë lookups emrin e përdoruesit, por do të kryejë lookups përdoruesit me të gjitha sistemet e tjera.

ZGJIDHJA E ADRESAVE NËNKUPTIMET E FUNDIT

Një gabim në gjeneratorin e numrit të rendit të shumë implementimeve TCP / IP lejon ndërhyrës që të lehtë të imitojnë hostë të besuar dhe të shpërthejnë, p.sh., shërbimin e largët shell. Shërbimi IDENT (RFC931 etj.) Mund të përdoret për të zbuluar sulme të tilla dhe të tjera të adresave të spoofingut.

Para se të pranoni një kërkesë të klientit, mbështjellësit mund të përdorin shërbimin IDENT për të gjetur se klienti nuk e ka dërguar kërkesën në të gjitha. Kur klienti i klientit ofron shërbim IDENT, një rezultat negativ i identifikimit IDENT (klienti përputhet me 'UNKNOWN @ host') është dëshmi e fortë e një sulmi të spoofing host.

Një rezultat pozitiv i gjetjes IDENT (klienti përputhet me `KNOWN @ host ') është më pak i besueshëm. Është e mundur që një ndërhyrës të mashtrojë si lidhjen e klientit ashtu edhe IDENT-in, megjithëse kjo është shumë më e vështirë se sa të lidhësh vetëm një lidhje me klientin. Mund të jetë gjithashtu që serveri i IDENT-it të klientit është duke gënjyer.

Shënim: Kërkimet IDENT nuk punojnë me shërbimet e UDP.

SHEMBUJ

Gjuha është mjaft fleksibël që lloje të ndryshme të politikës së kontrollit të qasjes mund të shprehen me një minimum zhurmash. Megjithëse gjuha përdor dy tabela të kontrollit të qasjes, politikat më të zakonshme mund të zbatohen me një nga tabelat që janë të parëndësishme ose madje të zbrazëta.

Kur lexoni shembujt më poshtë është e rëndësishme të kuptojmë që tabela e lejuar është skanuar përpara tabelës së refuzimit, që kërkimi përfundon kur gjendet një ndeshje dhe se qasja jepet kur nuk gjendet asnjë ndeshje.

Shembujt përdorin emrat e host dhe domain. Ato mund të përmirësohen duke përfshirë adresën dhe / ose rrjetin / rrjetin e maskave, për të zvogëluar ndikimin e dështimeve të përkohshme të kërkimit të serverit të emrit.

Mbyllur më së shumti

Në këtë rast, qasja mohohet me parazgjedhje. Vetëm hostët e lejuar eksplicitisht lejohen të hyjnë.

Politika e parazgjedhur (pa qasje) zbatohet me një skedar të parëndësishëm:

/etc/hosts.deny: ALL: ALL

Kjo e mohon të gjithë shërbimin për të gjithë ushtarët, përveç nëse atyre u lejohet hyrja me shënime në dosjen e lejuar.

Pritësit e autorizuar në mënyrë eksplicite janë të shënuara në skedarin e lejuar. Për shembull:

/etc/hosts.allow: ALL: LOKALE @some_netgroup
TË GJITHA: .foobar.edu EXCEPT terminalserver.foobar.edu

Rregulli i parë lejon hyrjen nga ushtarët në domenin lokal (nuk ka emrin `. 'Në emrin e hostit) dhe nga anëtarët e netgroupit some_netgroup. Rregulli i dytë lejon qasje nga të gjithë hostët në domenin foobar.edu (vini re pikën kryesore), me përjashtim të terminaleveerver.foobar.edu .

MËPARSHME E HAPUR

Këtu, qasja jepet me parazgjedhje; vetëm hostë të specifikuar në mënyrë eksplicite refuzohen shërbimi.

Politika e parazgjedhur (qasja e dhënë) e bën filein e lejuar të tepërt në mënyrë që të mund të hiqet. Prethuesit e paautorizuar janë të listuara në dosjen e refuzimit. Për shembull:

/etc/hosts.deny: ALL: some.host.name, .some.domain
TE GJITHE PERSONI ne.fingerd: other.host.name, .other.domain

Rregulli i parë mohon disa ushtrive dhe domeneve të gjitha shërbimet; rregulli i dytë ende lejon kërkesat e gishtave nga ushtarë dhe fusha të tjerë.

BOOBY TRAPS

Shembulli tjetër lejon kërkesat tftp nga ushtarët në domenin lokal (vini re pikën kryesore). Kërkesat nga çdo ushtri tjetër mohohen. Në vend të skedarit të kërkuar, një sondë gishti i dërgohet hostit ofendues. Rezultati është dërguar me postë në superuser.

/etc/hosts.allow:

in.tftpd: LOKALE, .my.domain /etc/hosts.deny: in.tftpd: ALL: spawn (/ disa / ku / sigurt_finger -l @% h | \ / usr / ucb / mail -s% d-% h root) &

Komanda safe_finger vjen me mbështjellësin tcpd dhe duhet të instalohet në një vend të përshtatshëm. Ai kufizon dëmet e mundshme nga të dhënat e dërguara nga serveri i gishtit të largët. Ai jep mbrojtje më të mirë se sa komanda standarde e gishtave.

Zgjerimi i sekuencave% h (host klienti) dhe% d (shërbimi) është përshkruar në seksionin mbi komandat shell.

Paralajmërim: mos e mbytni demonin e gishtit tuaj, nëse nuk jeni të përgatitur për sythe të pafundme të gishtërinjve.

Në sistemet e rrjetit firewall ky mashtrim mund të bartet edhe më tej. Mjedisi i rrjetit tipik të rrjetit ofron vetëm një sërë shërbimesh të kufizuara në botën e jashtme. Të gjitha shërbimet e tjera mund të "përgjohen" ashtu si shembulli i mësipërm tftp. Rezultati është një sistem i shkëlqyer paralajmërues i hershëm.

E rëndësishme: Përdorni komandën e njeriut ( % man ) për të parë se si përdoret një komandë në kompjuterin tuaj të veçantë.

Artikuj të ngjashëm