Hosts.allow - Linux Command - Unix հրամանատարությունը

ԱՆՈՒՆ

hosts_access- հյուրընկալ հասանելիության կառավարման ֆայլերի ձեւաչափ

DESCRIPTION

Այս ձեռնարկ էջը նկարագրում է հասանելիության հսկողության մի մատչելի լեզու, որը հիմնված է հաճախորդին (հյուրընկալող անունը / հասցեն, օգտվողի անունը) եւ սերվերի (գործընթացի անունը, հոստի անունը / հասցեն) նախշերով: Օրինակներ տրվում են վերջում: Անխոհեմ ընթերցողին խրախուսվում է անցնել EXAMPLES բաժին արագ ներածման համար: Ընդլայնված տարբերակը մուտքագրման լեզվով նկարագրված է hosts_options (5) փաստաթղթում: Ծրագրեր կառուցելու ժամանակ ընդլայնումները միացվում են `-DPROCESS_OPTIONS- ով կառուցելու միջոցով:

Հետեւյալ տեքստում օրինակը հանդիսանում է ցանցային դադարի գործընթացի գործընթացի անվանումը, եւ հաճախորդը հանդիսանում է հյուրընկալող ծառայության պահանջի անունը եւ / կամ հասցեն: Ցանցի դոմենային գործընթացի անվանումները նշված են inetd կոնֆիգուրացիայի ֆայլում:

Մուտքի վերահսկման ֆիլմեր

Հասանելիության հսկման ծրագրաշարը խորհուրդ է տալիս երկու ֆայլեր : Որոնումը դադարում է առաջին խաղում:

Մուտքը տրվելու է այն ժամանակ, երբ (daemon, client) զույգը համապատասխանում է մուտքի /etc/hosts.allow ֆայլին:

Հակառակ դեպքում մուտքի թույլտվությունը մերժվելու է, երբ (daemon, client) զույգը համապատասխանում է /etc/hosts.deny ֆայլին:

Հակառակ դեպքում, մուտք կստանա:

Ոչ ընթացիկ մուտքի կառավարման ֆայլը դիտվում է որպես դատարկ ֆայլ: Այսպիսով, հասանելիության հսկողությունը կարող է անջատվել `տրամադրելով մուտքի վերահսկման ֆայլեր:

Մուտքի վերահսկման կանոնները

Յուրաքանչյուր մուտքի հսկողության ֆայլը բաղկացած է տեքստի զրո կամ ավելի տողերից: Այս տողերը վերամշակվում են արտաքին տեսքով: Որոնումը դադարում է, երբ խաղը գտնվի:

Նոր գծի բնույթը անտեսվում է, երբ նախորդում է վերադարձի տառատեսակ: Սա թույլ է տալիս ձեզ երկար գծեր կոտրել, որպեսզի դրանք հեշտությամբ խմբագրվեն:

Բառային գծեր կամ գծեր, որոնք սկսվում են «#» տառով, անտեսվում են: Սա թույլ է տալիս Ձեզ տեղադրում մեկնաբանություններ եւ սպիտակ տարածք, որպեսզի սեղանները հեշտությամբ կարդան:

Բոլոր մյուս գծերը պետք է բավարարեն հետեւյալ ձեւաչափը, [] միջեւ բաները, ըստ ցանկության:

daemon_list: client_list [: shell_command]

daemon_list- ը հանդիսանում է մեկ կամ ավելի daemon պրոցեսի անվանումների ցանկը (argv [0] արժեքները) կամ նշանները (տես ստորեւ):

client_list- ը ցուցադրվում է մեկ կամ մի քանի հյուրընկալող անվանումների, հյուրընկալող հասցեների, օրինակների կամ նշանների (տես ստորեւ) ցուցակը, որը կհամապատասխանի հաճախորդի հյուրընկալող անունի կամ հասցեի հետ:

Daemon @ host- ի եւ user @ host- ի ավելի բարդ ձեւաթղթերը բացատրվում են սերվերային վերջնակետային նմուշների եւ համապատասխանաբար հաճախորդի օգտանունների որոնման բաժնում:

Ցանկի տարրերը պետք է բաժանվեն տարբեր ձեւերով եւ / կամ ստորագրերով:

Բացառությամբ NIS (YP) ցանցային խմբի որոնումները, մուտքի հսկման բոլոր հսկիչները դեպքի անտարբեր են:

ԴՆԹ

Հասանելիության վերահսկման լեզուն իրականացնում է հետեւյալ օրինակները.

A string, որը սկսվում է `. բնույթ: Հոստի անունը համընկնում է, եթե վերջին անունը համապատասխանում է նշված ձեւին: Օրինակ `« .tue.nl »տիպը համապատասխանում է« wzv.win.tue.nl »տողի անունը:

A string, որը ավարտվում է `. բնույթ: Հոսթին հասցեը համընկնում է, եթե նրա առաջին թվային դաշտերը համապատասխանում են տվյալ տողին: Օրինակ, օրինակ `131.155: համընկնում է Eindhoven համալսարանի ցանցի (131.155.xx) յուրաքանչյուր հյուրի հասցեին:

'@' Բնույթով սկսվող տողը դիտվում է որպես NIS (նախկինում YP) ցանցային խմբի անուն: Հոսթին անունը համընկնում է, եթե այն նշված ցանցային խմբի հյուրընկալող անդամ է: Netgroup- ի համընկնումները չեն աջակցվում daemon գործընթացի անվանումների կամ հաճախորդի օգտագործողի անունների համար:

«Nnnn / mmmm» ձեւի արտահայտությունը մեկնաբանվում է որպես «զուտ / դիմակ» զույգ: IPv4 հյուրընկալող հասցեն համապատասխանում է, եթե «զուտ» հավասար է բիտում AND- ի հասցեին եւ «դիմակ»: Օրինակ `« 131.155.72.0/255.255.254.0 »ցանցի / դիմակային նիշը համապատասխանում է« 131.155.72.0 »միջակայքում յուրաքանչյուր հասցեին` 131.155.73.255 »:

[N: n: n: n: n: n: n: n] / m 'ձեւի արտահայտությունը մեկնաբանվում է որպես «զուտ] / նախածանց» զույգ: IPv6 հյուրընկալող հասցեն համընկնում է, եթե «ցանցի» prefixlen «bits» հավասար է հասցեի «prefixlen» բիթին: Օրինակ `[3ffe: 505: 2: 1 ::] / 64 '-ը [հասցե] [3]: 3ffe: 505: 2: 1: ffff: ffff: ffff: ffff ':

'/' Տառով սկսվող տողը դիտվում է որպես ֆայլի անուն : Հոստի անունը կամ հասցեն համընկնում է, եթե այն համապատասխանում է նշված անվան տակ նշված ցանկացած հյուրընկալող անուն կամ հասցեի օրինակ: Ֆայլի ձեւաչափը զրո կամ ավելի տող է, զրո կամ ավելի հոսթին անունով կամ սպիտակ տողերով առանձնացված հասցեի նմուշներով: Ֆայլի անունի օրինակ կարող է օգտագործվել ցանկացած վայրում հոսթին անուն կամ հասցեի օրինակ կարող է օգտագործվել:

Wildcards `* եւ '? կարող են օգտագործվել տանտերերին կամ IP հասցեներին համապատասխանելու համար : Հաշվարկի այս մեթոդը չի կարող օգտագործվել `զուտ / դիմակով համընկնումի հետ,«. կամ «.

WILDCARDS

Հասանելիության վերահսկման լեզուն աջակցում է հստակ նշումներ:

ALL

Համընդհանուր ժանրը միշտ համընկնում է:

ՏԵՂԱԿԱՆ

Համապատասխանում է ցանկացած հյուրընկալողը, որի անունը չի պարունակում կետային բնույթ:

UNKNOWN

Համապատասխանում է ցանկացած օգտվող, որի անունը անհայտ է եւ համապատասխանում է ցանկացած հյուրընկալողին, որի անունը կամ հասցեն անհայտ է: Այս օրինակը պետք է օգտագործվի խնամքով. Հոստի անունները կարող են անհասանելի լինել ժամանակավոր անունի սերվերի խնդիրների պատճառով: Ցանցի հասցեն կլինի անհասանելի, երբ ծրագրակազմը չի կարողանում պարզել, թե ինչ տիպի ցանց է դա խոսում:

ՀԵՂԻՆԱԿ

Համապատասխանում է ցանկացած օգտվող, որի անունը հայտնի է եւ համապատասխանում է ցանկացած հյուրընկալողին, որի անունը եւ հասցեն հայտնի են: Այս օրինակը պետք է օգտագործվի խնամքով. Հոստի անունները կարող են անհասանելի լինել ժամանակավոր անունի սերվերի խնդիրների պատճառով: Ցանցի հասցեն կլինի անհասանելի, երբ ծրագրակազմը չի կարողանում պարզել, թե ինչ տիպի ցանց է դա խոսում:

PARANOID- ը

Համապատասխանում է ցանկացած հյուրընկալող, որի անունը չի համապատասխանում իր հասցեին: Երբ tcpd- ը կառուցված է -DPARANOID (նախնական ռեժիմ) -ով, այն դադարեցնում է նմանատիպ հաճախորդների պահանջները, նույնիսկ նախքան մուտքի հսկման աղյուսակները դիտելը: Կառուցեք առանց -DPARANOID- ը, երբ ցանկանում եք նմանատիպ հարցումների նկատմամբ ավելի շատ վերահսկողություն:

ՕՊԵՐԱՏՈՐՆԵՐ

Բացառությամբ

Նախատեսված օգտագործումը ձեւն է `` list_1 EXCEPT list_2 '; այս կառուցվածքը համապատասխանում է այն ամենին, ինչը համապատասխանում է list_1- ին, եթե այն համապատասխանի list_2 : EXCEPT օպերատորը կարող է օգտագործվել daemon_lists- ում եւ client_lists- ում: EXCEPT- ի օպերատորը կարող է տեղավորված լինել, եթե վերահսկողության լեզուն թույլ կտա կիրառել պարամետրերի օգտագործումը `« EXCEPT b EXCEPT c »- ը կքննարկվի որպես« բացառություն (բ EXCEPT c) »:

ՇԵԼՈՆԸ ՀՐԱԺԱՐՎԵԼ Է

Եթե ​​առաջինը համապատասխանում է մուտքի վերահսկման կանոնը պարունակում է shell հրաման, ապա այդ հրամանը ենթարկվում է% substitutions (տես հաջորդ բաժին): Արդյունքը կատարվում է / bin / sh երեխայի գործընթացով ստանդարտ մուտքագրման, ելքի եւ սխալ / dev / null- ի հետ կապված: Նշեք «&» հրամանատարության վերջում, եթե չեք ցանկանում սպասել մինչեւ այն ավարտը:

Shell- ի հրամանները չպետք է հենվեն INetd- ի PATH- ի վրա: Փոխարենը, նրանք պետք է օգտագործեն բացարձակ ուղակի անուններ, կամ նրանք պետք է սկսեն հստակ PATH = ցանկացած հայտարարություն:

Hosts_options (5) փաստաթուղթը նկարագրում է այլընտրանքային լեզու, որը օգտագործում է shell հրամանատարական դաշտը տարբեր եւ անհամատեղելի ձեւով:

EXPANSIONS

Հետեւյալ տատանումները հասանելի են shell հրամաններում:

a (% A)

Հաճախորդը (սերվերի) հյուրընկալող հասցեն:

գ

Հաճախորդի տեղեկությունները `user @ host, user @ address, հյուրընկալող անուն կամ պարզապես հասցե, կախված այն բանից, թե որքան տեղեկատվություն կա:

դ

Դուոնային գործընթացի անունը (argv [0] արժեքը):

% h (% H)

Հաճախորդը (սերվերի) հյուրընկալող անունը կամ հասցեն, եթե հյուրընկալող անունը անհասանելի է:

% n (% N)

Հաճախորդը (սերվերը) ընդունող անունը (կամ "անհայտ" կամ "paranoid"):

p

Daemon գործընթացը ID- ն:

% s

Server- ի տեղեկությունները `daemon @ host, daemon @ հասցե կամ պարզապես daemon անունը, կախված այն բանից, թե որքան տեղեկատվություն կա:

u

Հաճախորդի անունը (կամ «անհայտ»):

%%

Ընդլայնում է մեկ `% 'բնույթ:

% Տողերի բնույթները, որոնք կարող են շփոթել շերտին, փոխարինվում են ներքեւում:

SERVER ENDPOINT ԸՆԿԵՐՈՒԹՅՈՒՆՆԵՐ

Որպեսզի բաժանորդներին տարբերել ցանցի հասցեով, որին նրանք կապում են, օգտագործել ձեւի նախշերը.

process_name @ host_pattern: client_list ...

Նմանատիպ մոդելները կարող են օգտագործվել, երբ մեքենան տարբեր ինտերնետային հասցեներ ունի տարբեր ինտերնետային հյուրընկալող անուններով: Ծառայության մատուցողները կարող են օգտվել այս հաստատությունից, FTP- ի, GOPHER- ի կամ WWW- ի արխիվների առաջարկելով ինտերնետային անուններով, որոնք նույնիսկ կարող են պատկանել տարբեր կազմակերպություններին: Տես նաեւ «twist» տարբերակը hosts_options (5) փաստաթղթում: Որոշ համակարգեր (Solaris, FreeBSD) կարող են ունենալ մեկ ֆիզիկական ինտերֆեյսի ավելի քան մեկ ինտերնետային հասցե: այլ համակարգերի հետ դուք կարող եք դիմել SLIP կամ PPP կեղծ միջակայքերը, որոնք ապրում են հատուկ ցանցային հասցեի տարածքում:

Host_pattern- ը ենթարկվում է նույն syntax կանոններին, որպես host_name- ի եւ հասցեների client_list համատեքստում: Սովորաբար, սերվերի վերջնական տեղեկատվությունը հասանելի է միայն կապի վրա հիմնված ծառայություններով:

ՀԱՂՈՐԴԱԳՐՈՒԹՅՈՒՆԸ USERNAME LOOKUP- ը

Երբ հաճախորդի տերը աջակցում է RFC 931 արձանագրությանը կամ նրա ժառանգներից մեկին (TAP, IDENT, RFC 1413), փաթաթան ծրագրերը կարող են ստանալ լրացուցիչ տեղեկություններ կապի սեփականատիրոջ մասին: Հաճախորդի անունների տեղեկությունները, երբ մատչելի են, մուտքագրվում է հաճախորդի հյուրընկալող անունով, եւ կարող է օգտագործվել նման օրինակներին համապատասխանելու համար:

daemon_list: ... user_pattern @ host_pattern ...

Դեյմոն փաթաթողերը կարող են կազմաձեւվել ժամանակի ընթացքում կանոնավոր կերպով օգտագործվող անվանումների որոնումներ կատարելու համար (default) կամ միշտ հարցաքննել հաճախորդի հյուրընկալողը: Կանոնով պայմանավորված օգտանունների որոնման դեպքում, վերոհիշյալ կանոնը կարող է հանգեցնել օգտվողի անունի որոնման միայն այն դեպքում, երբ both daemon_list եւ host_pattern համընկնում:

Օգտագործողի նմուշը ունի նույն syntax- ը, որպես օրինաչափ գործընթացների օրինակ, այնպես որ նույն կոդերը կիրառվում են (netgroup անդամակցությունը չի աջակցվում): Թեեւ չպետք է անցնեն օգտանունների որոնման հետ:

Հաճախորդի անունների տեղեկատվությունը չի կարելի վստահել, երբ այն անհրաժեշտ է առավելագույնս, այսինքն, երբ հաճախորդի համակարգը փոխզիջումային է: Ընդհանուր առմամբ, ԲՈԼՈՐ եւ (ՄԱԿ) ՀԻՎԱՆԴԱՆՔՆԵՐԸ միանգամայն օգտագործողի անվանումների օրինակ են:

Օգտվողի որոնումները հնարավոր են միայն TCP- ի վրա հիմնված ծառայություններից, եւ միայն այն ժամանակ, երբ հաճախորդի հյուրընկալողը կատարում է համապատասխան դիման; բոլոր մյուս դեպքերում արդյունքը «անհայտ» է:

UNIX- ի հայտնի միջուկի սխալը կարող է հանգեցնել ծառայության կորստի, երբ օգտագործողի անվանումները արգելափակվում են firewall- ով: Wrapper README փաստաթուղթը նկարագրում է ընթացակարգը պարզելու համար, եթե ձեր միջուկը ունի այս սխալը:

Օգտվողի որոնումները կարող են հանգեցնել զգալի ուշացումների ոչ UNIX օգտվողների համար: Օգտատերերի որոնման համար սահմանված ժամկետը 10 վայրկյան է. Չափազանց կարճ է դանդաղ ցանցերի հաղթահարման համար, սակայն բավականաչափ երկար կհանգեցնի համակարգչից օգտվողներին:

Ընտրողական անունների որոնումները կարող են թեթեւացնել վերջին խնդիրը: Օրինակ, նման կանոն:


daemon_list: @pcnetgroup ALL @ ALL- ը

կհամապատասխանի pc netgroup- ի անդամներին, առանց օգտանունների որոնումներ կատարելը, այլ կկատարի օգտվողի անունների որոնում բոլոր այլ համակարգերի հետ:

ՀԵՏԱՔՐՔՐՈՒԹՅՈՒՆՆԵՐԻ ԽՆԴԻՐՆԵՐԸ ԴԻՄՈՒՄ

Թվային TCP / IP- ի իրականացման հերթականության համարի գեներատորի բացթողումը թույլ է տալիս ներխուժողներին հեշտությամբ վերագրել վստահելի հյուրընկալողներին եւ կոտրել միջոցով, օրինակ, հեռակառավարման վահանակի ծառայությունը: IDENT (RFC931 եւ այլն) ծառայությունը կարող է օգտագործվել նման եւ այլ հյուրընկալող հասցեի խափանման հարձակումների հայտնաբերման համար:

Նախքան հաճախորդի պահանջը ընդունելը, փաթեթավորողները կարող են օգտագործել IDENT ծառայությունը `պարզելու համար, որ հաճախորդը ամբողջովին չի ուղարկվել հարցումը: Երբ հաճախորդի հյուրընկալողը տրամադրում է IDENT ծառայությունը, բացասական IDENT- ի որոնման արդյունքը (հաճախորդը համապատասխանում է `UNKNOWN @ host ') հանդիսանում է հյուրընկալող խաբեբայության հարձակման վկայությունը:

Դրական IDENT- ի որոնման արդյունքը (հաճախորդը համապատասխանում է «KNOWN @ host») ավելի վստահելի է: Հնարավոր է, որ ներխուժողը կողոպտում է ինչպես հաճախորդի կապը, այնպես էլ IDENT- ի որոնումը, չնայած դրանով դա շատ ավելի դժվար է, քան պարզապես հաճախորդի կապը խափանելուց: Հնարավոր է նաեւ, որ հաճախորդի IDENT- ի սերվերը ստում է:

Նշում. IDENT lookupները չեն աշխատում UDP ծառայություններով:

Օրինակներ

Լեզուն ճկուն է, որ մուտքի վերահսկման տարբեր տեսակներ կարող են արտահայտվել նվազագույն աղմուկով: Թեեւ լեզուն օգտագործում է երկու մուտքի վերահսկման սեղան, ամենատարածված քաղաքականությունը կարող է իրականացվել սեղանի թյուրիմացություններից կամ նույնիսկ դատարկից:

Ստորեւ բերված օրինակները կարդալիս կարեւոր է հասկանալ, որ թույլտվության սեղանն սկանավորվում է մերժման սեղանից առաջ, որ որոնումը դադարում է, երբ հանդիպումը գտնվի, եւ մուտքն ընդունվում է, երբ ոչ մի խաղ չի գտնվել:

Օրինակները օգտագործում են հյուրընկալող եւ դոմենային անուններ: Նրանք կարող են բարելավվել `ներառելով հասցե եւ / կամ ցանց / netmask տեղեկատվությունը, նվազեցնելու ժամանակավոր անունը սերվերի որոնման արատների ազդեցությունը:

Շատ փակված է

Տվյալ դեպքում մուտքի թույլտվությունը մերժվում է կանխադրված: Միայն հստակ լիազորված հյուրընկալողներին թույլատրվում է մուտք գործել:

Նախնական քաղաքականությունը (մուտքի թույլտվությունը) իրականացվում է անհարկի մերժման ֆայլով.

/etc/hosts.deny: ALL: ALL

Սա մերժում է բոլոր ծառայությունները բոլոր հյուրընկալողներին, եթե դրանք թույլատրված չեն թույլտվության ֆայլի մուտքերով:

Հստակ լիազորված հանգույցները թվարկված ֆայլում թվարկված են: Օրինակ:

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

Առաջին կանոնը թույլ է տալիս մուտք գործել տեղական տիրույթում գտնվող hosts (ոչ `` host անունը) եւ some_netgroup netgroup անդամներից: Երկրորդ կանոնը թույլ է տալիս օգտվել foobar.edu տիրույթում գտնվող բոլոր հյուրընկալներից (նկատի ունենալով առաջատար կետը), բացառությամբ terminalserver.foobar.edu- ի :

ՄՈԹՈՐԻ ԲԱՑՈՒՄԸ

Այստեղ հասանելիությունը տրվում է լռելյայնորեն. միայն հստակորեն նշված հոստերը մերժվում են:

Նախնական քաղաքականությունը (մատչելիությունը) թույլ է տալիս թույլտվության ֆայլը ավելորդ համարել, որպեսզի այն կարող է բաց թողնել: Հստակ ոչ լիազորված սերվերները նշված են մերժման ֆայլում: Օրինակ:

/etc/hosts.deny: ALL: some.host.name, .some.domain
ԲՈԼՈՐ ՀՐԱՊԱՐԱԿԸ `in.fingerd: other.host.name, .other.domain

Առաջին կանոնը հերքում է որոշ տերերի եւ տիրույթների բոլոր ծառայությունների մասին, երկրորդ կանոնը դեռ թույլ է տալիս մատնահետքեր ստանալ այլ հյուրընկալողներից եւ տիրույթներից:

ԲՈՒԲԱՅԻ ՓՈՔՐՆԵՐ

Հաջորդ օրինակը թույլ է տալիս տեղական տիրույթում գտնվող տանտերերի թոփփային հարցումները (նշեք առաջատար կետը): Ցանկացած հյուրընկալողներից պահանջներ մերժվում են: Ձեռքբերվող ֆայլի փոխարեն, մատնահետք է ուղարկվում վիրավորվող հյուրին: Արդյունքը փոստով ուղարկվում է գերծանրաբեռնիչ:

/etc/hosts.allow:

in.tftpd: տեղական, .my.domain /etc/hosts.deny: in.tftpd: ALL: spawn (/ որոշ / որտեղ / safe_finger -l @% h | \ / usr / ucb / mail -s% d-% h արմատ)

The safe_finger հրամանը գալիս է tcpd փաթաթվածով եւ պետք է տեղադրվի հարմար վայրում: Այն սահմանափակում է հեռահար մատների սերվերի կողմից ուղարկված տվյալների հնարավոր վնասը: Այն ավելի լավ պաշտպանություն է տալիս, քան ստանդարտ մատը հրաման:

% H (հաճախորդի ընդունող) եւ% d (ծառայություն անվանում) հաջորդականությունների ընդլայնումը նկարագրված է shell հրամանների բաժնում:

Զգուշացում. Մի մոռացեք ձեր թեւի պաշտպանիչ օրինակը, եթե դուք չեք պատրաստվում անսահման մատով հանգույցների համար:

Ցանցային firewall- ի համակարգերում այս հնարքը կարող է ավելի մեծ լինել: Տիպային ցանցային firewall- ը միայն արտաքին աշխարհին տրամադրում է սահմանափակ ծառայություններ: Բոլոր մյուս ծառայությունները կարող են «շեղվել», ինչպես օրինակ վերը նշված tftp օրինակին: Արդյունքը վաղաժամ նախազգուշական համակարգն է:

ՏԵՍ ՆԱԵՒ

tcpd (8) tcp / ip daemon փաթաթելու ծրագիր: tcpdchk (8), tcpdmatch (8), փորձարկման ծրագրեր:

Կարեւոր է. Օգտագործեք հրամանատարությունը ( % մարդ ), որպեսզի տեսնեք, թե ինչպես է օգտագործվում հրամանը ձեր որոշակի համակարգչում: