В общем, безопасность, как уже упоминалось, важная вещь. Существуют причины, по которым существуют брандмауэры, и не только все остальные лемминги являются глупыми идиотами.
Этот ответ приходит, так как поиск 'fail2ban' на этой странице не дал мне никаких результатов. Так что, если я удваиваю другой контент, терпите меня. И извините, если я немного разглагольствую, я предоставлю простой опыт, поскольку это может пригодиться другим. :)
Сетевые соображения, местные и внешние
Это довольно специфично для Linux и концентрируется на межсетевом экранировании на основе хоста, что обычно является вариантом использования. Внешний брандмауэр идет рука об руку с правильной структурой сети, и другие соображения безопасности обычно входят в это. Если вы знаете, что здесь подразумевается, то вам, скорее всего, эта публикация не понадобится. Или нет, тогда просто продолжайте читать.
Внешний и локальный запуск брандмауэров может показаться нелогичным и удвоить работу. Но это также дает возможность перевернуть правила на внешние, не ставя под угрозу безопасность на всех остальных хостах, стоящих за ним. Необходимость может возникнуть либо по причинам отладки, либо потому, что кто-то только что облажался. Другой вариант использования будет описан в разделе «Адаптивный глобальный брандмауэр», для которого вам также понадобятся как глобальные, так и локальные брандмауэры.
Стоимость и доступность и одна и та же история все время:
Межсетевой экран - это только один аспект надлежащей защищенной системы. Не устанавливая брандмауэр, поскольку он «стоит» денег, вводит SPOF или что-то еще, просто извините за мой французский здесь. Просто настройте кластер. О, но что, если в пожарной камере произошел сбой? Затем настройте кластер на два или более пожарных отсека.
Но что, если весь центр обработки данных недоступен, так как оба внешних носителя не работают (экскаватор убил ваше волокно)? Тогда просто создайте кластер, охватывающий несколько центров обработки данных.
Это дорого? Кластеры слишком сложны? Ну, паранойя должна быть оплачена.
Просто ныть о SPOFs, но не хотеть платить больше денег или создавать немного более сложные установки - явный пример двойных стандартов или просто маленький кошелек на стороне компании или клиента.
Этот шаблон применяется ко ВСЕМ этим обсуждениям, независимо от того, какой сервис является текущим вопросом дня. Независимо от того, является ли это VPN-шлюзом, Cisco ASA, используемый только для межсетевого экрана, базы данных MySQL или PostgreSQL, оборудования виртуальной системы или сервера, серверной части хранилища, коммутаторов / маршрутизаторов, ...
К настоящему времени вы должны получить идею.
Зачем беспокоиться о брандмауэре?
В теории ваши рассуждения обоснованы. (Только запущенные сервисы могут быть использованы.)
Но это только половина правды. Брандмауэр, особенно брандмауэр с сохранением состояния, может сделать для вас гораздо больше. Брандмауэры без сохранения состояния важны только в том случае, если у вас возникают проблемы с производительностью, подобные тем, что уже упоминались.
Простой, центральный, дискретный контроль доступа
Вы упомянули обертки TCP, которые реализуют в основном те же функции для обеспечения безопасности. Ради аргумента, давайте предположим, что кто-то не знает tcpd
и любит использовать мышь? fwbuilder
может прийти в голову.
Полноценный доступ из вашей сети управления - это то, что вы должны были включить, что является одним из первых случаев использования брандмауэра на основе вашего хоста.
Как насчет установки с несколькими серверами, где база данных работает где-то еще, и вы не можете поместить обе / все машины в общую (частную) подсеть по какой-либо причине? Используйте брандмауэр, чтобы разрешить доступ MySQL через порт 3306 только для одного заданного IP-адреса другого сервера, все просто.
И это также работает безупречно для UDP. Или любой другой протокол. Межсетевые экраны могут быть настолько гибкими. ;)
Смягчение портов
Кроме того, с помощью брандмауэра общие порты могут быть обнаружены и уменьшены, так как количество соединений за промежуток времени может контролироваться через ядро и его сетевой стек, и брандмауэр может действовать в соответствии с этим.
Также недействительные или неясные пакеты могут быть обработаны до того, как они попадут в ваше приложение.
Ограничение исходящего трафика
Фильтрация исходящего трафика, как правило, боль в заднице. Но это может быть необходимо, в зависимости от контракта.
Статистика
Еще одна вещь, которую может дать вам брандмауэр, это статистика. (Подумайте watch -n1 -d iptables -vnxL INPUT
, добавив некоторые правила для специальных IP-адресов прямо вверху, чтобы увидеть, поступают ли пакеты.)
Вы можете видеть при дневном свете, работают ли вещи или нет. Что ОЧЕНЬ полезно при устранении неполадок при подключении и возможности сообщить другому человеку по телефону, что вы не получаете пакеты, не прибегая к чату tcpdump
. Работа в сети - это весело, большинство людей теперь знают, что они делают, и зачастую это просто ошибки маршрутизации. Черт, даже я не всегда знаю, что я делаю. Хотя я работал буквально с десятками сложных систем и устройств, часто к настоящему времени и с туннелированием.
IDS / IPS
Брандмауэр уровня 7 обычно является змеиным маслом (IPS / IDS), если не посещать его должным образом и регулярно обновлять. Кроме того, лицензии стоят очень дорого, поэтому я бы не стал получать их, если у вас нет реальной необходимости получать все, что можно купить за деньги.
Masqerading
Легко, просто попробуйте это с вашими обертками. : D
Переадресация локального порта
Смотри маскарад.
Защита парольных каналов доступа с динамическими IP-адресами
Что делать, если у клиентов есть динамические IP-адреса и не развернута настройка VPN? Или другие динамические подходы к брандмауэру? Это уже упоминалось в вопросе, и здесь будет случай использования для К сожалению, я не могу найти никаких брандмауэров, которые делают это. часть.
Отключение доступа к учетной записи root с помощью пароля является обязательным. Даже если доступ ограничен определенными IP-адресами.
Кроме того, еще одна учетная запись blanko, готовая для входа в систему с паролем, если ключи ssh теряются или происходит сбой развертывания, очень удобно, если что-то идет не так (пользователь имеет административный доступ к машине и «что-то случилось»?). Это та же идея для доступа к сети, так как он имеет однопользовательский режим в Linux или использует init=/bin/bash
via grub
для локального доступа действительно очень плохо и не может использовать живой диск по любой причине. Не смейтесь, есть продукты для виртуализации, которые запрещают это. Даже если такая функциональность существует, что делать, если в устаревшей версии программного обеспечения отсутствует функциональность?
В любом случае, даже если вы запускаете ваш ssh-демон на каком-то эзотерическом порту, а не на 22, если не реализованы такие вещи, как стук портов (открыть даже другой порт и, таким образом, смягчить порты, медленно граничащие с непрактичностью), сканирование портов обнаружит ваше сервис в конце концов.
Обычно вы также настраиваете все серверы с одинаковой конфигурацией, с одинаковыми портами и службами из соображений эффективности. Вы не можете настроить ssh на другой порт на каждой машине. Кроме того, вы не можете изменить его на всех машинах каждый раз, когда вы считаете, что это «общедоступная» информация, потому что она уже есть после сканирования. Вопрос о том, nmap
является ли он законным или нет, не является проблемой, если в вашем распоряжении есть взломанное соединение Wi-Fi.
Если эта учетная запись не называется «root», люди не смогут угадать имя учетной записи пользователя «backdoor». Но они будут знать, получат ли они другой сервер от вашей компании, или просто купят какое-то веб-пространство, и посмотрят на них без привязки / без изменений / без привязки /etc/passwd
.
Теперь для чисто теоретической иллюстрации они могут использовать взломанный веб-сайт, чтобы получить доступ к вашему серверу и посмотреть, как у вас обычно работают. Ваши инструменты хакерского поиска могут не работать 24/7 (обычно они работают ночью по соображениям производительности диска при сканировании файловой системы?), А ваши антивирусные сканеры не обновляются в тот момент, когда новый нулевой день увидит свет, поэтому он будет работать не обнаруживать эти события сразу, и без других мер защиты вы, возможно, даже не узнаете, что произошло. Чтобы вернуться к реальности, если у кого-то есть доступ к эксплойтам нулевого дня, очень вероятно, что он в любом случае не нацелится на ваши серверы, поскольку они просто дорогие. Это просто для иллюстрации того, что всегда есть путь в систему, если возникает «необходимость».
Но опять же, просто не используйте лишнюю учетную запись и не беспокойтесь? Пожалуйста, продолжайте читать.
Даже если злоумышленники получат имя и порт этой дополнительной учетной записи, комбинация « fail2ban
+» iptables
остановит их, даже если вы использовали только восьмибуквенный пароль. Кроме того, fail2ban может быть реализован и для других сервисов, расширяя горизонты мониторинга!
Для ваших собственных служб, если когда-либо возникнет такая необходимость: в основном каждый сбой регистрации службы в файле может получить поддержку fail2ban посредством предоставления файла, с каким регулярным выражением и сколько сбоев разрешено, и брандмауэр просто с радостью заблокирует каждый IP-адрес, который он сказано.
Я не говорю использовать 8-значные пароли! Но если их забанят на 24 часа за пять попыток ввода неверного пароля, вы можете догадаться, сколько времени им придется пробовать, если в их распоряжении нет ботнета, даже с такой паршивой безопасностью. И вы будете удивлены тем, какие пароли клиенты обычно используют, а не только для ssh
. Просмотр паролей почты людей через Plesk расскажет вам все, что вы не хотели бы знать, если бы вы когда-либо делали, но то, что я не пытаюсь здесь подразумевать, конечно. :)
Адаптивный глобальный брандмауэр
fail2ban
это всего лишь одно приложение, которое использует что-то вроде того iptables -I <chain_name> 1 -s <IP> -j DROP
, но вы можете легко создать такие вещи самостоятельно с помощью некоторой магии Bash.
Чтобы еще больше расширить что-то вроде этого, соберите все IP-адреса fail2ban с серверов в вашей сети на дополнительном сервере, который обрабатывает все списки и по очереди передает его вашим основным межсетевым экранам, блокируя весь трафик, уже находящийся на границе вашей сети.
Такая функциональность не может быть продана (конечно, это возможно, но это будет просто хрупкая система и отстой), но она должна быть интегрирована в вашу инфраструктуру.
При этом вы также можете использовать черные списки IP-адресов или списки из других источников, будь то агрегированные вами или внешними.