Функционал UTM (Unified Threat Management) на Juniper vSRX (Firefly Perimeter)

Начиная с версии 12.1X47-D10.4 (junos-vsrx-12.1X47-D10.4-domestic.ova) на виртуальном роутере-фаевроле Juniper Firefly Perimeter доступен функционал Unified Threat Management (контент-фильтрация, сетевой антивирус и антиспам). Функционал не требует наличия лицензии (пробный период 60 дней), что позволяет выполнить лабораторные работы по функционалу UTM при подготовке к экзаменам JNCI*-SEC, а также опробовать возможности UTM тем, тем кто собирается использовать его на реальной сети. В этой статье будет приведён пример использования сетевого антивируса Касперский на виртуальном фаерволе Juniper по следующей схеме:
junos-vsrx-utm
Хост, подключенный к порту ge-0/0/2 натится в IP-адрес интерфейса ge-0/0/1.

Включение антивируса Касперский:

set security utm feature-profile anti-virus type kaspersky-lab-engine

После чего проверяем статус:

root@utm1# run show security utm anti-virus status    
 UTM anti-virus status: 
 
    Anti-virus key expire date: 2014-11-12 12:41:43
    Update server: http://update.juniper-updates.net/AV/JSR/
           Interval: 60 minutes
           Pattern update status: N/A
           Last result: N/A
    Anti-virus signature version: not loaded
    Anti-virus signature compiler version: N/A
    Scan engine type: kaspersky-lab-engine
    Scan engine information: last action result: Engine not ready

Как видно из вывода, не хватает антивирусных баз.

Для того, чтобы они появились, нужно обеспечить выход в интернет самому устройству и прописать name-server для разрешения имени сервера обновлений. После того как это будет сделано, можно либо подождать(и vSRX их сам скачает), либо явно дать команду обновления баз:

root@utm1# run request security utm anti-virus kaspersky-lab-engine pattern-update 
Anti-virus update request results: av_mgr: pattern updater 5684 is started, downloading from http://update.juniper-updates.net/AV/JSR/.

Ждём окончания скачивания проверяем статус ещё раз:

root@utm1# run show security utm anti-virus status                          
 UTM anti-virus status: 
 
    Anti-virus key expire date: 2014-11-12 14:05:02
    Update server: http://update.juniper-updates.net/AV/JSR/
           Interval: 60 minutes
           Pattern update status: next update in 58 minutes
           Last result: already have latest database
    Anti-virus signature version: 11/12/2014 08:16 GMT, virus records: 484246
    Anti-virus signature compiler version: N/A
    Scan engine type: kaspersky-lab-engine
    Scan engine information: last action result: No error(0x00000000)

Теперь антивирусная база присутствует, можно конфигурировать дальше:

root@utm1# show security utm               
feature-profile {
    anti-virus {
        type kaspersky-lab-engine;
    }
}
utm-policy policy-av1 {
    anti-virus {
        http-profile junos-av-defaults;
    }
}

root@utm1# show security policies from-zone trust to-zone untrust    
policy permit-av {
    match {
        source-address any;
        destination-address any;
        application any;
    }
    then {
        permit {
            application-services {
                utm-policy policy-av1;
            }
        }
    }
}

На этом конфигурация антивируса завершена, проверяем работу с хоста:

root@host:~# w3m http://www.eicar.org/download/eicar.com.txt

VIRUS WARNING
188.40.238.250:80->192.0.2.2:35633 Download
contaminated file: www.eicar.org/download/eicar.com.txt
with virus EICAR-Test-File

Смотрим логи на vSRX-е:

root@utm1# run show log messages | last    
...
Nov 12 14:12:32  utm1 RT_UTM: AV_VIRUS_DETECTED_MT: AntiVirus: Virus detected: from 188.40.238.250:80 to 192.0.2.2:35636 source-zone untrust www.eicar.org/download/eicar.com.txt file www.eicar.org/download/eicar.com.txt virus EICAR-Test-File URL:http://www.viruslist.com/en/search?VN=EICAR-Test-File username N/A roles N/A
...

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

Полная конфигурация vSRX:

root@utm1# show                                                        
## Last changed: 2014-11-12 14:12:21 UTC
version 12.1X47-D10.4;
system {
    host-name utm1;
    root-authentication {
        encrypted-password "$1$MyYSRqwU$mxa2/p8X.5FJADmI4UOYy1"; ## SECRET-DATA
    }
    name-server {
        8.8.8.8;
    }
    services {
        ssh;
        web-management {
            http {
                interface ge-0/0/0.0;
            }
        }
    }
    syslog {
        user * {
            any emergency;
        }
        file messages {
            any any;                    
            authorization info;
        }
        file interactive-commands {
            interactive-commands any;
        }
    }
    inactive: license {
        autoupdate {
            url https://ae1.juniper.net/junos/key_retrieval;
        }
    }
}
interfaces {
    ge-0/0/0 {
        unit 0;
    }
    ge-0/0/1 {
        unit 0 {
            family inet {
                address 10.20.20.83/24;
            }
        }
    }                                   
    ge-0/0/2 {
        unit 0 {
            family inet {
                address 192.0.2.1/30;
            }
        }
    }
}
routing-options {
    static {
        route 0.0.0.0/0 next-hop 10.20.20.1;
    }
}
security {
    utm {
        feature-profile {
            anti-virus {
                type kaspersky-lab-engine;
            }
        }
        utm-policy policy-av1 {
            anti-virus {
                http-profile junos-av-defaults;
            }
        }
    }
    inactive: 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;
                    queue-size 2000;
                    timeout 20;
                }
                land;
            }                           
        }
    }
    nat {
        source {
            rule-set Rule1 {
                from zone trust;
                to zone untrust;
                rule 1 {
                    match {
                        source-address 0.0.0.0/0;
                    }
                    then {
                        source-nat {
                            interface;
                        }
                    }
                }
            }
        }
    }
    policies {
        from-zone trust to-zone trust {
            policy default-permit {     
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    permit;
                }
            }
        }
        from-zone trust to-zone untrust {
            policy permit-av {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    permit {
                        application-services {
                            utm-policy policy-av1;
                        }
                    }                   
                }
            }
        }
        from-zone untrust to-zone trust {
            policy default-deny {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    deny;
                }
            }
        }
    }
    zones {
        security-zone trust {
            tcp-rst;
            interfaces {
                ge-0/0/2.0 {
                    host-inbound-traffic {
                        system-services {
                            ping;
                        }
                    }
                }
            }
        }
        security-zone untrust {
            inactive: screen untrust-screen;
            interfaces {
                ge-0/0/0.0 {
                    host-inbound-traffic {
                        system-services {
                            http;
                            https;
                            ssh;
                            telnet;
                            dhcp;
                        }
                    }
                }
                ge-0/0/1.0;
            }
        }                               
    }
}

P.S. Спасибо Александру Махинову за наводку на релиз vSRX с рабочим UTM.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s