вторник, 7 ноября 2023 г.

Использование маскарада с Iptables для трансляции сетевых адресов (NAT) MASQUERADE

 

Реализация маскарада с помощью Iptables

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

Шаг 1. Добавление правила маскирования в цепочку POSTROUTING

Выполните следующую команду в терминале Linux:

$iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Эта команда добавляет в цепочку POSTROUTING таблицы NAT правило, которое сопоставляет все исходящие пакеты, проходящие через интерфейс eth0, и заменяет их исходный IP-адрес на IP-адрес интерфейса eth0.

    • Параметр -t используется для указания таблицы, с которой мы хотим работать, в данном случае это таблица NAT.

    • Опция -A используется для добавления нового правила в цепочку.

    • Опция -o используется для указания исходящего интерфейса, через который проходят пакеты.

    • Параметр -j используется для указания цели правила, которым в данном случае является MASQUERADE, что означает, что исходный IP-адрес пакета должен быть замаскирован.

После добавления этого правила исходный IP-адрес любого исходящего пакета, проходящего через интерфейс eth0, маскируется IP-адресом интерфейса eth0.

Шаг 2. Указание IP-адреса для маскировки

По умолчанию правило маскировки применяется ко всем исходящим пакетам на всех интерфейсах. Однако можно указать конкретный интерфейс для маскировки с помощью параметра -s, за которым следует IP-адрес интерфейса.

Выполните следующую команду:

$iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE

Примечание. Правило маскировки применяется только к пакетам, отправляемым через интерфейс eth1.

Шаг 3. Указание исходного IP-адреса для маскировки

Правило маскировки заменяет исходный IP-адрес всех исходящих пакетов на IP-адрес исходящего интерфейса по умолчанию.

Выполните следующую команду, чтобы указать другой исходный IP-адрес, используя параметр –to-source, за которым следует IP-адрес:

$iptables -t nat -A POSTROUTING -o eth0 --to-source 203.0.113.1 -j MASQUERADE

Примечание. Эта команда маскирует все исходящие пакеты с IP-адресом 203.0.113.1.