Hosts.deny - Linux Command - Unix Command

NAME

host_access - format ng mga file ng kontrol sa pag-access ng host

DESCRIPTION

Inilalarawan ng manu-manong pahina ang isang simpleng wika ng kontrol sa pag-access na batay sa client (pangalan ng host / address, pangalan ng user), at server (pangalan ng proseso, pangalan ng host / address) na mga pattern. Ang mga halimbawa ay ibinibigay sa dulo. Ang naiinip na mambabasa ay hinihikayat na lumaktaw sa seksyon ng EXAMPLES para sa isang mabilis na pagpapakilala.

Ang isang pinalawig na bersyon ng wika sa kontrol ng pag-access ay inilarawan sa hosts_options (5) na dokumento. Ang mga extension ay naka-on sa oras ng build ng programa sa pamamagitan ng pagbuo ng -DPROCESS_OPTIONS.

Sa sumusunod na teksto, ang daemon ay ang proseso ng pangalan ng proseso ng daemon ng network , at ang kliyente ay ang pangalan at / o address ng isang serbisyo sa paghiling ng host. Tinukoy ang mga pangalan ng proseso ng daemon ng network sa inetd configuration file.

I-access ang mga filter na FILES

Ang access control software ay kumunsulta sa dalawang mga file . Ang paghahanap ay hihinto sa unang tugma:

*

Ang access ay ibibigay kapag ang isang (daemon, client) na pares ay tumutugma sa isang entry sa /etc/hosts.allow na file.

*

Kung hindi, ang access ay tatanggihan kapag ang isang ( daemon , client) na pares ay tumutugma sa isang entry sa /etc/hosts.deny file.

*

Kung hindi, ang pag-access ay ibibigay.

Ang isang di-umiiral na file sa pag-access ng access ay itinuturing na kung ito ay isang walang laman na file. Kaya, ang access control ay maaaring i-off sa pamamagitan ng pagbibigay ng walang access control file .

ACCESS CONTROL RULES

Ang bawat kontrol ng file ng pag-access ay binubuo ng zero o higit pang mga linya ng teksto. Ang mga linyang ito ay naproseso ayon sa hitsura. Tinatapos ang paghahanap kapag natagpuan ang isang tugma.

*

Ang isang bagong linya ng character ay hindi pinansin kapag ito ay sinusundan ng isang backslash character. Pinahihintulutan ka nitong magbuwag ng mahabang linya upang mas madaling i-edit.

*

Ang mga blangkong linya o linya na nagsisimula sa isang `# 'na karakter ay binabalewala. Pinapahintulutan ka nitong magpasok ng mga komento at whitespace upang ang mga talahanayan ay mas madaling basahin.

*

Ang lahat ng iba pang mga linya ay dapat bigyang-kasiyahan ang sumusunod na format, ang mga bagay sa pagitan ng [] pagiging opsyonal:


daemon_list: client_list [: shell_command]

Ang daemon_list ay isang listahan ng isa o higit pang mga pangalan ng proseso ng daemon (argv [0] na mga halaga) o mga wildcard (tingnan sa ibaba).

Ang client_list ay isang listahan ng isa o higit pang mga pangalan ng host , mga address ng host, mga pattern o mga wildcard (tingnan sa ibaba) na tutugma sa pangalan o address ng host ng client.

Ang mas kumplikadong mga form na daemon @ host at user @ host ay ipinaliwanag sa mga seksyon sa mga pattern ng endpoint ng server at sa lookup ng client username, ayon sa pagkakabanggit.

Ang mga elemento ng listahan ay dapat na pinaghiwalay ng mga blangko at / o mga kuwit.

Maliban sa paghahanap ng NIS (YP) na netgroup, ang lahat ng tseke ng access control ay hindi sensitibo sa kaso.

PATTERNS

Ipinapatupad ng wikang kontrol ng access ang mga sumusunod na pattern:

*

Ang isang string na nagsisimula sa isang `. ' character. Ang isang pangalan ng host ay katugma kung ang mga huling bahagi ng pangalan nito ay tumutugma sa tinukoy na pattern. Halimbawa, ang pattern na `.tue.nl 'ay tumutugma sa pangalan ng host na` wzv.win.tue.nl'.

*

Ang isang string na nagtatapos sa isang `. ' character. Ang isang address ng host ay naitugma kung ang unang mga patlang ng numerong tumutugma sa ibinigay na string. Halimbawa, ang pattern `131.155. ' tumutugma sa address ng (halos) bawat host sa network ng Eindhoven University (131.155.xx).

*

Ang isang string na nagsisimula sa isang `@ 'na character ay itinuturing bilang isang NIS (dating YP) netgroup name. Ang pangalan ng host ay katugma kung ito ay isang miyembro ng host ng tinukoy na netgroup. Ang mga tugma sa netgroup ay hindi suportado para sa mga pangalan ng proseso ng demonyo o para sa mga pangalan ng kliyente ng gumagamit.

*

Ang pagpapahayag ng pormularyong `nnnn / mmmm 'ay binigyang-kahulugan bilang pares ng` net / mask'. Ang IPv4 host address ay katugma kung ang `net 'ay katumbas ng bitwise AT ng address at ng` mask'. Halimbawa, ang net / mask pattern na `131.155.72.0/255.255.254.0 'ay tumutugma sa bawat address sa hanay` 131.155.72.0' sa pamamagitan ng `131.155.73.255 '.

*

Ang isang pagpapahayag ng porma na `n: n: n] / m 'ay binibigyang kahulugan bilang pares ng` [net] / prefixlen'. Ang isang IPv6 host address ay katugma kung ang `prefixlen 'na mga bit ng` net' ay katumbas ng `prefixlen 'na mga bit ng address. Halimbawa, ang [net] / prefixlen pattern `[3ffe: 505: 2: 1 ::] / 64 'ay tumutugma sa bawat address sa range` 3ffe: 505: 2: 1 ::' sa `3ffe: 505: 2: 1: ffff: ffff: ffff: ffff '.

*

Ang isang string na nagsisimula sa isang `/ 'na character ay itinuturing bilang isang pangalan ng file. Ang pangalan ng host o address ay katugma kung tumutugma ito sa anumang pangalan ng host o pattern ng address na nakalista sa pinangalang file. Ang format ng file ay zero o higit pang mga linya na may zero o higit pang pangalan ng host o mga pattern ng address na pinaghihiwalay ng whitespace. Maaaring gamitin ang isang pattern ng pangalan ng file saanman magagamit ang isang pangalan ng host o pattern ng address.

*

Wildcards `* 'at`?' ay maaaring gamitin upang tumugma sa mga hostname o mga IP address. Ang paraan ng pagtutugma ay hindi maaaring gamitin kasabay ng pagtutugma ng `net / mask ', pagtutugma ng hostname na nagsisimula sa`.' o pagtutugma ng IP address na nagtatapos sa `. '.

WILDCARDS

Ang wika ng access control ay sumusuporta sa mga tahasang wildcard:

LAHAT

Ang unibersal na wildcard, laging tumutugma.

LOKAL

Tumutugma sa anumang host na ang pangalan ay hindi naglalaman ng isang tuldok na karakter.

Hindi kilala

Tumutugma sa anumang user na ang pangalan ay hindi kilala, at tumutugma sa anumang host na ang pangalan o address ay hindi kilala. Ang pattern na ito ay dapat gamitin nang may pag-aalaga: maaaring hindi magagamit ang mga pangalan ng host dahil sa mga pansamantalang mga problema sa server. Ang isang network address ay hindi magagamit kapag ang software ay hindi maaaring malaman kung anong uri ng network na ito ay pakikipag-usap sa.

Kilala

Tumutugma sa anumang gumagamit na ang pangalan ay kilala, at tumutugma sa anumang host na ang pangalan at address ay kilala. Ang pattern na ito ay dapat gamitin nang may pag-aalaga: maaaring hindi magagamit ang mga pangalan ng host dahil sa mga pansamantalang mga problema sa server. Ang isang network address ay hindi magagamit kapag ang software ay hindi maaaring malaman kung anong uri ng network na ito ay pakikipag-usap sa.

PARANOID

Tumutugma sa anumang host na ang pangalan ay hindi tumutugma sa address nito. Kapag ang tcpd ay binuo na may -DPARANOID (default na mode), ito ay bumaba ng mga kahilingan mula sa nasabing mga kliyente kahit na bago tumitingin sa mga control control table. Bumuo ng walang -DPARANOID kung nais mo ng mas maraming kontrol sa mga naturang kahilingan.

MGA OPERATORS

MALIBAN

Ang tinutukoy na paggamit ay ang form: `list_1 EXCEPT list_2 '; ang tanghaling ito ay tumutugma sa anumang bagay na tumutugma sa list_1 maliban kung tumutugma ito list_2 . Maaaring gamitin ang operator ng HALIG sa daemon_lists at sa client_lists. Ang operator ng HALIMBAWA ay maaaring ma-nested: kung ang wika ng control ay magpapahintulot sa paggamit ng mga panaklong, ang isang MALIBAN b EXCEPT c ay parse bilang `(isang MALIBAN (b EXCEPT c)) '.

SHELL COMMANDS

Kung ang unang-tugma na kontrol sa pamantayan sa pag-access ay naglalaman ng command shell, ang utos na ito ay ipapataw sa% substitutions (tingnan ang susunod na seksyon). Ang resulta ay naisakatuparan ng proseso ng bata / bin / sh na may karaniwang input, output at error na nakakonekta sa / dev / null . Tukuyin ang isang `at 'sa dulo ng utos kung ayaw mong maghintay hanggang makumpleto ito.

Ang mga command shell ay hindi dapat umasa sa setting ng PATH ng inetd. Sa halip, dapat nilang gamitin ang absolute na mga pangalan ng landas, o dapat magsimula sila sa isang tahasang PATH = anuman ang pahayag.

Ang host_options (5) na dokumento ay naglalarawan ng isang alternatibong wika na gumagamit ng shell command field sa ibang at hindi tugma na paraan.

% EXPANSIONS

Ang mga sumusunod na pagpapalawak ay magagamit sa loob ng mga command shell:

% a (% A)

Ang address ng kliyente (server).

% c

Ang impormasyon ng kliyente: user @ host, user @ address, isang host name, o isang address lamang, depende sa kung magkano ang impormasyon ay magagamit.

% d

Ang pangalan ng proseso ng demonyo (argv [0] na halaga).

% h (% H)

Ang pangalan ng host o server (server) o address, kung ang pangalan ng host ay hindi magagamit.

% n (% N)

Ang pangalan ng host ng server (server) (o "hindi kilala" o "paranoyd").

% p

Ang proseso ng demonyo id.

% s

Impormasyon ng server: daemon @ host, daemon @ address, o isang pangalan ng daemon, depende sa kung magkano ang impormasyon ay magagamit.

% u

Ang client user name (o "unknown").

%%

Lumalawak sa isang solong `% 'na karakter.

Ang mga character sa% expansions na maaaring malito ang shell ay pinalitan ng mga underscore.

MGA DATING TIPAN NG SERVER

Upang makilala ang mga kliyente sa pamamagitan ng address ng network na kinokonekta nila sa, gamitin ang mga pattern ng form:


process_name @ host_pattern: client_list ...

Maaaring gamitin ang mga pattern na tulad nito kapag ang makina ay may iba't ibang mga address sa internet na may iba't ibang mga hostname sa internet. Maaaring gamitin ng mga tagapagbigay ng serbisyo ang pasilidad na ito upang mag-alok ng mga archive ng FTP, GOPHER o WWW na may mga pangalan ng internet na maaaring maging bahagi ng iba't ibang mga organisasyon. Tingnan din ang opsyong `twist 'sa mga hosts_options (5) na dokumento. Ang ilang mga sistema (Solaris, FreeBSD) ay maaaring magkaroon ng higit sa isang internet address sa isang pisikal na interface; kasama ng iba pang mga sistema na maaaring kailanganin mong gamitin sa SLIP o PPP palsipikadong mga interface na nakatira sa isang dedikadong puwang sa address ng network.

Sinusunod ng host_pattern ang parehong mga panuntunan sa syntax bilang mga pangalan ng host at mga address sa client_list na konteksto. Karaniwan, ang impormasyon ng endpoint ng server ay magagamit lamang sa mga serbisyong nakatuon sa koneksyon.

CLIENT USERNAME LOOKUP

Kapag sinusuportahan ng host ng client ang protocol ng RFC 931 o isa sa mga kaapu nito (TAP, IDENT, RFC 1413) maaaring makuha ng mga programang pambalot ang karagdagang impormasyon tungkol sa may-ari ng koneksyon. Ang impormasyon ng username ng kliyente, kapag available, ay naka-log kasama ang pangalan ng host ng client, at maaaring magamit upang tumugma sa mga pattern tulad ng:


daemon_list: ... user_pattern @ host_pattern ...

Maaaring i-configure ang mga wrapper ng mga demonyo sa oras ng pag-compile upang maisagawa ang mga paghahanap ng username na hinimok ng panuntunan (default) o upang palaging tanungin ang client host. Sa kaso ng mga paghahanap ng username na hinimok ng panuntunan, ang tuntunin sa itaas ay magiging sanhi ng username lookup kapag parehong ang daemon_list at ang host_pattern na tugma.

Ang isang pattern ng user ay may parehong syntax bilang isang pattern ng proseso ng demonyo, kaya ang parehong mga wildcards ay nalalapat (hindi sinusuportahan ang pagiging miyembro ng netgroup). Bagaman hindi dapat dalhin ang isa sa mga naghahanap ng username, bagaman.

*

Ang impormasyon ng username ng client ay hindi mapagkakatiwalaan kapag ito ay kinakailangan ng karamihan, ibig sabihin kapag ang client system ay nakompromiso. Sa pangkalahatan, LAHAT at (UN) ang natukoy na mga pattern ng mga pangalan ng gumagamit na may katuturan.

*

Ang mga naghahanap ng username ay posible lamang sa mga serbisyo na nakabatay sa TCP, at kapag ang client host ay nagpapatakbo ng angkop na demonyo; sa lahat ng iba pang mga kaso ang resulta ay "hindi kilala".

*

Ang isang kilalang UNIX kernel bug ay maaaring maging sanhi ng pagkawala ng serbisyo kapag naghahanap ng username ay hinarangan ng isang firewall. Ang wrapper na README na dokumento ay naglalarawan ng isang pamamaraan upang malaman kung ang iyong kernel ay may ganitong bug.

*

Ang mga lookup ng user ay maaaring maging sanhi ng mga kapansin-pansin na pagkaantala para sa mga hindi gumagamit ng UNIX. Ang default na timeout para sa mga lookup ng username ay 10 segundo: masyadong maikli upang makayanan ang mabagal na mga network, ngunit sapat ang haba upang mapanghimok ang mga gumagamit ng PC.

Ang mga paghahanap ng selective username ay maaaring magpakalma sa huling problema. Halimbawa, isang panuntunan tulad ng:


daemon_list: @pcnetgroup LAHAT @ LAHAT

ay tumutugma sa mga miyembro ng pc netgroup nang hindi gumagawa ng mga lookup ng username, ngunit gagana ang mga lookup ng username sa lahat ng iba pang mga system.

Pagtatakda ng ADDRESS SPOOFING ATTACKS

Ang isang depekto sa sequence number generator ng maraming pagpapatupad ng TCP / IP ay nagbibigay-daan sa mga intruder na madaling magpanggap sa mga pinagkakatiwalaang host at upang masira sa pamamagitan ng, halimbawa, ang remote shell service. Ang IDENT (RFC931 atbp) na serbisyo ay maaaring magamit upang makita ang ganitong at iba pang host address na pag-atake ng pag-atake.

Bago tanggapin ang isang kahilingan ng kliyente, maaaring gamitin ng mga wrapper ang IDENT service upang malaman na ang client ay hindi nagpadala ng kahilingan sa lahat. Kapag ang client client ay nagbibigay ng serbisyo ng IDENT, ang negatibong resulta ng paghahanap ng IDENT (ang client ay tumutugma sa `UNKNOWN @ host ') ay malakas na katibayan ng host attack spoofing.

Ang resulta ng positibong ID ng paghahanap (ang client ay tumutugma sa `KNOWN @ host ') ay mas mababa mapagkakatiwalaan. Ito ay posible para sa isang nanghihimasok sa panggagaya pareho ang koneksyon ng client at ang IDENT lookup, bagaman ang paggawa nito ay mas mahirap kaysa sa spoofing lamang ng isang koneksyon sa client. Maaaring ito rin na ang server ng IDENT ng kliyente ay namamalagi.

Tandaan: Ang mga pagtingin sa IDENT ay hindi gumagana sa mga serbisyo ng UDP.

MGA HALIMBAWA

Ang wika ay sapat na kakayahang umangkop na ang iba't ibang uri ng patakaran sa kontrol ng access ay maaaring ipahayag na may pinakamababang pagkabagabag. Bagaman ang wika ay gumagamit ng dalawang mga talahanayan ng control ng access, ang mga karaniwang patakaran ay maaaring ipatupad sa isa sa mga talahanayan na walang halaga o kahit walang laman.

Kapag binabasa ang mga halimbawa sa ibaba mahalaga na mapagtanto na ang pahintulutang mesa ay na-scan bago ang tanggihan ang talahanayan, na tinatapos ang paghahanap kapag ang isang tugma ay natagpuan, at ang pag-access ay ipinagkakaloob kapag walang tugma ay natagpuan sa lahat.

Ang mga halimbawa ay gumagamit ng mga pangalan ng host at domain. Maaari silang mapabuti sa pamamagitan ng pagsasama ng address at / o network / netmask na impormasyon, upang mabawasan ang epekto ng mga pansamantalang pagkabigo sa paghahanap ng server ng pansamantalang pangalan.

Pinakamadaling Nakasara

Sa kasong ito, ang pag-access ay tinanggihan bilang default. Tanging tahasang awtorisadong mga host ang pinahihintulutan ng access.

Ang default na patakaran (walang pag-access) ay ipinatupad sa isang maliit na pagtanggi file:

/etc/hosts.deny: LAHAT: LAHAT

Tinanggihan nito ang lahat ng serbisyo sa lahat ng mga host, maliban kung pinahihintulutan ang pag-access ng mga entry sa allow file.

Ang tahasang awtorisadong mga host ay nakalista sa pahintulot na file. Halimbawa:

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

Pinahihintulutan ng unang tuntunin ang pag-access mula sa mga host sa lokal na domain (walang `. 'Sa pangalan ng host) at mula sa mga miyembro ng some_netgroup netgroup. Pinapayagan ng ikalawang panuntunan ang pag-access mula sa lahat ng mga host sa foobar.edu domain (mapansin ang nangungunang tuldok), maliban sa terminalserver.foobar.edu .

MADALANG BAGO

Dito, ang pag-access ay ibinibigay sa pamamagitan ng default; tanging tahasang tinukoy na mga host ang tumanggi sa serbisyo.

Ang default na patakaran (access na ipinagkaloob) ay nagbibigay-daan sa pahintulot ng file na labis na maaari itong alisin. Ang tahasang hindi awtorisadong mga host ay nakalista sa tanggihan ang file. Halimbawa:

/etc/hosts.deny: LAHAT: some.host.name, .some.domain
LAHAT ng KALAGAYAN sa: iba pang mga ibang tao, .other.domain

Ang unang tuntunin ay tinanggihan ang ilang mga host at domain ng lahat ng mga serbisyo; pinapahintulutan pa rin ng ikalawang panuntunan ang mga kahilingan sa daliri mula sa ibang mga host at domain.

BOOBY TRAPS

Pinapayagan ng susunod na halimbawa ang mga kahilingan ng tftp mula sa mga nagho-host sa lokal na domain (mapansin ang nangungunang tuldok). Ang mga kahilingan mula sa anumang iba pang mga host ay tinanggihan. Sa halip na hiniling na file, isang probe ng daliri ay ipinadala sa nakakasakit na host. Ang resulta ay ipapadala sa superuser.

/etc/hosts.allow:

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

Ang command na safe_finger ay may tcpd wrapper at dapat na mai-install sa isang angkop na lugar. Nililimitahan nito ang posibleng pinsala mula sa data na ipinadala ng remote finger server. Nagbibigay ito ng mas mahusay na proteksyon kaysa sa pamantayang utos ng daliri.

Ang pagpapalawak ng% h (host ng client) at% d (pangalan ng serbisyo) na mga pagkakasunud-sunod ay inilarawan sa seksyon ng mga command shell.

Babala: huwag booby-bitag ang iyong finger demonyo, maliban kung handa ka para sa walang katapusan na mga loop ng daliri.

Sa mga sistema ng firewall ng network, ang lansihin na ito ay maaaring dalhin kahit pa. Ang tipikal na network firewall ay nagbibigay lamang ng limitadong hanay ng mga serbisyo sa panlabas na mundo. Ang lahat ng iba pang mga serbisyo ay maaaring "bugged" tulad ng sa itaas tftp halimbawa. Ang resulta ay isang mahusay na sistema ng maagang babala.

Mahalaga: Gamitin ang command ng tao ( % man ) upang makita kung paano ginagamit ang isang utos sa iyong partikular na computer.

Kaugnay na mga Artikulo