Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Основы сетевой безопасности и журналирование событий операционной системы

Поиск

Информационная безопасность и построение защищённых серверов — отдельное направление в мире информационных технологий. Мы рассмотрим базовые аспекты работы netfilter и iptables — инструмента управления netfilter. Они понадобятся нам для понимания, например, построения сетевого взаимодействия между операционной системой и системой контейнерной виртуализации Docker.

Netfilter — встроенный в ядро Linux сетевой фильтр. Для управления netfilter служит утилита iptables. Основа iptables — таблицы, в которых содержатся цепочки с правилами. Основная работа происходит с двумя таблицами:

  1. Таблица filter. В этой таблице происходит фильтрация входящего и исходящего трафика, а также транзитный трафик.
  2. Таблица nat. Необходима для трансляции адресов и портов.

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

Существует 5 типов стандартных цепочек, встроенных в систему:

  1. PREROUTING — для изначальной обработки входящих пакетов.
  2. INPUT — для входящих пакетов, адресованных непосредственно локальному процессу (клиенту или серверу).
  3. FORWARD — для входящих пакетов, перенаправленных на выход. Заметьте, что перенаправляемые пакеты проходят сначала цепь PREROUTING, затем FORWARD и POSTROUTING.
  4. OUTPUT — для пакетов, генерируемых локальными процессами.
  5. POSTROUTING — для окончательной обработки исходящих пакетов.

Политики для цепочки устанавливаются следующим образом:

iptables -P имя_цепочки Действие

 

Например, iptables -P INPUT ACCEPT разрешит весь входящий трафик, действует для таблицы filter. Если нам необходимо установить политику в конкретной таблице, то через параметр -t нужно передать имя таблицы, например: iptables -t nat -P INPUT ACCEPT. В Ubuntu ACCEPT — политика по умолчанию для всех таблиц и цепочек. Действует правило: разрешено всё, за исключением того, что запрещено.

Правила в цепочках создаются следующим образом:

iptables -A имя_цепочки -p протокол --dport порт -j действие

 

Например: iptables -A INPUT -p tcp --dport 80 -j ACCEPT. В данном правиле мы добавляем в iptables, в таблицу filter правило, разрешающее подключения по протоколу TCP на порт 80 нашего сервера.

Также можно разрешить или ограничить подключения для определённых источников, используя параметр -s — source, например: iptables -A INPUT -p tcp -s 192.168.0.100 --dport 80 -j DROP. Здесь мы запретим все подключения по протоколу TCP, исходящие соединения от хоста с IP-адресом 192.168.0.100 на порт 80 нашего сервера.

Используя таблицу nat, мы можем организовать проброс портов внутрь нашей сети. Для этого необходимо проделать следующее:

  1. Включить переадресацию трафика на уровне ядра, изменив значение параметра net.ipv4.ip_forward на 1: sudo sysctl -w net.ipv4.ip_forward=1.
  2. Убедиться, что политика по умолчанию для транзитного трафика: ACCEPT: iptables -A FORWARD -j ACCEPT.
  3. Настроить модификацию адреса назначения (Destination) DNAT и модификацию адреса отправителя (Source) SNAT. Действие DNAT работает с цепочкой PREROUTING таблицы nat. В этой цепочке будет изменяться адрес назначения пакета, чтобы он достиг нужной нам цели. Действие SNAT работает с цепочкой POSTROUTING таблицы nat. В этой цепочке произойдёт модификация адреса источника и замена его на адрес маршрутизатора. Например:

● iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.2 пробросит все входящие соединения на порт 80 нашего сервера, внутрь сети, на хост 10.0.0.2.

● iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 организует проброс портов входящего трафика с 80-го порта нашего сервера на порт 8080 нашего сервера.

● iptables -t nat -A POSTROUTING -o eth1 -p tcp --dport 80 -d 10.0.0.2 -j SNAT --to-source 10.0.0.1 модифицирует IP-адрес источника из локальной сети на адрес маршрутизатора локальной сети.

Посмотреть текущие правила iptables можно следующим образом:

  1. iptables -t имя_таблицы -L покажет правила, установленные в таблице. Если не указать имя таблицы, будут показаны правила из цепочки filter. Например, iptables -L покажет правила в цепочках таблицы filter, а iptables -t nat -L покажет правила в цепочках таблицы nat.
  2. iptables-save сделает дамп правил и выведет его на экран. Также команду iptables-save можно использовать для сохранения правил в файл: iptables-save > iptables.bk. Восстановить правила можно, используя команду iptables-restore: iptables-restore<iptables.bk.

Практическое задание

  1. Подключить репозиторий с nginx любым удобным способом, установить nginx и потом удалить nginx, используя утилиту dpkg.
  2. Установить пакет на свой выбор, используя snap.
  3. Настроить iptables: разрешить подключения только на 22-й и 80-й порты.
  4. Настроить проброс портов локально с порта 80 на порт 8080.

 

Дополнительные материалы

Основы управления пакетами Ubuntu

Установка snap-пакетов

Основы iptables

Используемые источники

Управление пакетами в Ubuntu

snap

iptables



Поделиться:


Последнее изменение этой страницы: 2021-12-07; просмотров: 86; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.135.67 (0.007 с.)