NAT не замена межсетевому экрану на примере Juniper SRX
Вы, наверное, слышали утверждение, что NAT не является системой безопасности. Оно появилось из-за того, что некоторые пользователи NAT считают, что, скрыв внутреннюю адресацию сети, можно добиться ее безопасности. На самом деле это не так и использование NAT не отменяет необходимости настраивать межсетевой экран.
Рассмотрим пример публикации внутреннего веб сервера на Juniper SRX.
Packet flow
Перед тем как перейти к конфигурации следует напомнить, как устройства 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) как замену межсетевому экрану ни в коем случае не стоит.