Вы, наверное, слышали утверждение, что NAT не является системой безопасности. Оно появилось из-за того, что некоторые пользователи NAT считают, что, скрыв внутреннюю адресацию сети, можно добиться ее безопасности. На самом деле это не так и использование NAT не отменяет необходимости настраивать межсетевой экран.
Рассмотрим пример публикации внутреннего веб сервера на Juniper SRX.
Перед тем как перейти к конфигурации следует напомнить, как устройства SRX обрабатывают пакет.
На представленной картинке нас интересует порядок обработки NAT и политик безопасности. Если проследить последовательность, то можно заметить следующий порядок действий:
- Статический NAT
- NAT с преобразованием адреса получателя (Destination NAT)
- Применение политик безопасности
- Обратный статический NAT
- NAT с преобразованием адреса отправителя (Source NAT)
Отсюда следует, что при определении политик безопасности, адреса источника и получателя задаются как адреса конечных точек, а не промежуточного звена NAT.
Для примера используем следующую схему:
Конфигурация интерфейсов:
root@jun-srx100-04# show interfaces fe-0/0/0 { description ToInternet; unit 0 { family inet { address 80.80.80.80/24; } } } fe-0/0/2 { description ToLan; unit 0 { family inet { address 10.11.1.1/24; } } }
Конфигурация зон:
root@jun-srx100-04# show security zones { security-zone Internal { interfaces { fe-0/0/2.0 { host-inbound-traffic { system-services { all; } } } } } security-zone Internet { interfaces { fe-0/0/0.0 { host-inbound-traffic { system-services { dns; traceroute; ping; } } } } } }
Конфигурация Destination NAT:
nat { destination { pool webpool { address 10.11.1.2/32; } rule-set webnat { from zone Internet; rule 1 { match { destination-address 80.80.80.80/32; destination-port 80; } then { destination-nat { pool { webpool; } } } } } } }
Конфигурация политик безопасности:
address-book { global { address 10.11.1.2/32 10.11.1.2/32; } } policies { from-zone Internal to-zone Internet { policy All_Internal_Internet { match { source-address any; destination-address any; application any; } then { permit; } } } from-zone Internet to-zone Internal { policy webpublish { match { source-address any; destination-address 10.11.1.2/32; application any; } then { permit; } } } }
Все что не подпадает под политики будет блокироваться:
root@jun-srx100-04> show security policies Default policy: deny-all
Начинаем тесты. Для начала проверим доступность внешнего адреса:
ping 80.80.80.80
Адрес отвечает, и мы можем посмотреть сессии на SRX:
root@jun-srx100-04> show security flow session Session ID: 13026, Policy name: self-traffic-policy/1, Timeout: 2, Valid In: 80.80.80.10/103 --> 80.80.80.80/1;icmp, If: fe-0/0/0.0, Pkts: 1, Bytes: 60 Out: 80.80.80.80/1 --> 80.80.80.10/103;icmp, If: .local..0, Pkts: 1, Bytes: 60 Session ID: 13027, Policy name: self-traffic-policy/1, Timeout: 2, Valid In: 80.80.80.10/104 --> 80.80.80.80/1;icmp, If: fe-0/0/0.0, Pkts: 1, Bytes: 60 Out: 80.80.80.80/1 --> 80.80.80.10/104;icmp, If: .local..0, Pkts: 1, Bytes: 60 Total sessions: 2
Далее проверим работу трансляции адреса получателя (Destination NAT):
telnet 80.80.80.80 80
NAT работает:
Session ID: 12979, Policy name: webpublish/5, Timeout: 298, Valid In: 80.80.80.10/2241 --> 80.80.80.80/80;tcp, If: fe-0/0/0.0, Pkts: 2, Bytes: 92 Out: 10.11.1.2/80 --> 80.80.80.10/2241;tcp, If: fe-0/0/2.0, Pkts: 1, Bytes: 52 Total sessions: 1
На веб сервере можно запустить запись пакетов:
Теперь попробуем получить доступ через внешний интерфейс SRX на внутренний адрес сервера:
telnet 10.11.1.2 80
И у нас это получается!
Session ID: 13114, Policy name: webpublish/5, Timeout: 296, Valid In: 80.80.80.10/2244 --> 10.11.1.2/80;tcp, If: fe-0/0/0.0, Pkts: 2, Bytes: 92 Out: 10.11.1.2/80 --> 80.80.80.10/2244;tcp, If: fe-0/0/2.0, Pkts: 1, Bytes: 52 Total sessions: 1
И в довершение проверим сетевую доступность веб сервера:
ping 10.11.1.2
Session ID: 13216, Policy name: webpublish/5, Timeout: 2, Valid In: 80.80.80.10/112 --> 10.11.1.2/1;icmp, If: fe-0/0/0.0, Pkts: 1, Bytes: 60 Out: 10.11.1.2/1 --> 80.80.80.10/112;icmp, If: fe-0/0/2.0, Pkts: 1, Bytes: 60 Session ID: 13218, Policy name: webpublish/5, Timeout: 2, Valid In: 80.80.80.10/113 --> 10.11.1.2/1;icmp, If: fe-0/0/0.0, Pkts: 1, Bytes: 60 Out: 10.11.1.2/1 --> 80.80.80.10/113;icmp, If: fe-0/0/2.0, Pkts: 1, Bytes: 60 Total sessions: 2
По результатам тестов можно сделать следующий вывод: воспринимать трансляцию сетевых адресов (NAT) как замену межсетевому экрану ни в коем случае не стоит.