ansfers_2.6 iptables + auth Flashcards
- Что представляет собой Iptables и для чего он используется в Linux?
Iptables - это утилита в Linux, которая предоставляет средства для настройки правил фильтрации пакетов данных в сети. Она используется для управления сетевым трафиком, применения правил безопасности, маршрутизации и преобразования сетевых пакетов. Iptables позволяет администраторам сети создавать правила для контроля доступа к ресурсам сети, защиты от атак, настройки NAT (Network Address Translation) и других аспектов управления сетевым трафиком.
- Как можно установить Iptables на Linux-системе?
Iptables можно установить с помощью менеджера пакетов дистрибутива.
Для Ubuntu и Debian:
sudo apt update
sudo apt install iptables
Для CentOS и Fedora:
sudo yum install iptables
Для openSUSE:
sudo zypper install iptables
- Какие цели могут быть достигнуты с помощью Iptables?
- Фильтрация пакетов: Iptables позволяет определять правила, которые определяют, какие сетевые пакеты разрешены или блокируются на основе различных критериев, таких как исходный/назначенный IP-адрес, порт, протокол и т.д.
- Преобразование адресов (NAT): Iptables позволяет изменять исходные и назначенные IP-адреса и порты в сетевых пакетах.
- Маршрутизация пакетов: Iptables может использоваться для управления маршрутизацией сетевых пакетов, направляя их через определенные интерфейсы или шлюзы.
- Ограничение скорости: Iptables позволяет ограничивать скорость передачи данных для определенных типов трафика.
- Защита от атак: Iptables может использоваться для обнаружения и предотвращения различных типов атак, таких как атаки отказа в обслуживании (DDoS), сканирование портов и другие.
- Какова роль таблиц в Iptables и сколько их всего?
- Таблица filter: Это основная таблица для фильтрации пакетов. Она используется для принятия решений о том, разрешать или блокировать сетевые пакеты на основе различных критериев, таких как исходный/назначенный IP-адрес, порт, протокол и т.д.
- Таблица nat: Эта таблица используется для преобразования адресов (NAT) и маршрутизации пакетов. Она позволяет изменять исходные и назначенные IP-адреса и порты в сетевых пакетах, а также управлять маршрутизацией трафика.
- Таблица mangle: Эта таблица используется для специальной обработки (модификации) сетевых пакетов. Она может быть использована для изменения заголовков пакетов, маркировки пакетов для QoS (Quality of Service) и других специальных операций.
- Таблица raw: Эта таблица используется для настройки специальных правил, которые применяются к пакетам до того, как они попадут в таблицу conntrack для отслеживания состояния соединений.
- Какие цепи (chains) существуют в таблице filter по умолчанию?
- Цепь INPUT: Эта цепь применяется к входящим пакетам, то есть пакетам, которые направлены на сам сервер или проходят через него.
- Цепь OUTPUT: Эта цепь применяется к исходящим пакетам, то есть пакетам, которые генерируются на сервере и направляются на другие узлы сети.
- Цепь FORWARD: Эта цепь применяется к пакетам, которые проходят через сервер, то есть пакетам, которые не являются ни входящими, ни исходящими, а проходят через сервер в качестве промежуточного узла.
- Какие команды используются для отображения списка правил Iptables?
Для отображения списка правил iptables можно использовать следующие команды:
- iptables -L или iptables –list: Эта команда отображает все текущие правила для всех цепей (chains) в таблице filter.
- iptables -L -n или iptables –list –numeric: Эта команда отображает список правил, но также выводит IP-адреса и порты в числовом формате, а не пытается разрешить их в имена.
- iptables -L -v или iptables –list –verbose: Эта команда отображает список правил с дополнительной информацией, такой как количество пакетов и байт, соответствующих каждому правилу.
- iptables -S или iptables –list-rules: Эта команда выводит список правил в формате, который может быть использован для воссоздания тех же правил с помощью команды iptables.
- iptables -S -t nat или iptables –list-rules -t nat: Эта команда отображает список правил для таблицы NAT.
- Как можно добавить новое правило для разрешения входящего сетевого трафика к определенному порту?
Чтобы добавить новое правило для разрешения входящего сетевого трафика к определенному порту с использованием iptables, вы можете выполнить следующую команду:
iptables -A INPUT -p tcp –dport <порт> -j ACCEPT
Где <порт> - это номер порта, для которого вы хотите разрешить входящий трафик.
- Какие опции можно использовать при добавлении правил с командой iptables?
- -A или –append: Добавляет правило в конец указанной цепи.
- -p или –protocol: Указывает протокол трафика (например, tcp, udp, icmp).
- -s или –source: Устанавливает источник пакетов (IP-адрес или подсеть).
- -d или –destination: Устанавливает назначение пакетов (IP-адрес или подсеть).
- –sport: Устанавливает порт источника (для исходящего трафика).
- –dport: Устанавливает порт назначения (для входящего трафика).
- -j или –jump: Указывает действие, которое следует применить к пакетам, соответствующим условиям (например, ACCEPT, DROP, REJECT).
- Как можно добавить правило для запрета исходящего сетевого трафика от определенного IP-адреса?
sudo iptables -A OUTPUT -s \ -j DROP
Где \ - это IP-адрес, с которого вы хотите запретить исходящий трафик.
Эта команда добавит правило в цепь OUTPUT, которая применяется ко всем исходящим пакетам. Опция -s указывает источник пакетов (в данном случае, определенный IP-адрес), а опция -j DROP указывает, что пакеты, соответствующие этому правилу, должны быть отброшены.
- Какие типы сетевых пакетов могут быть соответствующими условиями при создании правил?
- Источник и назначение IP-адреса: Вы можете создать правила, основанные на источнике и/или назначении IP-адреса пакета.
- Протокол: Вы можете фильтровать пакеты на основе используемого сетевого протокола, такого как TCP, UDP, ICMP и другие.
- Номер порта: Для TCP и UDP пакетов вы можете указать номера портов их источника или назначения.
- Состояние соединения: Вы можете создавать правила, основанные на состоянии сетевого соединения, такие как NEW (новое соединение), ESTABLISHED (установленное соединение) и RELATED (связанное с установленным соединением).
- Интерфейс сетевого устройства: Вы можете фильтровать пакеты на основе входного или выходного интерфейса сетевого устройства.
- Как можно удалить правило Iptables?
- Удаление по номеруsudo iptables -D INPUT 5 # Удаляет пятое правило из цепочки INPUT
- Удаление по спецификации:sudo iptables -D INPUT -s 192.168.1.100 -p tcp –dport 80 -j DROP # Удаляет правило для блокировки входящих TCP-пакетов на порт 80 от IP-адреса 192.168.1.100
- Очистка цепочки:sudo iptables -F INPUT # Очищает все правила из цепочки INPUT
- Удаление всех правил:sudo iptables -F # Очищает все правила из всех цепочек
- Как можно очистить все правила из определенной цепи в Iptables?
Чтобы очистить все правила из определенной цепи в iptables, вы можете использовать команду iptables -F . Если вы хотите очистить все правила из цепочки INPUT, выполните следующую команду:
sudo iptables -F INPUT
- Как можно установить политику по умолчанию для цепи?
Чтобы установить политику по умолчанию для цепи в iptables, вы можете использовать команду iptables -P . если вы хотите установить политику по умолчанию для цепочки INPUT на DROP, выполните следующую команду:
sudo iptables -P INPUT DROP
- Какие команды используются для сохранения и загрузки конфигурации Iptables?
Для сохранения и загрузки конфигурации iptables используются утилиты iptables-save и iptables-restore.
- Сохранение конфигурации iptables:sudo iptables-save > /etc/iptables/rules.v4
- Загрузка конфигурации iptables:sudo iptables-restore < /etc/iptables/rules.v4
- Как можно настроить Network Address Translation (NAT) с помощью Iptables?
Для настройки Network Address Translation (NAT) с помощью iptables вам нужно создать правила маскарадинга (MASQUERADE) для перенаправления трафика с внутренней сети на внешний интерфейс. Вот примеры команд для настройки NAT с использованием iptables:
- Позволить перенаправление пакетов:sudo sysctl net.ipv4.ip_forward=1
- Создание правила маскарадинга для исходящего трафика:sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- Если вам также нужно настроить перенаправление портов, вы можете добавить правила для этого.sudo iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j DNAT –to-destination 192.168.1.100:80
- Сохраните конфигурацию iptables, чтобы она сохранялась после перезагрузки:sudo iptables-save > /etc/iptables/rules.v4
- Как можно создать перенаправление портов с помощью Iptables?
Процедура предполагает настройку обоих направлений передачи данных. Тогда система поймет, откуда пришел пакет и куда возвращать ответ, если тот поступит на маршрутизатор.
- Как можно ограничить доступ к определенным службам или портам с помощью Iptables?
- Откройте терминал и выполните команду sudo iptables -A INPUT -s \ -j DROP, где \ — это IP-адрес, который вы хотите заблокировать.
- При необходимости можно добавить дополнительные правила для блокировки портов или протоколов с помощью команды sudo iptables -A INPUT -s \ -p <протокол> –dport <порт> -j DROP.
После выполнения этих команд IP-адрес будет заблокирован, и все пакеты, исходящие от этого адреса, будут отброшены.
- Как можно настроить логирование событий, соответствующих определенным правилам Iptables?
В качестве примера возьму правило логирования пингов и правило разрешающее их:
iptables -A INPUT -p ICMP –icmp-type 8 -j LOG –log-prefix “Ping detected: “
iptables -A INPUT -p ICMP –icmp-type 8 -j ACCEPT
Изменим критерий в префиксе сообщения, например, так:
iptables -A INPUT -p ICMP –icmp-type 8 -j LOG –log-prefix “Iptables: Ping detected: “
iptables -A INPUT -p ICMP –icmp-type 8 -j ACCEPT
И создать файл /etc/rsyslog.d/iptables.conf со следующим содержанием:
echo ‘:msg, contains, “Iptables: “ -/var/log/iptables.log’ > /etc/rsyslog.d/iptables.conf
echo ‘& ~’ >> /etc/rsyslog.d/iptables.conf
Параметры:
& ~ — говорит о том, что дальнейшую обработку записи производить не следует, поэтому она не попадет в другие файлы логов.
“Iptables: “ — тот самый log-prefix — критерий по которому rsyslog принимает решение перенаправить лог в нужный файл. Префикс можно было и не менять, а оставить как есть — Ping detected, но если правило не одно, то удобнее иметь общий префикс для всех правил, который и был сделан.
/var/log/iptables.log — сам файл лога.
Перезапустить демон rsyslog:
/etc/init.d/rsyslog restart
- Какие таблицы Iptables используются для управления маршрутизацией пакетов?
В iptables, управление маршрутизацией пакетов осуществляется в таблице mangle. Таблица mangle используется для изменения полей заголовков пакетов, и она включает в себя возможности, связанные с маршрутизацией.
В Iptables есть четыре основные таблицы:
- Filter - это основная таблица, используемая для фильтрации пакетов.
- NAT - эта таблица используется для настройки NAT (Network Address Translation).
- Mangle - эта таблица используется для специальной обработки пакетов.
- Raw - эта таблица используется для обхода системы отслеживания состояний.
- Какие цепи Iptables используются для управления Network Address Translation (NAT)?
Цепочки - это последовательности правил, которые применяются к пакетам. В Iptables в таблице NAT есть три встроенные цепочки:
PREROUTING - используется для всего входящего трафика до принятия первого решения о маршрутизации
OUTPUT - применятся для исходящего трафика текущего узла
POSTROUTING - используется для всего исходящего трафика после принятия всех решений о маршрутизации
- Как можно просмотреть текущие статистические данные о цепях и правилах Iptables?
Чтобы посмотреть таблицу правил со счетчиком переданного (полученного) количества байтов (bytes) и пакетов (pkts) используется следующая команда:
sudo iptables [-t таблица] [-L имя цепочки] -n -v
- Какие метки могут быть применены к правилам Iptables и для чего они используются?
ACCEPT — разрешить дальнейшее прохождение пакета по системе;
DROP — выбросить пакет без уведомления отправителя;
LOG — зафиксировать информацию о пакете в файле системного журнала;
MARK — позволяет помечать определенные пакеты, например для маршрутизации, данная метка перестает существовать, как только пакет покинет брандмауэр;
CONNMARK — то же самое, что и MARK, только для соединений;
QUEUE — отправляет пакет в очередь приложению для дальнейшего взаимодействия;
RETURN — прекращение движения пакета по текущей цепочке и возврат в предыдущую цепочку. Если текущая цепочка единственная — к пакету будет применено действие по умолчанию;
REDIRECT — перенаправляет пакет на указанный порт, в пределах этого же узла, применяется для реализации «прозрачного» прокси;
DNAT — подменяет адрес получателя в заголовке IP-пакета, основное применение — предоставление доступа к сервисам снаружи, находящимся внутри сети;
SNAT — служит для преобразования сетевых адресов, применимо, когда за сервером находятся машины, которым необходимо предоставить доступ в Интернет, при этом от провайдера имеется статический IP-адрес;
MASQUERADE — то же, что и SNAT, но главное отличие в том, что может использоваться, когда провайдер предоставляет динамический адрес, создаёт дополнительную нагрузку на систему по сравнению с SNAT;
TOS — позволяет управлять битами в одноименном поле заголовка IP-пакета;
ULOG — более продвинутый вариант записи информации, может писать как в обычный текстовый файл, так и в базу данных;
TTL — используется для изменения значения поля одноименного заголовка IP-пакета, устанавливает время жизни пакета.
- Как можно временно блокировать IP-адрес с помощью Iptables?
Для того, чтобы ограничить доступ к компьютеру более строго, мы можем заменить правило по умолчанию ACCEPT на правило DROP или REJECT с помощью команды
sudo iptables -t [таблица] -P [цепочка] [действие]
Например, следующая команда установит правило по умолчанию для таблицы filter цепочки INPUT действие по умолчанию -отбрасывать пакеты:
sudo iptables -t filter -P INPUT DROP
В таком случае, чтобы разблокировать IP iptables адрес, необходимо будет задать правило для данного IP адреса с действием ACCEPT:
sudo iptables -t filter -A INPUT -i enp0s3 -s 8.8.8.8/32 -j ACCEPT
- Как можно настроить Iptables для автоматической загрузки правил при запуске системы?
Самый простой способ загрузки таблиц - это вызывать загрузку после поднятия основного сетевого интерфейса при помощи параметра post-up, размещенного в файле /etc/network/interfaces
В первую очередь нам потребуется директория, в которой будут храниться файлы с таблицами. В соответствии со стандартом FHS, это будет /etc/iptables/, в ней мы будем хранить файлы с правилами, полученными при помощи iptables-save. Перед настройкой правил сначала сбросим содержимое правил по умолчанию:
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
Теперь посмотрим, что у нас получилось:
iptables-save
У вас должны быть чистые списки правил. Это состояние желательно сохранить на случай необходимости сброса правил.
iptables-save > /etc/iptables/iptables.clean
Я предпочитаю включать в название файла дату и время сохранения правил. Во-первых, так понятнее, что и когда сохранялось, во-вторых, сортировка при просмотре в файловых менеджерах по именам выстроит список файлов по времени их создания.
iptables-save > /etc/iptables/iptables-date +%Y%m%d-%H%M%S
Имя получается длинное, но зато при использовании такого шаблона точно можно определить, в какое время этот файл был получен.
Теперь делаем еще одно действие, которое нам позволит не переписывать название файла с правилами для загрузки. Создаем символическую ссылку на файл, в который мы только что сохранили правила. Пусть это будет файл iptables-20130904-223007, тогда делаем так:
ln -s /etc/iptables/iptables-20130904-223007 /etc/iptables/iptables.default
И последнее, что надо сделать - изменить файл /etc/network/interfaces, дописав одну строчку:
auto eth0
iface eth0 inet dhcp
post-up /sbin/iptables-restore < /etc/iptables/iptables.default
Сохраняем.
Вариация этого способа - размещение скрипта загрузки правил в директории /etc/network/{if-pre-up.d|if-up.d}. В таком случае По соответствующему событию правила будут загружаться автоматически.
- Какие лучшие практики безопасности рекомендуется соблюдать при использовании Iptables для защиты сервера?
Iptables — это программа, которая компилирует и фильтрует трафик на сервере. С её помощью можно ограничить доступ к входящим портам или ограничить исходящий трафик по каким-то правилам. Она нужна, чтобы обеспечить безопасность на уровне сити и не оставлять открытых портов.
Конфигурация iptables состоит из цепочек правил. Все пакеты пропускаются через определенную для них последовательность цепочек и при прохождении пакетом цепочки к нему последовательно применяются все правила этой цепочки. Поэтому при использовании iptables стоит отключать другие межсетевые экраны, чтобы не случилась путаница с правилами.
Что важно помнить про iptables:
· ограничивает доступ на уровне сети;
· конфигурация состоит из цепочек правил;
· управляется командой iptables.
Несколько лучших практик безопасности при использовании iptables:
Установите строгую политику по умолчанию для таблицы filter. Обычно это DROP для входящего и исходящего трафика. Это предотвращает нежелательный трафик, если не определены явные правила.
Минимизируйте количество правил в таблицах, чтобы упростить обслуживание и снизить вероятность ошибок. Удалите ненужные правила и используйте группировку правил, где это возможно.
Отклоняйте доступ к службам, которые не должны быть открыты для общего доступа, чтобы уменьшить поверхность атак.
Регулярно обновляйте свои правила iptables в соответствии с изменениями в сетевой инфраструктуре и требованиями безопасности.
- Что такое Wireshark и для чего он используется?
Wireshark – это мощный инструмент для анализа сетевого трафика. Он позволяет отслеживать, захватывать и анализировать данные, передаваемые по сети. Wireshark предоставляет детальную информацию о каждом пакете, который проходит через выбранный сетевой интерфейс, позволяя исследовать и выявлять проблемы в сетевом взаимодействии.
- Какие операционные системы поддерживают Wireshark?
Программа является кроссплатформенной и поддерживает следующие операционные системы: Windows, Linux, Mac OS X, Solaris, FreeBSD, NetBSD, OpenBSD.
- Как можно установить Wireshark на компьютер?
Для начала нам необходимо скачать и установить программу Wireshark. Так как программа распространяется под лицензией GNU GPL v2 (т.е. может свободно распространяться), то несложно найти любую версию программы в свободном доступе.
Для Ubuntu/Debian: sudo apt install wireshark
- Какие протоколы и сетевые технологии можно анализировать с помощью Wireshark?
Wireshark поддерживает работу с разными видами сетевых протоколов, включая Ethernet, TCP/IP, HTTP, DNS и многие другие. С его помощью можно анализировать как проводную, так и беспроводную сеть. Основной функцией программы является захват и отображение пакетов данных, а также удобная навигация по ним.
- Как можно начать захват сетевого трафика в Wireshark?
При запуске программы можно выбрать захват пакетов интересующей сети.
После двойного нажатия на интерфейсе автоматически будет запущен захват сетевых пакетов.