Основы UFW: общие правила и команды фаервола

Блокировка IP-адреса

sudo ufw deny from 12.12.12.21

Параметр from 12.12.12.21 задаёт исходный IP-адрес. Имейте в виду: IP-адрес можно указать в любом правиле фаервола, в том числе и в правилах allow.

sudo ufw deny in on eth0 from 12.12.12.21

Эта команда почти полностью повторяет предыдущую команду, за исключением условия in on eth0, задающего интерфейс.

Сетевой интерфейс можно указать в любом правиле фаервола. Это позволяет свести настройки до конкретного интерфейса.

Задача

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

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

Большинство протоколов, таких как TCP, хорошо уживаются с задержками. Можно достигнуть высоких скоростей даже на линиях связи, в которых задержка передачи составляет несколько сотен миллисекунд. С другой стороны для интерактивных сетевых игр даже несколько десятков миллисекунд это слишком много. Здесь потеря данных становится критичной. Производительность TCP серьёзно снижается при большом количестве потерянных пакетов.

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

Значение интенсивности поступления пакетов.

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

К примеру, хост, без труда обрабатывающий полосу в 100Mbps с пакетами размером 1500 байт, может быть легко загружен полосой в 10Mbps состоящей из 40 байтных пакетов. Первая пара значений подразумевает только 8000 пакетов в секунду, в то время как вторая уже 32000, что означает увеличение нагрузки на хост приблизительно в 4 раза.

Чтобы уяснить это, давайте посмотрим, как в реальности пакеты проходят через хост. Принимаемые из сети данные сначала накапливаются в небольшом  внутреннем буфере сетевого адаптера. Когда он заполняется, сетевая карта генерирует прерывание, заставляющее её драйвер скопировать пакет(ы) в сетевой буфер ядра (т.н. mbufs).

Пакеты передаются стеку TCP/IP в том виде, в каком они находятся в mbufs. Когда пакет попадает в буфер ядра, большинство операций, производимых с ним, не зависят от его размера, т.к. для них имеет значение только заголовки, а не некоторая общая нагрузка. Это также верно и для пакетного фильтра,  через который проходит пакет в единицу времени, и который принимает решение, заблокировать либо пропустить данный пакет.

ПОДРОБНЕЕ:  Оформление договора купли продажи автомобиля

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

Некоторые из существующих ограничений основаны на программной и аппаратной части пакетного фильтра. Так, например машины класса i386, из-за особенностей своей архитектуры, не способны справиться больше чем с 10000 прерываниями в секунду, в независимости от того, насколько быстр процессор. Некоторые сетевые адаптеры генерируют прерывание на каждый принятый пакет.

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

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

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

Веб-сервер

Веб-серверы (например, Apache и Nginx), как правило, прослушивают порты 80 и 443 для соединений HTTP и HTTPS соответственно. Если политика входящего трафика по умолчанию настроена для отклонения или блокирования таких соединений, то, скорее всего, нужно будет изменить такое поведение.

sudo ufw allow http

sudo ufw allow 80

sudo ufw allow https

sudo ufw allow 443

Основы UFW: общие правила и команды фаервола

sudo ufw allow proto tcp from any to any port 80,443

Обратите внимание: задавая несколько портов, нужно указать протокол (proto tcp).

Почтовые сервисы

Почтовые сервисы (например, Sendmail или Postfix) слушают соединения на различных портах в зависимости от протоколов, используемых для доставки почты. Если вы запустили почтовый сервер, определите используемые протоколы и разрешите соответствующие типы трафика. Также в этом разделе показано, как создать правило для блокировки исходящей SMTP-почты.

sudo ufw deny 25

ПОДРОБНЕЕ:  Гидроизоляция фундамента методы и правила работ

Это настроит фаервол для сброса всего исходящего трафика на порте 25.

Примечание: Чтобы заблокировать трафик на любом другом порте, просто укажите его номер вместо 25.

sudo ufw allow 25

Примечание: Для исходящей почты SMTP, как правило, использует порт 587.

Основы UFW: общие правила и команды фаервола

sudo ufw allow 143

sudo ufw allow 993

sudo ufw allow 110

sudo ufw allow 995

Понравилась статья? Поделиться с друзьями:
Adblock
detector