Host.allow - Linux команда - Unix команда

NAME

hosts_access - формат на датотеки за контрола на пристап на домаќинот

ОПИС

Оваа страница со упатства опишува едноставен јазик за контрола на пристап кој се базира на клиентот (име на хост / адреса, корисничко име) и обрасци на серверот (име на процес, име на хост / адреса). Примери се дадени на крајот. Нестрпливиот читач се поттикнува да го прескокне секцијата EXAMPLES за брзо воведување . Проширена верзија на јазикот за контрола на пристап е опишана во документот hosts_options (5). Продолжувањата се вклучуваат при изградбата на време со градење со -DPROCESS_OPTIONS.

Во следниов текст, демонот е името на процесот на мрежен демон процес , а клиентот е името и / или адресата на услугата која бара домаќин. Имињата на процесот на мрежни сервери се наведени во inetd конфигурациската датотека.

ФИЛМОВИ ЗА КОНТРОЛА НА ПРИСТАП

Софтверот за контрола на пристап консултира две датотеки . Пребарувањето запира на првиот натпревар.

Пристапот ќе биде одобрен кога еден (демон, клиент) пар одговара на запис во датотеката /etc/hosts.allow .

Инаку, пристапот ќе биде одбиен кога еден (демон, клиент) пар одговара на влез во датотеката /etc/hosts.deny .

Во спротивно, пристапот ќе биде одобрен.

Непостоечката датотека за контрола на пристап се третира како да е празна датотека. Така, контролата на пристапот може да се исклучи со обезбедување на датотеки за контрола на пристап.

ПРАВИЛА ЗА КОНТРОЛА НА ПРИСТАП

Секоја датотека за контрола на пристап се состои од нула или повеќе линии на текст. Овие линии се обработуваат по редослед на изглед. Пребарувањето завршува кога се пронајде совпаѓање.

Карактерот на нова линија се игнорира кога му претходе карактер на обратна коса црта. Ова ви дозволува да ги раскинете долгите линии за полесно да ги уредувате.

Правите линии или линии што почнуваат со знак "#" се игнорираат. Ова ви овозможува да внесувате коментари и празни места, така што табелите се полесно да ги прочитате.

Сите други линии треба да го задоволат следниов формат, а работите помеѓу [] се опција:

daemon_list: client_list [: shell_command]

daemon_list е листа на еден или повеќе имиња на процесот на сервери (argv [0] вредности) или знаци (видете подолу).

client_list е листа на едно или повеќе имиња на хостови, адреси на домаќинот, шаблони или знаци (видете подолу), кои ќе се совпаѓаат со името на клиентот или адресата на клиентот.

Покомплексните форми на daemon @ host и user @ host се објаснети во секциите на шаблоните на крајната точка на серверот и на клиентските кориснички имиња, соодветно.

Елементите на елементите треба да се одделат со празни места и / или запирки.

Со исклучок на пребарувањето на netgroup на НИС (YP), сите проверки за контрола на пристап се нечувствителни за случајот.

ПАТТЕРИ

Јазикот за контрола на пристап ги имплементира следниве модели:

Низа која започнува со `. ' карактер. Името на домаќинот се совпаѓа ако последните компоненти од неговото име се совпаѓаат со наведениот образец. На пример, шаблонот `.tue.nl 'одговара на името на домаќинот` wzv.win.tue.nl`.

Низа која завршува со `. ' карактер. Адресата на домаќинот се совпаѓа ако првите нумерички полиња се совпаѓаат со дадената низа. На пример, моделот `131.155. ' се совпаѓа со адресата на (скоро) секој домаќин на мрежата на Универзитетот во Ајндховен (131.155.xx).

Низата која започнува со знак `@ 'се третира како име на мрежата на НИС (порано YP). Името на домаќинот се совпаѓа ако е член на домаќин на наведената netgroup. Не се поддржани совпаѓања на мрежата за имиња на процесот на демон или за кориснички имиња на клиентите.

Изразот на образецот `nnnn / mmmm` се толкува како пар` нето / маска`. Адресата на домаќинот IPv4 е совпадна ако `нето 'е еднаква на битното AND на адресата и` маската`. На пример, моделот net / mask `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 се совпаѓа ако "претфиксираните" битови на "нет" се еднакви на "префиксираните" битови на адресата. На пример, моделот [net] / 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 ОСВЕНКА листа_2 '; овој изглед се совпаѓа со нешто што се совпаѓа со листата_1, освен ако не се совпаѓа со листата_2 . Операторот EXCEPT може да се користи во daemon_lists и во client_lists. Операторот EXCEPT може да биде вгнезден: ако контролниот јазик дозволува употреба на загради, "ОСВ. Б. ОСВ. Ц." ќе се разбере како "(ОСВ. (Б. ОСВ. Ц))".

ШЕСТ КОМАНДИ

Ако правилото за контрола на пристап со првобитно содржи команда за школка, таа команда е подложена на% замени (види го следниот дел). Резултатот се изведува од / a / bin / sh дете процес со стандарден влез, излез и грешка поврзана со / dev / null . На крајот на командата наведете `& 'ако не сакате да почекате додека не заврши.

Командите на школка не треба да се потпрат на поставката PATH на inetd. Наместо тоа, тие треба да користат апсолутни имиња на патеки, или тие треба да започнат со експлицитна PATH = која било изјава.

Документот hosts_options (5) опишува алтернативен јазик кој го користи командното поле на школка на друг и некомпатибилен начин.

% EXPANSIONS

Следните проширувања се достапни во командната команда:

% a (% A)

Адресата на домаќинот (серверот).

% c

Информации за клиентот: корисник @ домаќин, корисничка @ адреса, име на домаќин или само адреса, во зависност од тоа колку информации се достапни.

% d

Името на процесот на серверот (argv [0] вредност).

% h (% H)

Клиент (сервер) име или адреса на домаќинот, ако името на домаќинот е недостапно.

% n (% N)

Клиентот (сервер) име на домаќинот (или "непознат" или "параноиден").

% p

Идентификација на процесот на демон.

% s

Информации за серверот: daemon @ host, daemon @ адреса, или само името на серверот, во зависност од тоа колку информации се достапни.

% u

Корисничкото име на клиентот (или "непознато").

%%

Се проширува на еден "%" знак.

Карактерите во% проширувања кои може да ја збришаат школка се заменуваат со знаци на подвлекување.

СЕРВЕРСКИ ЕДНОПОТНИ ПОДОБРУВАЊА

Со цел да ги разликуваме клиентите според мрежната адреса со која се поврзуваат, користете обрасци на формуларот:

process_name @ host_pattern: client_list ...

Моделите како овие можат да се користат кога машината има различни интернет адреси со различни интернет-имиња на хостови. Давателите на услуги можат да го користат овој објект за да понудат архиви на FTP, GOPHER или WWW со имиња на интернет што можеби припаѓаат на различни организации. Исто така, видете ја опцијата `twist 'во документот hosts_options (5). Некои системи (Solaris, FreeBSD) можат да имаат повеќе од една интернет адреса на еден физички интерфејс; со други системи можеби ќе треба да се прибегнете кон SLIP или PPP псевдо интерфејси кои живеат во посветен мрежен адресен простор.

Host_pattern ги почитува истите синтаксички правила како имиња и адреси на домаќините во контекстот на client_list. Обично информациите за крајната точка на серверот се достапни само со услуги ориентирани кон конекција.

Клиентот USERNAME LOOKUP

Кога клиентскиот домаќин го поддржува протоколот RFC 931 или еден од неговите потомци (TAP, IDENT, RFC 1413), програмите за завиткување можат да пронајдат дополнителни информации за сопственикот на конекцијата. Информациите за корисничкото корисничко име на клиентот, кога се достапни, се најавени заедно со името на клиентскиот сервер и може да се користат за да одговараат на модели како:

daemon_list: ... user_pattern @ host_pattern ...

Обележувачите на демоните може да се конфигурираат при компилираното време за да ги извршат кориснички пребарувања со корисничко име (стандардно) или секогаш да го испрашуваат клиентскиот домаќин. Во случај на пребарување на корисничко име, управувано од правило, погорето правило ќе предизвика пребарување на корисничко име само кога и двете даемони_или и host_pattern натпревари.

Корисничкиот модел ја има истата синтакса како моделот на процес на демон, така што се применуваат истите симболи (членство во netgroup не е поддржано). Сепак, не треба да се занемарат со корисничко име lookups, иако.

Информации за корисничкото корисничко име не може да им се верува кога е тоа најпотребно, т.е. кога клиентскиот систем е компромитиран. Во принцип, ALL и (UN) KNOWN се единствените кориснички имиња кои имаат смисла.

Пребарувањата на корисничко име се можни само со услуги базирани на TCP, и само кога клиентот домаќин работи соодветен демон; во сите други случаи резултатот е "непознат".

Добро позната бубачка на јадрото на UNIX може да предизвика губење на услугата кога пребарувањата на корисничкото име се блокирани од заштитен ѕид. Документот README на обвивката опишува постапка за да открие дали вашиот кернел ја има оваа бубачка.

Пребарувањето на корисничко име може да предизвика забележителни одложувања за корисниците кои не се UNIX. Стандардниот временски период за пребарување на корисничко име е 10 секунди: премногу краток за да се справи со бавните мрежи, но доволно долго за да ги иритираат корисниците на компјутери.

Селективните кориснички имиња можат да го ублажат последниот проблем. На пример, правило како:


daemon_list: @pcnetgroup ALL @ ALL

би ги совпаднале членовите на компјутерската група без да ги пребаруваат корисничките имиња, но ќе извршат пребарување на корисничко име со сите други системи.

ОДДЕЛУВАЊЕ НА АДРЕСА НА СПОФИКУВАЊЕ

Недостаток на генераторот на број на секвенци на многу TCP / IP имплементации им овозможува на натрапниците лесно да ги имитираат доверливите хостови и да се пробијат преку, на пример, услугата за далечински школка. IDENT (RFC931 и др.) Може да се користи за откривање на такви и други напади на измама на адреса на домаќинот.

Пред прифаќање на барањето на клиентот, омотите можат да ја користат услугата IDENT за да дознаат дали клиентот воопшто не го испратил барањето. Кога клиентскиот домаќин обезбедува IDENT услуга, негативен резултат за пребарување на IDENT (клиентот се совпаѓа со `UNKNOWN @ host ') е силен доказ за напади на домаќински измами.

Позитивен резултат за пребарување на IDENT (клиентот одговара на "KNOWN @ host") е помалку веродостоен. Можно е некој натрапник да ја измами и клиентската врска и пребарувањето на IDENT, иако тоа е многу потешко отколку измама само клиентска врска. Исто така може да биде дека серверот IDENT на клиентот лаже.

Забелешка: ИДЕНТ пребарувањата не работат со UDP-услуги.

ПРИМЕРИ

Јазикот е доволно флексибилен што различните типови на политики за контрола на пристап може да се изразат со минимална врева. Иако јазикот користи две табели за контрола на пристап, најчестите политики може да се имплементираат, при што една од табелите е тривијална или дури и празна.

Кога ги читате примерите подолу, важно е да сфатите дека дозволената табела е скенирана пред да се одбие масата, дека потрагата завршува кога се пронајде совпаѓање и тој пристап се доделува кога воопшто не се пронајде совпаѓање.

Примерите ги користат имињата на домаќините и домените. Тие можат да се подобрат со вклучување на информации за адреса и / или мрежа / мрежа маска, за да се намали влијанието на привремените грешки при пребарување на серверот за имиња.

Најмногу затворени

Во овој случај, пристапот е стандардно одбиен. Дозволено е пристап само на експлицитно овластени домаќини.

Стандардната политика (без пристап) се имплементира со тривијална датотека што негира:

/etc/hosts.deny: СИТЕ: СИТЕ

Ова ја негира целата услуга на сите компјутери, освен ако не им е дозволен пристап со записи во дозволената датотека.

Експлицитно овластените компјутери се наведени во дозволената датотека. На пример:

/etc/hosts.allow: ALL: LOCAL @some_netgroup
СИТЕ: .foobar.edu ОСВЕН terminalserver.foobar.edu

Првото правило дозволува пристап од домаќините во локалниот домен (нема `. 'Во името на домаќинот) и од членовите на некоја група на некоја група . Второто правило дозволува пристап од сите компјутери во доменот foobar.edu (забележете ја водечката точка), со исклучок на terminalserver.foobar.edu .

Најмногу отворено

Овде, пристапот се одобрува стандардно; само експлицитно наведените домаќини се одбиваат услуги.

Стандардната политика (дозволен пристап) ја прави дозволената датотека излишна, така што може да биде испуштена. Експлицитно неавторизираните компјутери се наведени во датотеката за одбивање. На пример:

/etc/hosts.deny: ALL: some.host.name, .domain.domain
СИТЕ освен во in.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 (услуга име) е опишана во делот за команди за школка.

Предупредување: немојте да ги измазнувате вашите демони на прстите, освен ако не сте подготвени за бесконечни прстени.

На мрежните системи за заштитен ѕид овој трик може да се носи и понатаму. Типичниот мрежен заштитен ѕид обезбедува ограничен пакет на услуги на надворешниот свет. Сите други услуги може да се "прогласат" исто како и горниот пример tftp. Резултатот е одличен систем за рано предупредување.

ИСТО ТАКА ВИДИ

tcpd (8) tcp / ip демон програма за омоти. tcpdchk (8), tcpdmatch (8), тест програми.

Важно: Користете ја командата за човекот ( % man ) за да видите како се користи командата на вашиот компјутер.