Пользовательскиецепочкиипереходы — КиберПедия 

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Пользовательскиецепочкиипереходы

2022-10-10 16
Пользовательскиецепочкиипереходы 0.00 из 5.00 0 оценок
Заказать работу

О создании и удалении пользовательских цепочек было сказано ранее.Необходимость в пользовательских цепочках возникает в случаях, когдаправил много (особенно, если они генерируются какими-либо вспомога-тельными программами) и необходимо поддерживать структуру правил ввиде, пригодном для чтения и анализа человеком. Кроме этого, возмож-ность организовать условные и безусловные переходы (jumps) позволяетпревращать последовательно интерпретируемый набор правил в некотороеподобие программы (возможны даже циклы, хотя этого следует избегать,так как синтаксис iptables не может претендовать на удобство использова-ниядажевкачествеспециализированного языкапрограммирования).


Дляпереходаизоднойцепочкивдругуюиспользуетсядействие

-j <ИМЯ_ЦЕПОЧКИ>(--jump <ИМЯ_ЦЕПОЧКИ>).Переходывцепочкидругих таблиц невозможны. Переходы в произвольные базовые цепочкитойжетаблицытакженевозможны.Внутрипользовательскойтаблицыправила проверяются последовательно, но этот процесс можно прервать спомощью действия RETURN, которое возвращает управление в «вызвав-шую» таблицу. Действие RETURN может быть применено и в базовой це-почке,вэтомслучаепросто выполняетсядействиепо умолчанию.

Для перехода к пользовательской цепочке также может быть исполь-зовано действие -g <ИМЯ_ЦЕПОЧКИ>(--goto ИМЯ_ЦЕПОЧКИ). При ис-пользованиидействияRETURNвтойцепочке,переходнакоторуюбылсде-лан с помощью -g, возврата в эту цепочку не произойдет, а «управление»вернется в ту цепочку, откуда переход был сделан с помощью -j (либовыполнится действие по умолчанию, если был выполнен возврат в базо-вуюцепочку).

Рассмотрим пример настройки правил для маршрутизатора, ограничи-вающего доступ из пользовательской сети (подключенных к интерфейсуeth0) вИнтернет:

#iptable-S

-PINPUTDROP

-PFORWARDDROP

-POUTPUTACCEPT

-NUSER_ACCESS

-NUSER_CHECK

-AINPUT-ilo-jACCEPT

-AFORWARD-jUSER_CHECK

-AFORWARD-jNETFLOW

-AFORWARD-mset--match-setallowed_networkssrc-jACCEPT

-A FORWARD -m set --match-set out src -m set --match-set banlistdst-jDROP

-AUSER_CHECK-oeth0-jUSER_ACCESS

-AUSER_CHECK-ieth0-jUSER_ACCESS

-AUSER_CHECK-oeth0-jRETURN

-AUSER_CHECK-ieth0-jRETURN

-AUSER_CHECK-jACCEPT

-AUSER_ACCESS-mset--match-setallowed_usersdst-jRETURN

-AUSER_ACCESS-mset--match-setallowed_userssrc-jRETURN

-AUSER_ACCESS-d84.130.160.0/23-jRETURN

-AUSER_ACCESS-s84.130.160.0/23-jRETURN

-AUSER_ACCESS-jDROP

Сначала устанавливаются политики по умолчанию для базовых цепо-чектаблицыfilter.Далеесоздаютсядвепользовательскихцепочки:USER_ACCESS и USER_CHECK. Первая из них содержит правила, опреде-ляющие,имеетлиправотранзитныйтрафикпроходитьчерезмаршрутиза-


тор. Вторая является вспомогательной цепочкой, из которой вызываетсяпервая. В цепочке FORWARD первое правило отправляет пакеты на провер-ку в цепочку USER_CHECK. Далее содержатся еще несколько правил, обра-батывающихпакеты,вернувшиесяизUSER_CHECK,тоестьпрошедшиепроверку: учет данных с помощью ipt_netflow и проверка источников навхождение в наборы IP-адресов (ipsets) с именами“allowed_networks” и “out”. Все пакеты, которые не были явно пропущены,удаляются. В цепочке USER_ACCESS делаются проверки относительно то-го, можно ли пропустить пакеты (первые четыре правила). Иначе пакетыудаляются. Работа с наборами IP-адресов подробнее рассмотрена в разде-ле4.

Нужно понимать, что количество критериев в правиле увеличиваетвремя проверки, то есть создает дополнительную вычислительную нагруз-ку на систему. За счет применения пользовательских цепочек можно со-кратитьколичествопроверок.Например,пустьестьправила:

#iptables-AINPUT-pudp-s172.16.1.1-jACCEPT# iptables-A INPUT-p udp-s 172.16.1.11-j ACCEPT#iptables-AINPUT-pudp-s172.16.1.111-jACCEPT

<...>

Каждое правило проверяет протокол и адрес источника. Организоватьпроверку можно иначе: проверку на протокол сделать один раз в правилеперехода к пользовательской цепочке, а проверять на адреса источника вправилах этой цепочки:

#iptables-NUSER_UDP_SRC

#iptables-AINPUT-pudp-gUSER_UDP_SRC

#iptables-AUSER_UDP_SRC-s172.16.1.1-jACCEPT# iptables-A USER_UDP_SRC-s 172.16.1.11-j ACCEPT#iptables-AUSER_UDP_SRC-s172.16.1.111-jACCEPT

Тем не менее, если количество адресов велико, то гораздо более про-изводительнымподходомбудетиспользованиенаборовIP-адресов.

 

Универсальныекритерии

Как уже упоминалось, каждое правило, которое задается с помощьюiptables,содержитодинилинесколькокритериев.Рассмотримодинизприведенныхранеепримеров:

# iptables -A FORWARD -m set --match-set out src -m set --match-setbanlistdst -jDROP

В этом правиле заданы два критерия (объединенных логическим И)для проверки принадлежности адресов источника и назначения различнымспискам адресов: первый критерий “-m set --match-set out src” ивторойкритерий“-mset--match-setbanlistdst”.Подробнеео


списках адресов и критериях проверки на принадлежность спискам адре-сов будет рассказано в разделе 4. Сейчас же рассмотрим несколько крите-риев, которые можносчитатьуниверсальными,тоестькоторыеможноуказывать почти в любых правилах (исключения, разумеется, есть) и кото-рыене требуютподключения дополнительных модулей.

Критерий -p, --protocol уже встречался ранее. Как можно понять,он позволяет указать протокол транспортного уровня (например, tcp, udp,icmp или all).Например,команда

#iptables-AINPUT-ptcp-jACCEPT

добавит правило, разрешающее принимать любые пакеты по протоколуTCP.

Если необходимо разрешить только пакеты, приходящие на опреде-ленный порт, то можно использовать дополнительную опцию рассматри-ваемого критерия —--sport.Команда

#iptables-AINPUT-ptcp--sport5001-jACCEPT

разрешит принимать TCP-пакеты, отправленные с порта номер 5001 неко-торого хоста. Аналогично если необходимо разрешить только пакеты, при-ходящие на определенный порт, то можно использовать дополнительнуюопцию--dport.Команда

#iptables-AINPUT-ptcp--sport5001--dport80-jACCEPT

разрешит обращаться к 80-му порту на локальном хосте только с 5001-гопортана удаленномхосте.

Задать соответствие правила пакетам, имеющим определенный адресисточника, можно с помощью критерия -s, --src. Параметрами критерияявляютсяперечисленныечереззапятую(еслинадозадатьбольшеодного)

IP-адресаилисетивформатеCIDR.Например,команда

# iptables -A INPUT -s 84.130.110.0/24,84.130.3.1 -p tcp --sport5001--dport80 -jACCEPT

разрешит обращаться к 80-му порту на локальном хосте только с 5001-гопортаудаленныххостовизподсети84.130.110.0/24илихоста84.130.3.1.

Задать соответствие правила пакетам, имеющим определенный адресназначения, можно с помощью критерия -d, --dst. Параметрами крите-рия являются перечисленные через запятую (если надо задать больше од-ного)IP-адреса илисети вформатеCIDR.Команда

#iptables-AINPUT-s84.130.110.0/24,84.130.3.1.-d10.12.0.1

-ptcp--sport5001--dport80-jACCEPT

позволитразрешитьобращатьсяк80-мупортуналокальномхостетолькос 5001-го порта удаленных хостов из подсети 84.130.110.0/24 или хоста84.130.3.1, при этом один из интерфейсов локального хоста должен иметьадрес10.12.0.1.


Следует обратить внимание, что выполнение приведенной выше ко-мандыфактическиприведеткдобавлениюдвухправилвцепочкуINPUT:

#iptables-L

ChainINPUT(policyACCEPT)

target protoptsourcedestination

ACCEPT tcp--84.130.110.0/2410.12.0.1tcpspt:5001dpt:80ACCEPT tcp--84.130.3.1                  10.12.0.1tcpspt:5001dpt:80

 

ChainFORWARD(policyACCEPT)

Target protoptsourcedestination

 

ChainOUTPUT(policyACCEPT)

Target protoptsourcedestination

С помощью критерия -i, --in-interface можно ограничить дей-ствиеправилатолькозаданнымвходящимсетевыминтерфейсом.

Например,команда

#iptables-AINPUT-ieth0-s84.130.110.0/24-ptcp--dport80

-jACCEPT

добавит правило, которое сработает только в том случае, когда TCP-пакетна порт 80, исходящий от хостов из подсети 84.130.110.0/24, прибудет наинтерфейс eth0. Настоящий критерий допустимо указывать в правилах, ко-торыедобавляютсявцепочкиPREROUTING,INPUTи FORWARD.

С помощью критерия -o, --out-interface можно ограничить дей-ствие правила только заданным исходящим сетевым интерфейсом. Напри-мер,команда

#iptables-AOUTPUT-oeth1-d84.130.42.0/24-jDROP

запретитлокальнымприложениямотправлятьлюбыепакетыхостамизподсети 84.130.42.0/24 с интерфейса eth1. Этот критерий допустимо указы-ватьвправилах,которыедобавляютсявцепочкиFORWARD,OUTPUT иPOSTROUTING.

Многие критерии (не только универсальные) можно инвертировать,поставивпереднимивосклицательныйзнак.Например,команда

#iptables-AOUTPUT-oeth1!-d84.130.42.0/24-jDROP

запретит локальным приложениям отправлять с интерфейсаeth1 любыепакеты любым хостам, кроме тех, которые входят в подсеть 84.130.42.0/24.Какие критерии поддерживают инвертирование, а какие нет, следует уточ-нятьвдокументации.


Вопросыкразделу3

1. Чемопция-Sкомандыiptablesотличаетсяотопции-L?

2. Запишитекоманду,позволяющуюудалитьчетвертоепосчетупра-вилоизцепочкиPREROUTINGтаблицыraw.

3. Спомощьюкакойкомандыможнозадатьдействиепоумолчанию?

4. ЧемдействиеREJECTотличаетсяот действияDROP?

5. ДлячегоиспользуетсядействиеMARK?Вкакихтаблицахегодопу-стимо использовать?

6. Верноли,чтоспомощьюдействияTPROXYможноосуществлятьпрозрачнуютрансляциюсоединений?

7. ЧемдействиеSNATотличаетсяот действияDNAT?

8. ВкакихтаблицахдопустимоиспользоватьдействиеCT?

9. Длячего нужныпользовательскиецепочкиправил?

10. Какие команды необходимо выполнить, чтобы запретить прило-жениям, работающим на локальном хосте, обращаться в сеть налюбыепорты, кроме 80?

11. Чтосделаеткоманда “iptables -I INPUT -i lo -j ACCEPT”?Какойсмыслвдобавлении этойкоманды вцепочку INPUT?

12. Чтосделаеткоманда“iptables -I INPUT -i eth0 -s192.168.0.0/16 -j DROP”? Какой смысл в добавлении этой ко-мандывцепочкуINPUT?


Раздел4.


Поделиться с друзьями:

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.024 с.