Я провел тест службы NFS через брандмауэр Cisco ASA 5505.
С обычным ACL по умолчанию для интерфейса, который "разрешает ip any any" на внутреннем интерфейсе (уровень 100), "запрещает ip any any"на внешнем интерфейсе (уровень 0).Сервер NFS подключен к внешнему интерфейсу.Все отлично работает.Посмотрев, как проходят пакеты, я вижу, как внутри ПК вызывается порт 111 NFS-сервера, согласовывается порт с помощью portmap.Завершено это TCP соединение.Затем NFS-сервер (вне ПК) использует согласованный порт для подключения к внутреннему ПК и передачи данных.Брандмауэр Cisco ASA очень хорошо поддерживает состояния TCP и «запоминает» согласованный порт, поэтому пусть внешний ПК, использующий этот порт для связи с внутренним ПК, даже внешний ACL, «запрещает ip any any».Брандмауэр полностью настроен, пока все отлично.
Однако, пока я подключал сервер NFS (вне ПК) к брандмауэру Cisco ASA с помощью VPN.Все изменилось.Посмотрев на пакеты, NFS по-прежнему может проходить через брандмауэр и согласовывать порт с помощью portmap.Хотя после этого TCP сессия закончена.Брандмауэр ЗАБУДЬТЕ согласованный порт и заблокируйте внешний компьютер, используя согласованный порт для обратной связи с внутренним компьютером.
Единственным изменением является наличие или отсутствие VPN.Есть только один ACL, на внутреннем интерфейсе, разрешите ip любой любой.NFS-сервер настроен на доступ из любой подсети.На этом брандмауэре не настроены NAT и не настроены политики обслуживания.
Может кто-нибудь объяснить, почему правила брандмауэра Cisco больше не "сохраняют состояние" по VPN?Это предназначено, чтобы быть?Как лучше всего разрешить NFS работать через VPN без открытия ряда динамических портов на внешнем интерфейсе?