Назад | Перейти на главную страницу

Закройте порты только на указанном сетевом интерфейсе

Я только что проверил с помощью nmap прокси-сервер (ubuntu 10.04 с squid) на наличие уязвимостей и решил начать процесс усиления защиты ... Можно ли закрыть, например, порт ssh только на eth1? Так что я мог продолжать использовать его, когда нахожусь в локальной сети с eth0. У меня есть различные сервисы, которые очень удобны в моей локальной сети, но я бы хотел окончательно закрыть доступ к ним из Интернета.

Обычный способ добиться этого - использовать брандмауэр. В Linux большинство брандмауэров основаны на iptables. В зависимости от ваших навыков работы с Linux вы можете настроить правила iptables в файле сценария, а затем запустить его из записи в /etc/init.d/ или, если вы не очень хорошо владеете сценариями оболочки, вы можете посмотреть любой из более удобные для пользователя стандартные пакеты для межсетевого экрана, такие как Lokkit (очень простой, но также не очень гибкий) или Guarddog (более продвинутый). Другие варианты: firestarter, shorewall или fwbuilder.

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

Хотя ответ @wolfgangsz правильный, у большинства демонов есть опция типа «Bind to» или «Listen on», которая позволяет вам выбрать, к какому интерфейсу (-ам) или IP-адресам подключаться. В случае sshd, вы должны поместить что-то подобное на свой /etc/ssh/sshd_config файл:

ListenAddress <IP_on_eth1>

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