Рубрика:
Администрирование /
Продукты и решения
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Ильяс Кулиев
Используем Cisco PIX для обеспечения VPN-подключений к локальной сети
Существует множество способов предоставить удалённым пользователям доступ к ресурсам локальной сети компании. Предлагаем вам решить задачу с помощью специально разработанного для подобных целей межсетевого экрана Cisco PIX.
Исходные данные
Идея виртуальной частной сети (VPN) проста – это инкапсуляция пакетов или фреймов в датаграммы 3-го или 4-го уровня сетевой модели OSI для того, чтобы можно было передать их через сети с глобальной адресацией. Такой сетью с глобальной адресацией может быть не только Интернет – существует много операторов, предоставляющих VPN через собственные глобальные сети – но, как правило, чаще всего термин «VPN» ассоциируется с передачей данных именно через Интернет.
Одним из промышленных стандартов для VPN является семейство протоколов IPSec, о нем и пойдет речь сегодня.
В качестве сервера, принимающего VPN-подключения удаленных пользователей, используется распространенный межсетевой экран Cisco PIX модель 501 (см. рис .1).
Рисунок 1. Внешний вид межсетевого экрана Cisco PIX 501
Этот младший представитель семейства PIX 500 позиционируется как устройство для использования в малых и домашних офисах. Несмотря на это, его быстродействия достаточно для работы в качестве firewall в потоке данных со скоростью до 60 Мбит/с. Применительно к VPN быстродействия PIX 501 хватает для обеспечения шифрования данных по алгоритму 3DES на скорости до 3 Мбит/с, а при использовании более современного алгоритма шифрования AES-128 – до 4.5 Мбит/с. Аутентификация удаленных пользователей может производиться как с помощью логина и пароля, так и по цифровым сертификатам X.509. Мы остановимся только на первом способе аутентификации.
Для простоты допустим, что этот же firewall PIX будет использоваться для предоставления внутренним рабочим станциям доступа в Интернет (NAT).
В качестве сервера аутентификации будет использоваться сервер Microsoft Windows 2003. Наличие такого или подобного сервера типично для сети небольшого предприятия. На нем же зачастую работают сервисы DHCP, DNS, WINS – все это пригодится нам в дальнейшем (см. рис. 2).
Рисунок 2. Схема сети
Для VPN-подключения на компьютерах удаленных пользователей используется штатный VPN-клиент Cisco. Его можно приобрести у поставщиков оборудования Cisco (Part Number CVPN-CLIENT-K9=). Почитать о нем вы можете на странице поддержки Cisco Systems: http://www.cisco.com/application/pdf/en/us/guest/products/ps2308/c1650/cdccont_0900aecd801a9de9.pdf.
Настройка Cisco PIX
Сначала выполним обычную процедуру, подключившись к PIX через консольный порт:
pixfirewall> enable
Username: pix
Password: *****
pixfirewall#
|
Давайте посмотрим, что он из себя представляет. Нас особенно интересует раздел Licensed Features:
# show version
Cisco PIX Firewall Version 6.3(3)
Cisco PIX Device Manager Version 3.0(1)
(часть вывода удалена)
Licensed Features:
Failover: Disabled
VPN-DES: Enabled
VPN-3DES-AES: Enabled
Maximum Physical Interfaces: 2
Maximum Interfaces: 2
Cut-through Proxy: Enabled
Guards: Enabled
URL-filtering: Enabled
Inside Hosts: 50
Throughput: Unlimited
IKE peers: 10
|
Как видите, на нашем firewall установлены лицензии, позволяющие использовать его для работы с VPN, алгоритмы шифрования DES, 3DES и AES. Количество одновременных VPN-подключений ограничено 10 пользователями (строчка IKE peers).
В случае если на PIX не установлены лицензии VPN, их можно бесплатно получить на веб-сайте Cisco: http://www.cisco.com/go/license. Предварительным условием для этого является регистрация: http://tools.cisco.com/RPF/register/register.do.
Мы будем использовать для нашей VPN алгоритм шифрования 3DES, как наиболее защищенный. Как уже говорилось, PIX 501 имеет известное ограничение производительности в этом режиме – не более 3 Мбит/с – но учитывая, что у нас в любом случае не может быть одновременно подключено более 10 пользователей, это не столь важно.
Войдя в режим конфигурирования, начнем настройку.
# conf t
pixfirewall(config)#
|
Определим внешний и внутренний интерфейсы и присвоим им IP-адреса:
# interface ethernet0 auto
# interface ethernet1 auto
# nameif ethernet0 outside security0
# nameif ethernet1 inside security100
# ip address outside 1.1.1.1 255.255.255.252
# ip address inside 192.168.224.1 255.255.255.0
Добавляем маршрут по умолчанию:
# route outside 0.0.0.0 0.0.0.0 1.1.1.2
Мы будем выдавать подключающимся VPN-клиентам адреса из диапазона 192.168.250.1–192.168.250.14. Создадим пул этих адресов под названием vpnclient:
# ip local pool vpnclient 192.168.250.1-192.168.250.14
Включим NAT, и учтем при этом, что пакеты, направляющиеся из локальной сети к клиентам VPN, подвергать NAT не нужно. Для того чтобы исключить эти пакеты из процесса NAT, напишем простой access-лист:
# access-list 101 permit ip 192.168.224.0 255.255.255.0 192.168.250.0 255.255.255.240
# global (outside) 1 1.1.1.1
# nat (inside) 0 access-list 101
# nat (inside) 1 0.0.0.0 0.0.0.0 0 0
Будем использовать имеющийся в сети сервер Windows 2003 как сервер аутентификации. Чуть позднее расскажу об этом поподробнее, а пока что включим на PIX использование протокола RADIUS для этого сервера:
# aaa-server RADIUS protocol radius
# aaa-server partnerauth protocol radius
# aaa-server partnerauth (inside) host 192.168.224.127 radiuspassword timeout 10
Поскольку на firewall PIX по умолчанию запрещены входящие IP-пакеты, нужно в явном виде дать ему разрешение принимать входящие VPN-подключения:
# sysopt connection permit-ipsec
Подготовительные шаги завершены, теперь начинаем настраивать VPN. Сначала определим, какой алгоритм шифрования и подписывания пакетов будет использоваться. Мы уже решили, что шифрование данных будет осуществляться по алгоритму 3DES. Описываем это в трансформе с условным именем mytrans1:
# crypto ipsec transform-set mytrans1 esp-3des esp-md5-hmac
Поскольку удаленные пользователи в общем случае не имеют статических IP-адресов, нам придется использовать динамические карты.
Создадим такую карту с условным именем dynmap и укажем в ней использование только что созданного трансформа mytrans1:
# crypto dynamic-map dynmap 10 set transform-set mytrans1
и уже эту динамическую карту добавляем в криптокарту, назовем ее mymap:
# crypto map mymap 10 ipsec-isakmp dynamic dynmap
Отметим в карте, что мы требуем от подключающихся пользователей, чтобы они прошли аутентификацию на сервере RADIUS:
# crypto map mymap client authentication partnerauth
Привяжем криптокарту к внешнему интерфейсу PIX, чтобы определить, откуда следует ожидать входящих VPN-соединений:
# crypto map mymap interface outside
Теперь вспомним, что прежде чем начнется обмен зашифрованными данными, и даже прежде аутентификации, клиентам и серверу необходимо договориться об используемом шифре, времени жизни шифровальных ключей и т. п. В семействе протоколов IPSec этим занимается протокол обмена ключами ISAKMP.
Настроим его:
# isakmp enable outside
# isakmp policy 10 authentication pre-share
# isakmp policy 10 encryption 3des
# isakmp policy 10 hash md5
# isakmp policy 10 group 2
# isakmp policy 10 lifetime 3600
И в заключение опишем групповые настройки для подключающихся к VPN удаленных пользователей. Об этом чуть подробнее.
Мы можем разделить подключающихся пользователей на несколько групп, в зависимости от того, например, к каким ресурсам им следует предоставить доступ. Пользователям, входящим в разные группы, могут выделяться IP-адреса из разных пулов, так чтобы в дальнейшем системный администратор смог, основываясь на адресе клиента, разграничивать ему доступ к сетевым ресурсам. В нашем примере такая группа одна, под названием pixvpn, групповой пароль – myVPNgrouppassword.
Аутентификация каждого пользователя происходит в два приема, и идея здесь такова. Сначала мы проверяем принадлежность пользователя VPN к той или иной группе и на этом основании выдаем ему IP-адрес, сообщаем адреса серверов DNS и WINS и имя домена. Затем мы запрашиваем у пользователя его личные логин и пароль, под которыми он известен в домене нашей локальной сети. Эти данные передаются на сервер RADIUS, который проверяет их, а также проверяет, есть ли у пользователя право на удаленный доступ к сети. Если логин и пароль домена введены правильно, и если у пользователя есть право на удаленный доступ, сервер RADIUS возвращает подтверждающий ответ, и пользователю предоставляется доступ. Достоинство этой схемы – гибкость. У любого пользователя в любой момент можно отобрать право подключаться к VPN, и наоборот – любому пользователю можно такое право дать, с минимумом затраченного времени системного администратора. Ещё более удобной и безопасной схемой является схема с аутентификацией по сертификатам X.509, но она требует несколько больше усилий для настройки (развертывание PKI, создание и поддержка центра сертификации, и т. п.).
Итак, мы конфигурируем групповые настройки для группы pixvpn, и на этом настройка PIX заканчивается:
# vpngroup pixvpn address-pool vpnclient
# vpngroup pixvpn dns-server 192.168.224.127
# vpngroup pixvpn wins-server 192.168.224.127
# vpngroup pixvpn default-domain peanuts-unlimited.local
# vpngroup pixvpn split-tunnel 101
# vpngroup pixvpn idle-time 1800
# vpngroup pixvpn password myVPNgrouppassword
О строчке «vpngroup pixvpn split-tunnel 101» следует сказать особо. В ней VPN-клиенту дается указание шифровать исключительно сетевой трафик, передаваемый по VPN и предназначенный для локальной сети (ACL 101), весь. В противном случае после подключения к VPN у удаленного пользователя пропал бы доступ в Интернет, и остался лишь доступ через VPN к локальной сети.
Выходим из режима настройки:
# exit
и записываем изменения в память PIX, для сохранения конфигурации между перезагрузками:
pixfirewall# wr mem
Building configuration...
Cryptochecksum: 44b22e1d b86f29d9
c40e403f bd7098f6
[OK]
pixfirewall#
|
Настройка Windows Server 2003
Как уже говорилось, мы используем сервер Windows 2003. Для сервера Windows 2000 описание настройки будет незначительно отличаться.
Итак, мы будем использовать для второй ступени аутентификации сервер RADIUS.
Маршутизаторы, коммутаторы и межсетевые экраны Cisco могут использовать два протокола аутентификации и авторизации: TACACS+ (Terminal Access Controller Access-Control System) и RADIUS (Remote Authentication Dial-In User Service). Первый из них был разработан компанией Cisco Systems и используется почти исключительно в её продуктах. Второй – открытый протокол, и существует множество его реализаций под различные операционные системы. В том числе – и под Windows. Компания Microsoft разработала собственную версию сервера RADIUS и назвала её IAS – Internet Authentication Service.
Надо сказать, что с таким же успехом в качестве сервера аутентификации можно было бы использовать, например, Cisco Secure ACS (Access Control Server), установленный на тот же сервер Windows 2003, или какой-нибудь из многочисленных Open Source-серверов RADIUS. Реализация от Microsoft выбрана ввиду ее большей распространенности, а также потому, что нам, в сущности, требуется от него лишь базовая функциональность – проверка логина и пароля пользователя в домене Windows.
В панели управления сервисом IAS создадим нового клиента RADIUS – наш PIX (cм. рис. 3).
Рисунок 3. Создание нового RADIUS-клиента в IAS
В поле «Friendly name:» введем любое имя, например pix501, а в поле «Client address» – IP-адрес нашего VPN-шлюза (192.168.224.1) (см. рис. 4).
Рисунок 4. Присвоение новому RADIUS-клиенту IP-адреса и имени
В следующем окне указываем серверу, что клиент будет работать с ним по стандартному протоколу RADIUS, с паролем «radiuspassword» (поле «Shared secret») (см. рис. 5).
Рисунок 5. Ввод пароля для RADIUS-клиента
После этого нам нужно настроить политику доступа. Следует иметь в виду, что при использовании политики для разграничения доступа на уровне групп домен Windows должен работать в режиме Native mode. Если домен работает в смешанном режиме (Mixed mode), опция «Control access through Remote Access Policy» на закладке «Dial-In» в свойствах пользователей будет недоступна.
Создадим в домене новую группу под названием, например, «VPN users», а затем в настройках сервера IAS создадим новую политику удаленного доступа, выбрав для простоты использование мастера создания новой политики. Ее настройки пока оставим такими, какими их предлагает мастер – откорректировать их можно позднее (см. рис. 6-9).
Рисунок 6. Создание новой политики удаленного доступа
Рисунок 7. Присвоение имени новой политике удаленного доступа
Рисунок 8. Выбор способа удаленного доступа (VPN)
Рисунок 9. Добавление группы в создаваемую политику удаленного доступа
В результате после завершения работы мастера создания новой политики в Remote Access Policies сервера IAS появилась наша новая политика по имени VPN (см. рис. 10).
Рисунок 10. Новая политика создана
Как можно видеть на рис. 11, условием применения данной политики является принадлежность подключающегося пользователя к группе «VPN users». При выполнении этого условия доступ пользователю будет открыт.
Рисунок 11. Свойства созданной политики
В завершение нужно отредактировать профиль политики (кнопка «Edit Profile»). Следует разрешить передачу паролей PAP и CHAP, которые по умолчанию отключены. В данном случае нет ничего страшного в том, что протокол PAP передает пароль без шифрования, поскольку канал передачи уже и так зашифрован IPSec. Для этого выберите закладку «Authentication» (см. рис. 12).
Рисунок 12. Выбор метода аутентификации для удаленных соединений
По этой же причине нужно разрешить нешифрованную передачу данных (закладка «Encryption», см. рис. 13).
Рисунок 13. Выбор метода шифрования данных для удаленных соединений
Дело сделано. Осталось добавить выбранных пользователей домена в группу «VPN users» и перейти к настройке клиентского программного обеспечения Cisco VPN.
Настройка Cisco VPN Client и проверка работы
Установка Cisco VPN Client тривиальна. После его установки в системе появляется виртуальный сетевой адаптер, не требующий настройки. Запустив приложение, перейдем на закладку «Connection entries» и нажмем кнопку «New». В появившемся окне заполним данные группового VPN-доступа и нажмем кнопку «Save» (см. рис. 14).
Рисунок 14. Создание нового соединения в Cisco VPN Client
Настало время подключиться к удаленной сети через VPN. Нажимаем кнопку «Connect». Если первая ступень аутентификации прошла нормально, мы увидим появившееся окошко (cм. рис. 15).
Рисунок 15. Аутентификация пользователя сервером RADIUS
Это означает, что началась вторая ступень аутентификации, и теперь нам нужно ввести наши логин и пароль в удаленном домене. После ввода логина и пароля и нажатия кнопки «OK» окошко должно исчезнуть, а еще через полсекунды окошко Cisco VPN Client будет автоматически свернуто и помещено в системный трей. Нам удалось установить VPN-соединение.
Для проверки щелкнем правой кнопкой мыши на иконку Cisco VPN Client в трее и выберем «Statistics» (см. рис. 16).
Рисунок 16. Статистика VPN-подключения
Как видно на рис. 16, VPN-клиенту присвоен IP-адрес 192.168.250.1 (как мы помним, это первый адрес из пула выделяемых VPN-клиентам адресов), и наше подключение зашифровано по алгоритму 3DES – как и предполагалось.
Попробуем что-нибудь отправить по этому соединению (см. рис. 17). Пакеты ICMP успешно путешествуют по зашифрованному туннелю между нашим компьютером и сервером локальной сети. Для верности посмотрим еще на вывод команды ipconfig командного shell (см. рис. 18).
Рисунок 17. Результат проверки VPN-подключения
Рисунок 18. Проверка параметров VPN-подключения командой ipconfig
Из вывода ipconfig видно, что наш компьютер получил от VPN-шлюза не только собственный IP-адрес, но и адреса DNS и WINS локальной сети. Благодаря этому пользователь может просматривать домен через «Сетевое окружение» и с большими удобствами подключаться к сетевым ресурсам домена.
Любопытства ради можно взглянуть в журнал событий на сервере Windows. Мы увидим там примерно такое:
Event Type: Information
Event Source: IAS
Event Category: None
Event ID: 1
Date: 3/30/2007
Time: 3:10:54 PM
User: N/A
Computer: MAIN
Description:
User i.petrov was granted access.
Fully-Qualified-User-Name = peanuts-unlimited.local/Users/Ivan Petrov
NAS-IP-Address = 192.168.224.1
NAS-Identifier = <not present>
Client-Friendly-Name = pix501
Client-IP-Address = 192.168.224.1
Calling-Station-Identifier = 2.2.2.2
NAS-Port-Type = <not present>
NAS-Port = 4
Proxy-Policy-Name = Use Windows authentication for all users
Authentication-Provider = Windows
Authentication-Server = <undetermined>
Policy-Name = VPN
Authentication-Type = PAP
EAP-Type = <undetermined>
|
Имеет смысл также заглядывать в этот журнал в том случае, если по каким-то причинам не проходит вторая ступень аутентификации. Записи о событиях сервиса IAS помогут разобраться в причинах происходящего.
Заключение
Описанный в статье метод настройки межсетевого экрана Cisco относится не только к модели 501, но и ко всей линейке PIX, при том, однако, условии, что межсетевой экран работает под управлением операционной системы версии 6.x. Как уже говорилось, серьезным ограничением PIX 501 является количество одновременных подключений VPN – не более десяти. Если нужно обеспечить возможность одновременной работы большего количества удаленных пользователей, следует подумать о модели 506 (до 25 пользователей) или даже модели 515E (до 2000 пользователей).
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|