Зачем нам брандмауэр, если на ваших портах не запущены программы?

14

Когда я пытаюсь подключиться через telnet к порту на сервере, и если на этом порту нет прослушивающих программ, telnet умирает с ошибкой «Unable to connect ...». Я это понимаю. Но зачем нам брандмауэр, если на всех портах нет программ, слушающих?

Хаджа Минхаджуддин
источник
Оборона в глубине. en.wikipedia.org/wiki/Defense_in_Depth_(computing)
Zoredache

Ответы:

31

Возможно, сейчас не работает служба, но как насчет завтра? У вас все они отключены, но как насчет ваших пользователей? Любой в системе Unix / Windows / Mac может открыть порт> 1024 на любой машине, к которой у него есть доступ. Как насчет вредоносных программ? Как насчет вируса? Они также могут открыть порты и начать передавать информацию миру или начать прослушивать соединения из сети.

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

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

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

Гейб.
источник
1
> «Любой пользователь или программа, запущенная пользователем, может запустить сервер в системе, к которой у него есть доступ. Брандмауэр запрещает кому-либо еще подключаться к этой службе». Но разве это не сделает службу непригодной для использования?
Хаджа Минхаджуддин
5
@KhajaMinhajuddin да! В том-то и дело. (-:
gabe.
2
@KhajaMinhajuddin Вы хотите, чтобы только те службы, которые вы настроили, были доступны всему миру. Вам не нужен smtp-сервер, на котором запущен super_spam_virus.exe, в то время как вы не искали прослушивания соединений с других зараженных систем. Брандмауэр предотвратит это, хотя это не панацея.
таращиться
super_spam_virus.exe не похож на Unix & Linux :)
пользователь неизвестен
@userunknown true ... как насчет a.out или взломанной версии / bin / ls, которая была скопирована в вашу систему. Или, если вы разработчик, hg serveкоторый запускает веб-сервер на вашем компьютере. Дело в том, что запуск сервера на любом компьютере, независимо от того, используется ли он в качестве «рабочего стола» или «сервера», не имеет значения. И как только этот сервер запущен, и вы не знаете об этом ... ну, вот тогда начинается самое интересное.
таращиться
3

Если программа не прослушивает ни один порт, вам не нужен брандмауэр, но вы также не можете подключиться к вашему серверу, потому что он «изолирован» от остального мира.

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

Паткос Чаба
источник
Это хороший момент, но если я хочу, чтобы сервер что-то делал (я обычно ставлю openssh и веб-сервер). Даже с брандмауэром мне нужно открывать порты, чтобы сделать работающие приложения, такие как openssh и веб-серверы, полезными. Итак, я думаю, что я спрашиваю: есть ли программы, которые открывают порты для внешнего мира, которые должны быть заблокированы брандмауэром и которые все еще будут полезны.
Хаджа Минхаджуддин
1
Да это так. Не обязательно пример для сервера, но давайте предположим, что у вас установлена ​​машина Linux с установленным X и работающим на сетевом порту X. Вы бы хотели, чтобы ваш компьютер, возможно, некоторые другие компьютеры из локальной сети, подключались к вашему X. Однако вы не хотели бы, чтобы Джо из Франции подключался к нему. Другой пример, скажем, вы настроили несколько служб VPN на своем сервере, и вам нужно контролировать, какие сети могут видеть другие сети (или не видеть). Или, скажем, у вас есть OpenSSH, но вы хотите разрешить подключение только с вашего домашнего компьютера. Есть много других примеров.
Паткос Чаба
1
@KhajaMinhajuddin: Для SSH вы должны использовать /etc/ssh/sshd_configдля защиты машины. PermitRootLoginдолжно быть установлено на Нет, вы должны использовать безопасный пароль и поддерживать машину с помощью sudo (вы можете использовать sudo после входа в систему с учетной записью с разрешениями sudo). Установка ограничений с помощью брандмауэра - просто неправильный инструмент для работы. То же самое будет верно для postgresqlбазы данных: используйте конфигурацию базы данных, чтобы установить и отозвать разрешения.
пользователь неизвестен
3

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

Tok
источник
1
В чем преимущество DROP по сравнению с REJECT?
пользователь неизвестен
Я не уверен, но я считаю, что DROP просто не отвечает, поэтому запрашивающая сторона даже не знает, был ли получен запрос или существует ли ваша машина. REJECT говорит, что вы определенно здесь и просто не хотите об этом говорить. И, если что-то находится за запертой дверью, возможно, стоит попытаться найти способ выяснить, что стоит защищать.
Джо
-5

Но зачем нам брандмауэр, если на всех портах нет программ, слушающих?

Если у вас однопользовательский рабочий стол , а не сервер, вам не нужен брандмауэр, если не запущена служба, как при установке Ubuntu по умолчанию.

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

Когда они встречались с людьми из Linux, которые часто были администраторами серверов, они не говорили «вам не нужен брандмауэр в Linux», но «у нас есть бесплатные брандмауэры, такие как iptables, в течение почти десятилетия».

Персональный межсетевой экран , сидя на системе он должен защищать, не лучшая идея либо.

В однопользовательской настольной системе вам не нужен персональный брандмауэр.

Пользователь неизвестен
источник
3
Посмотрите на ответ от Гейб и переосмыслить. Особенно клиенты Desktop подвержены атакам.
Нильс
1
@userunknown: вирус может быть пользователем вашего рабочего стола. Демон, который вы устанавливаете и не можете настроить, тоже.
Андре Парамес
1
Я проводил тестирование безопасности в течение многих лет, и доступ через настольные компьютеры - очень полезный путь для распространения атаки. Не имеет значения, если это Windows, Linux, Solaris, что угодно. Заблокируйте или потеряйте для атакующего. Правильная фраза: вам может понадобиться брандмауэр на рабочем столе - полностью оценить риски в вашей среде
Рори Олсоп,
2
@userunknown только потому, что вы используете компьютер как desktopне означает, что это не serverпросто слова. У вас desktopесть много того, serversчто потенциально может работать на нем, и, возможно, это уже есть.
таращиться
1
Подумайте о CUPS (любой linux), SLPD (SuSE) и других вещах (KDE-remote, iSCSI-сервер / клиент), которые могут работать в linux после обновления. Даже если вы проверили, прежде чем эти вещи могут появиться. Если они это сделают, это хорошо, чтобы заблокировать их. Кстати, активируйте ваш брандмауэр через графический интерфейс (don t allow anything) on RedHat, start CUPS and see if you can connect to it from outside. Then look at iptables-save`: Вуаля - порт CUPS открыт, но не отображается в графическом интерфейсе ...
Nils