Вы здесь

Безопасность. Начало 07. VPN и IPSec

Мы уже обсуждали понятие IPSec, в этом материале мы рассмотрим IPSec подробнее.

Итак, название IPSec происходит от IP Security.
IPSec - это совокупность протоколов и адлгоритмов, которые используются для защиты IP пакетов на уровне Layer3.

IPSec позволяет гарантировать:
- Confidentiality - с помощью шифрования
- Data integrity - через Hashing и HMAC\
- Authentication - через использование Digital Signatures или Pre-shared key (PSK).

Перечислим основные протоколы IPsec:
ESP and AH: Два основных протокола, используемых в IPsec.
Encapsulating Security Payload (ESP), может делать всё что требуется для IPsec, а
Authentication Header (AH), может делать всё, кроме шифрования, encryption of the data, - поэтому чаще всего используют ESP.
Encryption algorithms for confidentiality: DES, 3DES, AES.
Hashing algorithms for integrity: MD5, SHA.
Authentication algorithms: Pre-shared keys (PSK), RSA digital signatures.
Key management: An example would be Diffie-Hellman (DH), which can be used to
dynamically generate symmetrical keys to be used by symmetrical algorithms; PKI,
which supports the function of digital certificates issued by trusted CAs; and Internet
Key Exchange (IKE), which does a lot of the negotiating and management for us for
IPsec to operate.

Зачем нужен IPSec

Рассмотрим следующую простую топологию соединения двух офисов.
bezopasnost._nachalo_06._vpn_i_ipsec_01_ciscomaster.ru.jpg

Нам необходимо обеспечить соединение двух офисов и выполнить следующие цели:

  • Confidentiality - обеспечивается через шифрование данных.
  • Data integrity - обеспечивается через hashing, либо через Hashed Message Authentication Code (HMAC), - методы позволяющие гарантировать, что данные не были изменены.
  • Authentication - обеспечивается с использованием pre-shared keys (PSK), либо digital signatures. А при использовании HMAC аутентификация происходит постоянно.
  • Antireplay protection - все пакеты VPN нумеруются, что является защитой от их повторения.

Протоколы и порты IPSec

IKEv1 Phase 1 UDP port 500 IKEv1 Phase 1 uses UDP:500 for its negotiation.
NAT-T (NAT
Traversal)
UDP port 4500 NAT Traversal используется устройствами для преодоления NAT. Если оба устройства подключаются друг ко другу через NAT: they want to put a fake UDP port 4500
header on each IPsec packet (before the ESP header) to
survive a NAT device that otherwise may have a problem
tracking an ESP session (Layer 4 protocol 50)
ESP Layer 4 Protocol
50
Все пакеты IPSec представляют из себя Layer 4 protocol of ESP (IP Protocol #50), в него инкапсулируются все данные. Обычно используется именно ESP (а не AH). В случае использования NAT-T, ESP header закрывается вторым UDP header.
AH Layer 4 protocol
51
AH packets представляют собой Layer 4 protocol of AH (IP Protocol #51). AH не поддерживает шифрования полезных данных и поэтому он используется редко.

Работа IPSec

Для поднятия безопасного соединения VPN, IPSec использует протокол Internet Key Exchange (IKE).
IKE - это framework, обеспечиваемая Internet Security Association, а также Key Management Protocol (ISAKMP)

Итак у нашей конфигурации оба роутера будут выступать в качестве VPN gateway или IPsec peers.

Предположим юзер в сети 10.0.0.0 отправляет пакет в сеть 172.16.0.0.
Поскольку туннель ещё не создан R1 начнёт initiate negotiations со вторым роутером R2.

Step 1: Negotiate the IKEv1 Phase 1 Tunnel

Первым шагом между роутерами поднимается Internet Key Exchange (IKE) Phase 1 tunnel.
Такой туннель не предназначен для передачи пользовательских данных, но используется в служебных целях, для защиты management traffic.

Поднятие IKE Phase 1 tunnel может быть выполнено в двух режимах:
- main mode
- aggressive mode
Main mode требует обмена большим количеством пакетов но и считается более безопасным.

Для поднятия IKE Phase 1 tunnel должны быть негоциированы следующие элементы:

  • Hash algorithm: Это может быть message digest 5 algorithm (MD5) или Secure Hash
    Algorithm (SHA)
    .
  • Encryption algorithm: Digital Encryption Standard (DES) (слабый, не рекомендуется), Triple DES (3DES) (чуть лучше) or Advanced Encryption Standard (AES) (рекомендуется) AES может использовать ключи разной длины: чем длиннее тем безопаснее.
  • Diffie-Hellman (DH) group to use: The DH “group” refers to the modulus size (length of
    the key) to use for the DH key exchange. Group 1 uses 768 bits, group 2 uses 1024, and
    group 5 uses 1536. More secure DH groups are part of the next-generation encryption
    (NGE):
    - Group 14 or 24: Provides 2048-bit DH
    - Groups 15 and 16: Support 3072-bit and 4096-bit DH
    - Group 19 or 20: Supports the 256-bit and 384-bit ECDH groups, respectively

    Задача DH - сгенерировать keying material (symmetric keys). Эти ключи будут использоваться для передачи данных.
    Сам DH является asymmetrical , но ключи он генерирует symmetrical.

  • Authentication method: может быть в виде pre-shared key (PSK) или RSA signatures
  • Lifetime: врем жизни IKE Phase 1 tunnel. Единственный параметр, который может не совпадать. Чем короче Lifetime, тем чаще будут менять ключи, и тем это безопаснее.

bezopasnost._nachalo_06._vpn_i_ipsec_05_ciscomaster.ru.jpg

Step 2: Run the DH Key Exchange

После того, как роутеры договрились об IKE Phase 1 policy, они могут начать процесс DH key exchange. DH позволяет двум устройствам, между которыми пока нет secure connection, безопасно обменяться симметричными ключами, которые будут использоваться симметричными алгоритмами, например AES.

Step 3: Authenticate the Peer

Последнее что будет сделано в IKE Phase 1 - это взаимная аутентификация хостов, которая может быть произведена двумя методами (PSK или RSA digital signatures)
Если аутентификация прошла удачно, IKE Phase 1 tunnel считается поднятым. Туннель является двунаправленным .

Step 4: IKE Phase 2

После того, как поднялся IKE Phase 1 tunnel, роутеры начинают поднимать IKE Phase 1 tunnel.
Как уже упоминалось, IKE Phase 1 tunnel является чисто служебным, management tunnel и через него проходит весь трафик negotiation для поднятия туннеля IKE Phase 2.
IKE Phase 2 tunnel также использует алгоритмы hashing и encryption.
Поднятие IKE Phase 2 tunnel может быть выполнено в одном режимы:
- quick mode

IKE Phase 2 tunnel на самом деле состоит из двух однонаправленных туннелей, т.е. можно сказать что создаются:
Один туннель IKE Phase 1 tunnel, который является bidirectional, используемый для служебных функций.
И два туннеля IKE Phase 2, которые являются unidirectional, и которые используются для шифрования полезного трафика.
Все эти туннели также называются как security agreements between the two VPN peers или security associations (SA).
Каждый SA имеет свой уникальный номер.

Теперь, после того как был поднят IKE Phase 2 tunnel, все пакеты выходящие из наружных интерфейсов будут зашифрованы.

Пример настройки

bezopasnost._nachalo_06._vpn_i_ipsec_02_ciscomaster.ru.jpg
Рассмотрим пример настройки IPsec на примере данной схемы.

  1. Configure Interesting Traffic
    Для начала мы должны определить трафик, который мы будем шифровать.
    Router R1
    ip access-list extended VPN-ACL permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

    Router R2

    ip access-list extended VPN-ACL permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255
  2. Configure Phase 1 (ISAKMP)
    Phase 1 поднимает туннель, используемый для служебных целей: обмен shared secret keys, authenticate, negotiate IKE security policies и т.д.
    Может быть создано несколько isakmp policies с разными приоритетами.

    Router R1

    crypto isakmp policy 1 encryption 3des hash md5 authentication pre-share group 2
    crypto isakmp key secretkey address 200.200.200.1

    Router R2

    crypto isakmp policy 1 encryption 3des hash md5 authentication pre-share group 2
    crypto isakmp key secretkey address 100.100.100.1

    Здесь key есть PSK(Preshared Key) используемый роутерами для аутентификации IKE Phase 1.

  3. Configure Phase 2 (IPSEc)
    Цель IKE Phase 2 Tunnel - передача полезного трафика между хостами двух офисов.
    Параметры туннеля Phase 2 Tunnel группируются в sets, называемые transform sets.
    Router R1
    crypto ipsec transform-set TRSET esp-3des esp-md5-hmac ! crypto map VPNMAP 10 ipsec-isakmp set peer 200.200.200.1 set transform-set TRSET match address VPN-ACL ! interface FastEthernet0/0 crypto map VPNMAP

    Router R2

    crypto ipsec transform-set TRSET esp-3des esp-md5-hmac ! crypto map VPNMAP 10 ipsec-isakmp set peer 100.100.100.1 set transform-set TRSET match address VPN-ACL ! interface FastEthernet0/0 crypto map VPNMAP

    На обоих хостах использовалась crypto ipsec transform-set TRSET esp-3des esp-md5-hmac.
    Это означает, что 3des будет использовано для шифрования, а md5-hmac для аутентификации.

    crypto map эплаится на интерфейс. Криптокарта отслеживает трафик, отвечающим заданным условиям. Наша криптокарта будет работать с роутером с адресом 100.100.100.1, заданным ACL внутренним трафиком и будет применять на этот трафик transform-set TRSET.

Проверка IPSec

В целом список полезных команд следующий:
show crypto isakmp policy
show crypto map
show crypto isakmp sa detail
show crypto ipsec sa
show crypto engine connections active

На практике наиболее полезно следующее:

  • show crypto isakmp sa
    bezopasnost._nachalo_06._vpn_i_ipsec_03_ciscomaster.ru.jpg
    Это проверка IKE Phase 1 Tunnel: если State : QM_IDLE и Status: ACTIVE - значит всё нормально.
  • show crypto ipsec sa
    bezopasnost._nachalo_06._vpn_i_ipsec_04_ciscomaster.ru.jpg
    здесь поля “pkts encrypt” и “pkts decrypt” отражают прохождение трафика через шифрованный туннель и оба должны увеличиваться

Комментарии

1. Сети, подключенные к ISP, считаются внешними:
ISP forward
nano /etc/sysctl.conf

net.ipv4.ip_forward=1

sysctl -p

RTR-L Gitw
ip route 0.0.0.0 0.0.0.0 4.4.4.1

RTR-R gitw
ip route 0.0.0.0 0.0.0.0 5.5.5.1

2. Платформы контроля трафика, установленные на границах регионов, должны выполнять трансляцию трафика, идущего из соответствующих внутренних сетей во внешние сети стенда и в сеть Интернет.
RTR-L NAT
на внутр. интерфейсе - ip nat inside

на внешн. интерфейсе - ip nat outside

int gi 1
ip nat outside
!
int gi 2
ip nat inside
!
access-list 1 permit 192.168.100.0 0.0.0.255
ip nat inside source list 1 interface Gi1 overload

RTR-R NAT
int gi 1
ip nat outside
!
int gi 2
ip nat inside
!
access-list 1 permit 172.16.100.0 0.0.0.255
ip nat inside source list 1 interface Gi1 overload

3. Между платформами должен быть установлен защищенный туннель, позволяющий осуществлять связь между регионами с применением внутренних адресов.
RTR-L GRE
interface Tunne 1
ip address 172.16.1.1 255.255.255.0
tunnel mode gre ip
tunnel source 4.4.4.100
tunnel destination 5.5.5.100

router eigrp 6500
network 192.168.100.0 0.0.0.255
network 172.16.1.0 0.0.0.255

RTR-R
interface Tunne 1
ip address 172.16.1.2 255.255.255.0
tunnel mode gre ip
tunnel source 5.5.5.100
tunnel destination 4.4.4.100

router eigrp 6500
network 172.16.100.0 0.0.0.255
network 172.16.1.0 0.0.0.255

RTR-L
crypto isakmp policy 1
encr aes
authentication pre-share
hash sha256
group 14
!
crypto isakmp key TheSecretMustBeAtLeast13bytes address 5.5.5.100
crypto isakmp nat keepalive 5
!
crypto ipsec transform-set TSET esp-aes 256 esp-sha256-hmac
mode tunnel
!
crypto ipsec profile VTI
set transform-set TSET

interface Tunnel1
tunnel mode ipsec ipv4
tunnel protection ipsec profile VTI

RTR-R
conf t

crypto isakmp policy 1
encr aes
authentication pre-share
hash sha256
group 14
!
crypto isakmp key TheSecretMustBeAtLeast13bytes address 4.4.4.100
crypto isakmp nat keepalive 5
!
crypto ipsec transform-set TSET esp-aes 256 esp-sha256-hmac
mode tunnel
!
crypto ipsec profile VTI
set transform-set TSET

interface Tunnel1
tunnel mode ipsec ipv4
tunnel protection ipsec profile VTI

4. Платформа управления трафиком RTR-L выполняет контроль входящего трафика согласно следующим правилам:
RTR-L ACL
ip access-list extended Lnew

permit tcp any any established
permit udp host 4.4.4.100 eq 53 any
permit udp host 5.5.5.1 eq 123 any
permit tcp any host 4.4.4.100 eq 80
permit tcp any host 4.4.4.100 eq 443
permit tcp any host 4.4.4.100 eq 2222

permit udp host 5.5.5.100 host 4.4.4.100 eq 500
permit esp any any
permit icmp any any

int gi 1
ip access-group Lnew in

5. Платформа управления трафиком RTR-R выполняет контроль входящего трафика согласно следующим правилам:
RTR-R ACL
ip access-list extended Rnew

permit tcp any any established
permit tcp any host 5.5.5.100 eq 80
permit tcp any host 5.5.5.100 eq 443
permit tcp any host 5.5.5.100 eq 2244
permit udp host 4.4.4.100 host 5.5.5.100 eq 500

permit esp any any
permit icmp any any

int gi 1
ip access-group Rnew in

6. Обеспечьте настройку служб SSH региона Left:
RTR-L SSH
ip nat inside source static tcp 192.168.100.100 22 4.4.4.100 2222

RTR-R SSH
ip nat inside source static tcp 172.16.100.100 22 5.5.5.100 2244

SSH WEB-L
apt-cdrom add
apt install -y openssh-server ssh

systemctl start sshd
systemctl enable ssh

SSH WEB-R
apt-cdrom add
apt install -y openssh-server ssh

systemctl start sshd
systemctl enable ssh

hostnamectl set-hostname (имя) - дебиан

Адресация

-CLI
ip 3.3.3.(число от 2 до 10)
маска 24
гэтэвээй 3.3.3.1

-ISP
nano /etc/network/interfaces

auto ens256
iface ens256 inet static
address 3.3.3.1
netmask 255.255.255.0

auto ens224
iface ens224 inet static
address 5.5.5.1
netmask 255.255.255.0

auto ens192
iface ens192 inet static
address 4.4.4.1
netmask 255.255.255.0

ctrl + x потом Y и ентер

systemctl restart networking

ip a чекунть айпи и интерфейсы

-RTR L

en
conf t
int g1
ip address 4.4.4.100 255.255.255.0
no sh
int g2
ip address 192.168.100.254 255.255.255.0
no sh

-RTR R

en
conf t
int g1
ip address 5.5.5.100 255.255.255.0
no sh
int g2
ip address 172.16.100.254 255.255.255.0
no sh

-WEB L

nano /etc/network/interfaces

auto ens192
iface ens192 inet static
address 192.168.100.100
netmask 255.255.255.0
gateway 192.168.100.254

systemctl restart networking

-WEB R

nano /etc/network/interfaces

auto ens192
iface ens192 inet static
address 172.16.100.100
netmask 255.255.255.0
gateway 172.16.100.254

systemctl restart networking

-SRV

ip 192.168.100.200/24
gateway 192.168.100.254

1. Сети, подключенные к ISP, считаются внешними:
ISP forward
nano /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
image

RTR-L Gitw
ip route 0.0.0.0 0.0.0.0 4.4.4.1

RTR-R gitw
ip route 0.0.0.0 0.0.0.0 5.5.5.1

2. Платформы контроля трафика, установленные на границах регионов, должны выполнять трансляцию трафика, идущего из соответствующих внутренних сетей во внешние сети стенда и в сеть Интернет.
RTR-L NAT
на внутр. интерфейсе - ip nat inside

на внешн. интерфейсе - ip nat outside

int gi 1
ip nat outside
!
int gi 2
ip nat inside
!
access-list 1 permit 192.168.100.0 0.0.0.255
ip nat inside source list 1 interface Gi1 overload

RTR-R NAT
int gi 1
ip nat outside
!
int gi 2
ip nat inside
!
access-list 1 permit 172.16.100.0 0.0.0.255
ip nat inside source list 1 interface Gi1 overload

3. Между платформами должен быть установлен защищенный туннель, позволяющий осуществлять связь между регионами с применением внутренних адресов.
RTR-L GRE
interface Tunne 1
ip address 172.16.1.1 255.255.255.0
tunnel mode gre ip
tunnel source 4.4.4.100
tunnel destination 5.5.5.100
exi
router eigrp 6500
network 192.168.100.0 0.0.0.255
network 172.16.1.0 0.0.0.255

RTR-R
interface Tunne 1
ip address 172.16.1.2 255.255.255.0
tunnel mode gre ip
tunnel source 5.5.5.100
tunnel destination 4.4.4.100
exi
router eigrp 6500
network 172.16.100.0 0.0.0.255
network 172.16.1.0 0.0.0.255

RTR-L
crypto isakmp policy 1
encr aes
authentication pre-share
hash sha256
group 14
!
crypto isakmp key TheSecretMustBeAtLeast13bytes address 5.5.5.100
crypto isakmp nat keepalive 5
!
crypto ipsec transform-set TSET esp-aes 256 esp-sha256-hmac
mode tunnel
!
crypto ipsec profile VTI
set transform-set TSET
interface Tunnel1
tunnel mode ipsec ipv4
tunnel protection ipsec profile VTI

RTR-R
conf t

crypto isakmp policy 1
encr aes
authentication pre-share
hash sha256
group 14
!
crypto isakmp key TheSecretMustBeAtLeast13bytes address 4.4.4.100
crypto isakmp nat keepalive 5
!
crypto ipsec transform-set TSET esp-aes 256 esp-sha256-hmac
mode tunnel
!
crypto ipsec profile VTI
set transform-set TSET
interface Tunnel1
tunnel mode ipsec ipv4
tunnel protection ipsec profile VTI

4. Платформа управления трафиком RTR-L выполняет контроль входящего трафика согласно следующим правилам:
RTR-L ACL
ip access-list extended Lnew
permit tcp any any established
permit udp host 4.4.4.100 eq 53 any
permit udp host 5.5.5.1 eq 123 any
permit tcp any host 4.4.4.100 eq 80
permit tcp any host 4.4.4.100 eq 443
permit tcp any host 4.4.4.100 eq 2222
permit udp host 5.5.5.100 host 4.4.4.100 eq 500
permit esp any any
permit icmp any any
int gi 1
ip access-group Lnew in

5. Платформа управления трафиком RTR-R выполняет контроль входящего трафика согласно следующим правилам:
RTR-R ACL
ip access-list extended Rnew
permit tcp any any established
permit tcp any host 5.5.5.100 eq 80
permit tcp any host 5.5.5.100 eq 443
permit tcp any host 5.5.5.100 eq 2244
permit udp host 4.4.4.100 host 5.5.5.100 eq 500
permit esp any any
permit icmp any any
int gi 1
ip access-group Rnew in

6. Обеспечьте настройку служб SSH региона Left:
RTR-L SSH
ip nat inside source static tcp 192.168.100.100 22 4.4.4.100 2222
RTR-R SSH
ip nat inside source static tcp 172.16.100.100 22 5.5.5.100 2244
SSH WEB-L
apt-cdrom add
apt install -y openssh-server ssh
systemctl start sshd
systemctl enable ssh
SSH WEB-R
apt-cdrom add
apt install -y openssh-server ssh
systemctl start sshd
systemctl enable ssh

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Target Image