Мы уже обсуждали понятие 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.
Рассмотрим следующую простую топологию соединения двух офисов.
Нам необходимо обеспечить соединение двух офисов и выполнить следующие цели:
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 не поддерживает шифрования полезных данных и поэтому он используется редко. |
Для поднятия безопасного соединения 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.
Первым шагом между роутерами поднимается Internet Key Exchange (IKE) Phase 1 tunnel.
Такой туннель не предназначен для передачи пользовательских данных, но используется в служебных целях, для защиты management traffic.
Поднятие IKE Phase 1 tunnel может быть выполнено в двух режимах:
- main mode
- aggressive mode
Main mode требует обмена большим количеством пакетов но и считается более безопасным.
Для поднятия IKE Phase 1 tunnel должны быть негоциированы следующие элементы:
Задача DH - сгенерировать keying material (symmetric keys). Эти ключи будут использоваться для передачи данных.
Сам DH является asymmetrical , но ключи он генерирует symmetrical.
После того, как роутеры договрились об IKE Phase 1 policy, они могут начать процесс DH key exchange. DH позволяет двум устройствам, между которыми пока нет secure connection, безопасно обменяться симметричными ключами, которые будут использоваться симметричными алгоритмами, например AES.
Последнее что будет сделано в IKE Phase 1 - это взаимная аутентификация хостов, которая может быть произведена двумя методами (PSK или RSA digital signatures)
Если аутентификация прошла удачно, IKE Phase 1 tunnel считается поднятым. Туннель является двунаправленным .
После того, как поднялся 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, все пакеты выходящие из наружных интерфейсов будут зашифрованы.
Рассмотрим пример настройки IPsec на примере данной схемы.
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
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.
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.
В целом список полезных команд следующий:
show crypto isakmp policy
show crypto map
show crypto isakmp sa detail
show crypto ipsec sa
show crypto engine connections active
На практике наиболее полезно следующее:
Комментарии
1. Сети, подключенные к ISP,
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 (имя
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
Добавить комментарий