Как стать автором
Поиск
Написать публикацию
Обновить

Базовая настройка Juniper серии SRX

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

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

В мои руки попал новенький Juniper SRX240B и все нижесказанное будет относиться к нему. А т.к. JunOS позиционируется как единая ОС для всей серии (как минимум), то… сами делайте выводы. Также я использую версию JunOS 12.1X46-D20.5 (самая последняя, на момент публикации поста):
cartman@gw-jsrx240# run show version 
Hostname: gw-jsrx240
Model: srx240b
JUNOS Software Release [12.1X46-D20.5]


Для начала поставим небольшой круг задач, которые будем решать:
  • Source NAT
  • DHCP Server
  • DNS Server
  • SSH Hardening
  • IDP, Security Features


Поехали…

Source NAT


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

cartman@gw-jsrx240# show security nat | display set 
set security nat source rule-set trust-to-untrust from zone trust
set security nat source rule-set trust-to-untrust to zone untrust
set security nat source rule-set trust-to-untrust rule source-nat-rule match source-address 0.0.0.0/0
set security nat source rule-set trust-to-untrust rule source-nat-rule then source-nat interface


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

cartman@gw-jsrx240# show 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;
                }
            }
        }
    }
}


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

set security nat source rule-set trust-to-untrust rule source-nat-rule match source-address 0.0.0.0/0


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

set security nat source rule-set trust-to-untrust rule source-nat-rule match source-address 172.16.1.0/27


DHCP Server


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

cartman@gw-jsrx240# show system services dhcp | display set 
set system services dhcp maximum-lease-time 21600
set system services dhcp default-lease-time 21600
set system services dhcp pool 172.16.1.0/27 address-range low 172.16.1.2
set system services dhcp pool 172.16.1.0/27 address-range high 172.16.1.30
set system services dhcp pool 172.16.1.0/27 router 172.16.1.1
set system services dhcp propagate-settings vlan.0


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

cartman@gw-jsrx240# show system services dhcp     
maximum-lease-time 21600;
default-lease-time 21600;
pool 172.16.1.0/27 {
    address-range low 172.16.1.2 high 172.16.1.30;
    router {
        172.16.1.1;
    }
}
propagate-settings 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 серверу можно посмотреть следующей командой:

cartman@gw-jsrx240# run show system services dhcp statistics 
Packets dropped:
    Total                      0

Messages received:
    BOOTREQUEST                0
    DHCPDECLINE                0
    DHCPDISCOVER               0
    DHCPINFORM                 0
    DHCPRELEASE                0
    DHCPREQUEST                0

Messages sent:
    BOOTREPLY                  0
    DHCPOFFER                  0
    DHCPACK                    0
    DHCPNAK                    0


DNS Server


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

cartman@gw-jsrx240# show system services dns | display set 
set system services dns forwarders 8.8.8.8
set system services dns forwarders 8.8.4.4
set system services dns dns-proxy interface vlan.0
set system services dns dns-proxy cache gw-jsrx240.HOME.local inet 172.16.1.1


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

cartman@gw-jsrx240# show system services dns                  
forwarders {
    8.8.8.8;
    8.8.4.4;
}
dns-proxy {
    interface {
        vlan.0;
    }
    cache {
        gw-jsrx240.HOME.local inet 172.16.1.1;
    }
}


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

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

cartman@gw-jsrx240# show system name-server | display set 
set system name-server 172.16.1.1


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

cartman@gw-jsrx240# show system name-server 
172.16.1.1;


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

cartman@gw-jsrx240# run show system services dns-proxy statistics 
DNS proxy statistics        :
    Status                  : enabled          
    IPV4 Queries received   : 0                
    IPV6 Queries received   : 0                
    Responses sent          : 0                
    Queries forwarded       : 0                
    Negative responses      : 0                
    Positive responses      : 0                
    Retry requests          : 0                
    Pending requests        : 0                
    Server failures         : 0                
    Interfaces              : vlan.0


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

cartman@gw-jsrx240# run show system services dns-proxy cache


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

cartman@gw-jsrx240# run clear system services dns-proxy cache


SSH Hardening


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

cartman@gw-jsrx240# show system services ssh | display set 
set system services ssh root-login deny
set system services ssh protocol-version v2
set system services ssh connection-limit 5
set system services ssh rate-limit 5

cartman@gw-jsrx240# show system login | display set           
set system login retry-options tries-before-disconnect 5
set system login retry-options backoff-threshold 1
set system login retry-options backoff-factor 10
set system login retry-options minimum-time 30
set system login user cartman full-name "FIRST_NAME LAST_NAME"
set system login user cartman uid 2000
set system login user cartman class super-user
set system login user cartman authentication ssh-rsa "SSH_RSA_PUBLIC_KEY"


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

cartman@gw-jsrx240# show system services ssh                  
root-login deny;
protocol-version v2;
connection-limit 5;
rate-limit 5;

cartman@gw-jsrx240# show system login           
retry-options {
    tries-before-disconnect 5;
    backoff-threshold 1;
    backoff-factor 10;
    minimum-time 30;
}
user cartman {
    full-name "FIRST_NAME LAST_NAME";
    uid 2000;
    class super-user;
    authentication {
        ssh-rsa "SSH_RSA_PUBLIC_KEY"; ## SECRET-DATA
    }
}


Пояснения:
  • 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


cartman@gw-jsrx240# show security screen | display set 
set security screen ids-option untrust-screen icmp ping-death
set security screen ids-option untrust-screen ip source-route-option
set security screen ids-option untrust-screen ip tear-drop
set security screen ids-option untrust-screen tcp syn-flood alarm-threshold 1024
set security screen ids-option untrust-screen tcp syn-flood attack-threshold 200
set security screen ids-option untrust-screen tcp syn-flood source-threshold 1024
set security screen ids-option untrust-screen tcp syn-flood destination-threshold 2048
set security screen ids-option untrust-screen tcp syn-flood timeout 20
set security screen ids-option untrust-screen tcp land


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

cartman@gw-jsrx240# show security 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;
    }
}


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


Не забываем сделать commit, иначе никакие изменения не вступят в силу:
cartman@gw-jsrx240# commit check 
configuration check succeeds


cartman@gw-jsrx240# commit 
commit complete


Итого


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

cartman@gw-jsrx240# show
cartman@gw-jsrx240# show
## Last changed: 2014-07-12 20:15:48 MSK
version 12.1X46-D20.5;
system {
host-name gw-jsrx240;
domain-name HOME.local;
domain-search HOME.local;
time-zone Europe/Moscow;
authentication-order password;
root-authentication {
encrypted-password "$1$ENCRYPTED_PASSWORD"; ## SECRET-DATA
}
name-server {
172.16.1.1;
}
name-resolution {
no-resolve-on-input;
}
login {
retry-options {
tries-before-disconnect 5;
backoff-threshold 1;
backoff-factor 10;
minimum-time 30;
}
user cartman {
full-name «FIRST_NAME LAST_NAME»;
uid 2000;
class super-user;
authentication {
ssh-rsa «SSH_RSA_PUBLIC_KEY»; ## SECRET-DATA
}
}
}
services {
ssh {
root-login deny;
protocol-version v2;
connection-limit 5;
rate-limit 5;
}
dns {
forwarders {
8.8.8.8;
8.8.4.4;
}
dns-proxy {
interface {
vlan.0;
}
cache {
gw-jsrx240.HOME.local inet 172.16.1.1;
}
}
}
web-management {
https {
port 443;
system-generated-certificate;
interface vlan.0;
}
session {
idle-timeout 300;
session-limit 2;
}
}
dhcp {
maximum-lease-time 21600;
default-lease-time 21600;
pool 172.16.1.0/27 {
address-range low 172.16.1.2 high 172.16.1.30;
router {
172.16.1.1;
}
}
propagate-settings vlan.0;
}
}
syslog {
archive size 100k files 3;
user * {
any emergency;
}
file messages {
any critical;
authorization info;
}
file interactive-commands {
interactive-commands error;
}
}
max-configurations-on-flash 5;
max-configuration-rollbacks 5;
license {
autoupdate {
url ae1.juniper.net/junos/key_retrieval;
}
}
ntp {
server 0.pool.ntp.org prefer;
server 1.pool.ntp.org;
server 2.pool.ntp.org;
server 3.pool.ntp.org;
}
}
interfaces {
interface-range interfaces-trust {
member-range ge-0/0/1 to ge-0/0/15;
unit 0 {
family ethernet-switching {
vlan {
members vlan-trust;
}
}
}
}
ge-0/0/0 {
unit 0 {
family inet {
dhcp;
}
}
}
ge-0/0/1 {
unit 0 {
family ethernet-switching {
vlan {
members vlan-trust;
}
}
}
}
ge-0/0/2 {
unit 0 {
family ethernet-switching {
vlan {
members vlan-trust;
}
}
}
}
ge-0/0/3 {
unit 0 {
family ethernet-switching {
vlan {
members vlan-trust;
}
}
}
}
ge-0/0/4 {
unit 0 {
family ethernet-switching {
vlan {
members vlan-trust;
}
}
}
}
ge-0/0/5 {
unit 0 {
family ethernet-switching {
vlan {
members vlan-trust;
}
}
}
}
ge-0/0/6 {
unit 0 {
family ethernet-switching {
vlan {
members vlan-trust;
}
}
}
}
ge-0/0/7 {
unit 0 {
family ethernet-switching {
vlan {
members vlan-trust;
}
}
}
}
ge-0/0/8 {
unit 0 {
family ethernet-switching {
vlan {
members vlan-trust;
}
}
}
}
ge-0/0/9 {
unit 0 {
family ethernet-switching {
vlan {
members vlan-trust;
}
}
}
}
ge-0/0/10 {
unit 0 {
family ethernet-switching {
vlan {
members vlan-trust;
}
}
}
}
ge-0/0/11 {
unit 0 {
family ethernet-switching {
vlan {
members vlan-trust;
}
}
}
}
ge-0/0/12 {
unit 0 {
family ethernet-switching {
vlan {
members vlan-trust;
}
}
}
}
ge-0/0/13 {
unit 0 {
family ethernet-switching {
vlan {
members vlan-trust;
}
}
}
}
ge-0/0/14 {
unit 0 {
family ethernet-switching {
vlan {
members vlan-trust;
}
}
}
}
ge-0/0/15 {
unit 0 {
family ethernet-switching {
vlan {
members vlan-trust;
}
}
}
}
vlan {
unit 0 {
family inet {
address 172.16.1.1/27;
}
}
}
}
protocols {
stp;
}
security {
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;
}
}
}
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;
}
}
}
}
}
}
policies {
from-zone trust to-zone untrust {
policy trust-to-untrust {
match {
source-address any;
destination-address any;
application any;
}
then {
permit;
}
}
}
from-zone trust to-zone trust {
policy trust-to-trust {
match {
source-address any;
destination-address any;
application any;
}
then {
permit;
}
}
}
}
zones {
security-zone untrust {
screen untrust-screen;
interfaces {
ge-0/0/0.0 {
host-inbound-traffic {
system-services {
ping;
ssh;
dhcp;
}
}
}
}
}
security-zone trust {
host-inbound-traffic {
system-services {
all;
}
protocols {
all;
}
}
interfaces {
vlan.0;
}
}
}
}
vlans {
vlan-trust {
vlan-id 10;
l3-interface vlan.0;
}
}


Если будет выдан инвайт, опишу настройки PPPoE, Dynamic VPN, Site-to-Site VPN и т.д.
Теги:
Хабы:
Всего голосов 7: ↑6 и ↓1+5
Комментарии13

Публикации

Ближайшие события