CentOS 5: Настройка IPSec туннеля

IPsec - набор протоколов для обеспечения защиты данных, передаваемых по межсетевому протоколу IP, позволяет осуществлять подтверждение подлинности и/или шифрование IP-пакетов. IPsec также включает в себя протоколы для защищённого обмена ключами в сети Интернет.

В данном руководстве описывается настройка IPSec туннеля между 2-я шлюзами одного к другому. Это нужно для того чтобы соедини к примеру главный офис с удаленном офисом.

1. Предварительные замечания

В этом уроке буду использоваться следующие хосты:

*Шлюз GW-01 внешний IP 213.175.177.249 и сетевой ip 192.168.9.254 CentOS 5.5

*Шлюз GW-02 внешний IP 95.68.85.163 и сетевой ip 192.168.0.254 CentOS 5.5

 

192.168.9.0/24                                                                                    192.168.0.0/24

              |                                                                                                        |

              |       eth1             eth0                             eth0             eth1              |

              +-----------[GW-01]----------[Internet] ----------[GW-02] -----------+

                                   \                               /\                              /

                                     \                           /   \                          /

                                       +--[IPSEC0]--+     +--[IPSEC1]--+

 

2. Подготовка узлов

Отключение SELinux

Нам необходимо отключить SELinux:

vi /etc/selinux/config

Измените только эту линию (оставив все остальное нетронутым):

SELINUX=disabled

Настройка имени хоста

Нам нужно изменить имя хоста и шлюзы узлов:

vi /etc/sysconfig/network

Для GW-01:

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=GW-01
GATEWAY=213.175.177.254

Для GW-02:

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=GW-02
GATEWAY=95.68.85.161

Настройка сетевых интерфейсов

Далее, мы настроим сетевые интерфейсы:

Для GW-01

nano /etc/sysconfig/network-scripts/ifcfg-eth0
# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
DEVICE=eth0
BOOTPROTO=none
BROADCAST=213.175.177.255
HWADDR=00:50:56:8b:00:06
IPADDR=213.175.177.249
NETMASK=255.255.255.248
NETWORK=213.175.177.248
ONBOOT=yes
GATEWAY=213.175.177.254
TYPE=Ethernet

nano /etc/sysconfig/network-scripts/ifcfg-eth1
# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
DEVICE=eth1
BOOTPROTO=none
BROADCAST=192.168.9.255
HWADDR=00:50:56:8B:00:08
IPADDR=192.168.9.54
NETMASK=255.255.255.0
NETWORK=192.168.9.0
ONBOOT=yes
TYPE=Ethernet

Для GW-02

nano /etc/sysconfig/network-scripts/ifcfg-eth0
# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
DEVICE=eth0
BOOTPROTO=none
BROADCAST=95.68.85.255
HWADDR=00:50:56:8b:00:06
IPADDR=95.68.85.163
NETMASK=255.255.255.248
NETWORK=95.68.85.248
ONBOOT=yes
GATEWAY=95.68.85.161
TYPE=Ethernet

nano /etc/sysconfig/network-scripts/ifcfg-eth1
# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
DEVICE=eth1
BOOTPROTO=none
BROADCAST=192.168.0.255
HWADDR=00:50:56:8B:00:08
IPADDR=192.168.0.54
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
TYPE=Ethernet

Включение пересылку IP адреса.

Откройте и измените следующий файл /etc/sysctl.conf:

vi /etc/sysctl.conf

Установите net.ipv4.ip_forward на 1

net.ipv4.ip_forward = 1

Сохраните и закройте файл, после премините изменения с помощью команды:

sysctl -p

3. Установка IPSec-tools

Чтобы установить ipsec-tools выполните команду:

yum install ipsec-tools -y

4.Настройка IPSec

Для GW-01

nano /etc/sysconfig/network-scripts/ifcfg-ipsec0
TYPE=IPSEC
ONBOOT=yes
IKE_METHOD=PSK
SRCGW=192.168.9.54
DSTGW=192.168.0.54
SRCNET=192.168.9.0/24
DSTNET=192.168.0.0/24
DST=95.68.85.163

nano /etc/sysconfig/network-scripts/keys-ipsec0
IKE_PSK=123456
chmod 600 /etc/sysconfig/network-scripts/keys-ipsec0

Для GW-02

nano /etc/sysconfig/network-scripts/ifcfg-ipsec1
TYPE=IPSEC
ONBOOT=yes
IKE_METHOD=PSK
SRCGW=192.168.0.54
DSTGW=192.168.9.54
SRCNET=192.168.0.0/24
DSTNET=192.168.9.0/24
DST=213.175.177.249
nano /etc/sysconfig/network-scripts/keys-ipsec1
IKE_PSK=123456

chmod 600 /etc/sysconfig/network-scripts/keys-ipsec1

5. Настройка racoon

Internet Key Exchange (IKE) демон для автоматического ввода IPsec соединения.

Настроим racoon для GW-01

nano /etc/racoon/racoon.conf
# Racoon IKE daemon configuration file.
# See 'man racoon.conf' for a description of the format and entries.

path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";

sainfo anonymous
{
        pfs_group 2;
        lifetime time 1 hour ;
        encryption_algorithm 3des, blowfish 448, rijndael ;
        authentication_algorithm hmac_sha1, hmac_md5 ;
        compression_algorithm deflate ;
}
include "/etc/racoon/95.68.85.163.conf";

nano /etc/racoon/95.68.85.163.conf
remote 95.68.85.163
{
        exchange_mode aggressive, main;
        my_identifier address;
        proposal {
                encryption_algorithm 3des;
                hash_algorithm sha1;
                authentication_method pre_shared_key;
                dh_group 2;
        }
}


nano /etc/racoon/psk.txt
# file for pre-shared keys used for IKE authentication
# format is:  'identifier' 'key'
# For example:
#
#  10.1.1.1             flibbertigibbet
#  www.example.com      12345
95.68.85.163  123456

Настроим racoon для GW-02

 

nano /etc/racoon/racoon.conf

 

# Racoon IKE daemon configuration file.
# See 'man racoon.conf' for a description of the format and entries.

path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";

sainfo anonymous
{
        pfs_group 2;
        lifetime time 1 hour ;
        encryption_algorithm 3des, blowfish 448, rijndael ;
        authentication_algorithm hmac_sha1, hmac_md5 ;
        compression_algorithm deflate ;
}
include "/etc/racoon/213.175.177.249.conf";

nano /etc/racoon/213.175.177.249.conf
remote 213.175.177.249
{
        exchange_mode aggressive, main;
        my_identifier address;
        proposal {
                encryption_algorithm 3des;
                hash_algorithm sha1;
                authentication_method pre_shared_key;
                dh_group 2;
        }
}

nano /etc/racoon/psk.txt
# file for pre-shared keys used for IKE authentication
# format is:  'identifier' 'key'
# For example:
#
#  10.1.1.1             flibbertigibbet
#  www.example.com      12345
213.175.177.249  123456

6, Настройка setkey

Инструмент для обработки и дампа ядра Security Policy Database (SPD) и Security Association Database (SAD).

Настроим setkey для GW-01

setkey -c << EOF
flush;
spdflush;
spdadd 192.168.9.0/24 192.168.0.0/24 any -P out ipsec esp/tunnel/95.68.85.163-213.175.177.249/require;
spdadd 192.168.0.0/24 192.168.9.0/24 any -P in ipsec esp/tunnel/213.175.177.249-95.68.85.163/require;
EOF

Настроим setkey для GW-02

setkey -c << EOF
flush;
spdflush;
spdadd 192.168.0.0/24 192.168.9.0/24 any -P out ipsec esp/tunnel/213.175.177.249-95.68.85.163/require;
spdadd 192.168.9.0/24 192.168.0.0/24 any -P in ipsec esp/tunnel/95.68.85.163-213.175.177.249/require;
EOF

7. Настройка Iptables

Пример конфигурации Iptables для GW-01

# Generated by iptables-save v1.3.5 on Tue Dec 14 15:30:21 2010
*nat
:PREROUTING ACCEPT [105:14555]
:POSTROUTING ACCEPT [4:364]
:OUTPUT ACCEPT [14:2768]
#-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -s 192.168.9.0/255.255.255.0 -d ! 192.168.0.0/255.255.255.0 -o eth0 -j MASQUERADE
COMMIT
# Completed on Tue Dec 14 15:30:21 2010
*filter
-A INPUT -p udp --dport 500 -j ACCEPT
-A INPUT -p esp -j ACCEPT
-A INPUT -p ah -j ACCEPT
COMMIT

Пример конфигурации Iptables для GW-02

# Generated by iptables-save v1.3.5 on Tue Dec 14 15:30:21 2010
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 192.168.0.0/255.255.255.0 -d ! 192.168.9.0/255.255.255.0 -o eth0 -j MASQUERADE
COMMIT
# Completed on Tue Dec 14 15:30:21 2010
*filter
-A INPUT -p udp --dport 500 -j ACCEPT
-A INPUT -p esp -j ACCEPT
-A INPUT -p ah -j ACCEPT
COMMIT

Для обоих шлюзов выполните следующие действия и IPSec туннель поднимется.

  • Перезагрузку iptables:
     service iptables restart
  • Перезагрузку службы сети
     service network restart


Источник: http://metalcandy.ru/how-to-forge-centos/369-centos-5-configuring-the-ipsec-tunnel?showall=1

Найти похожие статьи: ipsec centos
© Roman Fokin Заметки о Linux
Все зарегистрированные торговые марки, упоминаемые на этом сайте, являются собственностью их владельцев.