Developer Resources
Gateway/Management Integration
Communication Modes
The OPSEC infrastructure provides a host of choices to secure
the communication between the application and VPN-1/FireWall-1.
This section discusses the different modes of communication
and the configuration process.
Using the Check Point SIC infrastructure, OPSEC applications can establish one of the following types of connection with VPN-1/FireWall-1:
| Authenticated | The OPSEC application and VPN-1/FireWall-1 verify each other's identities before data is exchanged. |
| Authenticated and Encrypted | The OPSEC application and VPN-1/FireWall-1 authenticate to each other and the information exchanged is encrypted using a 3DES or RC4 key. |
| Clear Communication | The OPSEC application and VPN-1/FireWall-1 exchange information without authentication and/or encryption. This method should be used for testing and debugging only. It is not recommended to deploy this in the real world because the APIs can potentially expose information about the network structure and could be construed as a security risk. |
The OPSEC SDK 4.1.2 provides four modes of communication between the OPSEC application and VPN-1/FireWall-1.
- clear - No authentication/encryption
- auth_opsec - Check Point proprietary authentication
- ssl_clear_opsec - Authentication via an SSL tunnel
- ssl_opsec - Authenticated and Encrypted tunnel
The default modes of communication and ports for VPN-1/FireWall-1 4.1.SPx are
CVP |
18181 |
auth_opsec |
UFP |
18182 |
auth_opsec |
SAM |
18183 |
auth_opsec |
LEA |
18184 |
auth_opsec |
ELA |
18187 |
ssl_opsec |
UAA |
19191 |
ssl_opsec |
The default modes of communication and ports for VPN-1/FireWall-1 NG are:
CVP |
18181 |
sslca_clear |
UFP |
18182 |
sslca_clear |
SAM |
18183 |
sslca |
LEA |
18184 |
sslca |
ELA |
18187 |
sslca |
CPMI |
18190 |
sslca |
AMON |
18193 |
sslca |
UAA |
19191 |
sslca |
OPSEC SDK NG introduced new certificate based authentication and encryption methods in addition to the previous methods. OPSEC applications compiled with OPSEC SDK NG must support the new syntax of the SIC infrastructure. The OPSEC application and the Check Point module exchange version information. If there is a version difference, the OPSEC infrastructure will work in backwards compatibility mode. If they are the same version, (NG and forwards) they will not accommodate the older syntax.
VPN-1/FireWall-1 NG will work seamlessly with OPSEC applications using SDK 4.1.2 if default communication mode and the default port have not been changed. OPSEC Applications using SDK 4.1.2 cannot take advantage of the new features of NG like certificate-based authentication and encryption.
Steps to implement authentication and/or encryption
The OPSEC application and the corresponding VPN-1/FireWall-1 should be configured for the same communication method. The communication method on VPN-1/FireWall-1 is configured using the file $FWDIR/conf/fwopsec.conf. The communication method on the application can be configured via a user interface or a configuration file according to the partner's preference. It is however required to provide an easy way to configure the other modes.
- Configure both VPN-1/FireWall-1 and the OPSEC application to use the same communication method.
- If the OPSEC application and VPN-1/FireWall-1 use Check Point's proprietary authentication algorithm (fwn1 and auth_opsec) or SSL based authentication (ssl, ssl_opsec, ssl_clear_opsec), create authentication key (using fw putkey) on the VPN-1/FireWall-1 machine. If they are to use certificates (sslca, sslca_comp, sslca_rc4. sslca_rc4_comp, asym_sslca, asym_sslca_comp, asym_sslca_rc4, asym_sslca_rc4_comp, sslca_clear), create a certificate for the OPSEC application on the management server, which is also an Internal Certificate Authority.
- Create the authentication key (using opsec_putkey) on the OPSEC application machine or retrieve the certificate in PKCS#12 format (using opsec_pullcert) from the management server.
OPSEC Applications are forwards and backwards compatible. This means that applications compiled with OPSEC SDK 4.1.2 can communicate with VPN-1/FireWall-1 NG and applications compiled with OPSEC SDK NG can interoperate with VPN-1/FireWall-1 4.1.SPx.
New communication methods introduced in OPSEC SDK NG are not backwards compatible.
The next few sections describe configuring the OPSEC application to communication with VPN-1/FireWall-1, taking into consideration version differences:
| VPN-1/FireWall-1 4.1 with OPSEC Application using SDK 4.1.2 | |
| VPN-1/FireWall-1 NG with OPSEC Application using SDK 4.1.2 | |
| VPN-1/FireWall-1 NG with OPSEC Application using SDK NG |
VPN-1/FireWall-1
4.1 with OPSEC Application using SDK 4.1.2
Use default port and communication mode
If a LEA application wants to communicate with the VPN-1/FireWall-1 LEA server to get log information using the default port and the default mode of communication, the following steps are needed.
On the VPN-1/FireWall-1 machine
- Stop VPN-1/FireWall-1 by executing fwstop
- fw putkey -opsec <lea_application_ip_address>
- Start VPN-1/FireWall-1 by executing fwstart
On the LEA Application machine
- Specify the LEA server configuration in the application's
configuration. This will typically consist of three lines
relevant to OPSEC
lea_server ip_address x.x.x.x
lea_server auth_port 18184
lea_server auth_type auth_opsec - opsec_putkey
. This will create a file called "authkeys.C" which will be used for authentication. Please make sure this file is accessible to the LEA application. The OPSEC infrastructure will look for this file in the directory that the environment variable "OPSECDIR" specifies. If OPSECDIR is not set or the file is not available in the directory, it will look for the file in the current working directory. If the "authkeys.C" file cannot be accessed, the authentication will fail and the communication between the OPSEC application and VPN-1/FireWall-1 will not be initialized. - Start the LEA application.
VPN-1/FireWall-1
4.1 with OPSEC Application using SDK 4.1.2
Change communication mode to ssl_opsec on default port
If a LEA application wants to use ssl_opsec, the following steps are needed.
On the VPN-1/FireWall-1 machine
- Stop VPN-1/FireWall-1 by executing fwstop.
- Edit $FWDIR/conf/fwopsec.conf and change the line "lea_server auth_type auth_opsec" to "lea_server auth_type ssl_opsec". Do not change the line "lea_server auth_port 18184"
- fw putkey -opsec -ssl
<lea_application_ip_address>. Be sure to use the "-ssl" option. - Start VPN-1/FireWall-1 by executing fwstart
On the LEA Application machine
- Specify the LEA server configuration in the application's
configuration. This will typically consist of three lines
relevant to OPSEC
lea_server ip_address x.x.x.x
lea_server auth_port 18184
lea_server auth_type ssl_opsec - Use the "-ssl" option with opsec_putkey also. The command
will be opsec_putkey -ssl
<vpn-1-fw-1_ip_address>. This will create a file called "sslkeys.C". The same rules as "authkeys.C" apply to this file - Start the LEA application
The steps to use ssl_clear_opsec are same as above. Replace "ssl_clear_opsec" for "ssl_opsec".
VPN-1/FireWall-1
4.1 with OPSEC Application using SDK 4.1.2
Change communication mode to clear
If a LEA application wants to use no authentication or encryption to communicate with VPN-1/FireWall-1, the following steps are needed. This mode should be used for debugging purposes only since the data passed between the application and VPN-1/FireWall-1 might contain sensitive information. On the VPN-1/FireWall-1 machine
- Stop VPN-1/FireWall-1 by executing fwstop
- Edit $FWDIR/conf/fwopsec.conf. Change the line "lea_server auth_port 18184" to "lea_server port 18184"
- Comment out the line "lea_server auth_type auth_opsec" by placing a # at the beginning of the line "#lea_server auth_type auth_opsec"
- Start VPN-1/FireWall-1 by executing fwstart
On the LEA Application machine
- Specify the LEA server configuration in the application's
configuration. This will typically consist of two lines
relevant to OPSEC
lea_server ip_address x.x.x.x
lea_server port 18184 - Start the LEA application
VPN-1/FireWall-1
4.1 with OPSEC Application using SDK 4.1.2
Change the default port number
If a LEA application wants to use a port other than 18184 to communicate with VPN-1/FireWall-1, the following steps are needed.
On the VPN-1/FireWall-1 machine
- Stop VPN-1/FireWall-1 by executing fwstop
- Edit $FWDIR/conf/fwopsec.conf. Change the line "lea_server auth_port 18184" to "lea_server auth_port 19199"
- Start VPN-1/FireWall-1 by executing fwstart
On the LEA Application machine
- Specify the LEA server configuration in the application's
configuration. This will typically consist of two lines
relevant to OPSEC
lea_server ip_address x.x.x.x
lea_server auth_port 19199The port number specified here should be the same as specified in $FWDIR/conf/fwopsec.conf
- Start the LEA application
VPN-1/FireWall-1
NG with OPSEC Application using SDK 4.1.2
Use default port and communication mode
If a LEA application compiled with SDK 4.1.2 is using the default communication mode (auth_opsec) and the default port (18184), the following steps are needed to setup the communication with VPN-1/FireWall-1 NG.
On the VPN-1/FireWall-1 machine
- Stop VPN-1/FireWall-1 by executing cpstop
- fw putkey -opsec <lea_application_ip_address>
- Start VPN-1/FireWall-1 by executing cpstart
On the LEA Application machine
- Specify the LEA server configuration in the application's configuration. This will typically consist of three lines relevant to OPSEC
- opsec_putkey <vpn-1-fw-1_ip_address>
- Start the LEA application
lea_server ip_address x.x.x.x
lea_server auth_port 18184
lea_server auth_type auth_opsec
VPN-1/FireWall-1
NG with OPSEC Application using SDK 4.1.2
Change the communication mode to ssl_opsec on the default
port
If a LEA application wants to use ssl_opsec, the following steps are needed. On the VPN-1/FireWall-1 machine
- Stop VPN-1/FireWall-1 by executing cpstop
- Edit $FWDIR/conf/fwopsec.conf and change the line "lea_server auth_type auth_opsec" to "lea_server auth_type ssl_opsec". Do not change the line "lea_server auth_port 18184"
- fw putkey -opsec -ssl <lea_application_ip_address>. Be sure to use the "-ssl" option.
- Start VPN-1/FireWall-1 by executing fwstart
On the LEA Application machine
- Specify the LEA server configuration in the application's
configuration. This will typically consist of three lines
relevant to OPSEC
lea_server ip_address x.x.x.x
lea_server auth_port 18184
lea_server auth_type ssl_opsec - Use the "-ssl" option with opsec_putkey also. The command will be opsec_putkey -ssl <vpn-1-fw-1_ip_address>. This will create a file called "sslkeys.C". The same rules as "authkeys.C" apply to this file
- Start the LEA application
The steps to use ssl_clear_opsec are same as above. Replace "ssl_clear_opsec" for "ssl_opsec"
VPN-1/FireWall-1
NG with OPSEC Application using SDK NG
Use default port and communication mode
If a LEA application compiled with SDK NG is using the default communication mode (sslca) and the default port (18184), the following steps are needed to setup the communication with VPN-1/FireWall-1 NG.
- Define the OPSEC application object in the Check Point Policy Editor. At the bottom of the dialog box click on the 'Communication' button. This will generate the object's DN (distinguished name). The DN will be used in the SIC communication to identify the object. Hence it is also called the SIC name.
- Obtain the DN of the Check Point module, the management server or the enforcement module. Double click on the object in the Policy Editor. The SIC name (is the same as the DN) is at the bottom of the dialog box under 'Secure Internal Communication', next to the 'Communication' button.
- The certificate is also created when the OPSEC application communication is initialized
On the LEA Application machine
- Specify the LEA server configuration in the application's configuration. The configuration file "lea.conf" in NG should look like
# ELA SIC name is created when the
OPSEC application is
# defined using the policy editor. If you double-click
# on your OPSEC application object, the SIC name in at
# the bottom of the dialog box.
opsec_sic_name "CN=lea_client,O=london.mydomain.com.n87vjo"
lea_server ip
x.x.x.x
lea_server auth_port 18184
lea_server auth_type sslca
# click on your management server object, the server
# SIC name is at the bottom of the dialog box.
lea_server opsec_entity_sic_name "CN=cp_mgmt,O= london.mydomain.com.n87vjo"
# Optionally the application can specify
a SIC policy
# file and a name for the certificate file.
# The default name for the certificate file is
# opsec.p12.
opsec_sslca_file "lea_client.p12"
opsec_sic_policy_file "mysicpolicy.conf"
- Retrieve the certificate from using 'opsec_pullcert'
opsec_pullcert -h <vpn-1-fw-1_ip_address> -p <one-time-password> -o lea_client
- Start the LEA application