Túnel de VPN para o Amazon VPC com pfsense

1

Estou tentando criar um túnel ipsec entre o meu escritório e o Amazon VPC. No entanto, eu nunca usei ipsec antes, então estou perdido.

O gateway / firewall está rodando o pfsense 2.1.3-RELEASE (i386) no FreeBSD 8.3-RELEASE-p16.

As redes do escritório usam 192.168.1.0/24 e 192.168.2.0/24 (clientes OpenVPN). O VPC usa 10.0.0.0/24. O gateway VPC usa rotas estáticas.

Eu tentei ler sobre como criar os túneis em guias diferentes, mas fico mais confuso sobre como o ipsec funciona, ou o guia é para uma versão diferente do pfsense / aws e, como eu não entendo, eu tenho um É difícil traduzir isso. Alguns guias falam sobre ip's virtuais e outros não e assim por diante.

Então, humildemente pergunto se alguém aqui poderia criar um guia passo a passo para eu criar os túneis em pfsense e talvez tentar explicar como funciona uma coisa.

Este é o guia de configuração que eu tenho da Amazon (com credenciais e ip corporativo ofuscado)

                 IPSec Tunnel #1
================================================================================
#1: Internet Key Exchange Configuration          Configure the IKE SA as follows
  - Authentication Method    : Pre-Shared Key 
  - Pre-Shared Key           : 
  - Authentication Algorithm : sha1
  - Encryption Algorithm     : aes-128-cbc
  - Lifetime                 : 28800 seconds
  - Phase 1 Negotiation Mode : main
  - Perfect Forward Secrecy  : Diffie-Hellman Group 2

#2: IPSec Configuration

Configure the IPSec SA as follows:
  - Protocol                 : esp
  - Authentication Algorithm : hmac-sha1-96
  - Encryption Algorithm     : aes-128-cbc
  - Lifetime                 : 3600 seconds
  - Mode                     : tunnel
  - Perfect Forward Secrecy  : Diffie-Hellman Group 2    IPSec Dead Peer Detection (DPD) will be enabled on the AWS Endpoint. We recommend configuring DPD on your endpoint as follows:
  - DPD Interval             : 10
  - DPD Retries              : 3

IPSec ESP (Encapsulating Security Payload) inserts additional headers to transmit packets. These headers require additional space,  which reduces the amount of space available to transmit application data. To limit the impact of this behavior, we recommend the following  configuration on your Customer Gateway:
  - TCP MSS Adjustment       : 1387 bytes
  - Clear Don't Fragment Bit : enabled
  - Fragmentation            : Before encryption

#3: Tunnel Interface Configuration

Your Customer Gateway must be configured with a tunnel interface that is associated with the IPSec tunnel. All traffic transmitted to the tunnel interface is encrypted and transmitted to the Virtual Private Gateway.


The Customer Gateway and Virtual Private Gateway each have two addresses that relate to this IPSec tunnel. Each contains an outside address, upon which encrypted traffic is exchanged. Each also contain an inside address associated with the tunnel interface.   The Customer Gateway outside IP address was provided when the Customer Gateway was created. Changing the IP address requires the creation of a new Customer Gateway.

The Customer Gateway inside IP address should be configured on your tunnel interface. 

Outside IP Addresses:
  - Customer Gateway                : x.x.x.x
  - Virtual Private Gateway                 : y.y.y.y
Inside IP Addresses
  - Customer Gateway                : 169.254.254.62/30
  - Virtual Private Gateway                 : 169.254.254.61/30

Configure your tunnel to fragment at the optimal size:
  - Tunnel interface MTU     : 1436 bytes


#4: Static Routing Configuration:

To route traffic between your internal network and your VPC,  you will need a static route added to your router.

Static Route Configuration Options:

  - Next hop       : 169.254.254.61    You should add static routes towards your internal network on the VGW. The VGW will then send traffic towards your internal network over  the tunnels.  


                 IPSec Tunnel #2
================================================================================
#1: Internet Key Exchange Configuration          Configure the IKE SA as follows
  - Authentication Method    : Pre-Shared Key 
  - Pre-Shared Key           : xxxx
  - Authentication Algorithm : sha1
  - Encryption Algorithm     : aes-128-cbc
  - Lifetime                 : 28800 seconds
  - Phase 1 Negotiation Mode : main
  - Perfect Forward Secrecy  : Diffie-Hellman Group 2

#2: IPSec Configuration

Configure the IPSec SA as follows:
  - Protocol                 : esp
  - Authentication Algorithm : hmac-sha1-96
  - Encryption Algorithm     : aes-128-cbc
  - Lifetime                 : 3600 seconds
  - Mode                     : tunnel
  - Perfect Forward Secrecy  : Diffie-Hellman Group 2    IPSec Dead Peer Detection (DPD) will be enabled on the AWS Endpoint. We recommend configuring DPD on your endpoint as follows:
  - DPD Interval             : 10
  - DPD Retries              : 3

IPSec ESP (Encapsulating Security Payload) inserts additional headers to transmit packets. These headers require additional space,  which reduces the amount of space available to transmit application data. To limit the impact of this behavior, we recommend the following  configuration on your Customer Gateway:
  - TCP MSS Adjustment       : 1387 bytes
  - Clear Don't Fragment Bit : enabled
  - Fragmentation            : Before encryption

#3: Tunnel Interface Configuration

Your Customer Gateway must be configured with a tunnel interface that is associated with the IPSec tunnel. All traffic transmitted to the tunnel interface is encrypted and transmitted to the Virtual Private Gateway.



The Customer Gateway and Virtual Private Gateway each have two addresses that relate to this IPSec tunnel. Each contains an outside address, upon which encrypted traffic is exchanged. Each also contain an inside address associated with the tunnel interface.   The Customer Gateway outside IP address was provided when the Customer Gateway was created. Changing the IP address requires the creation of a new Customer Gateway.

The Customer Gateway inside IP address should be configured on your tunnel interface. 

Outside IP Addresses:
  - Customer Gateway                : x.x.x.x 
  - Virtual Private Gateway                 : z.z.z.z
Inside IP Addresses
  - Customer Gateway                : 169.254.254.58/30
  - Virtual Private Gateway                 : 169.254.254.57/30

Configure your tunnel to fragment at the optimal size:
  - Tunnel interface MTU     : 1436 bytes


#4: Static Routing Configuration:

To route traffic between your internal network and your VPC,  you will need a static route added to your router.

Static Route Configuration Options:

  - Next hop  : 169.254.254.57    You should add static routes towards your internal network on the VGW. The VGW will then send traffic towards your internal network over  the tunnels.
    
por ztripez 29.05.2014 / 00:56

1 resposta

3

Eu obtive o IPSec para o AWS configurado no PFSense.

Não fornecerei um guia de clique por clique, mas mostrarei como é nossa configuração de trabalho. Repalque variáveis incorporadas com %%

PH1

<phase1>
    <ikeid>6</ikeid>
    <interface>lan</interface>
    <remote-gateway>%%AWS_GW_IP%%</remote-gateway>
    <mode>main</mode>
    <protocol>inet</protocol>
    <myid_type>myaddress</myid_type>
    <myid_data/>
    <peerid_type>peeraddress</peerid_type>
    <peerid_data/>
    <encryption-algorithm>
        <name>aes</name>
        <keylen>128</keylen>
    </encryption-algorithm>
    <hash-algorithm>sha1</hash-algorithm>
    <dhgroup>2</dhgroup>
    <lifetime>28800</lifetime>
    <pre-shared-key>%%AWS_PSK%%</pre-shared-key>
    <private-key/>
    <certref/>
    <caref/>
    <authentication_method>pre_shared_key</authentication_method>
    <generate_policy/>
    <proposal_check/>
    <descr><![CDATA[ VPC AWS ]]></descr>
    <nat_traversal>off</nat_traversal>
    <dpd_delay>10</dpd_delay>
    <dpd_maxfail>2</dpd_maxfail>
</phase1>

PH2

<phase2>
    <ikeid>6</ikeid>
    <mode>tunnel</mode>
    <localid>
        <type>network</type>
        <address>%%YOUR_NETWORK%%</address>
        <netbits>%%MASK%%</netbits>
    </localid>
    <remoteid>
        <type>network</type>
        <address>%%VPC_NETWORK%%</address>
        <netbits>%%MASK%%</netbits>
    </remoteid>
    <protocol>esp</protocol>
    <encryption-algorithm-option>
        <name>aes</name>
        <keylen>128</keylen>
    </encryption-algorithm-option>
    <hash-algorithm-option>hmac_sha1</hash-algorithm-option>
    <pfsgroup>2</pfsgroup>
    <lifetime>3600</lifetime>
    <pinghost>%%HOST TO CHECK%%</pinghost>
    <descr><![CDATA[VPC AWS]]></descr>
</phase2>

Até onde eu sei, configurar dois túneis para que eles funcionem de forma redundante não é possível no PF.

    
por 26.08.2014 / 10:59