Cisco PIX501 setup: PPTP, настройка доступа

pix501_1[1]
В небольшой организации возникла необходимость получить доступ из Интернет к ее внутренним ресурсам по 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 // Просматриваем сгенерированные ключи P
ix501(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/lib/network/vpn/pix501vpn.html

Запись опубликована в рубрике *Lan&Wan. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91