Pangalan
hosts_access - format ng mga host ng access sa Linux control file.
Paglalarawan
Inilalarawan ng manu-manong pahina ang Linux bilang 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. Hinihikayat ang hindi matiising mambabasa na lumaktaw sa seksyon ng Mga Halimbawa para sa mabilis na pagpapakilala. Ang isang pinalawig na bersyon ng wika sa kontrol ng pag-access ay inilarawan sa hosts_options (5) dokumento. Ang mga extension ay naka-on sa oras ng build ng programa sa pamamagitan ng pagbuo ng -DPROCESS_OPTIONS.
Sa sumusunod na teksto, demonyo ang pangalan ng proseso ng proseso ng daemon ng network, at kliyente 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.
Access Control 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 file.
Kung hindi, ang pag-access ay tatanggi 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
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).
Listahan ng mga kliyente 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 daemon @ host at user @ host ay ipinaliwanag sa mga seksyon sa mga pattern ng endpoint ng server at sa lookup ng username ng 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.
Mga Pattern
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 Eindhoven University network (131.155.x.x).
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 form na `n.n.n.n.n / m.m.m.m '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 `. '.
Mga Wildcard
Sinusuportahan ng wikang kontrol ng access ang mga malinaw na wildcard kabilang ang:
'LAHAT'
Ang unibersal na wildcard, laging tumutugma.
'LOKAL'
Tumutugma sa anumang host na ang pangalan ay hindi naglalaman ng isang tuldok na karakter.
'UNKNOWN'
Tumutugma sa anumang user na ang pangalan ay hindi kilala, at tumutugma sa anumang host na ang pangalan o Hindi kilala ang address. 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 sinumang gumagamit na ang pangalan ay kilala, at tumutugma sa anumang host na ang pangalan at kilala ang address.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.
'OPERATORS'
'MALIBAN'
Ang tinutukoy na paggamit ay ang form: `list_1 EXCEPT list_2 '; ang pagtatayo na ito ay tumutugma sa anumang tumutugma list_1 maliban kung ito ay tumutugma 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 isinagawa ng isang / bin / sh proseso ng bata na may karaniwang input, output at error na nakakonekta sa / dev / null . Tukuyin ang isang `at 'sa dulo ng command terminal kung ayaw mong maghintay hanggang sa 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 hosts_options (5) ang dokumento ay naglalarawan ng isang alternatibong wika na gumagamit ng shell command field sa ibang at hindi tugma na paraan.
% Pagpapalawak
Ang mga sumusunod na pagpapalawak ay magagamit sa loob ng mga command shell:
% a (% A) - Ang address ng host ng client (server).
% c - 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 o address ng client (server) na host, kung ang pangalan ng host ay hindi magagamit.
% n (% N) - Ang pangalan ng host ng server (server) (o "hindi kilala" o "paranoid").
% p - Ang proseso ng demonyo id.
% s - Impormasyon ng server: daemon @ host, daemon @ address, o isang pangalan ng demonyo, depende sa kung magkano ang impormasyon ay magagamit.
% u - Ang pangalan ng user ng kliyente (o "hindi kilala").
%% - Pinapalawak sa isang solong `% 'na character.
Ang mga character sa% expansions na maaaring malito ang shell ay pinalitan ng mga underscore.
Mga Pattern ng Endpoint 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.
Lookup ng Username ng Client
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 patakaran sa itaas ay magiging sanhi lamang ng username lookup kapag pareho ang daemon_list at ang host_pattern 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. 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 serbisyo IDENT (RFC931 atbp.) 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. 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. 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_netgroupLAHAT: .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 pangalawang tuntunin ang pag-access mula sa lahat ng mga host sa foobar.edu domain (mapansin ang nangungunang tuldok), maliban sa terminalserver.foobar.edu . 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.domainLAHAT 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. 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 daliri demonyo, maliban kung ikaw ay handa 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. tcpd (8) tcp / ip daemon wrapper program.tcpdchk (8), tcpdmatch (8), mga programang pagsubok.
Mahalaga: Gamitin ang lalaki command ( % lalaki ) upang makita kung paano ginagamit ang utos sa iyong partikular na computer. Detecting Address Spoofing Attacks
Mga halimbawa
Masyadong Sarado
Mas madalas Buksan
Booby Traps
Tingnan din




