Настройка межсетевого экрана Kali с iptables

LinuxBeginner
Практиковаться сейчас

Введение

Правило межсетевого экрана полезно, только если создаёт нужную границу доступа, сохраняя необходимую службу. Одно добавление разрешающего правила при политике ACCEPT по умолчанию не доказывает ограничения кого-либо.

Эта работа предоставляет выделенную службу Kali и два учебных клиента. Вы изучите исходный доступ, примените упорядоченные правила по источнику в Kali, сохраните и восстановите учебную политику и проверите пути обоих клиентов.

Наблюдайте учебную сеть перед ограничением доступа

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

Работа предоставляет небольшую выделенную сеть внутри виртуальной машины. Учебная служба Kali находится на 172.30.77.10:8080; разрешённый клиент использует 172.30.77.20, а блокируемый — 172.30.77.30. Изначально доступны оба. Это адреса учебной сети, а не публичные цели.

Начните в исходном Terminal хоста Ubuntu. Подготовленная команда training-client делает запрос от указанного учебного клиента. Она работает на хосте, а администрирование межсетевого экрана будет внутри Kali. Выберите общую рабочую папку:

cd /home/labex/project

Сохраните исходное HTTP-состояние разрешённого клиента:

training-client allowed > allowed-before.txt
cat allowed-before.txt

Строка состояния должна содержать 200 OK. Запишите исходный доступ другого клиента:

training-client blocked > blocked-before.txt
cat blocked-before.txt

Он тоже должен сообщить 200 OK; метка называет клиента, которого вы заблокируете, а не исходное состояние.

Теперь войдите в Kali для изучения межсетевого экрана:

kali

Iptables оценивает правила фильтрации пакетов в цепочках. INPUT обрабатывает пакеты, предназначенные этой среде, OUTPUT — созданные локально, а FORWARD — маршрутизируемые. -L INPUT перечисляет входную цепочку; -n сохраняет числовые адреса и порты, а -v включает счётчики:

sudo iptables -L INPUT -n -v

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

Примените и сохраните упорядоченную политику службы

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

Оставайтесь в Kali. -A INPUT добавляет правило в конец входной цепочки, -p tcp сопоставляет TCP, -s — адрес источника, --dport выбирает порт назначения, а -j — действие. Сначала добавьте узкое разрешающее правило:

sudo iptables -A INPUT -p tcp -s 172.30.77.20 --dport 8080 -j ACCEPT

Затем отклоните остальные источники выделенной учебной подсети для того же порта. Префикс /24 определяет диапазон сети 172.30.77.0:

sudo iptables -A INPUT -p tcp -s 172.30.77.0/24 --dport 8080 -j REJECT

Правила оцениваются по порядку. Разрешённый источник совпадает с первым завершающим правилом ACCEPT; другой учебный клиент доходит до последующего REJECT. Обратный порядок отклонил бы и разрешённого клиента. Другие порты и источники продолжают следовать неизменной политике по умолчанию.

Покажите порядок правил и счётчики. --line-numbers включает позицию каждого правила:

sudo iptables -L INPUT -n -v --line-numbers

Первое правило должно разрешать назначенного клиента на TCP 8080, а последующее — отклонять остальной трафик учебной подсети к этой службе.

iptables-save выводит активные правила в восстанавливаемом формате. Сохраните конфигурацию упражнения в общей рабочей папке:

sudo iptables-save > /home/labex/project/training.rules

Оператор оболочки < передаёт файл как стандартный ввод команды. iptables-restore читает сохранённую конфигурацию; здесь вы восстанавливаете ровно те правила упражнения, которые только что сохранили:

sudo iptables-restore < /home/labex/project/training.rules

Это действует только в выделенной сетевой среде Kali. Не очищайте межсетевой экран хоста и не заменяйте политики по умолчанию ради узкого ограничения службы.

Проверьте разрешённый и запрещённый доступ клиентов

На этом шаге вы проверите политику от обоих источников-клиентов и подтвердите доступность учебной службы.

Вернитесь из Kali в Terminal хоста Ubuntu для использования предоставленных клиентских представлений:

exit

Приглашение хоста называет labex. Запишите новый результат разрешённого клиента:

training-client allowed > /home/labex/project/allowed-after.txt
cat /home/labex/project/allowed-after.txt

Он должен по-прежнему сообщать 200 OK.

Следующая команда должна завершиться ошибкой отказа соединения или другой ошибкой соединения: это намеренно заблокированный клиент. Продолжите после ожидаемой неудачи:

training-client blocked

Неудачный запрос заблокированного клиента имеет смысл только при работающем разрешённом пути. Остановка веб-службы нарушила бы оба пути и не продемонстрировала требуемую политику.

Вернитесь в Kali и изучите счётчики после тестов:

kali
sudo iptables -L INPUT -n -v --line-numbers

Счётчики нужных правил должны увеличиться. Вы проверили реальное поведение трафика и текст правил; Terminal хоста LabEx остаётся доступным на всём протяжении упражнения.

Резюме

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