- Как настроить Firewall Iptables для ОС Линукс
- Что представляет собой Iptables
- Какие бывают правила
- Как определиться с назначением файрвола
- Что делать с соединением
- Разрешение и блокировка указанных соединений Iptables
- Что делать с соединениями от одного айпи
- Подключения к определенному порту
- О состояниях соединения
- Как сохранить изменения в конфигурации файрвола
- 7 лучших файрволов c открытым исходным кодом для защиты вашей сети
- 1. pfSense
- 2. IPFire
- 3. OPNSense
- 4. NG Firewall
- 5. Smoothwall
- 6. ufw
- 7. csf
Как настроить Firewall Iptables для ОС Линукс
Для новичков и продвинутых пользователей операционный системы Линукс был разработан специальный межсетевой экран (так называемый «файрвол») для защиты от угроз извне, который носит имя Iptables. Ниже в инструкции мы объясним, как его установить и настроить на любых машинах под ОС Linux.
Что представляет собой Iptables
Данная утилита – это надежный межсетевой экран, минимизирующий риск вирусных и хакерских атак. Процесс настройки файрвола происходит через командную строку при помощи установленных команд, которые позволяют юзеру самостоятельно контролировать поступление и отправление трафика. При попытке установки соединений с ПК, утилита обращается к своим правилам и проверяет, пропустить или ограничить соединение. В случае, когда никакого конкретного правила не выставлено, действия проходят по умолчанию.
Файрвол предусмотрен стандартно во всех операционных системах Линукс. Для установки, если его внезапно не оказалось в сборке, или обновления следует применить такую команду:
Альтернативой данной утилите может послужить Firestarter – он имеет графический интерфейс и разработан специально для пользователей, которые испытывают трудности с работой через командную строку.
В случае настроек Iptables по удаленному SSH-соединению, пользователю следует проявлять аккуратность: одно ошибочное правило способно прервать подключение и запретить юзеру доступ к удаленной машине.
Какие бывают правила
Для легкой работы с файрволом разработана тройка основных правил (команд):
Правило применяется, когда необходимо контролировать входящий трафик. Например, когда юзер подключается к удаленному серверу по протоколу Secure Shell, файрвол начнет сравнивать его айпи с другими айпи из своего списка. В зависимости от результата, то есть от наличия в списке запретов, доступ пользователю будет открыт или закрыт.
Правило применяется в случаях, когда необходимо проверить входящее сообщение, проходящее через данный компьютер. Например, маршрутизатор постоянно пересылает сообщения к адресату от сетевых пользователей или приложений. Зачастую данное правило не используется, если только юзер целенаправленно не настраивает маршрутизацию на своем устройстве.
Правило применяется к исходящим соединениям. Например, юзер хочет проверить пинг к одному из заданных сайтов – утилита вновь сверится со своими правилами из списка и определит, как поступить при пинге веб-сайта: разрешить или запретить.
Делая ping к внешнему хосту, машина не только отправляет пакет, но и дожидается обратного ответа. Поэтому, настраивая Iptables, не нужно забывать о наличии двухсторонних коммуникаций и запрещать подключение к серверам через протокол SSH.
Как определиться с назначением файрвола
Перед тем, как заниматься настройкой утилиты, потребуется разобраться с ее предназначением, а именно – действующими цепочками правил, то есть то, что она будет делать по умолчанию. Как отреагировать, когда запрашиваемые соединения не подходят ни к одному правилу?
Для начала потребуется понять, какие из настроек межсетевого экрана уже установлены. Для этого применяется команда –L:
Для четкого и понятного вывода информации можно воспользоваться дополнительной командой «grep». В итоге мы получаем тройку цепочек, у каждой из которых стоит разрешение приема трафика. Подобные правила предпочитают устанавливать при стандартной настройке.
Если в процессе эксплуатации Iptables конфигурация была кем-то изменена, значения могут стоять другие. Проверить это можно за пару секунд, достаточно ввести команды:
Правильнее будет заблаговременно разрешить все входящие/исходящие подключения, после чего выставлять запреты под конкретный порт и айпи-адрес.
Можно поступить диаметрально противоположным методом: установить запрет на все соединения, после чего давать разрешения только некоторым из них. Это можно реализовать таким способом:
Что делать с соединением
Настроив поведение утилиты, которое будет происходить автоматически, следует приступать к правилам, обрабатывающим входящий/исходящий трафик. Основные способы взаимодействия с трафиком:
Accept – разрешение определенного соединения;
Drop – игнорирование запросов (межсетевой экран продолжает свое функционирование, будто никакого запроса не происходило, а запрашивающие ресурсы не узнают об игнорировании);
Reject – блокировка входящего трафика и отправка ответных сообщений с обозначением ошибки (в таком случае запрашивающие ресурсы будут уведомлены о блокировке их трафика).
Пример того, как будет выглядеть ping для
Разрешенного соединения (Accept):
Проигнорированного трафика (Drop):
Отклоненного подключения (Reject):
Разрешение и блокировка указанных соединений Iptables
Как только политика отношения к трафику настроена, пора приступать к определению правил для конкретных соединений. Мы рассмотрим вариант с отклонением указанного подключения. Способы для разрешения и игнорирования будут устанавливаться похожим методом.
Воспользуемся командой –А. Она позволит добавить новое правило к уже имеющейся цепочке. Межсетевой экран начинает проверку с самого верха, проходя по каждому из правил до тех пор, пока не обнаружит совпадения или не закончит список.
В случае, когда необходимо разместить правила в определенное место (перед каким-то определенным), следует воспользоваться командой:
iptables -I [цепочка] [номер позиции по списку для нового правила]
Что делать с соединениями от одного айпи
Для блокировки трафика, поступающего из одного и того же источника (например, айпи 120.120.120.120) подойдет команда:
Для блокировки трафика, поступающего с нескольких айпишников в определенном диапазоне, следует воспользоваться стандартной записью масок посредством слэша:
Либо записью необходимого диапазона:
Подключения к определенному порту
Следующая команда сделает блокировку соединений типа Secure Shell с хостом 120.120.120.120:
На месте Secure Shell допустимо применение любого протокола. После команды –р указывается тип подключений, в данном случае – TCP. В случае, когда используется другой тип, следует указывать его.
Любому айпишнику будет запрещено подключаться к машине по Secure Shell соединению, если выполнить:
О состояниях соединения
Существует множество протоколов, которым требуется двусторонняя коммуникация. К примеру, пользователю понадобилось поработать с SSH-соединением, ему придется внести правило сразу и в Output, и в Input.
Что делать, если юзер хочет предоставить разрешение исключительно входящему соединению? В этом случае поможет состояние соединения. Оно даст возможность пользователю описать любую двустороннюю коммуникацию, в которой разрешено подключение заданного направления.
Разрешим соединение типа SSH, приходящее через хост 120.120.120.120. Система будет отправлять данные по этому протоколу только, если сессия установлена.
iptables -A INPUT -p tcp —dport ssh -s 120.120.120.120 -m state —state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp —sport 22 -d 120.120.120.120 -m state —state ESTABLISHED -j ACCEPT
Как сохранить изменения в конфигурации файрвола
После всех изменений, которые мы внесли в цепочку межсетевого экрана, понадобится их сохранение. Иначе перезапуск утилиты удалит проделанные нами настройки. Команда сохранения будет различаться от дистрибутива к дистрибутиву Линукс.
Для Убунту команда выглядит так:
7 лучших файрволов c открытым исходным кодом для защиты вашей сети
Насколько безопасна ваша сеть? Используете ли вы файрвол для защиты вашей сетевой инфраструктуры?
Ранее я писал об управляемых облачных файрволах и получил предложение написать о бесплатных файрволах или файрволах с открытым исходным кодом.
Вот, пожалуйста!
Следующие бесплатные файрволы отличаются от файрволов веб-приложений. Они служат для защиты инфраструктуры, а не кода или приложения.
1. pfSense
Это решение для обеспечения безопасности с открытым исходным кодом на основе ядра FreeBSD. pfSense – это один из ведущих сетевых файрволов с коммерческим уровнем функционала.
pfSense доступно как оборудование, виртуальное устройство и загружаемый исходник (общая версия).
Бесплатно вы получаете общую версию.
Мне нравится их исчерпывающая документация, хорошо понятная и простая в использовании. Вот некоторые из значимых упоминаемых особенностей pfSense:
- файрвол — фильтрация IP/портов, ограничение соединений, работа на канальном уровне, нормализация пакетов;
- таблица состояний — по умолчанию все правила находятся в отслеживаемом состоянии, множественные конфигураций подходят для обработки состояний;
- серверная балансировка нагрузки — встроенный балансировщик нагрузки для ее распределения между несколькими серверами;
- NAT (преобразование сетевых адресов) — переадресация портов, отражение;
- HA (высокая доступность) — переход на вторичный сервер, если основной дал сбой;
- мульти-WAN (глобальная компьютерная сеть) – использование более чем одного интернет-соединения;
- VPN (виртуальная частная сеть) — поддержка IPsec и OpenVPN;
- создание отчетов – сохранение информации об использованных ресурсах;
- мониторинг – мониторинг в режиме реального времени;
- динамический DNS – включено несколько DNS-клиентов;
- поддержка DHCP Relay.
Кроме того, у вас также есть возможность устанавливать пакеты всего одним щелчком мыши.
- безопасность — stunner, snort, tinc, nmap, arpwatch;
- мониторинг – iftop, ntopng, softflowd, urlsnarf, darkstat, mailreport;
- создание сети — netio, nut, Avahi;
- маршрутизация — frr, olsrd, routed, OpenBGPD;
- обслуживание — iperf, widentd, syslog-ng, bind, acme, imspector, git, dns-server.
2. IPFire
IPFire основан на Netfilter и ему доверяют тысячи компаний по всему миру.
IPFire можно использовать как файрвол, прокси-сервер или VPN-шлюз — все зависит от того, как вы настроите его. Он обладает большой гибкостью в настройках.
IDS (система обнаружения вторжений) является встроенной, поэтому атаки обнаруживаются и предотвращаются с самого начала, а с помощью дополнения Guardian вы можете осуществлять автоматическую профилактику.
Вы сможете понять как работать с IPFire менее чем за 30 минут. Прочитать больше о его возможностях можно здесь.
3. OPNSense
OPNSense является ответвлением pfSense и m0n0wall. Графический интерфейс доступен на нескольких языках, таких как французский, китайский, японский, итальянский, русский и др.
OPNSense обладает многими серьезными уровнями безопасности и функциями файрвола, такими как IPSec, VPN, 2FA, QoS, IDPS, Netflow, Proxy, Webfilter и т.д.
Он совместим с 32-битной или 64-битной системной архитектурой и доступен для загрузки как ISO-образ и USB-установщик.
4. NG Firewall
NG Firewall от Untangle — это единая платформа, где вы можете получить все необходимое для защиты сети своей организации.
Он обладает красивой панелью инструментов, попробовать демо-версию можно здесь. Он работает как магазин приложений, где вы можете запускать или отключать отдельные приложения (модули) в соответствии со своими потребностями.
В бесплатной версии вы получаете доступ к самой платформе NG Firewall, бесплатные приложения и 14-дневную пробную версию платных функций.
5. Smoothwall
Smoothwall express — это бесплатное решение с простым веб-интерфейсом для настройки и управления файрволом.
Smoothwall express поддерживает LAN (локальную сеть), DMZ (демилитаризованную зону), внутренний и внешний сетевой файрвол, веб-прокси для ускорения, статистику трафика и др.
Выключение или перезагрузка возможны непосредственно через веб-интерфейс.
Примечание: Следующие две программы предназначены только для серверов Linux.
6. ufw
ufw (несложный файрвол) работает с Ubuntu. Для управления системой фильтрации пакетов ядра Linux (Netfilter) он использует интерфейс командной строки.
7. csf
csf (ConfigServer security) протестирован и поддерживается на следующих ОS и виртуальных серверах:
- RHEL/CentOS
- CloudLinux
- Fedora
- OpenSUSE
- Debian
- Ubuntu
- Slackware
- OpenVZ
- KVM
- VirtualBox
- XEN
- VMware
- Virtuozzo
- UML
Я надеюсь, что вышеперечисленные бесплатные решения для файрвола помогут вам сэкономить деньги и защитить вашу инфраструктуру от взлома.
LOOKING.HOUSE — на проекте собрано более 150 точек looking glass в 40 странах. Можно быстро выполнить команды host, ping, traceroute и mtr.