Home Travels Photoalbum Library
Главная стр.
Путешествия
Библиотека
Фотоальбом
@rich62.ru
Home » Библиотека » Network » VPN » Настройка PPTP доступа на Cisco PIX501
Вернуться в «Библиотеку» Cisco PIX501 setup: PPTP, настройка доступа

В небольшой организации возникла необходимость получить доступ из Интернет к ее внутренним ресурсам по VPN. Для этой цели было приобретено устройство Cisco Pix501, которое должно было стать шлюзом для LAN организации, быть точкой терминирования VPN-соединений и выполнять следующие функции по разграничению доступа:

  1. разрешены входящие (извне) HTTP (tcp/80) и HTTPS (tcp/443) запросы к Web-серверу, расположенному во внутренней сети;
  2. разрешены исходящие HTTP/HTTPS соединения и DNS-запросы (udp/53) с proxy-сервера, расположенного во внутренней сети;
  3. разрешены исходящие соединения в Интернет по SMTP (tcp/25) со станции управления, расположенной во внутренней сети;
  4. со станции управления разрешен доступ по SSH (tcp/22) к шлюзу/фаерволлу Pix501;
  5. разрешен доступ по RDP (tcp/3389) через VPN-соединение к станции управления;
  6. все остальное закрыто.

Исходные данные:

LAN организации - 192.168.1.0/24 (внутренние адреса)

192.168.1.1 - шлюз (Pix501 "inside")
192.168.1.2 - внутренний адрес web-сервера
192.168.1.3 - proxy- и dns- сервер
192.168.1.4 - станция управления

Адреса, выдаваемые VPN-пользователям - 192.168.2.0/24 (внутренние адреса)

Адреса, выданные провайдером - 10.10.10.0/24 (внешние адреса)

10.10.10.1 - шлюз (Pix501 "outside")
10.10.10.2 - внешний адрес web-сервера
10.10.10.254 - адрес шлюза провайдера

В организации нет сервера ААА, поэтому VPN-пользователи будут заводиться локально на Pix501. Итак, приступаем к конфигурированию:  
Prompt Command   Description
pixfirewall>   // Пользовательский режим
pixfirewall> enable // Входим в режим enable
pixfirewall> Password: ******** // Вводим пароль enable
pixfirewall#   // Enable mode
pixfirewall# conf  t // Входим в режим конфигурирования (configure terminal)
  Предварительная настройка
pixfirewall(config)#  config factory-default // Сбрасываем все настройки в заводские
pixfirewall(config)#  hostname Pix501 // Меняем имя устройству
Pix501(config)# no dhcpd address inside // Запрещаем DHCPD на внутреннем интерфейсе
Pix501(config)# ip address outside 10.10.10.1 255.255.255.0 // Устанавливаем IP-адрес на интерфейсе outside
Pix501(config)# ip address inside 192.168.1.1 255.255.255.0 // Устанавливаем IP-адрес на интерфейсе inside
Pix501(config)# route outside 0.0.0.0 0.0.0.0 10.10.10.254 1 // Назначаем маршрут по умолчанию (на IP-адрес провайдера)
Pix501(config)# no http 192.168.1.0 255.255.255.0 inside // Удаляем доступ по HTTP, оставшийся из заводских установок (нам он не нужен, т.к. есть протокол SSH :)
Pix501(config)# timeout xlate 3:00:00 // Устанавливаем таймаут для транслируемых адресов
Pix501(config)# snmp-server community H7gh^Kbget*65mk // Меняем SNMP-community на нечто уникальное (запоминаем)
  Настраиваем доступ к PIX по SSH
Pix501(config)# domain-name my.domain.ru // Указываем домен
Pix501(config)# ca generate rsa key 1024 // Генерируем ключи RSA (для доступа к PIX по SSH)
Pix501(config)# show ca mypubkey rsa // Просматриваем сгенерированные ключи
Pix501(config)# ca save all // Сохраняем информацию
Pix501(config)# password 8wnz$INQ // Устанавливаем консольный пароль (8wnz$INQ)
Pix501(config)# enable password 6gwp^JGT // Устанавливаем пароль (6gwp^JGT) для enable mode
Pix501(config)# username user1 password User1
[ username admin password Admin privilege 15 ]
// Заводим в локальной базе пользователя user1 с паролем User1. Заводим столько пользователей, сколько нужно. Пользователю можно указать режим привилегий, например, privilege 15 (при входе, сразу попадаем в режим enable)
Pix501(config)# aaa authentication ssh console LOCAL // Указываем, что вход с консоли и по SSH аутентифицировать по локальной базе пользователей.
Pix501(config)# aaa authorization command LOCAL // Устанавливаем локальный режим авторизации
Pix501(config)# ssh 192.168.1.4 255.255.255.255 inside // Разрешаем доступ по SSH с интерфейса "inside" для станции управления 192.168.1.4
  Настраиваем логирование событий
Pix501(config)# logging on // Включаем режим логирования событий
Pix501(config)# logging timestamp // Timestamp logging: enabled
Pix501(config)# logging buffered debugging // Buffer logging: level debugging
Pix501(config)# logging trap informational // Trap logging: level informational
Pix501(config)# logging history errors // History logging: level errors
Pix501(config)# logging facility 6 // Facility: 6
  Настраиваем статические маршруты и списки доступа
Pix501(config)# static (inside, outside) tcp 10.10.10.2 80 192.168.1.2 80 netmask 255.255.255.255 // Статическая трансляция порта tcp/80 на внутренний WEB-сервер
Pix501(config)# static (inside, outside) tcp 10.10.10.2 443 192.168.1.2 443 netmask 255.255.255.255 // Статическая трансляция порта tcp/443 на внутренний WEB-сервер
Pix501(config)# access-list acl-inside permit tcp host 192.168.1.3 any eq 80 // Разрешаем HTTP запросы с 192.168.1.3
Pix501(config)# access-list acl-inside permit tcp host 192.168.1.3 any eq 443 // Разрешаем HTTPS запросы с 192.168.1.3
Pix501(config)# access-list acl-inside permit udp host 192.168.1.3 any eq 53 // Разрешаем DNS запросы с 192.168.1.3
Pix501(config)# access-list acl-inside permit tcp host 192.168.1.4 any eq 25 // Разрешаем SMTP запросы с 192.168.1.4
Pix501(config)# access-list acl-inside permit icmp 192.168.1.0 255.255.255.0 any // Разрешаем пинг из внутренней сети на ANY
Pix501(config)# access-group acl-inside in interface inside // Назначаем access-list acl-inside на интерфейс inside
Pix501(config)# access-list acl-outside permit tcp any host 10.10.10.2 eq 80 // Разрешаем HTTP запросы на 192.168.1.2
Pix501(config)# access-list acl-outside permit tcp any host 10.10.10.2 eq 443 // Разрешаем HTTPS запросы на 192.168.1.2
Pix501(config)# access-group acl-outside in interface outside // Назначаем access-list acl-outside на интерфейс outside
  Настраиваем VPN-доступ
Pix501(config)# ip local pool vpn_users 192.168.2.1-192.168.2.254 // Создаем локальный пул адресов vpn_users (192.168.2.1 - 254)
Pix501(config)# access-list acl-nonat permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0 // Разрешаем доступ по IP из внутренней сети к адресам пула vpn_users
Pix501(config)# nat (inside) 0 access-list acl-nonat // Не транслировать адреса при прохождении пакетов из внутренней сети к адресам клиентов, получивших доступ во внутреннюю сеть по VPN-туннелю
Pix501(config)# vpdn group 1 accept dialin pptp // Создаем VPDN группу с идентификатором 1 и разрешаем входящие соединения по протоколу PPTP
Pix501(config)# vpdn group 1 ppp authentication mschap // Аутентификация PPP-соединений по протоколу MSCHAP
Pix501(config)# vpdn group 1 ppp encryption mppe auto required // Требуется криптование через PPP-соединение
Pix501(config)# vpdn group 1 client configuration address local vpn_users // При успешной авторизации выдавать адреса из пула vpn_users
Pix501(config)# vpdn group 1 client authentication local // Аутентифицировать VPDN-пользователей по локальной базе
Pix501(config)# vpdn enable outside // Разрешить входящие VPDN-соединения на интерфейсе outside
Pix501(config)# vpdn username vpnuser1 password 4lsb%RRJ // Создаем VPDN пользователя vpnuser1 с паролем 4lsb%RRJ
Pix501(config)# access-list acl-outside permit tcp 192.168.2.0 255.255.255.0 host 192.168.1.4 eq 3389 // Разрешаем доступ по VPN-туннелю к станции управления по RDP
Pix501(config)# access-list acl-outside permit icmp 192.168.2.0 255.255.255.0 192.168.1.0 255.255.255.0 // Разрешаем пинг из VPN-туннеля к адресам внутренней сети
Pix501(config)# exit // Выходим из режима конфигурирования
Pix501# wr mem // Записываем конфигурацию в память (write memory)
  Building configuration...
  Cryptochecksum: xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
  [OK]
Pix501#

В заключение привожу выдержку из письма, отправленного мною в эту организацию:


From: Гарейшин Валерий Рифович
Sent: ...
To: ...
Subject: PIX setup - настройка доступа (summary)
[...skip...]
Справка по любой команде PIXOS / IOS выдается при вводе знака вопроса - например "?", "show ?", ... Общие принципы настройки access-lists на Cisco PIX следующие:
  1. Необходимо зайти на PIX в режиме enable
  2. В зависимости от того, кто инициирует запрос на соединение (внутренний хост или внешний), необходимо посмотреть ACL, установленный на интерфейсе. Если запрос идет из внутренней сети (source ip 192.168.1.0/24), то смотрится лист acl-inside. Если source ip - внешний (к нему также относится сеть 192.168.2.0/24), то смотрится лист acl-outside. Все списки доступа можно посмотреть командой show access-list.

Пример просмотра acl-inside:

Pix501# show access-list acl-inside
access-list acl-inside; 5 elements
access-list acl-inside line 1 permit tcp host 192.168.1.3 any eq www (hitcnt=5)
access-list acl-inside line 2 permit tcp host 192.168.1.3 any eq https (hitcnt=8)
access-list acl-inside line 3 permit udp host 192.168.1.3 any eq domain (hitcnt=3)
access-list acl-inside line 4 permit tcp host 192.168.1.4 any eq smtp (hitcnt=1)
access-list acl-inside line 5 permit icmp 192.168.1.0 255.255.255.0 any (hitcnt=36)
Pix501#

Каждому правилу в листе соответствует свой элемент. Если добавлять правило (элемент) в ACL, то, необходимо указывать номер линии. Соответственно, если будет добавляться правило под номером line 5, то, та строчка, которая была на этом месте, станет line 6 (сдвинется вниз). Порядок следования правил важен - если первой строчкой запретить все, то правила, находящиеся ниже не будут иметь значения. Таким образом, если необходимо открыть доступ по tcp/110 с хоста 192.168.1.4 на все адреса и разместить его на 5-й строчке листа, то необходимо сделать следующее:

Pix501# conf t
Pix501(config)# access-list acl-inside line 5 permit tcp host 192.168.1.4 any eq 110
Pix501(config)# ^z
Pix501#

Строчка, которая была на 5-м месте станет элементом №6. Параметр hitcnt показывает, сколько раз применялось правило.

На Вашем PIX включено логирование событий (syslog). Посмотреть перечень syslog events можно сомандой sh logging. Если на PIX поступил пакет и был запрещен каким нибудь ACL, то это будет отмечено в журнале syslog с указанием листа который его запретил...


О замеченных неточностях прошу сообщить мне.

©rich62.ru,  2001-2011