Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Топ:
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Интересное:
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Дисциплины:
2022-10-10 | 12 |
5.00
из
|
Заказать работу |
|
|
Общиесведения
Основная настройка МЭ осуществляется с помощью утилит iptables иip6tables. В дальнейшем будет рассмотрена в основном функциональностьiptables, так как с точки зрения конфигурирования МЭ отличий не так ужмного. Детальное рассмотрение отличий протоколовIPv4 и IPv6 выходитзарамкинастоящего пособияиможетбытьнайдено вдругих работах.
В общем виде синтаксис команды iptables может быть определен сле-дующимобразом:
iptables[таблица]команда[цепочка[параметры]]
Квадратные скобки означают необязательность компонента, то есть,например, имя таблицы можно не указывать (в этом случае подразумевает-ся работа с таблицей filter). При каждом вызове должна быть задана ко-манда и в зависимости от нее цепочка, с которой необходимо работать, идополнительныепараметры,собственноопределяющиекритерии,дей-ствия и другую необходимую информацию. Команда в сокращенной фор-ме обозначается заглавной буквой (например, -L), но может задаваться и вполной форме (например, --list; обратите внимание на два символа де-фиса).
Дляуказанияименитаблицыиспользуетсяопция-t,например,
-t nat. Вывести список правил можно с помощью команды -L (--list).Следующая команда выводит список правил таблицы filter, поскольку явнотаблицане задается:
#iptables-L
ChainINPUT(policyACCEPT)
target protoptsource destination
ChainFORWARD(policyACCEPT)
target protoptsource destination
ChainOUTPUT(policyACCEPT)
target protoptsource destination
Здесь и далее «машинным» шрифтом показан ввод в консоли, а сим-вол “#” в приглашении командной строки показывает, что команда выпол-няется с правами администратора системы. В указанном случае можно ви-деть,чтовсецепочки таблицыfilter не содержатправил.
Ключ-n заставляетвыводитьвместосимволическихименхостовIP-адреса,-v—включитьввыводинформациюосчетчиках,а
|
--linenumbers—пронумероватьправила(номераправилиспользуют-сявдругихкомандах;правиланумеруются с единицы):
#iptables-L-traw-nv--line-numbers
ChainPREROUTING(policyACCEPT2612Gpackets,3028Tbytes)
numpktsbytestargetprotoptinoutsource destination1176G311TCTall--**0.0.0.0/084.130.160.64/27CT
notrack
2205G296TCTall--**0.0.0.0/00.0.0.0/0match-setnotrackdstCTnotrack
310G526GCTtcp--**0.0.0.0/084.130.160.0/21tcp
flags:0x17/0x02CTnotrack
ChainOUTPUT(policyACCEPT13Gpackets,28Tbytes)
Numpktsbytestargetprotoptinoutsourcedestination
Команда -A (--append) позволяет добавить новое правило в конецзаданной цепочки в заданной таблице, команда -I (--insert) позволяетвставить правило в заданную цепочку заданной таблицы на заданную но-мером позицию (остальные правила сдвигаются вниз; если же номер не за-дан,правилодобавляетсявначалоцепочки),команда-R (--replace)позволяет заменить правило с заданным номером, -D (--delete) позволя-ет удалить правило либо с заданным номером, либо с заданной специфи-кацией (то есть, например, можно при вызове iptables заменить -A на -D исоответствующее правило будет удалено), команда -F (--flush) удаляетвсе правила из заданной цепочки, либо правила из всех цепочек заданнойтаблицы(если цепочка неуказана).
Команда -S (--list-rules) подобно команде -L выводит списокправил,новформате,пригодномдляиспользованиясутилитойiptables-restore:
#iptables-S-traw
-PPREROUTINGACCEPT
-POUTPUTACCEPT
-A PREROUTING -d 94.230.160.64/27 -m comment --comment "notrackincomingconnectionstonatusers" -jCT--notrack
-APREROUTING-mset--match-setnotrackdst-mcomment
--comment "notrack incoming connections to users with externalip"-jCT --notrack
-A PREROUTING -d 94.230.160.0/21 -p tcp -m tcp --tcp-flagsFIN,SYN,RST,ACKSYN -jCT-notrack
С помощью команды -C (--check) можно проверить, существует липравило с заданной спецификацией в заданной цепочке заданной таблицы.В случае успешности проверки iptables передает ОС код возврата 0 (узнатькод возврата предыдущей команды можно, например, с помощью команды“echo $?”). Команда -Z (--zero) позволяет обнулить счетчики для за-данного по номеру правила, либо для всех правил в цепочке, либо для пра-вилво всехцепочках заданной таблицы.
Для того чтобы задать действие по умолчанию, в базовой таблице ис-пользуется команда -P (--policy). Например, для того чтобы в качестведействия по умолчанию в цепочке INPUT таблицы filter отбрасывать паке-ты,нужновыполнитьследующуюкоманду:
|
#iptables-PINPUTDROP
Для манипулирования пользовательскими цепочками существуют трикоманды:-N (--new-chain)позволяетсоздатьновуюцепочку,-X(--delete-chain)позволяетудалитьцепочкусзаданнымименем,-E(--rename-chain)позволяетпереименоватьцепочку.Удалитьможнотолько цепочку, не содержащую правил, и на которую нет ссылок из дру-гихцепочек.
Действиявтаблицеfilter
Таблица filter предназначена для пропуска или запрета соединений ипакетов, то есть для того, что называется фильтрацией трафика. Настоящаятаблица содержит цепочки INPUT, FORWARD и OUTPUT. Обычными дей-ствиями, которые применяются правилами в указанной таблице, являютсяACCEPT,DROPиREJECT.
В том случае, если пакет надо пропустить (то есть прекратить его об-работкувтекущейбазовойцепочке),применяетсядействиеACCEPT.Вэтом случае пакет в соответствии с алгоритмом обработки пакетов, опи-санным в главе 2, может продолжить свой путь по правилам других базо-выхцепочек вдругихтаблицах:
#iptables-PINPUTDROP
#iptables-AINPUT-s84.103.20.1-jACCEPT
В этом случае приложениям на локальном хосте запрещается полу-чать любые пакеты, кроме тех, которые исходят от хоста 84.103.20.1. Дей-ствие ACCEPT может быть применено и в пользовательской таблице. Вэтом случае пакет точно так же покинет базовую таблицу (что отличаетсяотдействияRETURN,см.далее).
В том случае, когда требуется заблокировать пакет, применяется дей-ствие DROP. В этом случае пакет прекращает свое прохождение по прави-ламцепочки,атакже по сетевомустекухостаиотбрасывается.
#iptables-PINPUTACCEPT
#iptables-AINPUT-s84.103.20.1-jDROP
Здесь приложениям на локальном хосте запрещается получать пакетыотхоста84.103.20.1.Пакетыотлюбых другиххостовнеотбрасываются.
Действие REJECT похоже на DROP, но отличается от него тем, что ис-точникуотброшенногопакетаотправляетсяуведомлениепопротоколуICMPоботказевдоставкепакета.Поумолчаниюоботказесообщается
отправкойICMP-пакетатипа“icmp-port-unreachable”.Принеобхо-димости отправить ICMP-ответ другого типа можно воспользоваться оп-цией --reject-with:
# iptables -A INPUT -s 84.103.20.1 -j REJECT --reject-withicmp-host-prohibited
ДопустимыетипыICMP-ответов:“icmp-net-unreachable”,“icmp-host-unreachable”, “icmp-proto-unreachable”, “icmp-net-prohibited”,“icmp-host-prohibited”.
В случае, если необходимо прервать TCP-соединение средствами про-токола TCP (отправив источнику пакет RST), также следует применить оп-цию--reject-with,носдругим типом ответа:
|
#iptables-AINPUT-ptcp-s84.103.20.1-jREJECT
--reject-withtcp-reset
В большинстве случаев при необходимости заблокировать трафик отхоста или сети используют действие DROP, так как отсутствие каких-либоответов затрудняет процедуру сканирования хоста или сети, которую мо-жетпроводитьзлоумышленник.
Действиявтаблицеmangle
Таблица mangle предназначена для модификации атрибутов пакетов, атакже классификации и маркировки пакетов и соединений. Настоящая таб-лицасодержитцепочкиPREROUTING,INPUT,FORWARD,OUTPUT иPOSTROUTING. Обычными действиями, которые применяются правилами вуказанно таблице, являются TTL (HL для IP6v), TOS, DSCP, TCPMSS, ECN,TCPOPTSTRIP, TPROXY, MARK и CONNMARK. Рассмотрим некоторые из нихподробнее.
Действие TTL позволяет задать значение полю TTL (Time To Live) па-кета. В соответствии с правилами протокола IPv4 на каждом хопе (припрохождении очередного маршрутизатора) значение поля TTL уменьшает-ся на единицу, и при достижении этим значением нуля пакет уничтожает-ся. Широко известен прием, позволяющий отменить уменьшение значенияполя TTL на маршрутизаторе, что приводит к его «прозрачности» для ути-литтипаtraceroute:
#iptables-tmangle-IPREROUTING-jTTL--ttl-inc1
Поддерживаются опции --ttl-set (установить поле TTL в заданноезначение),--ttl-inc(увеличитьзначениеполяназаданнуювеличину)и
--ttl-dec(уменьшить значение поляна заданную величину).
Аналогом действия TTL для IPv6 является действие HL, изменяющеезначение поля HL (Hop Limit). Поддерживаются опции --hl-set (устано-витьполе HLв заданноезначение),--hl-inc(увеличить значениеполя на
заданную величину) и --hl-dec (уменьшить значение поля на заданнуювеличину).
ДействиеDSCPспомощьюопций--set-dscpи--set-dscp-classпозволяет управлять значением поля DS в заголовке IP-пакета, что можетбыть необходимо для управления и классификации трафика с целью под-держки механизмов качества обслуживания (QoS). Действие TOS с опция-ми--set-tos,--and-tos,--or-tos и--xor-tos, посути,аналогичнои позволяет манипулировать всеми битами поля TOS (а не только млад-шими шестью,как действиеDSCP).
ПредусмотренавозможностьманипуляцийсTCP-сегментами.ДляэтогоприменяютсядействияTCPMSS,ECN иTCPOPSTRIP.Спомощьюдействия TCPMSS можно установить значение поля MSS (Maximum Seg-ment Size) в исходящих или транзитных TCP сегментах. В тех случаях, ко-гда по каким-либо причинам ICMP-сообщения о необходимости фрагмен-тации не могут быть доставлены, возникает ситуация, известная как “pathMTU discovery black hole”. Одним из возможных способов в этой ситуацииможетбытьуменьшениемаксимальногоразмераTCP-сегмента:
|
#iptables-tmangle-IFORWARD-ptcp-jTCPMSS--set-mss1400
либоего«подгонка»подминимальнодопустимыйMTUспомощьюопции
--clamp-mss-to-pmtu:
#iptables-tmangle-IFORWARD-ptcp--tcp-flagsSYN,ACKSYN
-jTCPMSS--clamp-mss-to-pmtu
Действие ECN позволяет обнулить флаги CWR и ECE в TCP-заголовке(и, таким образом, не затрагивает ECN-биты в IP-заголовке), что можетбыть необходимо в редких случаях решения проблем с работой алгоритмауправлениянасыщениемTCP-соединения.
Действие TCPOPTSTRIP позволяет удалить заданные опции из заго-ловкаTCP-пакета,чтотакжеявляетсядостаточноредкоиспользуемойвозможностью.Например,дляудаленияопцииMSSизTCP-сегментов,уходящих схоста,можновыполнитькоманду:
#iptables-tmangle-APOSTROUTING-ptcp-jTCPOPTSTRIP
--strip-optionsmss
Действие MARK позволяет задать специальную отметку пакету (марки-ровку), которая не изменяет сам пакет, но позволяет идентифицироватьпакет в других подсистемах ядра (например, в подсистеме ограниченияскоростисоединений).Спомощьюопций--set-mark,--set-xmark,
--or-mark, --and-mark и --xor-mark можно установить и изменить32-битнуюотметку.ЦелесообразноделатьэтовцепочкеPREROUTING.Отметка действует в пределах сетевого стека локального хоста, то есть неможетбытьпередана на другой хост:
#iptables-tmangle-APREROUTING-d84.130.10.11-ptcp-mtcp
--dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -j MARK --set-xmark0x60/0xffffffff
ДействиеCONNMARKпозволяетпромаркироватьсоединение.Спомо-щьюопций--set-mark,--set-xmark,--or-mark,--and-markи
--xor-markможноустановить32-битнуюотметку.Кромеэтого,можноперенести отметку из пакета в соединение с помощью опции
--save-markи выполнить обратное действие с помощью опции
--restore-mark.
ДействиеTPROXYпозволяетобеспечитьподдержкупрозрачногопрок-сирования(дляработыэтогомеханизманеобходимсоответствующийпрокси-сервер, например, squid или nginx). Подробное описание работынастоящего механизмавыходитзарамкинастоящего пособия.
Как было указано в главе 2, правила цепочек таблицы mangle пакетыпроходят раньше, чем правила цепочек таблиц nat и filter, что позволяетиспользовать классификацию соединений и постановку маркеров на паке-ты в правилах этих таблиц (например, для управления трансляцией адре-сов).
Действиявтаблицеnat
Таблица nat предназначена для операций трансляции сетевых адресов.НастоящаятаблицасодержитцепочкиPREROUTING,OUTPUT,POSTROUTING. Трансляция сетевых адресов имеет смысл, если выполняет-ся на маршрутизаторе, то есть хосте, имеющем несколько интерфейсов,подключенным к разным сетям, и пропускающим трафик из одной сети вдругую. Обычными действиями, которые применяются правилами в ука-заннойтаблице, являютсяSNAT, MASQUERADE,DNATиREDIRECT.
|
Действие SNAT позволяет подменять адрес источника в уходящих смаршрутизаторатранзитныхпакетахигарантируетобратнуюзаменувтранзитных пакетах, приходящих в качестве ответов. Его целесообразноприменять в цепочке POSTROUTING. Пусть, например, у маршрутизатораесть два интерфейса: eth0 подключен к локальной сети 192.168.11.0/24 иимеет адрес 192.168.11.1, а eth1 подключен к сети 84.103.100.0/30 и имеетвнешний(глобальномаршрутизируемый)адрес84.103.100.1(тоесть
«смотрит» в Интернет). В этом случае для того, чтобы хосты локальной се-ти имели доступ к Интернету и могли получать ответы от хостов из Ин-тернета,необходимоорганизоватьтрансляциюадресов:
# iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source84.103.100.1
С помощью опции -o <имя_интерфейса>можно ограничить дей-ствие правила заданным сетевым интерфейсом. Действие MASQUERADE ра-ботает аналогично действию SNAT, но имеет смысл только в тех случаях,когда адрес на внешнем интерфейсе маршрутизатора не является статиче-ским.
Действие DNAT позволяет подменять адрес назначения в пакетах, при-ходящихнамаршрутизатор,чтоприводит,посути,кпереадресации,или
«пробросу», запросов (в широком смысле), адресованных маршрутизатору,другому хосту. Как правило, «проброс» внутрь локальной сети выполняет-ся только для некоторых портов. Например, если внутри сети работает веб-сервер на порту 8080 хоста 192.168.11.42, который нужно сделать доступ-ным из Интернета, можно организовать трансляцию адресов следующимобразом:
# iptables -t nat -A PREROUTING -d 84.103.100.1 -p tcp --dport8080-jDNAT--to-destination192.168.11.42
При этом, разумеется, нужно удостовериться, что соединения на порт8080 не запрещены в таблице filter и разрешена передача пакетов по ужеустановленными связанным соединениям.
Действие REDIRECT позволяет «перенаправить» соединение на задан-ный портлокальногохоста,тоестьзаменитьномерпортавTCP- илиUDP-пакете и заменить адрес назначения на один из собственных адресов(использоватьадресдругогохоста нельзя). Например,команда
#iptables-tnat-APREROUTING-ieth0-ptcp--dport80-jRE-
DIRECT--to-port8080
перенаправит пакеты, приходящие из локальной сети и имеющие в каче-стве порта назначения 80 (HTTP-запросы), на порт 8080 маршрутизатора,на котором может «слушать» прокси-сервер. При этом также нужно удо-стовериться, что соединения на порты 80 и 8080 не запрещены в таблицеfilter и разрешена передача пакетов по уже установленным и связаннымсоединениям.
3.5. Действиявтаблицахrawиrawpost
Таблица raw предназначена для выполнения действий с пакетами допринятия решения об их обработке системой отслеживания соединений(conntrack). В этой таблице критерии, связанные с подсистемой отслежи-ваниясоединений,неработают.НастоящаятаблицасодержитцепочкиPREROUTING,OUTPUT.Обычнымидействиями,которыеприменяютсякпакетам, являются NOTRACK, CT и RAWDNAT. Таблица rawpost предназначе-на для размещения правил изменения адреса источника в обход системыconntrack. НастоящаятаблицасодержитцепочкуPOSTROUTING иедин-ственнымдопустимымдействиемвправилахэтойтаблицыявляетсяRAWSNAT.
Применение действия NOTRACK к пакету приводит к тому, что он пе-рестает отслеживаться системой conntrack, но продолжает свое прохожде-ние по сетевому стеку и правилам в цепочках других таблиц. Например,если требуется запретить отслеживание пакетов (например, чтобы разгру-зитьресурсымаршрутизатора,таккакбезспециальнойаппаратнойпод-
держки система conntrack требует времени центрального процессора и до-полнительных объемов памяти на каждое новое соединение), то применя-ется:
#iptables-traw-APREROUTING-d84.130.160.64/27-jNOTRACK
ДействиеCTпредставляетсобойрасширенныйвариантдействияNOTRACK и позволяет изменять некоторые настройки системы conntrack.Функционально аналогичным действию NOTRACK является действие CT сключом--no-track:
#iptables-traw-APREROUTING-d84.130.160.64/27-jCT
--no-track
С помощью ключа --helper можно подключить к обработке соеди-ненияодинизспециальныхмодулейподдержки(дляпротоколовFTP,SIPи других). С помощью ключа --ctevents можно задать список событий всистеме conntrack, которые будет порождать пакет (как правило, опять же сцельюуменьшенияпотребляемыхвычислительныхресурсов).
Действия RAWDNAT/RAWSNAT позволяют выполнить трансляцию сете-вых адресов и портов без учета состояний соединений, что при большомколичестве соединений (например, на загруженном маршрутизаторе) поз-воляетсущественноэкономитьресурсы.Например,комбинацияправил:
#iptables-traw-APREROUTING-d84.130.100.64-jRAWDNAT
--to-destination10.12.0.0/21
#iptables-trawpost-APOSTROUTING-s10.12.0.0/21-jRAWSNAT
--to-source84.130.100.64
функциональноэквивалентнаследующемуправилу
# iptables -t nat -A POSTROUTING -s 10.12.0.0/21 -j SNAT --to-source84.130.100.64
Однако на практике такой подход применяется редко, так как зача-стую без использования возможностей (критериев), предоставляемых си-стемойотслеживания соединений,обойтисьне получается.
|
|
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!