miércoles, 3 de agosto de 2016

Check Point - Instalando políticas desde la línea de comandos

Para instalar políticas desde la línea de comandos básicamente necesitamos:
  1. Nombre exacto de la política 
  2. Nombre exacto del objeto de firewall (gateway o cluster)
  3. Acceso modo expert al Management Server (SMS)
El camino corto:
Hasta ahora el camino mas corto que conozco es el siguiente: cada vez que se instala una política, esta es compilada en el SMS y luego enviada al gateway. Estos archivos quedan temporalmente almacenados en el directorio $FWDIR/state y dentro de este, se encuentra un archivo con el nombre links.C el cual contiene: nombre del objeto de firewall, nombre del producto instalado, estado de la última instalación, nombre de la política y hora de la última instalación.

Mas abajo un ejemplo del contenido del archivo. Como puedes ver, el nombre de los objetos son ClusterLab01 y SingleLab01; mientras que el nombre de las políticas son PolicyCXL01 PolicySGW02 respectivamente.

[Expert@fwmgmt01:0]# cat $FWDIR/state/links.C
(
        : (ClusterLab01
                :blade (FW1)
                :status (installed)
                :policy (PolicyCXL01)
                :time (" 2Aug2016 21:11:40")
        )
        : (SingleLab01
                :blade (FW1)
                :status (installed)
                :policy (PolicySGW02)
                :time (" 2Aug2016 21:13:26")
        )
)

El camino largo:
Como imaginarás hay cientos de formas de obtener la información que necesitamos. A continuación, una de ellas.

El nombre de la política se puede obtener del archivo rulebases_5_0.fws 

[Expert@fwmgmt01:0]# grep rule-base $FWDIR/conf/rulebases_5_0.fws
:rule-base ("##Global_Rules_Container"
:rule-base ("##Standard"
:rule-base ("##PolicyCXL01"
:rule-base ("##PolicySGW02"

En el ejemplo anterior, las políticas disponibles son Standard, PolicyGW01 y PolicyGW02.

Para encontrar el nombre del objeto ejecutamos:

 [Expert@fwmgmt01:0]# grep -i installable_targets objects_5_0.C -A 6 --color
:installable_targets (
        : (ReferenceObject
                :Name (ClusterLab01)
                :Table (network_objects)
                :Uid ("{FBACE8B8-D65F-4D4A-8E84-F767E56D4A30}")
        )
)
--
:installable_targets (
        : (ReferenceObject
                :Name (SingleLab01)
                :Table (network_objects)
                :Uid ("{73D9A084-9C3C-4F87-82C7-B9625F16223C}")
        )
)

En el ejemplo anterior, la línea ":Name..." nos da el nombre exacto del objeto. Toma en cuenta que ambos, el nombre de la política y el nombre de los objetos son sensibles a las mayúsculas

Listo! ya con el nombre de política y el nombre de los objetos podemos ejecutar:

fwm load <Nombre_Politica> <Nombre_Gateway>

Ejemplo:

[Expert@fwmgmt01:0]# fwm load PolicyCXL01 ClusterLab01

Installing policy on R77 compatible targets:
 PolicyCXL01.W: Security Policy Script generated into PolicyCXL01.pf
 export PolicyCXL01.Set:
 Compiled OK.
 PolicyCXL01:
 Compiled OK.
 export PolicyCXL01.Set:
 Compiled OK.
 PolicyCXL01:
 Compiled OK.
 Installing Security Gateway policy on: ClusterLab01 ...
  Security Gateway policy installed successfully on FW02 (member of ClusterLab01)...
  Security Gateway policy installed successfully on FW01 (member of ClusterLab01)...

 Security Gateway policy Installation for all modules was successful
 Security Gateway policy installation succeeded for:
 FW02 (member of ClusterLab01) FW01 (member of ClusterLab01)

También pudieses agregar un debug de la instalación con la opción -d 

fwm -d load PolicyCXL01 ClusterLab01

Toma en cuenta que los ejemplos anteriores son para instalar firewall únicamente. Te puedes poner creativo (no en producción por favor...) instalando políticas para IPS-1, Threat Prevention, Mobile Access, etc.. Hay un grupo de opciones adicionales interesantes, la sintaxis completa del comando es:

fwm load [-p <product>] [-S] [-o <product_option>] [-m] [-r] [-a | -c conf-file] <rule-base name> <targets>
Options:
-p  - Specify target's product. Only one product can be specified.
      Possible products:
          Security Gateway       - firewall
          Threat Prevention      - threatprevention
          UTM-1 Edge             - sofaware_gw
          Mobile Access          - cvpn
          InterSpect             - InterSpect
          IPS-1                  - ips1
      Note that for products InterSpect, IPS-1 and Mobile Access, rule-base name is irrelevant.
      The product of SmartLSM profiles should be selected according to type ("Security Gateway" or "UTM-1 Edge").
-o  - Specify product specific option.
      InterSpect possible options: policy, sd_updates
-S  - Targets are UTM-1 Edge Gateways.
-m  - All Or None (works only for gateways with the same version).
-r  - Do not perform All Or None for clusters (the default is to perform).
-a  - Execute command on all targets specified in $FWDIR/conf/sys.conf file.
-c  - Execute command on all targets specified in conf-file.

Espero te sea de utilidad...

¡Hasta la próxima!