Настройка файрвола в Linux: команда iptables.

Настройка файрвола в Linux: команда iptables.

Life-Hack - Linux/Хакинг/Хакер/ИБ/Osint

Iptables — это межсетевой экран для операционных систем Linux. Успешно применять этот инструмент могут не только продвинутые пользователи Linux, но и новички. В этом руководстве представлено описание базовых настроек конфигурации этого мощного файрвола.

Iptables работает путем проверки пакетов данных на соответствие определенным критериям и выполнения заданных действий, если пакеты соответствуют этим критериям. Эти критерии и действия определяются в таблицах, которые состоят из набора правил.

В Iptables есть четыре основные таблицы:

  1. Filter - это основная таблица, используемая для фильтрации пакетов.
  2. NAT - эта таблица используется для настройки NAT (Network Address Translation).
  3. Mangle - эта таблица используется для специальной обработки пакетов.
  4. Raw - эта таблица используется для обхода системы отслеживания состояний.

Каждая таблица состоит из набора цепочек. Цепочки - это последовательности правил, которые применяются к пакетам. В Iptables есть три встроенные цепочки:

  1. INPUT - эта цепочка применяется к пакетам, которые предназначены для самой системы.
  2. FORWARD - эта цепочка применяется к пакетам, которые проходят через систему.
  3. OUTPUT - эта цепочка применяется к пакетам, которые исходят из системы.

Общий синтаксис запуска программы выглядит следующим образом:

iptables -t таблица действие цепочка дополнительные_параметры

Перечень основных действий, для выполнения которых используется Iptables:

  1. -A – добавить правило в цепочку;
  2. -C – проверить применяемые правила;
  3. -D – удалить текущее правило;
  4. -I – вставить правило с указанным номером;
  5. -L – вывести правила текущей цепочки;
  6. -S – вывести все активные правила;
  7. -F – очистить все правила;
  8. -N – создать цепочку;
  9. -X – удалить цепочку;
  10. -P – установить действие «по умолчанию».

В качестве дополнительных параметров используются опции:

  1. -p – вручную установить протокол (TCP, UDP, UDPLITE, ICMP, ICMPv6, ESP, AH, SCTP, MH);
  2. -s – указать статичный IP-адрес оборудования, откуда отправляется пакет данных;
  3. -d – установить IP получателя;
  4. -i – настроить входной сетевой интерфейс;
  5. -o – то же самое в отношении исходящего интерфейса;
  6. -j – выбрать действие при подтверждении правила.

Просмотр правил Iptables осуществляется командой:

iptables –L

Также есть возможность указать нужную цепочку, например:

iptables -L INPUT

При любых ошибках в работе Iptables, чтобы исключить нарушение функционирования ядра перед другими действиями, требуется очистить правила, «обнулить» вводные данные. Выполняется эта процедура командой:

sudo iptables –F

Если речь идет об определенной цепочке, то она будет выглядеть иначе:

sudo iptables -F Input

Чтобы заблокировать весь трафик от определенного IP-адреса, вы можете использовать следующую команду:

iptables -A INPUT -s 192.168.0.100 -j DROP 

Чтобы открыть порт для входящего трафика, вы можете использовать следующую команду:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT 

В этой команде -p tcp указывает на протокол (в данном случае TCP), --dport 80 указывает на порт (в данном случае 80), а -j ACCEPT указывает, что все пакеты, соответствующие этому правилу, должны быть приняты.

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

iptables -N MY_CHAIN iptables -A MY_CHAIN -s 192.168.0.100 -j DROP iptables -A INPUT -j MY_CHAIN 

В этом примере команда -N MY_CHAIN создает новую цепочку с именем MY_CHAIN. Затем добавляется правило, которое отбрасывает все пакеты от 192.168.0.100. Наконец, цепочка MY_CHAIN добавляется в цепочку INPUT, что означает, что все входящие пакеты будут также проходить через цепочку MY_CHAIN.

Iptables также может быть использован для создания VPN (Virtual Private Network). Это может быть полезно для создания безопасного соединения между удаленными системами. Например, вы можете использовать iptables для настройки IPsec VPN, используя модуль "policy" для определения правил обработки трафика.

iptables -A INPUT -m policy --dir in --pol ipsec -j ACCEPT iptables -A OUTPUT -m policy --dir out --pol ipsec -j ACCEPT

В этом примере -m policy указывает на использование модуля "policy", --dir in и --dir out указывают на направление трафика, а --pol ipsec указывает на использование IPsec политики.

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

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 

В этом примере -m state указывает на использование модуля состояний, а --state ESTABLISHED,RELATED указывает, что правило применяется только к пакетам, которые являются частью уже установленного или связанного соединения.

Iptables может быть использован для редиректа трафика, что может быть полезно для перенаправления трафика на другой порт или сервер. Например, вы можете перенаправить весь входящий трафик на порт 80 на порт 8080 следующим образом:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 

В этом примере -t nat указывает на использование таблицы NAT, -A PREROUTING добавляет правило в цепочку PREROUTING, --dport 80 указывает на исходный порт, а --to-port 8080 указывает на порт назначения.

Iptables является мощным и гибким инструментом для управления сетью в Linux. Он предлагает широкий спектр функций, включая фильтрацию пакетов, NAT, логирование и многое другое. Однако, несмотря на его мощь, iptables может быть сложным для новичков. Надеюсь, эта статья помогла вам разобраться в основах работы с iptables и дала вам основу для дальнейшего изучения этого мощного инструмента.





Report Page