в этой лекции мы поговорим о команде iptables iptables - это компонент пользовательского пространства,
используемый для настройки netfilter, фреймворк ядра,
который выполняет фактическую фильтрацию, сказано, что iptables принадлежит пользовательскому пространству, а сетевой фильтр
принадлежит пространству ядра, поэтому мы можем взаимодействовать с сетевым фильтром. с помощью команды iptables
также есть несколько графических интерфейсов для сетевого фильтра, которые позволяют нам создавать правила, однако им не
хватает гибкости использования командной строки, и профессионалы Linux в значительной степени полагаются на команду,
которая имеет множество параметров, которые также важно знать что iptables может быть запущен только root,
давайте продолжим и посмотрим, каков общий синтаксис iptables
после того, как команда iptables приходит с именем таблицы имя таблицы указывает на таблицу сетевых фильтров,
на которой команда работает по умолчанию, это команда или опция таблицы фильтров указывает
на операцию, которую мы выполняем в цепочке этой таблицы, разрешены длинные или короткие варианты,
например, мы добавляем правило в конец цепочки, которую мы вставляем правило в определенную позицию, мы
сбрасываем все правила определенной цепочки и таблицы или просто распечатываем все правила цепочки,
каждое правило имеет соответствие и компонент действия, соответствующая часть правила определяет
критерии, по которым пакет должны соответствовать, чтобы связанное действие или цель были выполнены, max
- это то, что определяет особое условие в пакете, которое должно быть истинным или ложным,
и одно правило может содержать несколько совпадений, и все условие правила истинно, если все
совпадения верны, например, мы можем захотеть создать пакеты, которые поступают с определенного хоста или сети
и будут использовать некоторые привилегии в нашей системе, если какое-либо из этих совпадений не удается, например, исходный
адрес неверен, но все остальное верно, все правило терпит неудачу, и следующее правило проверяется
на пакете, но если все совпадения верны, то применяется цель, указанная правилом, тогда идет
минус j, и цель цель указывает, какое действие выполняется с пакетами, соответствующими критериям Примеры
правил для целей: drop accept log или masquerade, мы углубимся в цели
в специальном разделе, достаточно поговорим, давайте перейдем к терминалу и напишем несколько реальных правил iptables
перед тем, как начать писать правила, не забывайте, что только root может работать команде iptables
вам нужен root-доступ, чтобы настроить netfilter или запустить команду iptables, если вы
попытаетесь запустить команду ap tables как пользователь без полномочий root, вы получите ошибку отказа в разрешении
Я выполнил команду iptables как не -root user, и у меня есть ошибка с отказом
в разрешении, в нем очень ясно сказано, что я должен быть грубым, и мне становится хорошо, запустив Sudosu,
теперь я root, давайте запустим ту же команду, что и root,
хорошо, кстати, ошибки нет команда перечисляет таблицу фильтров,
которая используется по умолчанию для цепочек ввода-вывода и пересылки, если вы хотите увидеть правила из других
таблиц, вы должны указать таблицу, используя параметр минус t, например, этот iptables минус t net минус l,
он отобразил цепочки чистый стол в порядке в nex Пример: я
хочу добавить правило для фильтрации таблицы и входной цепочки, которое сначала отбрасывает входящие розовые пакеты.
Я проверяю, что ping работает. ping и IP-адрес linux 1. Это еще один хост Linux,
а его имя хоста - linux2, поэтому ping и IP-адрес другой операционной системы Linux
x10 в конце
ping работает, и теперь правило iptables,
я добавляю правило в таблицу фильтров filter минус ai. Я добавляю правило во входную цепочку,
а maxis протокол - icmp минус минус тип icmp, я максимизирую эхо типа
icmp, в протоколе icmp больше сообщений, и я отбрасываю
только эхо или пакет запроса эха минус j drop ping все еще работает, и я нажимаю ввод,
ОК, он запускает запрос эха, а не эхо
отлично, и мы замечаем, как пинг остановился.
Давайте перечислим содержимое брандмауэра iptables минус l или iptables минус vnl.
Я хочу увидеть больше информации, и есть 30 пакетов, смешанных по правилу,
то же правило может быть применено без параметра минус t. это д efault
это то же самое, давайте попробуем другое правило, я хочу запретить доступ с этого хоста linux к определенному
веб-сайту, скажем, www.ubuntu.com, давайте подумаем об этом требовании и разделим правило
на несколько частей, какую таблицу мы используем, и ответ - фильтр поскольку мы фильтруем трафик,
мы не делаем net или что-то еще, поэтому iptables minus t filter, какую команду или параметр iptables
мы собираемся указать, и ответ - минус a от добавления, мы собираемся добавить новое правило в таблицу,
какая цепочка будет использоваться чтобы соответствовать пакету, это исходящий трафик, и он всегда означает вывод,
и теперь приходят совпадения, какие совпадения требуются для этого типа трафика,
так что это трафик tcp минус p из протокола tcp минус
порт 80 d, трафик идет на порт 80 и минус d IP-адрес назначения www.ubuntu.com
и то, какую цель или действие мы выполняем с максимальным пакетом, и, конечно же, drop минус j drop
j означает перейти к конкретной цели или выполнить следующее действие, когда пакет соответствует против
этого правила цели всегда пишутся прописными буквами,
прежде чем нажимать ввод, я хочу проверить, загружается ли веб-страница
и страница загружается, мы замечаем здесь, что он использует https, а это означает, что порт 443,
поэтому я нажимаю ввод, и я добавление еще одного правила, которое сбрасывает пакет на порт 443,
поэтому на самом деле эти два правила будут блокировать трафик на порт 80 или порт 443,
давайте перезагрузим страницу, и мы заметим, что страница больше не загружается,
если мы перечислим брандмауэр с помощью параметра минус ячейки и vn ok мы видим правила iptables
и множество смешанных пакетов в выходной цепочке, все эти ip-адреса принадлежат wwe
и были получены с DNS-сервера, и мы видим много смешанных или отброшенных пакетов