Juniper SRX100, знакомство

в 12:41, , рубрики: juniper, Сетевые технологии, метки:

На днях мне привезли долгожданный Juniper SRX100.
До этого времени в основном общался с Cisco и серией роутеров, типа 2800, 800.
На сколько я понял, могу ошибаться, данное оборудование ближе к классу аппаратных файрволлов.
Под катом первичная настройка данной железяки и выход в интернет.

Включение

Открыл, распоковал, подключл консольный кабель, удивился наличию кнопки power.
Загрузка показала мне что данное устройство работает на основе FreeBSD ARM. Грузится с дефолтной конфигурацией минуты 3.
Никакой документации не читал. Логинюсь.
Со второй попытки угадал root, без пароля.
Тут меня ждало следующее удивление. Там была консоль. Нет не cli, а /bin/sh!
Подсмотрев где-то в интернете выяснилось что для попадания в cli JunOS надо написать, как не удивительно «cli».

screen /dev/ttyUSB0
root@hostname% whoami
--- JUNOS 11.2R4.3 built 2011-11-24 08:11:51 UTC
root
root@hostname% cli
root@hostname>

Первичная настройка

И так первым делом рекомендуется создать пользователя отличного от root.
Далее сменить пароль руту.

> show configuration system | display set
set system root-authentication encrypted-password "Пароль"

set system login user admin class super-user
set system login user admin authentication encrypted-password "Пароль"

В случае если хотите ввести пароль после ввода команды используйте:
plain-text-password вместо encrypted-password

В отличие от Cisco комманды не применяются немедленно.
Для применения конфигурации необходимо написать

commit

Если все правильно — в ответ будет commit complete.
Если ошибка — выведет где она.

Пароль руту необходимо дать обязательно! Иначе коммит не пройдет.

Просмотр конфигурации и режимы работы

Пока не забыл, как и в Сisco IOS в JunOS есть два основных режима коммандного интерфейса.
1. для исполнения комманд, приглашение заканчивается на ">"
2. для изменения конфигурации, приглашение заканчивается на "#"

Есть еще sh, он заканчивается на "%", но в ближайшее время он нам не пригодится.

Если лень переключаться, из режима конфигурирования для исполнения какой-либо команды, можно добавить в начало команды run.
Например,
#run ping ya.ru

Переход в режим конфигурирования, комманда configure, выход в коммандный — exit

просмотр текущей конфигурации так же возможен в обоих режимах.
из коммандного —
show configure
из конфигурационного
show

Выводом данных комманд является наиболее читаемый, структурированный текст.
например:

show configure services
services {
    ssh;
    telnet;
    xnm-clear-text;
    web-management {
        management-url my-jweb;         
        http {                          
            interface vlan.0;           
        }                               
        https {                         
            system-generated-certificate;
        }                               
    }                                   
    dhcp {                              
        router {                        
            192.168.8.1;                
        }                               
        pool 192.168.8.0/24 {           
            address-range low 192.168.8.100 high 192.168.8.200;
        }                               
        propagate-settings vlan;        
    }                                   
} 

Удобочитаемо, но не так легко применимо.
Для вывода комманд в режиме, в котором их можно легко переносить между устройствами можно добавить | display set

Пример вывода с display set:
show system services | display set
set system services ssh
set system services telnet
set system services xnm-clear-text
set system services web-management management-url my-jweb
set system services web-management http interface vlan.0
set system services web-management https system-generated-certificate
set system services dhcp router 192.168.8.1
set system services dhcp pool 192.168.8.0/24 address-range low 192.168.8.100
set system services dhcp pool 192.168.8.0/24 address-range high 192.168.8.200
set system services dhcp propagate-settings vlan

В принципе форматированный вывод так же можно скопировать и применить. Вот пример как:

root@trans-el-service# show security nat proxy-arp                     
interface vlan.0 {
    address {
        192.168.8.2/32;
        192.168.8.201/32 to 192.168.8.210/32;
    }
}

load merge terminal relative
далее кусок кода, и в конце control+d

Сеть

Интерфейсы

По умолчанию интерфейсы являются членами vlan0, все кроме нулевого. (fe-0/0/0 )

Первый интерфейс я решил вывести из vlan и настроил вот так:
set interfaces fe-0/0/1 unit 0 family inet address 11.11.187.104/25 primary

Интерфейс куда воткнут компьютер:
set interfaces fe-0/0/2 unit 0 family ethernet-switching vlan members vlan-trust

Настройка самих vlan'ов:
set vlans vlan-trust vlan-id 3
set vlans vlan-trust l3-interface vlan.0
set interfaces vlan unit 0 family inet address 192.168.8.1/24

Пусть меня поправят гуру, тут первая строка включает возможность коммутации между интерфейсами, втрая — назначает vlan по умолчанию. Как разберусь по нормальному — отпишусь.

Шлюз по умолчанию:
show routing-options | display set
set routing-options static route 0.0.0.0/0 next-hop 11.11.187.1

DNS были прописаны, но на всякий пожарный
set system name-server 8.8.8.8
set system name-server 8.8.4.4

NAT

Ну вот и подошли к самому интересному.
Сейчас постараюсь рассказать по проще, а усложнять буду в следующей статье.
Начнем понятное дело с source nat, то есть то что нужно большинству роутеров в домашней и smb среде.

И так, все же прежде чем рассказывать о nat, необходимо упомянуть о таком понятии как «зоны».
Зоны, нужны для описания и логического объединения сетей, а так же для описания правил файрволла внутри одной зоны. По умолчанию у нас присутствуют 2 зоны:
первая — trust, отвечает за локальную сеть,
вторая — untrust, отвечает за интернет.

приведу пример:

security-zone trust {
    host-inbound-traffic {
        system-services {
            all;
        }
        protocols {
            all;
        }
    }
    interfaces {
        vlan.0;
    }
}
security-zone untrust {
    screen untrust-screen;
    host-inbound-traffic {
        system-services {
            ssh;
            ike;
            https;
            ping;
        }
    }
    interfaces {                        
        fe-0/0/0.0 {                    
            host-inbound-traffic {      
                system-services {       
                    dhcp;               
                    tftp;               
                }                       
            }                           
        }                               
        fe-0/0/1.0;                     
    }                                   
} 

В данном примере описаны как раз те самые 2 зоны.
В зоне trust разрешен весь входящий на интерфейсы траффик.
В зоне untrust разрешены входящие ssh, ike, https, ping.
Здесь мы описываем например сможет ли человек попасть на роутер по ssh, если роутер определил его траффик как зона untrust.

Далее мы должны описать разрешения на трафик между зонами:

show security policies
from-zone trust to-zone untrust {
    policy trust-to-untrust {
        match {
            source-address any;
            destination-address any;
            application any;
        }
        then {
            permit;
        }
    }
}

этим мы разрешаем маршрутизацию любого внутреннего трафика наружу наружу.

Ну и долгожданный source 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;
                }
            }
        }
    }

Завершение

Вторая моя статья на хабре.
Приму любую конструктивную критику и буду ей благодарен. Уверен что во flow-policy на данном оборудовании не очень пока разобрался. Например про screens пока даже не читал.
Следующим этапом будет настройка IPSec site-to-site со сторонним оборудованием. И Dynamic-vpn. Уже реализовано, осталось написать.
Пока не реализовано, но тоже постараюсь успеть:
radius авторизация
2 wan канала
fail over.

Так же передо мной стоит подобная задача на 5505 АСA, но это уже другая история.

Литература

www.juniper.net/techpubs/en_US/junos11.4/information-products/pathway-pages/srx-series/index.html первое куда стоит идти.
Особенно советую Security Configuration Guide.
www.juniper.net/techpubs/en_US/junos11.4/information-products/topic-collections/security/software-all/security/index.html
Закачал ее версию в планшет и усиленно читаю.

Автор: stavinsky

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js