US: +1 561 2500001/EU: +359 2 4925555 LiveChat
[email protected] Sign Up Login
ITLDC
  • SSD VDS
  • HD VDS
  • Серверы
  • Хостинг
  • Поддержка
  • Блог
  • Контакт
  • [EN]
  • [UA]
  • SSD VDS
  • HD VDS
  • Серверы
  • Хостинг
  • Поддержка
  • Блог
  • Контакт
  • [EN]
  • [UA]

Популярно об iptables

Популярно об iptables

Мар 28, 2014DmitryНовости

В операционной системе Linux есть мощный инструмент для управления трафиком — межсетевой экран (firewall), который называется iptables. Помимо базовых возможностей, связанных с безопасностью, iptables и сопутствующие модули ядра могут использоваться для множества применений: обеспечения трансляции адресов и портов, установки приоритетов и т.д. Давайте рассмотрим примеры использования iptables для основных, базовых задач. Для начала — общий, базовый синтаксис вызова iptables для установки правил:

1
iptables -A очередь -s источник -j действие

Удалить все правила с определенной очереди можно с помощью ключа -F:

1
iptables -F очередь

Самая простая задача файрвола — блокировка всего трафика в сторону нашего сервера с определенного IP. Для этого необходимо выполнить такую команду:

1
iptables -A INPUT -s 1.2.3.4 -j DROP

При установке такого фильтра все IP-пакеты с адреса 1.2.3.4 будут уничтожаться на входе. В том случае, если отправителю нужно указать, что для него узел недоступен, нужно использовать несколько видоизмененное правило:

1
iptables -A INPUT -s 1.2.3.4 -j REJECT

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

В правилах можно использовать также фильтрацию по протоколам. Например, можно заблокировать только UDP с определенного отправителя:

1
iptables -A INPUT -p UDP -s 1.2.3.4 -j DROP

В следующем примере рассмотрим, как можно указать номера портов. Воспользуемся ключем —dport (порт назначения, destination port) для того, чтобы запретить для хоста 1.2.3.4 подключение к нашему серверу по протоколу ssh на стандартный порт 22:

1
iptables -A INPUT -p TCP -s 1.2.3.4 --dport 22 -j DROP

Есть возможность протоколировать работу определенных правил. Давайте сделаем так, чтобы в лог-файле (обычно — в /var/log/messages) были записи о работе фильтра. Первое правило протоколирует поступившие пакеты, второе — уничтожает их:

1
2
iptables -A INPUT -p TCP -s 1.2.3.4 --dport 22 -j LOG --log-prefix "SSH Filter:"
iptables -A INPUT -p TCP -s 1.2.3.4 --dport 22 -j DROP

В iptables можно указывать не только единичный адрес — возможно указать целую сеть. Для примера — заблокируем подключение к нашему вэбсерверу (порт 80) с диапазона адресов 10.1.2.* (в CIDR-нотации 10.1.2.0/24):

1
iptables -A INPUT -p TCP -s 10.1.2.0/24 --dport 80 -j DROP

Следующий пример покажет, как можно использовать iptables для проверки содержимого IP-пакетов. Например, можно журналировать или уничтожать пакеты, в которых есть определенная последовательность символов, в данном примере — ‘hack.php’:

1
iptables -I INPUT  -p TCP -m string --string "hack.php" -j LOG --log-prefix "HACK:"

Рассмотрим еще одну практическую задачу — ограничение количества подключений в сторону нашего сервера за единицу времени. Это может быть полезно для борьбы с флудом или простыми атаками. Следующим правилом мы установим лимит в 5 одновременных подключений с одного IP к нашему серверу по протоколу ssh:

1
iptables -A INPUT -p TCP --syn --dport 22 -m connlimit --connlimit-above 5 -j REJECT

Можно использовать другую конструкцию — следующее правило будет ограничивать количество новых соединений в сторону вэбсервера в 25 в минуту, причем этот лимит включится в том случае, если за предыдущую минуту было отмечено 100 соединений:

1
iptables -A INPUT -p TCP --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT

Можно лимитировать соединения не по единичным адресам или в целом по системе, но и с использованием маски. В примере ниже мы установим блокировку для целой сети /24 в том случае, если ее адресов поступит более 20 соединений:

1
iptables -A INPUT -p TCP --dport 80 -m iplimit --iplimit-above 20 --iplimit-mask 24 -j REJECT

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

1
service iptables save

Для Debian рекомендуется установить вспомогательный пакет iptables-persistent, его следует инсталлировать с помощью стандартного менеджера пакетов:

1
aptitude install iptables-persistent

После установки iptables-persistent система будет автоматически сохранять актуальные правила при остановке операционной системы и восстанавливать их при запуске.

Напоследок хотим дать достаточно важную рекомендацию: при установке правил возможны ошибки, из-за которых вы можете заблокировать сами себя. Мы рекомендуем перед настройкой файрвола получить доступ к консоли вашего сервера (для выделенных серверов — запросить IP KVM, для VDS — воспользоваться встроенным VNC-клиентом). Если возникнет необходимость, вы всегда сможете с консоли восстановить доступ, «сбросив» ошибочные правила.

Tags: firewall,  iptables,  linux
Related Posts
  • Выпущен Centos 8

  • Как «растянуть» файловую систему VDS после смены тарифа без потери данных?

  • Основные команды systemd

  • Fedora 25 — новая версия популярного дистрибутива

← Вопросы и ответы: SSD VDS
Ajenti V — бесплатная панель управления с большими возможностями →

Recent Posts

  • Черная Пятница от ITLDC началась:  скидки до 70%!
    Черная Пятница от ITLDC началась: скидки до 70%!

    Несмотря на то, что традиционная Черная...

  • Представляем HD VDS — облачные VDS для хранения данных
    Представляем HD VDS — облачные VDS для хранения данных

    Мы подготовили специальную линейку вирту...

  • Секретная распродажа SSD VDS и серверов!
    Секретная распродажа SSD VDS и серверов!

    Скучаете по распродажам? Не обязательно...

  • Дарим подарки к дню Системного Администратора!
    Дарим подарки к дню Системного Администратора!

    Встречайте 21-й ежегодный день системног...

  • Новый дизайн ISPManager!
    Новый дизайн ISPManager!

    Завтра выходит очередное обновление ISPM...

  • Новая версия FreeBSD 11.4
    Новая версия FreeBSD 11.4

    Спустя 11 месяцев после выпуска 11.3 и 7...

  • SPRING2020: 50% скидки на все SSD VDS!
    SPRING2020: 50% скидки на все SSD VDS!

    Начинаем нашу традиционную весеннюю акци...

  • WireGuard — готовим свой скоростной VPN за минуту!
    WireGuard — готовим свой скоростной VPN за минуту!

    Многие слышали о WireGuard - новом прото...

EU Support

 24/7 Support Team

PO Box #201
Burgas
Burgas reg. 8000
Bulgaria

+1 561 2500001

[email protected]

North America HQ

Green Floid LLC

2707 East Jefferson St
Orlando
Florida, 32803
USA

+1 561 2500001

[email protected]

Services

  • SSD VDS
  • Dedicated Servers
  • Shared Hosting
  • Colocation
  • DDoS Protection
  • SSL Certificates
  • Backup Storage
  • Reselling

Support

  • Get Help
  • ITLDC Status
  • Looking Glass
  • Our SLA
  • Datacenters
  • FAQ & Knowledgebase
  • Data Security
  • Contact us

© Copyright 1995-2019 ITLDC Team. You can freely use or share information from this site with a hyperlink to the original page.