Configuration de règles de sécurité sous JunOS

Juniper firefly perimeter

L’évolution des systèmes informatiques vers la virtualisation, requiert une adaptation dans l’approche et la protection des ressources virtuelles. La solution de Juniper Firefly Perimeter intervient à ce niveau précis et se calque sur la sécurité des passerelles SRX. Elle offre une compatibilité avec les hyperviseurs VMware et KVM :

Le tarif est relativement bas pour Firefly Perimeter, environ 500€ sans option, comparé à brocade vyatta v5400 à 1800€ (prix public).

Téléchargement de Firefly Perimeter

Deux cas de téléchargements existent, votre licence est valide et est liée à votre compte ou bien vous souhaitez simplement essayer le produit en version d’évaluation durant soixante jours. Chacune de ses possibilités requièrent un compte valide Juniper.

Une fois sur mon compte, je me rends dans l’onglet All products qui contient un lien nommé Download Software.
Une liste apparaît, je sélectionne By series puis Firefly Perimeter :

J’utilise l’appliance VMware datant du 1 Novembre 2014 :

Firefly VMware Appliance MD5 SHA112.1X47-D15ova227,153,92021 Nov 2014

Si une erreur apparaît c’est que vous n’êtes pas autorisé à télécharger le package (Téléchargez-le donc via la fiche produit ci-dessous).

Rendez-vous donc sur la page du produit Firefly Perimeter puis cliquez sur l’onglet Evalution de Firefly Perimeter.
Le choix se portera sur Fichier OVA (pour l’équipement VMware Firefly Perimeter) puis cliquez sur Software :

Le déploiement de l’appliance se fera via le logiciel client vSphere sous Windows dans : Fichiers et Déployer le modèle OVF.

Mise en place de l’infrastructure réseau

L’infrastructure virtuelle aura un accès vers l’internet via un bloc-rip fournit par OVH et sera constituée de 3 réseaux LAN distincts.
Voici un exemple de mise en place souhaitée avec un schéma et une seule IP WAN :

Plus d’informations sur le site officiel : documentation.

Premier contact avec Firefly Perimeter

Pour commencer, nous utiliserons simplement la commande suivante :

root@% config-wizard

Suivez le guide :

Enter host name : firefly-kassianoff

Please enter root password:
Retype root password:

Would you like to configure domain name? [yes,no] (no): no
 Enter domain name: X.X.X.X

Would you like to configure name server? [yes, no] (no):
 Enter IP address for the name server : 213.186.33.99

Would you like to configure alternative name server? [yes, no] (no): yes
 Enter IP address for the name server: 213.186.33.199

Configure the following network interfaces

Identifier      Interface
    1           ge-0/0/0
    2           ge-0/0/1
    3           ge-0/0/2
    4           ge-0/0/3

Would you like to configure any of the above interfaces? [yes,no] (yes): 1

Enter one or more identifiers from the above interfaces separated by commas.
For example, 1,2,3

Please select interface identifiers: 1


  Configure IP on interface ge-0/0/0

    IP address for this interface: 178.30.70.49               # bloc rip fictif en 178.30.70.48/29
    Subnet mask bit length for this interface [1-32]: 29

Would you like to configure default gateway? [yes, no] (no): yes
    Enter IP address for the default gateway: 178.30.70.54

Would you like to create a new user account? [yes,no] (no): no

No new user was configured.

Would you like to configure SNMP Network Management? [yes,no] (no): no

SNMP Network Management was not configured

Would you like to review configuration commands? [yes,no] (no): yes

Would you like to commit the initial configuration and exit? [yes,no]: yes

Le récapitulatif des commandes est le suivant :

set system host-name firefly-kassianoff
set system root-authenfication encrypted-password-value "*******"
set system name-server 8.8.8.8
set interfaces ge-0/0/0 unit 0 family inet address 178.30.70.49/29
set system services web-management http
set system services telnet
set system services ssh
set routing-options tatic route 0.0.0.0/0 next-hop 178.30.70.54

Configuration de base

Nous entamons désormais la bonne configuration pour le fonctionnement:

configure

Ajoutons l’interface externe dans la zone de sécurité internet :

set security zones security-zone internet interfaces ge-0/0/0.0

Autorisons le trafic du service SSH du système dans la zone internet :

set security zones security-zone internet host-inbound-traffic system-services ssh

Depuis l’extérieur nous aurons donc un accès en SSH mais n’oubliez pas d’affiner quelques paramètres :

set system services ssh protocol-version v2
set system services ssh rate-limit 3 connection-limit 3

La configuration des interfaces LAN dispersées dans leurs zones respectives :

set interfaces ge-0/0/1 description web
set interfaces ge-0/0/1 unit 0 family inet address 192.168.10.1/29
set interfaces ge-0/0/2 description management
set interfaces ge-0/0/2 unit 0 family inet address 192.168.20.1/29
set interfaces ge-0/0/3 description openvpn
set interfaces ge-0/0/3 unit 0 family inet address 192.168.30.1/29

Précision concernant l’interface publique :

set interfaces ge-0/0/0 description WAN-01

Configuration de sécurité

Création des différentes zones : Web, Management et Openvpn

set security zones security-zone web
set security zones security-zone web interfaces ge-0/0/1
set security zones security-zone management
set security zones security-zone management interfaces ge-0/0/2
set security zones security-zone openvpn
set security zones security-zone openvpn interfaces ge-0/0/3

Ajout de l’adresse externe dans le pool :

set security nat source pool wan-01 address 178.30.70.49/32

Mise en place du NAT Source pour :

set security nat source rule-set 1 rule 1-1 match source-address 192.168.10.0/29
set security nat source rule-set 1 rule 1-1 then source-nat pool wan-01
set security nat source rule-set 1 rule 1-2 match source-address 192.168.20.0/29
set security nat source rule-set 1 rule 1-2 then source-nat pool wan-01
set security nat source rule-set 1 rule 1-3 match source-address 192.168.30.0/29
set security nat source rule-set 1 rule 1-3 then source-nat pool wan-01

Aussi, une façon plus simple et plus rapide :

set security nat source rule-set 1 rule 1-1 match source-address [ 192.168.10.0/29 192.168.20.0/29 192.168.30.0/29 ]
set security nat source rule-set 1 rule 1-1 then source-nat pool wan-01

Mise en place du NAT Destination pour :

set security nat destination pool Web-80 address 192.168.10.2/32 port 80
set security nat destination rule-set 1 from interface ge-0/0/0.0
set security nat destination rule-set 1 rule 1-1 match destination-address 178.30.70.49/32
set security nat destination rule-set 1 rule 1-1 match destination-port 80
set security nat destination rule-set 1 rule 1-1 match protocol tcp
set security nat destination rule-set 1 rule 1-1 then destination-nat pool Web-80
set security nat destination pool Web-443 address 192.168.10.2/32 port 443
set security nat destination rule-set 2 from interface ge-0/0/0.0
set security nat destination rule-set 2 rule 2-1 match destination-address 178.30.70.49/32
set security nat destination rule-set 2 rule 2-1 match destination-port 443
set security nat destination rule-set 2 rule 2-1 match protocol tcp
set security nat destination rule-set 2 rule 2-1 then destination-nat pool Web-443

Accès externe via 178.30.70.49:1194 vers 192.168.10.1:1194

set security nat destination pool Openvpn-1194 address 192.168.30.2/32 port 1194
set security nat destination rule-set 3 from interface ge-0/0/0.0
set security nat destination rule-set 3 rule 3-1 match destination-address 178.30.70.49/32
set security nat destination rule-set 3 rule 3-1 match destination-port 1194
set security nat destination rule-set 3 rule 3-1 match protocol tcp
set security nat destination rule-set 3 rule 3-1 then destination-nat pool Openvpn-1194

Déclaration de nos différentes adresses dans le carnet d’adresses  :

set security address-book global address wan-01 178.30.70.49/32
set security address-book global address server-web 192.168.10.2/32
set security adress-book global address server-management 192.168.20.2/32
set security address-book global address server-openvpn 192.168.30.2/32

Mise en place des politiques de sécurité interzones :

set security policies from-zone internet to-zone web policy nat-dest-web match source-address any
set security policies from-zone internet to-zone web policy nat-dest-web match destination-address server-web
set security policies from-zone internet to-zone web policy nat-dest-web match application any
set security policies from-zone internet to-zone web policy nat-dest-web then permit
set security policies from-zone web to-zone internet policy nat-dest-internet match source-address server-web
set security policies from-zone web to-zone internet policy nat-dest-internet match destination-address any
set security policies from-zone web to-zone internet policy nat-dest-internet match application any
set security policies from-zone web to-zone internet policy nat-dest-internet then permit
set security policies from-zone internet to-zone openvpn policy nat-dest-openvpn match source-address any
set security policies from-zone internet to-zone openvpn policy nat-dest-openvpn match destination-address server-openvpn
set security policies from-zone internet to-zone openvpn policy nat-dest-openvpn match application any
set security policies from-zone internet to-zone openvpn policy nat-dest-openvpn then permit
set security policies from-zone openvpn to-zone internet policy nat-dest-internet match source-address server-openvpn
set security policies from-zone openvpn to-zone internet policy nat-dest-internet match destination-address any
set security policies from-zone openvpn to-zone internet policy nat-dest-internet match application any
set security policies from-zone openvpn to-zone internet policy nat-dest-internet then permit

On se rend compte que la condition match application contient des applications déterminées et dans mon cas cela ne me convient pas. Il faut donc créer nos différentes applications que l’on utilisera ensuite entre les zones Management et Openvpn par exemple :

set applications application tcp22 destination-port 22
set applications application tcp5900 destination-port 5900
set security policies from-zone management to-zone openvpn policy nat-dest-openvpn match source-address server-management
set security policies from-zone management to-zone openvpn policy nat-dest-openvpn match destination-address server-openvpn
set security policies from-zone management to-zone openvpn policy nat-dest-openvpn match application [ tcp22 tcp5900 ]
set security policies from-zone management to-zone openvpn policy nat-dest-openvpn then permit
set security policies from-zone openvpn to-zone management policy nat-dest-management match source-address server-openvpn
set security policies from-zone openvpn to-zone management policy nat-dest-management match destination-address server-management
set security policies from-zone openvpn to-zone management policy nat-dest-management match application [tcp22 tcp5900]
set security policies from-zone openvpn to-zone management policy nat-dest-management then permit

Il suffira de faire la même manipulation entre les zones Web et Management, à vous de jouer désormais !