Hosts.allow - Linux Command - Unix команадсы

NAME

hosts_access - хостқа кіруді басқару файлдарының пішімі

СИПАТТАМАСЫ

Бұл нұсқаулықта клиентке (хост атауы / мекен-жайы, пайдаланушы аты) және серверге (процесінің атауы, хост атауы / мекен-жайы) үлгілерге негізделген қарапайым қатынасты басқару тілдері сипатталады . Мысалдар соңында беріледі. Шыдамды оқырманға жылдам кіріспе үшін EXAMPLES бөліміне өтуге рұқсат беріледі. Қол жеткізуді басқару тілінің кеңейтілген нұсқасы hosts_options (5) құжатында сипатталған. Кеңейтімдер бағдарламаны құру уақытында -DPROCESS_OPTIONS құрастыру арқылы іске қосылады.

Келесі мәтінде демон - желідегі демон үдерісінің процестің атауы, ал клиент - хост сұрау салатын атау және / немесе мекен-жайы. Network daemon процесінің аттары inetd конфигурация файлында көрсетіледі.

ACCESS CONTROL FILES

Қол жеткізуді басқару бағдарламалық құралы екі файлға кеңес береді. Іздеу бірінші матчта тоқтатылады.

Access бағдарламасы (демон, клиент) жұбы /etc/hosts.allow файлындағы жазбамен сәйкес келгенде беріледі .

Олай болмаған жағдайда, қол жетімділік (демон, клиент) жұбы /etc/hosts.deny файлындағы жазбамен сәйкес келгенде тыйым салынады .

Әйтпесе, қол жетімділік беріледі.

Ешқандай қол жетімсіздікті басқару файлы бос файл болғандай қарастырылады. Осылайша, кіруді бақылау ешбір қол жеткізуді басқару файлдарын қамтамасыз ету арқылы өшірілуі мүмкін.

ҚОЛДАНУ БАСҚАРУ ҚАҒИДАЛАРЫ

Әрбір қатынасуды басқару файлы мәтіннің нөл немесе одан көп жолдарынан тұрады. Бұл сызықтар пайда болу тәртібімен өңделеді. Іздеу сәйкестік табылғанда тоқтатылады.

Жаңа сызық таңбасы алдымен кері қиғаш сызықша болған кезде еленбейді. Бұл сізге ұзын жолдарды бөлуге мүмкіндік береді, сонда оларды өңдеу оңай болады.

'#' Таңбасымен басталатын бос жолдар немесе жолдар еленбейді. Бұл кестелерді оңай оқитын түсініктемелер мен бос орынды енгізуге мүмкіндік береді.

Барлық басқа жолдар келесі форматқа сәйкес келуі керек, [] арасындағы мәндер міндетті емес:

daemon_list: client_list [: shell_command]

daemon_list - бұл бір немесе бірнеше демон процесінің атаулары (argv [0] мәндері) немесе қойылмалы таңбалар (төменде қараңыз).

client_list - клиент хостының атына немесе мекенжайына сәйкес келетін бір немесе бірнеше хост аттарының, хост мекенжайларының, үлгілердің немесе қойылмалы таңбалардың (төменде қараңыз) тізімі.

Daemon @ host және user @ host неғұрлым күрделі пішіндер сервердің соңғы нүкте үлгілері мен сәйкесінше клиенттік қолданушы аттары бойынша бөлімдерде түсіндіріледі.

Тізім элементтері бос және / немесе үтірлермен бөлінуі керек.

NIS (YP) желілік топтамасын іздеуді қоспағанда, барлық қатынауды бақылауды тексеруге болады.

PATTERNS

Қол жеткізуді бақылау тілі төмендегі үлгілерді жүзеге асырады:

Жолдан басталады жол. таңба. Егер аттың соңғы құрамдасы көрсетілген үлгіге сәйкес келсе, хост атауы сәйкес келеді. Мысалы, `.tue.nl 'үлгісі' wzv.win.tue.nl 'хост атауына сәйкес келеді.

Жолды аяқтайтын '.' таңба. Алғашқы сандық өрістер көрсетілген жолға сәйкес келсе, хост мекен-жайы сәйкес келеді. Мысалы, «131.155» үлгісі. Eindhoven University желісіндегі (131.155.xx) барлық хост мекен-жайына сәйкес келеді.

'@' Таңбасымен басталатын жол NIS (бұрынғы YP) netgroup атауы ретінде қарастырылады. Хосттың аты көрсетілген желі тобының хост мүшесі болса, сәйкес келеді. Netgroup сәйкестіктеріне процедураның атауы немесе клиенттің пайдаланушы аттары үшін қолдау көрсетілмейді.

'Nnnn / mmmm' пішінінің өрнегі 'net / mask' буыны ретінде түсіндіріледі. IPv4 хост мекен-жайы 'net' битальды және мекен-жайы мен «маска» тең болған жағдайда сәйкестендіріледі. Мысалы, «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' нысанының өрнегі '[net] / prefixlen' буыны ретінде түсіндіріледі. IPv6 хосттың мекенжайы `` prefixlen '`` `` жолының биттері мекен-жайдың «prefixlen» биттеріне тең болған жағдайда сәйкестендіріледі. Мысалы, '[3ffe: 505: 2: 1 ::] / 64' үлгісі [3ffe: 505: 2: 1 :: '3ffe: 505: 2: 1: ffff: ffff: ffff: ffff '.

'/' Таңбасымен басталатын жол файл атауы ретінде қарастырылады. Хосттың аты немесе адресі аталған файлда тізімделген кез-келген хост атауы немесе мекенжай үлгісіне сәйкес келсе, сәйкес келеді. Файл пішімі нөл немесе одан көп нөл немесе одан көп хост атауы немесе мекенжайлар үлгілері бос орынмен бөлінген нөл немесе одан да көп жолдар. Файл атауларының үлгісін кез келген жерде хост атауы немесе мекенжай үлгісі пайдаланылуы мүмкін.

Жұлдызшалар: * және '?' хост атауларын немесе IP мекенжайларын сәйкестендіру үшін пайдалануға болады. Сәйкестіктің бұл әдісі `` net / mask 'сәйкестігімен бірге пайдаланыла алмайды,'. 'Деген басталатын хост атауы. немесе '.' арқылы аяқталатын IP адресінің мекен-жайы .

WILDCARDS

Қол жеткізуді бақылау тілі нақты айқындық таңбаларын қолдайды:

БАРЛЫҚ

Әмбебап қойылмалы таңба әрдайым сәйкес келеді.

ЖЕРГІЛІК

Кезінде нүкте таңбасы болмайтын кез-келген хостқа сәйкес келеді.

БІРІҢІЗ

Атауы белгісіз кез келген пайдаланушымен сәйкестендіріледі және аты немесе адресі белгісіз кез келген хостқа сәйкес келеді. Бұл үлгіні абайлап пайдаланған жөн: хост атаулары уақытша атау серверінің ақауларына байланысты қол жетімді болмауы мүмкін. Бағдарламалық жасақтама қандай желі түрімен сөйлесетінін анықтау мүмкін болмаған кезде желілік адрес қол жетімді болмайды.

Түсінікті

Атауы белгілі кез келген пайдаланушымен сәйкестендіріледі және аты мен адресі белгілі хостқа сәйкес келеді. Бұл үлгіні абайлап пайдаланған жөн: хост атаулары уақытша атау серверінің ақауларына байланысты қол жетімді болмауы мүмкін. Бағдарламалық жасақтама қандай желі түрімен сөйлесетінін анықтау мүмкін болмаған кезде желілік адрес қол жетімді болмайды.

PARANOID

Атауы оның мекенжайына сәйкес келмейтін кез-келген хостқа сәйкес келеді. Tcpd -DPARANOID (әдепкі режим) көмегімен орнатылғанда, ол қол жетімділік басқару кестелерін қараудан бұрын осындай клиенттердің сұрауларын төмендетеді. Мұндай сұраныстарға көбірек бақылауды қаласаңыз -DPARANOIDсіз құрыңыз.

ОПЕРАТОРЛАР

Қоспағанда

Тағайындалған пайдалану нысаны: `list_1 EXCEPT list_2 '; бұл құрылыс тізім_2 тізіміне сәйкес болмаса, list_1 сәйкес келеді . EXCEPT операторы daemon_lists және client_lists-де пайдаланылуы мүмкін. EXCEPT операторы кірістіруге болады: егер басқару тілі жақшаларды пайдалануға мүмкіндік берсе, 'EXCEPT b EXCEPT c' бөлімі '(EXCEPT (b EXCEPT c)') ретінде қарастырылады.

ШЕЙНЕ БЕЛСЕНДЕР

Егер бірінші келісілген қатынауды басқару ережесі қабық пәрменін қамтыса, бұл пәрмен% орынбасарға ұшырайды (келесі бөлімді қараңыз). Нәтиже стандартты енгізу, шығару және / dev / null байланысты қате / bin / sh еншілес процесі арқылы орындалады. Пәрменнің соңында '&' аяқталуын күтпесеңіз, көрсетіңіз.

Shell командалары inetd PATH параметріне сүйенбеуі керек. Керісінше, олар абсолютті жол атауларын қолдануы керек немесе олар PATH = кез келген мәлімдемеден басталуы керек.

Hosts_options (5) құжаты қабық пәрменінің өрісін басқа және үйлесімсіз түрде пайдаланатын баламалы тілді сипаттайды.

% EXPANSIONS

Shell пәрмендері ішінде келесі кеңейтімдер қол жетімді:

% a (% A)

Клиент (сервер) хост мекенжайы.

% c

Клиенттік ақпарат: user @ host, user @ address, хост атауы немесе жай ғана мекен-жай, қаншалықты қол жетімді ақпаратқа байланысты.

% d

Daemon процесінің атауы (argv [0] мәні).

% h (% H)

Егер хост атауы қол жетімді болмаса, клиент (сервер) хост атауы немесе мекенжайы.

% n (% N)

Клиент (сервер) хост атауы (немесе «белгісіз» немесе «параноид»).

% p

Демон процесінің идентификаторы.

% s

Сервер туралы ақпарат: daemon @ host, daemon @ мекенжайы немесе жай ғана демонстрациялық атау, қаншалықты қол жетімді ақпаратқа байланысты.

% u

Клиенттің пайдаланушы аты (немесе «белгісіз»).

%%

Бір '%' таңбасына дейін кеңейтіледі.

Қабықшаны шатастыруға кедергі келтіретін% кеңістіктегі таңбалар астыңғы сызықтармен ауыстырылады.

SERVER ENDPOINT PATTERNS

Клиенттерді қосылатын желілік мекенжайдан бөліп алу үшін, пішін үлгілерін пайдаланыңыз:

process_name @ host_pattern: client_list ...

Осындай үлгілері әртүрлі интернеттегі хост атауларымен әртүрлі интернеттегі мекенжайларға ие болған кезде пайдаланылуы мүмкін. Қызмет жеткізушілері FTP, GOPHER немесе WWW архивтерін түрлі ұйымдарға тиесілі Интернет атауларымен ұсынуға мүмкіндік алады. Сондай-ақ hosts_options (5) құжатында 'twist' опциясын қараңыз. Кейбір жүйелерде (Solaris, FreeBSD) бір физикалық интерфейсте бірнеше интернет-адресі болуы мүмкін; басқа жүйелермен арнайы желілік мекенжай кеңістігінде тұратын SLIP немесе PPP жалған интерфейстеріне жүгінуіңіз мүмкін.

Host_pattern client_list мәтінмәніндегі хост атаулары және мекенжайлары сияқты синтаксистік ережелерге бағынады. Әдетте, серверлік соңғы нүкте туралы ақпарат тек байланысқа бағытталған қызметтермен қол жетімді.

Клиент USERNAME LOOKUP

Клиенттің хосты RFC 931 хаттамасын немесе оның ұрпақтарының біреуін (TAP, IDENT, RFC 1413) қолдаған кезде қабықша бағдарламалары байланыс иесі туралы қосымша ақпаратты ала алады. Клиенттің пайдаланушы аты туралы ақпарат, қол жетімді болғанда, клиент түйін атауы арқылы бірге тіркеледі және келесідей үлгілерге сәйкес келеді:

daemon_list: ... user_pattern @ host_pattern ...

Доменді орауыштар ереже бойынша басқарылатын пайдаланушы атын іздеуді (әдепкі) орындау үшін немесе клиент хостын әрдайым сұрастыру үшін компиляция уақытында конфигурациялануы мүмкін. Ережеге негізделген пайдаланушы атын іздеу кезінде, жоғарыда аталған ереже daemon_list және host_pattern сәйкес болғанда ғана пайдаланушы атын іздеуді тудырады.

Пайдаланушы үлгісінде демон үдерісінің үлгісі сияқты синтаксисі бар, сондықтан бірдей қойылмалы таңбалар қолданылады (netgroup мүшелігіне қолдау көрсетілмейді). Дегенмен, пайдаланушы аты бойынша іздеуді алып тастауға болмайды.

Клиенттің пайдаланушы ақпаратының көпшілігі қажет болғанда сенімді болмайды, яғни клиент жүйесі бұзылған кезде. Тұтастай алғанда, БАРЛЫҚ және (БҰҰ) МАҢЫЗДЫ қолданылатын жалғыз пайдаланушы аттарының үлгілері болып табылады.

Пайдаланушының іздеуі TCP негізіндегі қызметтермен ғана мүмкін және тек клиент хосты тиісті қызметті іске қосқанда ғана мүмкін; қалған барлық жағдайларда «белгісіз» нәтиже.

UNIX ядросының белгілі қатесі пайдаланушы атын іздеу брандмауэр арқылы блокталған кезде қызмет көрсету жоғалуы мүмкін. Рама README құжаты сіздің ядроыңыздың қате екенін білу үшін рәсімді сипаттайды.

Пайдаланушы іздеуі UNIX емес пайдаланушылар үшін елеулі кешіктірулерге әкелуі мүмкін. Пайдаланушы атын іздеу үшін әдепкі тайм-аут 10 секунд: баяу желілермен күресу үшін тым қысқа, бірақ компьютер пайдаланушыларды тітіркену үшін жеткілікті.

Таңдаулы пайдаланушы аты бойынша іздеу соңғы ақаулықты жеңілдетеді. Мысалы, келесідей ереже:


daemon_list: @pcnetgroup ALL @ ALL

Пайдаланушы атын іздеуді жасамай, PC netgroup мүшелеріне сәйкес келеді, бірақ барлық басқа жүйелермен пайдаланушы атын іздеуді орындайды.

ЖАУАПКЕРШІЛІКТІҢ ЖАУАПКЕРШІЛІКТІ АНЫҚТАУ

Көптеген TCP / IP іске асуының жүйелі санының генераторындағы кемшіліктер зиянкестерге сенімді хосттарды оңай сәйкестендіруге мүмкіндік береді және мысалы, қашықтағы қабық қызметі арқылы үзілуге ​​мүмкіндік береді. IDENT (RFC931 және т.б.) қызметі осындай және басқа хост мекенжайының спуфингтік шабуылдарын анықтау үшін пайдаланылуы мүмкін.

Клиенттің өтінішін қабылдамас бұрын, орауыштар клиенттің сұранысты мүлдем жібермегенін білу үшін IDENT қызметін пайдалана алады. Клиенттің хосты IDENT қызметін көрсетсе, теріс IDENT іздеу нəтижесі (клиент `UNKNOWN @ host ') сәйкестендіргіші хост шабуыл шабуылының күшті дәлелі болып табылады.

Оң нәтижені IDENT іздеу нәтижесі (клиент `KNOWN @ host 'дегенге сәйкес келеді) сенімдірек. Қаскүнемнің клиентке қосылуын және ИДЕНТ-нің іздеуін бұзу мүмкіндігі болуы мүмкін, бірақ мұны тек клиенттік қосылысты бұзудан әлдеқайда қиын. Сондай-ақ, клиенттің IDENT серверінің жалған екендігі де болуы мүмкін.

Ескерту: IDENT іздеуі UDP қызметтерімен жұмыс істемейді.

МЫСАЛДАР

Тіл икемді болып табылады, бұл қол жетімділікті басқарудың әртүрлі түрлері ең аз шабуылмен көрсетілуі мүмкін. Тіл екі қол жеткізуді басқару кестелерін пайдаланса да, ең көп таралған саясаттар тривиальды немесе тіпті бос болып табылатын кестелердің бірімен орындалады.

Төменде келтірілген мысалдарды оқып жатқанда, рұқсат кестесі бас тарту кестесінен бұрын ізделіп, матч табылған кезде іздеу аяқталатындығын және ешқандай сәйкестік табылмаса, кіруге рұқсат берілгендігін түсіну маңызды.

Мысалдар хост пен домен атауларын қолданады. Уақытша аты серверінің іздеу сәтсіздіктерінің әсерін азайту үшін адрес және / немесе желілік / желілік ақпараттарды қосу арқылы жақсартуға болады.

ӨТКІЗІЛЕДІ

Бұл жағдайда әдепкі бойынша кіруге тыйым салынған. Ашық рұқсат берілген хосттарға ғана рұқсат беріледі.

Әдепкі саясат (қол жетімді емес) тривиальды бас тарту файлымен орындалады:

/etc/hosts.deny: ALL: ALL

Бұл рұқсаттар файлында жазбалармен қатынасуға рұқсат берілмеген жағдайда, барлық хосттарға арналған барлық қызметтен бас тартады.

Ашық уәкілетті хосттар рұқсат файлында тізімделген. Мысалға:

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

Бірінші ереже жергілікті домендегі хосттардан (хост атауында «жоқ») және some_netgroup netgroup мүшелерінен қатынасуға мүмкіндік береді. Екінші ереже foobar.edu доменіндегі барлық хосттардан ( terminalserver.foobar.edu қоспағанда) жетекші нүктеге назар аударуға рұқсат береді.

MOSTLY OPEN

Мұнда қол жеткізу әдепкі болып табылады; тек анық көрсетілген хосттарға қызмет көрсетуден бас тартылады.

Әдепкі саясат (рұқсат берілген) рұқсат етілмеген файлды алып тастауға мүмкіндік бермейді. Ашық емес рұқсат етілмеген хосттар бас тарту файлында тізімделген. Мысалға:

/etc/hosts.deny: ALL: some.host.name, .some.domain
ALL.Fingerd басқа қоспағанда: other.host.name, .other.domain

Бірінші ереже кейбір хосттар мен домендерді барлық қызметтерді жоққа шығарады; екінші ереже әлі де басқа хосттар мен домендерден саусақ сауалдарына рұқсат береді.

БІЗДІҢ ҚҰРЫЛҒЫСЫ

Келесі мысал жергілікті домендегі хосттардан tftp сұрауларына рұқсат береді (жетекші нүктені байқаңыз). Кез келген басқа хосттардың өтінімдері қабылданбайды. Сұралған файлдың орнына саусақ ізі бұзушы хостқа жіберіледі. Нәтиже супервайзерге жіберіледі.

/etc/hosts.allow:

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

Safe_finger командасы tcpd қаптамасымен бірге келеді және тиісті орынға орнатылуы керек. Бұл қашықтағы саусақпен жіберілген деректердің ықтимал зақымдануын шектейді. Бұл стандартты саусақпен салыстырғанда жақсы қорғауды қамтамасыз етеді.

% H (клиент хосты) және% d (қызмет атауы) тізбектерінің кеңеюі қабық пәрмендері бөлімінде сипатталған.

Ескерту: шексіз саусақ ілмектеріне дайындалмасаңыз, саусағыңыздың демонсын ұстамаңыз.

Желілік брандмауэр жүйелерінде бұл трюкті одан әрі тасымалдауға болады. Әдеттегі желілік брандмауэр тек сыртқы әлемге шектеулі қызметтер жиынтығын ұсынады. Барлық басқа қызметтерді «tgpp» мысалына ұқсас етіп «қате» келтіре аласыз. Нәтиже ерте алдын-ала ескерту жүйесі.

Сондай-ақ қараңыз

tcpd (8) tcp / ip деemon қаптамасы бағдарламасы. tcpdchk (8), tcpdmatch (8), тестілеу бағдарламалары.

Маңызды: Жеке компьютерде пәрменді қалай пайдалану керектігін көру үшін man ( % man ) пәрменін пайдаланыңыз.