Рекомендации по добавлению исключения брандмауэра: исключение программы или порта - PullRequest
3 голосов
/ 30 октября 2009

Для распределенного производственного клиент-серверного приложения WCF (размещенного в качестве службы Windows с NetTcpBinding) я добавляю логику для добавления исключения в брандмауэр Windows во время установки с помощью команды netsh.

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

Мой вопрос: лучше ли добавить исключение для программы ИЛИ порта ИЛИ для обоих . Существуют ли какие-либо соображения безопасности, делающие один подход более желательным, чем другой? Практически все примеры для WCF показывают исключения портов.

Любое понимание будет оценено, спасибо.

1 Ответ

3 голосов
/ 05 ноября 2009

Вот мое резюме того, как я думаю, что они функционируют:

Исключение приложения -> разрешает указанному приложению открывать любые порты

Исключение порта -> разрешает любому приложению открывать указанный порт

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

MSDN гласит: "[Исключение приложения] более безопасно, чем открытие порта, поскольку брандмауэр открыт только в то время, когда программа ожидает получения соединения."

Более подробное описание MSDN и технические статьи: http://technet.microsoft.com/en-us/network/bb545423.aspx

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

...