IT-Expert
  IT-Expert / Веблог / Настройка IPSec на базе Surecom 4804 и FreeBSD (racoon)
Авторизация
Логин:
Пароль:


 
Поиск по записям:

Ключевые слова:
Записей в блоге
 за 2023 год
 за 2022 год
 за 2021 год
 за 2015 год
 за 2014 год
 за 2013 год
 за 2012 год
 за 2011 год

     за 2010 год

       за 2009 год
       за 2008 год
       за 2007 год
       за 2006 год
       за 2005 год
      RSS лента Лента новостей IT-Expert 

      Настройка IPSec на базе Surecom 4804 и FreeBSD (racoon)

      11:40, 7 июня 2005 ( Administration FreeBSD Security  )

      В целом, надо сказать, настройка VPN на базе IPSec производится несколько легче, нежели настройка PPTP и mpd на FreeBSD, да и IPSec наиболее проверенный временем протокол.

      Соединение VPN через IPSec наиболее подходит для соединения целых удаленных сетей между собой, поддерживается целой армией специализированных устройств (даже за $50-$70 можно купить такой роутер).

      К слову, PPTP подходит для единичных подключений к сети из различных удаленных точек, к примеру, если сотрудиник едет в командировку, и ему нужен доступ к сети (и не важно каким способом он подключен к Интернет, это может быть даже GPRS).

      Дано:
      корпоративная сеть с публичным адресом xxx.xxx.xxx.xxx
      внутренняя сеть: 192.168.0.0

      удаленный офис с публичным адресом yyy.yyy.yyy.yyy (иметь честный адрес - обязательное условие)
      и выделенной подсетью, скажем, 192.168.2.0

      Цель: связать два офиса по криптованному каналу и настроить маршрутизацию.




      Для удаленного офиса была выбрана коробайка EP-4804 -то что в тот момент оказалось под рукой. Ведь мы же не хотим ездить в другой город, поэтому целый сервер передавать невыгодно, ведь нам за ним, в случае чего, следить :)
      Плюсы в использовании таких коробочек:
         можно настроить и передать посылкой в удаленный офис,
        отсутствие движущихся частей, а следовательно надежность,
        стоимость,
        можно настроить две таких коробочки и будет некий failover.

      Все настройки приведены ниже:
      Что бы избежать перезагрузки:

      ipconfig gif0 create
      gifconfig gif0 xxx.xxx.xxx.xxx
      ipconfig gif0 inet 192.168.0.1 192.168.2.1 netmask 255.255.255.0
      touch /etc/ipsec.conf
      заполняем ipsec.conf
      setkey -f /etc/ipsec.conf
      редактируем racoon.conf
      вносим ключ в psk.txt и не забываем выставить правильные права (возможен из-за неправильных прав глюк).

      запускаем /usr/local/etc/rc.d/racoon.sh start
      и ждем коннектов.

      туннель должен подниматься при наличии любого трафика в сеть 192.168.2.x и наоборот.

      из файла rc.conf (все все аналогично строкам выше, дабы при загрузке все поднялось автоматом)
      ----------------------------------------
      ipsec_enable="YES"
      ipsec_file="/etc/ipsec.conf"

      gifconfig_gif0="xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy"
      ifconfig_gif0="inet 192.168.2.1 192.168.0.1 netmask 255.255.255.0"

      racoon_enable="yes"
      ----------------------------------------

      создаем в /etc/ipsec.conf
      ----------------------------------------
      flush;
      spdflush;
      spdadd 192.168.0.0/24 192.168.2.0/24 any -P out ipsec esp/tunnel/xxx.xxx.xxx.xxx-yyy.yyy.yyy.yyy/require;
      spdadd 192.168.2.0/24 192.168.0.0/24 any -P in ipsec esp/tunnel/yyy.yyy.yyy.yyy-xxx.xxx.xxx.xxx/require;
      ----------------------------------------

      в настройках коробочки и сервера racoon не забываем указать пароль (общий ключ для обмена).

      из racoon.conf
      ----------------------------------------
      В целях экономии места много комментариев "по умолчанию" было удалено.
      # $KAME: racoon.conf.in,v 1.18 2001/08/16 06:33:40 itojun Exp $

      path include "/usr/local/etc/racoon" ;

      path pre_shared_key "/usr/local/etc/racoon/psk.txt" ;

      path certificate "/usr/local/etc/cert" ;

      padding
      {
              maximum_length 20;      # maximum padding length.
              randomize off;          # enable randomize length.
              strict_check off;       # enable strict check.
              exclusive_tail off;     # extract last o­ne octet.
      }

      listen
      {
              isakmp xxx.xxx.xxx.xxx;
      }

      timer
      {
              counter 5;              # maximum trying count to send.
              interval 20 sec;        # maximum interval to resend.
              persend 1;              # the number of packets per a send.

              # timer for waiting to complete each phase.
              phase1 30 sec;
              phase2 15 sec;
      }

      remote anonymous
      {
              exchange_mode main;
              doi ipsec_doi;

              lifetime time 24 hour;  # sec,min,hour
              proposal {
                      encryption_algorithm 3des;
                      hash_algorithm md5;
                      authentication_method pre_shared_key ;
                      dh_group 1;
              }
      }

      sainfo anonymous
      {
              lifetime time 28800 sec;
              encryption_algorithm 3des ;
              authentication_algorithm hmac_md5;
              compression_algorithm deflate ;
      }

      и не забываем подправить таблицу роутинга:

      route add -net 192.168.2.0/24 -gateway 192.168.2.1

      Рабочим состоянием будем считать прохождение пингов и отсутствие "failed" в логах сервера.


      Оставить комментарий
      © Максим Прокопов 2005-2024 О сервере