Защита вашей сети с помощью Iptables - Proxy - NAT - IDS: ЧАСТЬ 2

В сообщение переднего Мы видели конфигурацию IPTables для работы в качестве межсетевого экрана. Теперь мы можем увидеть, как создать эти сценарии, чтобы правила выполнялись автоматически при запуске системы, а также как мы можем на мгновение устранить или остановить эти правила.

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

NAT и контекст примера.

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

В то время как, когда мы говорим о NAT, мы говорим о маршрутизации пакетов из локальной или частной сети в публичную сеть или Интернет. Он делает это, маскируя пакеты, помещая общедоступный IP-адрес, с которым они выходят в Интернет. Другими словами, нам не нужен маршрутизатор, поскольку публичный IP-адрес напрямую принадлежит компьютеру GNU / Linux.

натуральный

Мы будем работать с этим под лозунгом, что мы используем наш Linux в качестве маршрутизатора / брандмауэра для выхода в Интернет из локальной сети. Но здесь могут возникнуть два сценария.

  • Что наш линукс находится между роутером провайдера услуг и локальной сетью.

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

  • Что у нашего Linux есть интерфейс, подключенный к локальной сети, и через другой интерфейс он получает напрямую общедоступный IP-адрес, по которому он перемещается.

Это означает, что наш Linux должен использовать NAT, чтобы пакеты могли достигать Интернета.

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

Затем для выполнения NAT мы используем синтаксис

 iptables -t nat -A РАЗМЕЩЕНИЕ -O eth1 -j МАСКЕРАД

Где eth1 - это интерфейс, через который мы получаем общедоступный ip, то есть куда мы идем в Интернет.

MASQUERADE используется, когда IP является общедоступным, но может меняться со временем (динамически). В противном случае мы можем использовать SNAT –to-source ip.

Создание скрипта iptables

Предположим, что: 172.26.0.0 - это наша локальная сеть, а 81.2.3.4 - это общедоступный IP-адрес, с которым мы выходим в Интернет. (это статический ip). Имею интерфейсы eth0 (Локальная сеть)

eth1 (публичная сеть).

В основном он состоит из создания сценария, который можно вызвать из /etc/init.d/firestop (например). и из этого сценария мы можем запускать, останавливать или проверять состояние нашей конфигурации, как и любой системный демон.

Предположим, мои правила IPTABLES ТАКИЕ:

#! / bin / bash # Брандмауэр моего дома. # Имя файла / etc / firewall_on # Автор Jlcmux Twitter: @Jlcmux # # Базовая политика. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT для совместного использования Интернета с eth0 на eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT --to-source 81.2.3.4
# # Разрешить входящие соединения, инициированные моими iptables -A FORWARD -m state --state ESTABLISHED, RELATED -j ACCEPT # # Авторизованный исходящий трафик iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT iptables -A ВПЕРЕД -i eth0 -o eth1 -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
Не забываем давать разрешения на выполнение

объяснение:

Сценарий в основном делает следующее:

  1. Сначала ограничьте всю навигацию, соединения и трафик. (Основные политики брандмауэра)
  2. Затем создайте NAT с местом назначения eth1. указывая, что у нас есть статический публичный IP «81.2.3.4»
  3. Открывает порты, необходимые для приема пакетов инициированных мной соединений.
  4. Принимает исходящий трафик HTTP, HTTPS и DNS.
Правила предназначены для ПЕРЕДАЧИ трафика, потому что мы используем наш Linux в качестве маршрутизатора, поэтому политики используются для трафика, который ПРОХОДИТ через Linux, то есть он действует как посредник. Это означает, что наш Linux не может напрямую перемещаться или получать какие-либо данные. Это относится только к компьютерам, подключенным к нему, но не к самому себе

Если мы хотим использовать наше оборудование для навигации, мы должны повторить строки и изменить FORWARD на INPUT или OUTPUT в зависимости от ситуации.

Отменить скрипт.

Теперь мы собираемся создать сценарий, который отменяет все вышеперечисленное и оставляет компьютер чистым от всего этого. (Для тестирования или мы просто хотим отключить брандмауэр).

#! / bin / bash # Брандмауэр моего дома. # Имя файла / etc / firewall_off # Автор Jlcmux Twitter: @Jlcmux # # Удаление правил iptables -F # # Применение политик по умолчанию (весь трафик принят) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

Автоматизация.

Теперь мы должны создать сценарий внутри /etc/инит.д/ и сервис запускается автоматически, и мы можем управлять им более комфортно.

#! / bin / bash # Брандмауэр моего дома. # Имя файла /etc/init.d/ firewall # Автор Jlcmux Twitter: @Jlcmux case $ 1 в начале) / etc / firewall_on ;; стоп) / etc / firewall_off ;; статус) iptables -L ;; *) echo "Неверный синтаксис. Valid = /etc/init.d/ firewall start | stop | status ;; esac

объяснение:

Этот последний сценарий, который мы добавили /etc/инит.д/ с именем брандмауэр. Итак, если мы хотим управлять брандмауэром, мы можем использовать команду /etc/init.d/ firewall start. Таким же образом мы можем остановить это или увидеть состояние.

Теперь мы собираемся редактировать файл /etc/rc.local и ставим что-то вроде: /etc/init.d/ firewall start для начала с системой.

Также. Это вторая часть. Я надеюсь, что это принесло что-то вам всем. Далее мы видим прокси и IDS.


7 комментариев, оставьте свой

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Данхантер сказал

    Если вы используете Debian, в репозитории есть пакет (iptables-persistent), который делает именно это, он сбрасывает текущие правила в /etc/iptables/rules.v4 или v6 в зависимости от того, что вы используете, а затем применяет их к вам. когда вы поднимаете систему.

  2.   OCZ сказал

    На практике, чтобы очистить конфигурацию обычного межсетевого экрана iptables (а с моей точки зрения использование NAT было бы другим), в большинстве случаев будет достаточно сброса правил и сброса политик по умолчанию на ACCEPT.
    Но теоретически, насколько я знаю, в дополнение к этому вам также необходимо очистить нестандартные строки и сбросить счетчики. Действия следует выполнять с учетом того, что помимо «фильтра» есть и другие таблицы, (для этого необходимо прочитать файл «/ proc / net / ip_tables_names»).

    Между прочим, ортодоксальное мнение гласит, что брандмауэр должен быть включен раньше, чем сеть. Я не знаю, как это достигается в других системах Linux, но в типе Debian сценарий может быть адаптирован и помещен в каталог «/etc/network/if-pre-up.d/».

    Хорошая защита всех. 😉

  3.   НАУТИЛУС сказал

    Здравствуйте, пост очень хороший. Я прочитал все 2 тома.

    Жду следующего 🙂

  4.   анонимный сказал

    Вопрос от моего незнания, мы продолжаем с iptables, но для нескольких версий ядра у нас есть nftables, я уже тестирую, вопросы в том, является ли nftables чем-то бета-версией по отношению к iptables? Будет ли iptables использоваться дольше?

    Спасибо.

    1.    Юкитеру сказал

      nftables включает в себя все функции iptables, ip6tables, arptables и ebtables, используя новую инфраструктуру как в пространстве ядра, так и в пространстве пользователя, что обеспечивает лучшую производительность и улучшенную функциональность. nftables заменит iptables и все другие упомянутые инструменты, но не на данный момент, по крайней мере, до тех пор, пока nftables как таковой не станет более широко использоваться.

  5.   Александр сказал

    очень хороший пост, я хотел прочитать больше, так как он очень хорошо объяснен .. привет спасибо большой вклад

  6.   Авра сказал

    Здравствуйте! Очень хорошие оба поста.
    В качестве вклада вы можете добавить в конец этой части:

    «Теперь мы собираемся отредактировать файл /etc/rc.local и поместить что-то вроде: /etc/init.d/firestop start, чтобы он запускался вместе с системой».

    Добавьте это в rc.local.

    если [-x /etc/init.d/ firewall]; тогда
    /etc/init.d/ firewall start
    fi

    Это означает, что если «брандмауэр» имеет разрешения на выполнение, выполните его, если нет.
    Если вы хотите, чтобы "брандмауэр" не запускался, вам просто нужно удалить разрешения.

    Например: chmod + x /etc/init.d/ firewall
    чтобы он запускался при каждом запуске или ...
    chmod -x /etc/init.d/ брандмауэр
    чтобы полностью отключить его.

    Привет!