Juniper firewall

Все остальное

Juniper firewall

Сообщение v.seregin » 25 июл 2018, 05:43

Доброго дня.

Заморочился настроить firewall так как в последнее время ведется активные атаки как на саму железяку (SRX650 так и на сервера за ними, которые проанонсированы во вне через нее), немного об сети для наглядности:
- SRX650 используется как шлюз во всем предприятии и как пограничный маршрутизатор(4 аплинка от провайдеров по BGP) и еще VPN сервером(около 30 объектов подключаются к нему по ipsec);
- за ним еще 6 управляемых коммутаторов.

Интерфейсы, где:
хх.хх.хх.хх - внешний адрес в нашей сети маршрутизатора
уу.уу.уу.уу - внутренний адрес в нашей сети, куда подключен коммутатор с серверами и хостами.
Код: Выделить всё
    ge-0/0/13 {
        description LAN;
        unit 0 {
            family inet {
                address уу.уу.уу.уу/17;
            }
        }
    }
    lo0 {
        unit 0 {
            family inet {
                filter {
                    input-list [ accept-common-services discard-all ];
                address хх.хх.хх.1/24;
            }
        }
    }
routing-options {
    static {
        route xx.xx.xx.0/24 {
            next-hop xx.xx.xx.1;
            retain;
            readvertise;
        }
.......
    }
    aggregate {
        route xx.xx.xx.0/24 discard;
    }
    router-id xx.xx.xx.1;


Правила firewall ля lo0.0:
Код: Выделить всё
firewall {
    family inet {
        filter accept-bgp {
            term accept-bgp {
                from {
                    source-prefix-list {
                        BGP-neighbors-v4;
                    }
                    protocol tcp;
                    port bgp;
                    tcp-established;
                }
                then {
                    count accept-bgp;
                    accept;
                }
            }
        }
        filter accept-icmp {
            term discard-icmp-fragments {
                from {
                    is-fragment;
                    protocol icmp;
                }
                then {
                    count discard-icmp-fragments;
                    discard;
                }
            }
            term discard-icmp {
                from {
                    protocol icmp;
                    icmp-type [ echo-reply echo-request time-exceeded unreachable source-quench router-advertisement parameter-problem ];
                }
                then {
                    policer management-1Mb;
                    count accept-icmp;
                    accept;
                }
            }
        }
        filter accept-ssh {
            term accept-ssh {
                from {
                    protocol tcp;
                    destination-port ssh;
                }
                then {
                    policer management-5Mb;
                    count accept-ssh;
                    accept;
                }
            }
            term accept-https {
                from {
                    destination-port https;
                }
                then accept;
            }
        }
        filter accept-dns {
            term accept-dns {
                from {
                    source-prefix-list {
                        DNS-servers-v4;
                    }
                    destination-prefix-list {
                        LOCALS-v4;
                    }
                    protocol udp;
                    source-port 53;
                }
                then {
                    policer management-1Mb;
                    count accept-dns;
                    accept;
                }
            }
        }
        filter accept-ntp {
            term accept-ntp {
                from {
                    protocol udp;
                    port ntp;
                }
                then {
                    policer management-512kb;
                    count accept-ntp;
                    accept;
                }
            }
        }
        filter accept-common-services {
            term protect-ICMP {
                filter accept-icmp;
            }
            term protect-SSH {
                filter accept-ssh;
            }
            term protect-NTP {
                filter accept-ntp;
            }
            term protect-DNS {
                filter accept-dns;
            }
        }
        filter discard-all {
            term discard-ip-options {
                from {
                    ip-options any;
                }
                then {
                    count discard-ip-options;
                    log;
                    discard;
                }
            }
            term discard-tcp {
                from {
                    protocol tcp;
                }
                then {
                    count discard-tcp;
                    log;
                    discard;
                }
            }
            term discard-udp {
                from {
                    protocol udp;
                }
                then {
                    count discard-udp;
                    log;
                    discard;
                }
            }
            term discard-icmp {
                from {
                    destination-prefix-list {
                        LOCALS-v4;
                    }
                    protocol icmp;
                }
                then {
                    count discard-icmp;
                    log;
                    discard;
                }
            }
            term discard-unknown {
                then {
                    count discard-unknown;
                    log;
                    discard;
                }
            }
        }
...
    policer management-1Mb {
        if-exceeding {
            bandwidth-limit 1m;
            burst-size-limit 625k;
        }
        then discard;
    }
    policer management-5Mb {
        if-exceeding {
            bandwidth-limit 5m;
            burst-size-limit 625k;
        }
        then discard;
    }
    policer management-512kb {
        if-exceeding {
            bandwidth-limit 512k;
            burst-size-limit 25k;
        }
        then discard;
    }
    policer management-128kb {
        if-exceeding {
            bandwidth-limit 128k;
            burst-size-limit 12k;
        }
        then discard;
    }

Это все работает как надо, но если вешать правила на ge-0/0/13, для ограничение например тех портов, которые не должны светится то и доступ в сети до этих портов пропадает, сервера анонсируются во внешний мир так:
Код: Выделить всё
    nat {
        source {
            pool SOURCE-NAT {
                address {
                    xx.xx.xx.1/32;
                }
            }
            pool MAIL {
                address {
                    xx.xx.xx.11/32;
                }
            }
            rule-set POOL-NAT {
                from zone trust;
                to interface [ ge-0/0/1.0 ge-0/0/2.0 ge-0/0/3.0 ge-0/0/4.0];
                rule MAIL {
                    match {
                        source-address [ уу.уу.уу.уу/32 ];
                    }
                    then {
                        source-nat {
                            pool {
                                MAIL;
                            }
                        }
                    }
                }
                rule SNAT {
                    match {
                        source-address [ уу.уу.уу.уу/17 ];
                    }
                    then {
                        source-nat {
                            pool {
                                SOURCE-NAT;
                            }
                        }
                    }
                }
            }
      }
        destination {
            pool MAIL {
                address yy.yy.yy.yy/32;
            }
            rule-set R_ANT {
                from zone untrust;
                rule MAIL {
                    match {
                        destination-address xx.xx.xx.11/32;
                    }
                    then {
                        destination-nat {
                            pool {
                                MAIL;
                            }
                        }
                    }
                }
            }
        }
      
      
    policies {
        from-zone untrust to-zone trust {
            policy MAIL {
                match {
                    source-address any;
                    destination-address MAIL_SERV;
                    application any;
                }
                then {
                    permit {
                        application-services {
                            idp;
                        }
                    }
                }
            }
         
    zones {
        security-zone trust {
            tcp-rst;
            address-book {
                address MAIL_SERV yy.yy.yy.yy/32;
                     }
            screen trust-screen;
            host-inbound-traffic {
                system-services {
                    all;
                }
                protocols {
                    all;
                }
            }
            interfaces {
                ge-0/0/13.0;
            }


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

P.S. как вариант, уже после думал, создать таки эти правила и добавить в него исключения для внутренних наших сетей, но на сколько это правильно.
v.seregin
новичок
 
Сообщения: 8
Зарегистрирован: 16 май 2014, 04:42

Re: Juniper firewall

Сообщение root » 25 июл 2018, 08:06

Правила, которые должны влиять только на само устройство, нужно вешать только на интерфейс lo0 (loopback интерфейс).
Вот хорошая и полезная статья про firewall на Juniper: История одной DDOS атаки на роутер и методы защиты Juniper routing engine

P.S. Только причем тут маршрутизация я не осознал. Перенес тему.
С уважением, root

Изображение
------------
www.mega-net.ru - IT аутсорсинг
Аватара пользователя
root
Site Admin
 
Сообщения: 1894
Зарегистрирован: 11 июн 2008, 13:05
Откуда: Moscow, Russia


Вернуться в Разное (networks)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4