Вы здесь

Начальная настройка Juniper SRX

Подключение консолью

Консоль можно подключить как через COM-порт, так и через mini-USB, используя драйвера:
juniper_windows_7_10_64bit.zip
juniper_windows_xp_7_32bit.zip

Reset Config

  • Если нажать кнопку Reset config и сразу же её отпустить, то будет загружена rescue configuration
  • Если нажать кнопку Reset config и удерживать её в течение 15 секунд, то будет загружена factory-default settings
    После этого система будет перезагружена и можно будет зайти под root и пустым паролем.

Reset Config командами

root@host# load factory-default root@host# set system root-authentication plain-text-password New password: Retype new password:

Root Password recover

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

  1. Подключаемся консолью и ребутаем девайс по питанию
  2. В процессе загрузки, когда появятся "крутилки" жмем несколько раз на пробел
  3. Загружаемся в single-user mode
    loader>boot -s
  4. Когда спросят вводим recovery
    System watchdog timer disabled. Enter full pathname of shell or 'recovery' for root password recovery or RETURN for /bin/sh: recovery
  5. Устанавливаем рутовый пароль:
    user@host# set system root-authentication plain-text-password commit
  6. Делаем Exit и система попросится ребутнуться.

Перезагрузка

request system reboot

Если горит ALARM

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

show system alarms

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

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

set chassis alarm management-ethernet link-down ignore

Обновление ОС

Обновление Junos Software и откат(Rollback)

Базовая настройка

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

Default Gateway

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

Заведение пользователя

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

set system login user user_name full-name user_full_name set system login user user_name class super-user set system login user user_name authentication plain-text-password

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

Запрет на root login

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

set system services ssh root-login deny

NTP

set system ntp boot-server 0.ru.pool.ntp.org
set system ntp server 79.111.152.13
set system ntp server 213.141.154.170
set system ntp server 37.139.41.250
set system ntp server 185.22.60.71

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

root@jun100> show ntp associations remote refid st t when poll reach delay offset jitter ============================================================================== *ip-79-111-152-1 .GPS. 1 - 57 64 37 31.755 4.949 8.577 +lan.forstwoof.r 89.109.251.21 2 - 58 64 37 3.646 4.033 8.260 +meerix.ru 130.149.17.8 2 - 57 64 37 11.950 5.081 7.965 +nag.aleksdem.co 131.188.3.220 2 - 56 64 37 11.999 7.692 8.521

show ntp status

root@jun100> show ntp status status=0684 leap_none, sync_ntp, 8 events, event_peer/strat_chg, version="ntpd 4.2.0-a Fri May 6 05:45:14 UTC 2011 (1)", processor="octeon", system="JUNOS10.4R4.5", leap=00, stratum=2, precision=-17, rootdelay=31.755, rootdispersion=6.450, peer=19564, refid=79.111.152.13, reftime=de422cd1.fc9c0be4 Thu, Mar 1 2018 10:40:01.986, poll=6, clock=de422ce9.7896c17c Thu, Mar 1 2018 10:40:25.471, state=3, offset=0.000, frequency=0.000, jitter=10.360, stability=0.000

show system uptime

root@jun100> show system uptime Current time: 2018-03-01 10:40:52 GMT-3 System booted: 2018-03-01 09:55:12 GMT-3 (00:45:40 ago) Protocols started: 2018-03-01 09:57:47 GMT-3 (00:43:05 ago) Last configured: 2018-03-01 10:43:15 GMT-3 (00:-2:-23 ago) by root 10:40AM up 46 mins, 1 user, load averages: 0.04, 0.08, 0.11

show log messages | match ntp

root@jun100> show log messages | match ntp Mar 1 10:43:12 jun100 init: ntp (PID 3572) started

SNMP

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.

DHCP

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

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

[edit system services dhcp] root@jun100# show traceoptions { file dhcp.dbg; flag all; } pool 10.0.100.0/24 { address-range low 10.0.100.50 high 10.0.100.254; domain-name example.net; name-server { 8.8.8.8; } router { 10.0.100.1; } } pool 10.0.200.0/24 { address-range low 10.0.200.50 high 10.0.200.254; domain-name example.net; name-server { 8.8.8.8; } router { 10.0.200.1; } } [edit system services dhcp]

Проверка

show system services dhcp pool show system services dhcp binding show system services dhcp statistics show system services dhcp conflict

user@host# set system services dhcp traceoptions file dhcp.dbg
user@host# set system services dhcp traceoptions flag all

Работа с логами

[edit system syslog] root@jun100# show archive size 100k files 3; user * { any emergency; } file messages { any critical; authorization info; } file interactive-commands { interactive-commands error; } file interface-logs { any any; match ifOperStatus; } file temp_all { any any; } Здесь: - критические сообщения валятся в файл /var/log/messages - interface status в /var/log/interface-logs - временно всё валится в /var/log/temp_all Работа с файлами: - file list /var/log/ detail - show log messages - show log temp_all - monitor start temp_all - monitor stop

Кеширующий DNS Server

[edit system services dns] root@jun100_obn36a# show forwarders { 8.8.8.8; 8.8.4.4; } dns-proxy { interface { vlan.0; vlan.100; } cache { gw-jsrx240.HOME.local inet 172.16.1.1; } }

Здесь 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

Обновление Junos Software

  • Проверяем текущую версию Junos Software
    show version

    Наш файл обновления имеет вид:
    junos-srxsme-12.3X48-D60.2-domestic.tgz

  • Сохраним текущую конфигурацию:
    save pasvftp://vs:691691@192.168.254.35/jun100_12.03.2018.cfg

    либо:

    show configuration | no-more
  • Проверяем свободное место на Flash и удаляем лишнее:
    Check current Flash size:
    show system storage | match cf

    Purge logfiles:

    request system storage cleanup

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

    file list /var/tmp/ file delete /var/tmp/xyz
  • Установка без копирования по FTP:
    request system software add no-copy pasvftp://vs:691691@192.168.254.35/junos-srxsme-12.3X48-D60.2-domestic.tgz

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

    request system software add no-copy pasvftp://vs:691691@192.168.254.35/junos-srxsme-12.1X46-D72.2-domestic.tgz

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

  • Либо установка с копированием по FTP ( не прошла, не хватало места)
    file copy pasvftp://vs:691691@192.168.254.35/junos-srxsme-12.3X48-D60.2-domestic.tgz /var/tmp/
    request system software add no-copy /var/tmp/junos-srxsme-12.3X48-D60.2-domestic.tgz

    Прошло на 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

  • Перезагрузка
    request system reboot
  • После перезагрузки проверяем версию:
    root@jun100> show version Hostname: jun100 Model: srx100b JUNOS Software Release [12.1X46-D72.2]
  • Также см.
    SRX Getting Started - Junos Software Installation/Upgrade
    https://kb.juniper.net/InfoCenter/index?page=content&id=KB16652&actp=MET...

Работа с Zones и с Policies

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

[edit security zones] root@jun100# show security-zone trust { address-book { address server-1 10.0.100.10/32; address my_PC 192.168.2.12/32; address prtg_server 192.168.2.49/32; } host-inbound-traffic { system-services { all; } protocols { all; } } interfaces { vlan.0; vlan.100; } } security-zone untrust { screen untrust-screen; interfaces { fe-0/0/0.0 { host-inbound-traffic { system-services { ping; } } } } } security-zone zone-200 { host-inbound-traffic { system-services { all; } protocols { all; } } interfaces { vlan.200; } } [edit security zones]
[edit security policies] root@jun100# show from-zone trust to-zone untrust { policy trust-to-untrust { match { source-address any; destination-address any; application any; } then { permit; } } } from-zone untrust to-zone trust { policy server-access { match { source-address any; destination-address server-1; application junos-http; } then { permit; } } } from-zone trust to-zone trust { policy trust-to-trust { match { source-address any; destination-address any; application any; } then { permit; log { session-init; session-close; } count; } } } from-zone trust to-zone zone-200 { policy trust-to-zone-200 { match { source-address any; destination-address any; application any; } then { permit; log { session-init; session-close; } count; } } } from-zone zone-200 to-zone trust { policy zone-200-to-trust { match { source-address any; destination-address my_PC; application [ junos-ping RDP ]; } then { permit; log { session-init; session-close; } count; } } } from-zone zone-200 to-zone untrust { policy zone-200-to-untrust { match { source-address any; destination-address any; application any; } then { permit; log { session-init; session-close; } count; } } } global { policy default-deny { match { source-address any; destination-address any; application any; } then { deny; log { session-init; } } } } [edit security policies]

Проверка Zones

Смотрим зоны

show security zones terse

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

root@jun100> show security zones Security zone: trust Send reset for non-SYN session TCP packets: Off Policy configurable: Yes Interfaces bound: 2 Interfaces: vlan.0 vlan.100 Security zone: untrust Send reset for non-SYN session TCP packets: Off Policy configurable: Yes Screen: untrust-screen Interfaces bound: 1 Interfaces: fe-0/0/0.0

Проверка Policies

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

global { policy default-deny { match { source-address any; destination-address any; application any; } then { deny; log { session-init; } } } }

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

[edit system syslog] root@jun100# show archive size 100k files 3; file default-log-messages { any any; structured-data; }

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

1 2018-03-13T13:35:13.602+03:00 jun100 RT_FLOW - RT_FLOW_SESSION_DENY [junos@2636.1.1.1.2.41 source-address="10.0.200.50" source-port="1719" destination-address="192.168.2.49" destination-port="80" service-name="junos-http" protocol-id="6" icmp-type="0" policy-name="default-deny(global)" source-zone-name="zone-200" destination-zone-name="trust" application="UNKNOWN" nested-application="UNKNOWN" username="N/A" roles="N/A" packet-incoming-interface="vlan.200" encrypted="UNKNOWN" reason="policy deny"] session denied 10.0.200.50/1719->192.168.2.49/80 junos-http 6(0) default-deny(global) zone-200 trust UNKNOWN UNKNOWN N/A(N/A) vlan.200 UNKNOWN policy deny

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

Restrict Console access

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

security-zone untrust { address-book { address 46.28.95.128/28 46.28.95.128/28; address 89.221.49.48/28 89.221.49.48/28; } screen untrust-screen; interfaces { fe-0/0/0.0 { host-inbound-traffic { system-services { ping; ssh; } } } } }

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

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

from-zone untrust to-zone junos-host { policy mgmt-access { match { source-address [ 89.221.49.48/28 46.28.95.128/28 ]; destination-address any; application any; } then { permit; } } policy ping-access { match { source-address any; destination-address any; application junos-icmp-ping; } then { permit; } } policy denyall { match { source-address any; destination-address any; application any; } then { deny; } } }

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

global { policy default-deny { match { source-address any; destination-address any; application any; } then { deny; log { session-init; } } } }

Source NAT

security { nat { source { rule-set trust-to-untrust { from zone trust; to zone untrust; rule source-nat-rule { match { source-address 0.0.0.0/0; } then { source-nat { interface; } } } } } } screen { ids-option untrust-screen { icmp { ping-death; } ip { source-route-option; tear-drop; } tcp { syn-flood { alarm-threshold 1024; attack-threshold 200; source-threshold 1024; destination-threshold 2048; timeout 20; } land; } } } zones { security-zone trust { host-inbound-traffic { system-services { all; } protocols { all; } } interfaces { vlan.0; vlan.100; } } security-zone untrust { screen untrust-screen; interfaces { fe-0/0/0.0 { host-inbound-traffic { system-services { ping; } } } } } } policies { from-zone trust to-zone untrust { policy trust-to-untrust { match { source-address any; destination-address any; application any; } then { permit; } } } } }

Публикование сервера 80 порт

security { nat { source { rule-set trust-to-untrust { from zone trust; to zone untrust; rule source-nat-rule { match { source-address 0.0.0.0/0; } then { source-nat { interface; } } } } } destination { pool dst-nat-pool-1 { address 10.0.100.10/32 port 80; } rule-set rs1 { from zone untrust; rule r1 { match { destination-address 46.28.95.137/32; destination-port 80; } then { destination-nat pool dst-nat-pool-1; } } } } } screen { ids-option untrust-screen { icmp { ping-death; } ip { source-route-option; tear-drop; } tcp { syn-flood { alarm-threshold 1024; attack-threshold 200; source-threshold 1024; destination-threshold 2048; timeout 20; } land; } } } zones { security-zone trust { address-book { address server-1 10.0.100.10/32; } host-inbound-traffic { system-services { all; } protocols { all; } } interfaces { vlan.0; vlan.100; } } security-zone untrust { screen untrust-screen; interfaces { fe-0/0/0.0 { host-inbound-traffic { system-services { ping; } } } } } } policies { from-zone trust to-zone untrust { policy trust-to-untrust { match { source-address any; destination-address any; application any; } then { permit; } } } from-zone untrust to-zone trust { policy server-access { match { source-address any; destination-address server-1; application junos-http; } then { permit; } } } } }

Проверка NAT

Show

root@jun100> show security flow session root@jun100> show security flow session nat root@jun100> show security nat source summary

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

root@jun100> show security flow session nat | find 10.0.100 Pattern not found

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

root@jun100> show security flow session | find 10.0.100 In: 10.0.100.10/6 --> 8.8.8.8/512;icmp, If: vlan.100, Pkts: 1, Bytes: 60 Out: 8.8.8.8/512 --> 10.0.100.10/6;icmp, If: fe-0/0/0.0, Pkts: 0, Bytes: 0

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

root@jun100> show security flow session nat | find 10.0.100 In: 10.0.100.10/22022 --> 8.8.8.8/512;icmp, If: vlan.100, Pkts: 1, Bytes: 60 Out: 8.8.8.8/512 --> 46.28.95.137/24493;icmp, If: fe-0/0/0.0, Pkts: 1, Bytes: 60
root@jun100> show security flow session | find 10.0.100 In: 10.0.100.10/49158 --> 8.8.8.8/512;icmp, If: vlan.100, Pkts: 1, Bytes: 60 Out: 8.8.8.8/512 --> 46.28.95.137/11018;icmp, If: fe-0/0/0.0, Pkts: 1, Bytes: 60

Ограничение доступа по SSH

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

set firewall family inet filter local_acl term terminal_access from source-address 195.209.104.0/24 set firewall family inet filter local_acl term terminal_access from source-address 10.0.0.0/8 set firewall family inet filter local_acl term terminal_access from protocol tcp set firewall family inet filter local_acl term terminal_access from port ssh set firewall family inet filter local_acl term terminal_access from port telnet set firewall family inet filter local_acl term terminal_access then accept set firewall family inet filter local_acl term terminal_access_denied from protocol tcp set firewall family inet filter local_acl term terminal_access_denied from port ssh set firewall family inet filter local_acl term terminal_access_denied from port telnet set firewall family inet filter local_acl term terminal_access_denied then log set firewall family inet filter local_acl term terminal_access_denied then reject set firewall family inet filter local_acl term default-term then accept set interfaces lo0 unit 0 family inet filter input local_acl set interfaces lo0 unit 0 family inet address 127.0.0.1/32

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

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

root@imhtst1> show firewall log Log : Time Filter Action Interface Protocol Src Addr Dest Addr 12:54:35 pfe R ge-0/0/0.0 TCP 195.112.100.134 81.211.66.195 12:54:33 pfe R ge-0/0/0.0 TCP 195.112.100.134 81.211.66.195

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

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

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

request system configuration rescue save

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

rollback rescue

либо нажать кнопку Reset config и сразу же её отпустить, то будет загружена rescue configuration.
Если изначально у нас все индикаторы были зелёными:
nachalnaya_nastroyka_juniper_01_ciscomaster.ru.jpg
Сразу после нажатия Status станет оранжевым, и начнется применение Rescue Configuration
nachalnaya_nastroyka_juniper_02_ciscomaster.ru.jpg
После успешного применения 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.
Предположим мы полностью потеряли конфигурацию, но у нас есть сохранённый фал конфигурации.

Для аварийного восстановления мы будем использовать ноутбук, куда мы скопируем сохранённый фал конфигурации.
Установим на ноут SCP Server от Solarwinds:
http://ciscomaster.ru/content/juniper-i-server-scp

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

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

set interfaces fxp0 unit 0 family inet address 192.168.1.1/24

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

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

file copy scp://vs@192.168.1.2/imhtst1_VPN_BGP_working_23.05.2018 /var/tmp/ file list /var/tmp/ load override /var/tmp/imhtst1_VPN_BGP_working_23.05.2018 commit

Вопросы

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

Полезное:
https://habrahabr.ru/post/229765/

Определяем на каком интерфейсе находится определенный ip

root@jun100_obn36a> show arp
show ethernet-switching table | match 00:12:16:77:f7:53

juniper_windows_xp_7_32bit.zip

Комментарии

Есть SRX 240 H1, в процессе загрузки я могу вводить команды, смотреть процесс загрузки. Как он прогрузиться на английском языке пишет что - консольный разьем OFF и больше команды не принимает.

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Target Image