Juniper srx настройка firewall

Обновлено: 07.07.2024

Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal

Model: ex3200-48t

в порт свитча включен сервер с 4 IP. Нужно, что-бы 3 из них были доступны откуда угодно, а 4-й только с определенных подсетей. Конфигурация интерфейса:

Вот так 3 адреса доступны, 4-й, конечно нет, но стоит мне добавить:

И пропадает доступ к серверу совсем. Где я накосячил? Как отладить правило и посмотреть на свитче, какое сработало?

UPD [2012-11-11]: Разобрался, может кому будет надо. Juniper по умолчанию разрешает только то, что явно прописано в правилах. В данном случае надо отдельно разрешить arp

какая-то каша после описания задачи.

конфигуриция интерфейса правильная:
show configuration interfaces ge-0/0/38
unit 0 family ethernet-switching port-mode access;
vlan members vlan-1;
>
filter output custom;
>
>
>

фильтр надо такой

разрешаем 3 адреса, которые с любых сетей
set firewall family ethernet-switching filter custom term 1 from destination-address адрес1/32
set firewall family ethernet-switching filter custom term 1 from destination-address адрес2/32
set firewall family ethernet-switching filter custom term 1 from destination-address адрес3/32
set firewall family ethernet-switching filter custom term 1 then accept
потом разрешаем 4й адрес с определенных сетей
set firewall family ethernet-switching filter custom term 2 from destination-address адрес4/32
set firewall family ethernet-switching filter custom term 2 from source-address сеть1/16
set firewall family ethernet-switching filter custom term 2 from source-address сеть2/16
set firewall family ethernet-switching filter custom term 2 then accept
и по умолчанию закрываем остальное
set firewall family ethernet-switching filter custom term deny from destination-address адрес4/32
set firewall family ethernet-switching filter custom term deny then discard

софт рекомендуется 10.4R9

Сделал фильтр точно по описанному вами.

Там еще важно, что-бы пропускал только протокол tcp, и когда добавляешь в term 1|2 from protocol tcp работать перестает. связи с сервером нет.

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

Всех заинтересовавшихся прошу под кат.

В мои руки попал новенький Juniper SRX240B и все нижесказанное будет относиться к нему. А т.к. JunOS позиционируется как единая ОС для всей серии (как минимум), то… сами делайте выводы. Также я использую версию JunOS 12.1X46-D20.5 (самая последняя, на момент публикации поста):

  • Source NAT
  • DHCP Server
  • DNS Server
  • SSH Hardening
  • IDP, Security Features

Source NAT

Для настройки source NAT достаточно выполнить следующие команды:

Или в виде конфига:

При таком конфиге ВСЕ сети, которые будут сконфинурированы на внутренних интерфейсах роутера будут NAT'иться. Если нужно NAT'ить только некоторые, то вместо:

нужно написать (пример приведен для сети 172.16.1.0/27):

DHCP Server

Теперь настроим наш SRX в качестве DHCP сервера. Предполагается, что интерфейсы уже сконфигурированы и нам нужно настроить DHCP сервер только для интерфейса vlan.0:

Или в виде конфига:

В данном случае мы устанавливаем время жизни lease'а в 6 часов (6 * 60 мин * 60 сек = 21600 сек); default gateway делаем 172.16.1.1; начинаем раздавать адреса с 172.16.1.2 и заканчиваем 172.16.1.30 (диапазон, в пределах которого будет работать DHCP сервер).

Эти опции будут действовать только для интерфейса vlan.0. В случае необходимости, его можно заменить на реальное имя интерфейса, например на ge-0/0/1.

Статистику по DHCP серверу можно посмотреть следующей командой:

DNS Server

Теперь перейдем к настройке DNS сервера. Начиная с версии Junos OS 12.1x44D10 поддерживается DNS proxy, давайте же его настроим:

Или в виде конфига:

Здесь мы настроили работу DNS сервера на интерфейсе vlan.0; создали A-запись для gw-jsrx240.HOME.local (само собой таких записей можно сделать несколько); и настроили DNS forwarders для всех остальных DNS запросов.

Если DNS сервер нужно включить для всех внутренних интерфейсов, то это можно сделать следующим образом (если VLAN'ов несколько, то и настройки нужно делать соответствующие):

Или в виде конфига:

Статистику по DNS запросам можно посмотреть следующим образом:

Записи в DNS cahce посмотреть вот так (без вывода самого кэша устройства, т.к. записей там очень много):

Очистить DNS cache вот так:

SSH Hardening

Теперь попробуем обезопасить наш SSH сервер (даже если он смотрит наружу) (вместо SSH_RSA_PUBLIC_KEY нужно вставить свой SSH RSA Public Key):

Или в виде конфига:

  • root-login deny — запрещаем root'у подключаться по SSH
  • protocol-version v2 — используем только версию протокола SSHv2
  • connection-limit 5 — максимальное количество одновременных SSH подключений
  • rate-limit 5 — максимальное количество SSH подключений в минуту
  • tries-before-disconnect 5 — сколько раз будет разрешено попыток ввода пароля, после чего сессия будет разорвана
  • backoff-threshold 1 — через ЭТО количество неправильных попыток ввода пароля будет включена задержка
  • backoff-factor 10 — после достижения backoff-threshold пользователь будет заблокирован на 10 сек.
  • minimum-time 30 — количество секунд, отведенное на ввод пароля, после чего сессия будет разорвана

Я предпочитаю оставлять root'у возможность входить по паролю, но только через console; остальным пользователям только по ключам с указанными выше ограничениями.

IDP, Security Features


Или в виде конфига:

В самом конце.

Не забываем сделать commit, иначе никакие изменения не вступят в силу:

Итого

Итоговый конфиг можно посмотреть ниже. Маршрутизатор обладает всеми необходимыми функциями за вполне уместные деньги.

Если будет выдан инвайт, опишу настройки PPPoE, Dynamic VPN, Site-to-Site VPN и т.д.

В данной статье будет рассмотрено два механизма для обработки трафика, средствами Junos OS на оборудовании Juniper.
Первое это firewall filter, второе Policy.
Фильтры и политики широко применяются в процессе управления трафиком в сетях, служат различным целям, и подходят для разных ситуаций.
Фильтр это механизм применимый для фильтрации пакетов, на входе в маршрутизатор, и выполнения определённых действий. Чаще всего это пустить, не пустить ( отбросить ) пакет, в зависимости от выбранных свойств пакета, также для применения механизмов называемых filter based routing (fbr) посредством которого представлен механизм policy based routing в Junos.
Политики используются для управления маршрутами на сети, изменения стандартного поведения протоколов динамической маршрутизации.

[edit]
!
В данном случае мы поставили ограничение на 1 Гбит/с. Данный синтаксис показывает пример настройки, ограничивающей полосу пропускания.
forwarding-class — данный параметр применяется при использовании механизмов шейпинга трафика на порту и настройки QoS политик. Этот материал не рассматривается в этой статье.
syslog — данный параметр дает возможность произвести запись в syslog о выбранном нами пакете.
port-mirror - позволяет произвести обработку механизма зеркалирования трафика на порту.

В данной конфигурации мы изменили маршрутизацию пакетов,приходящих с источника 10.10.10.1.
По умолчанию все пакеты приходящие на маршрутизатор от источника 10.10.10.1 проходят через общие правила маршрутизации настроенные на коробке.
Допустим мы хотим изменить движение трафика от данного источника направив его через оборудование с адресом: 10.10.15.1.

Для этого необходимо создать специальный фильтр, который выполняет действие:
!
>
then routing-instance fbr;
>
!
т.е. при выполнении условия, наш трафик помещается в специальный vrf, который используется для форвардинга пакетов.
Далее в данном vrf создается статический маршрут по умолчанию, используемый для маршрутизации пакетов к другому получателю, т.е. 10.10.15.1.

Что бы понять смысл конфигурации, надо объяснить что такое функционал rib-groups.

Каждое устройство под управлением Junos OS ведет несколько таблиц маршрутизации, таких как например inet.0 inet.3 vrf.inet.0. В разных таблицах содержатся различная маршрутная информация.Например:

  • в inet.0 содержится основная (глобальная) информация о маршрутах на устройстве.
  • в таблице inet.3 содержится информация о маршрутах используемых протоколом BGP для передачи информации о MPLS метках внутри сети.
  • под каждый vrf создается своя таблица маршрутизации vrf.inet.0.

Существует еще одна функция при настройке фильтров:
!
interface-specific;
!
Данная команда включает режим, при котором каждый фильтр будет вести учет относительно того интерфейса, на который его применили, динамически создавая отдельные счетчики для него, а не используя один счетчик для всех интерфейсов.

Это все что касается фильтров и механизмов fbr на оборудовании Juniper Network.

Теперь перейдем к рассмотрению механизмов работы policy на оборудовании Juniper Network.

Наша политика, показанная вначале, проверяет, отмечен ли маршрут специальным community или нет, если да то она выполняет установку в параметр AS-PATH протокола BGP один препенд значением 65400. Если же это условие не выполняется тогда мы переходим ко второй части политики, которая, отбирая маршруты по prefix-list назначает им определенное community.

accept — самое важное действие: принять маршрут, после выпонения какого либо условия необходимо установить маршрут в таблицу машрутизации. Для этого и нужен accept.
as-path-expand — установить препенды в параметр AS-PATH до того как добавить собственный номер AS.
as-path-prepend — добавить препенды в параметр AS-PATH
class параметры QOS
community совершить какое либо действие над BGP community
default-action — установить действие по умолчанию.
external пометить маршрут как внешний. Данная функция помечает маршрут как внешний, что дает возможность изменить ход алгоритмов выбора активного маршрута, не в пользу данного маршрута, так как внутренний маршрут более приоритетен по отношению к внешнему.
install-nexthop изменить параметры аттрибута next-hop для маршрута, что позволить изменить направление маршрутизации трафика на устройстве. В качестве next-hop можно выбрать адрес next hop, который нужно использовать, или который нельзя использовать, так же можно указать определенную MPLS LSP например для балансировки трафика.
load-balance установить тип балансировки трафика: пакетная ( per packet ). В случае осуществления балансировки трафика по двум и более линкам/маршрутам будет осуществляться балансировка случайным образом каждый пакет в свой линк/ свой маршрут.
local-preference - изменить параметр Local Preference который влияет на выбор активного маршрута на маршрутизаторе. Чем выше параметр тем больше вероятность выбора данного маршрута активным.
map-to-interface — поменять интерфейс назначения, в который будет передаваться маршрут.
next-hop поменять значение next-hop маршрутизатора в маршруте. Часто используется для создания политики next-hop-self для BGP. В качестве next-hop мы можем указать как адрес маршрутизатора, так и сказать что пакеты надо отбросить, так же можно указать что next-hop lookup находится в определенной таблице маршрутизации.
reject — отбросить маршрут, так же как и в фильтре.
forwarding-class, source-class, destination-class — варианты используемые для подсчета статистики пакетов по тем или иным критериям.

Механизм использования функционала community.
Community — специальный аттрибут используемый протоколом BGP, который передается между AS при маршрутизации, т.е. соответственно может быть передан между сетями разных организаций, для управления маршрутизацией между этими организациями.
Существует два наиболее часто применимых общепринятых community:
no-export — не анонсировать данный маршрут всем eBgp соседям
no-advertize — не анонсировать данный маршрут никаким BGP соседям.

Так же хотелось бы в конце описать простую политику которая очень часто применяется в маршрутизации: экспорт, импорт маршрутов между протоколами. Часто необходимо отдать статический маршрут куда нибудь в BGP или IGP или передать маршруты между BGP и IGP.
Для этого в условии соответствия выбирается необходимый протокол:
!
set policy-options policy-statement test from protocol?
Possible completions:
[ Open a set of values
access Access server routes
access-internal Internal routes to directly connected clients
aggregate Aggregate routes
bgp BGP
direct Directly connected routes
dvmrp Distance Vector Multicast Routing Protocol
esis End System-to-Intermediate System
isis Intermediate System-to-Intermediate System
l2circuit Layer 2 circuits
l2vpn Layer 2 MPLS virtual private networks
ldp Label Distribution Protocol
local Local system addresses
msdp Multicast Source Discovery Protocol
ospf Open Shortest Path First
ospf2 Open Shortest Path First Version 2
ospf3 Open Shortest Path First Version 3
pim Protocol Independent Multicast
rip Routing Information Protocol
ripng Routing Information Protocol next generation
rsvp Resource Reservation Protocol
rtarget Local route target VPN membership
static Statically defined addresses
[edit]
!
Выбор протоколов довольно большой. Когда мы указали откуда будет импортироваться маршрут например: static. Далее следует просто выбрать действие: accept и присвоить эту политику на импорт или на экспорт к протоколу, в который следует произвести импорт маршрутов, или экспорт.
!
show policy-options
policy-statement test from protocol static;
then accept;
>
[edit]
!
На этом можно закончить базовые знания по политикам и фильтрам на оборудовании Juniper Network.

Это может пригодиться в случае если забыли пароль рута.

  1. Подключаемся консолью и ребутаем девайс по питанию
  2. В процессе загрузки, когда появятся "крутилки" жмем несколько раз на пробел
  3. Загружаемся в single-user mode
  4. Когда спросят вводим recovery
  5. Устанавливаем рутовый пароль:
  6. Делаем Exit и система попросится ребутнуться.

Причину alarm можно посмотреть через команду:

Часто висит ошибка:
Major Host 0 fxp0 : Ethernet Link Down
Ошибка о том, что management interface в дауне.

Она лечится через:

set system host-name jun100
set system time-zone GMT-3

set routing-options static route 0.0.0.0/0 next-hop 46.28.95.129

Заведём пользователя с правами администратора.

После последней команды система запросит пароль.

Поскольку теперь у нас уже есть пользователь админ, лучше отключить root, т.к. возможен подбор пароля из-вне.

Проверка:
show ntp associations

show ntp status

show system uptime

show log messages | match ntp

snmp description JUN100;
location Moscow;
contact Vladimir;
community public authorization read-write;
clients 192.168.2.49/32;
192.168.0.0/16;
>
>
>
Здесь Public = Comunity.
SNMP должно подхватываться через PRTG, SNMP Traffic.

Рассмотрим случай, когда на интерфейсах VLAN у нас будут висеть адреса:
vlan.100 up down inet 10.0.100.1/24
vlan.200 up up inet 10.0.200.1/24

Тогда настройки DHCP для обоих VLAN будут:

Проверка

Здесь vlan.0 и vlan.100 - интерфейсы, с которых он принимает запросы.
gw-jsrx240.HOME.local inet 172.16.1.1 - статическая запись.

Проверка:
show system services dns-proxy statistics
show system services dns-proxy cache
clear system services dns-proxy cache

Проверяем папку tmp и удаляем всё лишнее:

Для SRX100b подошла только версия: junos-srxsme-12.1X46-D72.2-domestic.tgz

Во время копирования на экране не видно что что-то происходит, проверить это можно через:
monitor traffic interface vlan.0 | match 254.35

Прошло на SRX345 с SCP:
file copy scp://vs@10.253.10.50/junos-srxsme-15.1X49-D130.6-domestic.tgz /var/tmp/junos-srxsme-15.1X49-D130.6-domestic.tgz
file list /var/tmp/
request system software add no-copy /var/tmp/junos-srxsme-15.1X49-D130.6-domestic.tgz

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

С точки зрения зон важно какие интерфейсы прикручены к зонам.
Это нам позволит определить между какими зона ходит наш трафик.

Вообще следует настроить дефолтную глобальную политику, запрещающую весь трафик и пишущую логи.
Такая политика срабатывает лишь в случае если ни одно из правил основных политик не сработало.

Далее мы включаем логи:

И можем мониторить или просматривать что получилось:
show log default-log-messages
monitor start default-log-messages

После этого можно посмотреть что творится на данной паре зон:
show security policies from-zone zone-200 to-zone trust
show security flow session

самое простое - просто разрешить SSH:

Но в этом случае любой желающий может подключиться к SSH и подбирать пароль.

Тогда можно сделать следующее:

Здесь, в конце добавлено запрещающее правило, иначе всё разрешается.
Интересно, что в этом случае не срабатывает общее запрещающее правило типа:

Show

Дополнительно
В случае, если NAT не работает для данной подсети, правила трансляции будут пусты:

В случае, если NAT не работает для данной подсети, flow session покажет сессии без трансляций. Т.е. ответ снаружи ожидается на адрес источника.

Если NAT нормально работает, ответ от внешних хостов будет адресован на внешний адрес нашего роутера:

Суть подобного ограничения - поставить его на интерфейс lo0.

Проверка:
clear firewall log
show firewall log

Мы увидим блокированные попытки доступа:

Поскольку мы получили рабочий и несложный конфиг, его можно сохранить как Rescue Configuration.
Rescue Configuration - это конфигурация, к которой мы можем вернуться в любое время, это избавляет от необходимости помнить порядковый номер для rollback command.

Сохранение Rescue Configuration

Восстановление до Rescue Configuration

либо нажать кнопку Reset config и сразу же её отпустить, то будет загружена rescue configuration.
Если изначально у нас все индикаторы были зелёными:

Сразу после нажатия Status станет оранжевым, и начнется применение Rescue Configuration

После успешного применения Status опять станет зелёным.

Проще всего это сделать через WinSCP
- current and previous 0 to 3 configurations: В папке /config. Тут текущий конфиг будет файл juniper.conf.gz
- 4 to 49 configurations: В папке /var/db/config

Данный файл(ы) можно забрать через WinSCP

Проще всего это сделать через WinSCP
- current and previous 0 to 3 configurations: В папке /config. Тут текущий конфиг будет файл juniper.conf.gz
- 4 to 49 configurations: В папке /var/db/config

Проще всего это сделать через WinSCP
- current and previous 0 to 3 configurations: В папке /config. Тут текущий конфиг будет файл juniper.conf.gz
- 4 to 49 configurations: В папке /var/db/config

Данный файл(ы) можно забрать через WinSCP

Тестировалось на Juniper SRX 345.
Предположим мы полностью потеряли конфигурацию, но у нас есть сохранённый фал конфигурации.

Помещаем сохранённый фал конфигурации в папку c:\\SFTP_Root

Подключаем ноутбук к management port fxp0.
Даём конфиг на fxp0

На ноут вешаем 192.168.1.2/24

Запускаем SCP Server.

- Для NAT нет трейса
- Почему то не отрабатывает (не видит трафика) monitor traffic interface vlan.100

Читайте также: