Расширенные правила брандмауэра (IPTables)
Освойте IPTables для создания сложных брандмауэрных правил с отслеживанием состояния, реализации трансляции сетевых адресов (NAT) и защиты сервера от изощрённых атак.
«Расширенные правила брандмауэра (IPTables)» — бесплатный урок Linux Server Deployment & SSH Mastery на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Linux Server Deployment & SSH Mastery, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.
Углублённое изучение IPTables
IPTables — это мощный встроенный брандмауэр Linux. Мы уже рассмотрели основы, но он также предоставляет расширенные возможности для точного управления.
В этом уроке Вы познакомитесь со сложными правилами, отслеживанием состояний и трансляцией сетевых адресов (NAT), чтобы по-настоящему защищать сеть сервера и управлять ею.
Таблицы и цепочки
IPTables организует правила в таблицы, каждая из которых предназначена для определённой цели. В таблицах находятся цепочки — списки правил, проверяемых по порядку.
- Таблица
filter: таблица по умолчанию, используемая для фильтрации (блокировки или разрешения) пакетов. Содержит цепочкиINPUT,OUTPUT,FORWARD. - Таблица
nat: используется для трансляции сетевых адресов (NAT). Содержит цепочкиPREROUTING,POSTROUTING,OUTPUT. - Другие таблицы, такие как
mangleиraw, предназначены для специализированного изменения пакетов.
Принцип работы брандмауэра с отслеживанием состояний
Брандмауэр с отслеживанием состояний отслеживает состояние сетевых соединений. Вместо отдельной проверки каждого пакета он запоминает, относится ли пакет к существующему установленному соединению.
Основные состояния соединений:
NEW: первый пакет нового соединения.ESTABLISHED: пакеты существующего активного соединения.RELATED: пакеты, начинающие новое соединение, связанное с существующим (например, передача данных по FTP).
Настройка правил с отслеживанием состояний
Правила с отслеживанием состояний значительно упрощают управление брандмауэром. Можно разрешить весь трафик существующих соединений, определяя правила только для инициирования соединений NEW.
Это правило разрешает все входящие пакеты, являющиеся частью уже установленного или связанного соединения:
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTСоздание сложной логики правил
IPTables позволяет объединять различные модули сопоставления и параметры для создания очень точных правил. Это помогает тонко настраивать доступ для разных служб и источников.
Пример: разрешить SSH (порт 22) из определённой подсети (192.168.1.0/24) только для новых соединений.
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -m state --state NEW -j ACCEPTЗнакомство с трансляцией сетевых адресов
Трансляция сетевых адресов (NAT) изменяет сведения о сетевых адресах в заголовке IP-пакетов во время их передачи. Она необходима для:
- Предоставления нескольким устройствам в частной сети доступа через один общедоступный IP-адрес (например, через домашний маршрутизатор).
- Перенаправления портов — направления внешних запросов на внутренние серверы.
Существует два основных типа: трансляция исходного адреса (SNAT) и трансляция адреса назначения (DNAT).
SNAT для исходящих соединений
Трансляция исходного адреса (SNAT) изменяет исходный IP-адрес пакетов. Обычно её используют, когда внутренним серверам требуется доступ в Интернет через шлюзовой сервер с общедоступным IP-адресом.
Маскарадинг — это особая форма SNAT, при которой IP-адрес исходящего интерфейса автоматически используется как исходный IP-адрес. Это удобно при динамических IP-адресах.
Пример: разрешить внутренней сети 192.168.0.0/24 доступ в Интернет через eth0.
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADEDNAT для входящих сервисов
Трансляция сетевых адресов назначения (DNAT) изменяет IP-адрес назначения пакетов. Это идеально подходит для перенаправления портов, когда Вы открываете доступ к сервису, работающему на внутреннем сервере, через общедоступный IP-адрес шлюзового сервера.
Пример: перенаправить входящие веб-запросы (порт 80) на eth0 к внутреннему веб-серверу с адресом 192.168.1.100.
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80Защита от перебора
IPTables помогает защищаться от распространённых атак, таких как попытки входа методом перебора (например, через SSH), ограничивая скорость принятия новых подключений с исходного IP-адреса.
Модуль limit позволяет задать скорость и размер начального всплеска подключений. Не забудьте отклонять последующие подключения после достижения лимита.
Пример: ограничить число новых подключений SSH до 3 в минуту с начальным всплеском в 3 подключения, а остальные отклонять.
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 3/minute --limit-burst 3 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROPЛогика правил IPTables
Рассмотрим сервер, выполняющий роль шлюза. У него есть общедоступный интерфейс eth0 и внутренний интерфейс eth1, подключённый к сети 192.168.1.0/24.
Какая команда IPTables позволит получить доступ из интернета к внутреннему веб-серверу с адресом 192.168.1.50 через порт 80?
Повторение: IPTables
Поздравляем! Вы изучили расширенные возможности IPTables:
- Межсетевой экран с отслеживанием состояния и состояниями
ESTABLISHED,RELATEDиNEW. - Создание сложных правил путём объединения нескольких критериев сопоставления.
- Реализация трансляции сетевых адресов (NAT) для исходящего (SNAT/маскарадинг) и входящего (DNAT/перенаправление портов) трафика.
- Использование модуля
limitдля базовой защиты от атак.
Эти навыки необходимы для создания надёжной и защищённой среды серверов Linux. Не забывайте сохранять правила IPTables после внесения изменений, поскольку по умолчанию они не сохраняются после перезапуска!
Часто задаваемые вопросы
Урок «Расширенные правила брандмауэра (IPTables)» бесплатный?
Да — полный текст урока «Расширенные правила брандмауэра (IPTables)» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Linux Server Deployment & SSH Mastery, подпишись на CoddyKit PRO. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.
Чему я научусь в уроке «Расширенные правила брандмауэра (IPTables)»?
Освойте IPTables для создания сложных брандмауэрных правил с отслеживанием состояния, реализации трансляции сетевых адресов (NAT) и защиты сервера от изощрённых атак. Ты практикуешь Linux Server Deployment & SSH Mastery с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Linux Server Deployment & SSH Mastery?
Предыдущий опыт не требуется. Linux Server Deployment & SSH Mastery на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Расширенные правила брандмауэра (IPTables)»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Linux Server Deployment & SSH Mastery?
Да. Каждый урок Linux Server Deployment & SSH Mastery включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Аудит безопасности сервера
- Расширенные правила брандмауэра (IPTables)
- Обнаружение и предотвращение вторжений
- Централизованное журналирование и интеграция с SIEM