VPN SSL как настроить на Cisco Router

Настройка VPN SSL: пошаговая инструкция

Использование VPN позволяет организовать безопасный удаленный доступ сотрудников через интернет к корпоративным сервисам и данным, размещаемым в инфраструктуре Selectel. Используя аппаратный межсетевой экран FortiGate в Selectel, можно настроить удалённый доступ к частным сетям организаций на основе технологий SSL, IPsec и L2TP over IPsec, с использованием различного ПО, устанавливаемого на компьютеры, ноутбуки и мобильные телефоны удалённых пользователей. В этом руководстве описывается о VPN SSL, как настроить.

Что такое SSL VPN

Итак, давайте посмотрим, как SSL VPN может облегчить нам жизнь и сэкономить время и нервы. Описывать технологию смысла не вижу, чтобы не докучать сухой технической информацией продвинутому читателю. Мы же остановимся на практике использования и подумаем, чем же так хорош SSL VPN в сравнении с классическим IPSec VPN.

Суть технологии SSL VPN состоит в следующем: клиент подключается по 443 порту к шлюзу, который в свою очередь инициирует соединение с удаленным сервером (в нашем случае – это 1С), как прокси-сервер.


Во-первых, это удобно. Можно организовать доступ к любому сервису/ресурсу с любого пользовательского устройства из любого места, где есть Интернет. Не надо устанавливать никаких VPN-клиентов, настраивать их, как в случае использования IPSec VPN, достаточно в браузере ввести адрес, аутентифицироваться и работать. Пользователь сможет получить удаленный доступ к корпоративному ресурсу даже через публичный или гостевой Wi-Fi, т.к. 443 порт открыт почти во всех сетях.

Во-вторых, это просто. Просто для всех. Вам не придется объяснять тетеньке-бухгалтеру пользователю, что для получения доступа к какому-то ресурсу ему надо в трее найти иконку VPN-клиента, нажать на ней правой кнопкой мыши, из списка выбрать адрес шлюза, нажать «Connect», ввести логин и пароль (снова привет IPSec VPN). Просто для администраторов, т.к. не надо выдавать пользователю рабочий ноутбук для командировок с установленным и настроенным VPN-клиентом, антивирусом и другим корпоративным ПО.

В-третьих, это безопасно. Есть много механизмов защиты, которые шлюз SSL VPN может применять к клиенту. Два главных механизма – это аутентификация и шифрование. Методы и средства аутентификации можно выбрать самые различные: по логину/паролю, RADIUS, сертификаты, одноразовые пароли, интеграция с Active Directory и многие другие, в зависимости от выбранного решения SSL VPN.

Шифрование тоже на любой вкус, все зависит от вендора. Например, Stonesoft SSL, который мы рассмотрим в этой статье, предлагает нам выбирать из следующих алгоритмов: AES, DES, 3DES, RC2, RC4 и, в версии для России, ГОСТ 28147-89, что очень радует наших гос. регуляторов. Так как мы живем в России и законы не нарушаем, то наличие у этого продукта сертификатов соответствия ФСТЭК и ФСБ позволяет существенно расширить область его применения.

Также можно выделить такие интересные механизмы защиты, как проверка конечного устройства пользователя на соответствие политике безопасности и удаление следов сессии по окончании соединения (cookies, история URL, данные из кэша и временные файлы).

Настройка SSL VPN-Plus

Технология SSL VPN-Plus позволяет предоставить доступ удаленным сотрудникам к Вашему облачному ЦОДу. При этом сотрудники получают защищенный доступ только к тем ресурсам, которые считаются необходимыми для этих сотрудников, даже если доступ производится с общедоступной машины, которая находится вне контроля компании и рассматривается как «ненадежная».

Используемая топология:

  • В разделе «Administration» переходим в нужный ЦОД. В появившемся меню настроек переходим во вкладку «Edge Gateways». Выбираем нужный «vShield Edge». Нажимаем правой кнопкой мыши и в появившемся меню выбираем опцию «Edge Gateway Services».
  • Открываем вкладку SSL VPN-Plus, переходим на вкладку Server Settings и активируем SSL VPN server, нажав тумблер Enabled.

Затем выбираем IP адрес vShield, port – 443, отмечаем галочками все алгоритмы шифрования.

  • На вкладке Client Configuration проверяем, что выбран Tunneling mode – Split

  • На вкладке Users для каждого подключающегося сотрудника создаем реквизиты для подключения.

  • На вкладке IP Pools создаем диапазон ip адресов, которые будут назначаться подключающимся компьютерам

  • На вкладке Installation Packages создаем параметры установочного пакета клиентской программы. При обращении к IP адресу Gateway (vShield) будет происходить скачивание клиентской программы SSL VPN-Plus.

Галочками выбираем типы операционных систем, с которых будут происходить подключения. Это необходимо для предварительного формирования установочных пакетов.

  • На вкладке Private Networks мы задаем диапазоны сетей облачного ЦОД, к которым подключаемый сотрудник будет иметь доступ

  • На этом настройка закончена. Теперь, перейдя по ссылке https://195.211.5.130/sslvpn-plus/ и авторизовавшись, вы сможете скачать клиентскую программу SSL VPN-plus и подключиться к облачному ЦОД.

Как настроить SSL VPN на отдельно взятой Windows или Linux машине

Заходим на www.hotspotvpn и покупаем SSL VPN – его называют VPN-2. Тип шифрования не важен – Blowfish 128, AES-192 или AES-256. Платить можно через PayPal или VISA/Master. При этом PPTP VPN (VPN-1) получаем бесплатно.

Получаем несколько писем, из них нам нужны два:

  • логин/пароль на VPN-1. Откладвываем на всякий случай. Можно настроить его на телефоне (вроде iPhone или Nokia e-series)
  • временная ссылка на ваши персональные данные для SSL VPN (VPN-2).

Два файла: инсталляционный пакет OpenVPN для Windows в сборе с вашими ключами (.exe) и набор скриптов и ключей для Linux/OS X (.zip).

Формат и размеры файлов:

  • .exe – около 1,9 Мб
  • .zip – около 65 Кб

Запускаем _.exe и устанавливаем OpenVPN, ребутимся и запускаем из меню вот этот скрипт – “Add a new TAP-Win32 virtual ethernet adapter”. Только один раз. Далее все предельно просто:

  • убеждаемся, что мы подключенны к сети;
  • убеждаемся, что запущен OpenVPN GUI – есть значок в трее. Если нет – запускаем.
  • правый клик на OpenVPN GUI – Connect. Пройдет инициализация, адаптер vpn получит IP адрес и все – вы в vpn сети.

Как настроить SSL VPN на Linux-роутере и подключаться в защищенный канал множеством клиентов

Итак, наша задача поднять vpn туннель на роутере, к которому можно будет подключить множество клиентов через wifi или ethernet. Я имею ввиду не модем, который предоставил вам ISP (его трогать не надо), а ваш личный роутер, коий очень полезно иметь. Крайне рекомендую продукцию Linksys, например что-нибудь на базе WRT54G. Однако статья про сплошные затраты…

Познавательнее всего использовать для нашей цели прошивку на базе linux: openwrt (www.openwrt.org) Ознакомьтесь со списком поддерживаемого железа – http://oldwiki.openwrt.org/TableOfHardware.html – и решайте, надо оно вам или нет. Еще рекомендовали dd-wrt как альтернативу.

Итак, у нас есть подключенный к интернету роутер с linux прошивкой (версия ядра не критична – 2.4 или 2.6). Ставим на него openvpn (если не установлен):
opkg install openvpn

Заходим на роутер через ssh, как root (в моем примере) либо как другой пользователь – тогда используйте sudo для запуска.

Создаем директорию для скриптов и ключей:
# mkdir /root/hotspotvpn2

Затем распаковываем содержимое _.zip в директорию /root/hotspotvpn2unzip скорее всего не установлен по умолчанию, поставьте его через opkg install. Альернативно можно использовать WinSCP и распаковать из под Windows, но тогда обязательно убедитесь что в ascii-файлах не появились ^M в конце каждой строки. Установите правильного владельца (chown) и права (chmod) на содержимое директории.

Далее переходим в директорию /root/hotspotvpn2 и редактируем файл hotspotvpn2.ovpn

port 443 proto tcp verb 3 # SSL servers hostnames are commented ; remote kamai.dcsanswires.com ; remote kamaimd.dcsanswires.com ; remote kamaica.dcsanswires.com # and real IPs are used. remote 64.27.12.217 remote 208.53.153.7 remote 67.159.22.187 client cert ****************.crt key ************************.key ca ca.crt tls-auth ta.key 1 ns-cert-type server cipher aes-192-cbc comp-lzo mute 20 dev tun0 resolv-retry infinite persist-key persist-tun mute-replay-warnings redirect-gateway def1Смысл в использовании IP адресов вместо hostnames, так как файрволы неких стран могут использовать DNS poisoning или посылать corrupted DNS responce для “неправильных” сайтов. hotspotvpn к таковым не относится, но мало ли…

Далее самая навороченная часть, а именно настройка iptables для vpn. В моем примере ppp0 это файл-устройство wan-соединения, а tun0 – файл-устройство vpn-туннеля.

Комманды можно вводить прямо с коммандной строки, но чтобы они выполнялись при запуске, их надо занести в /etc/firewall.user Приведу свои комментарии для комманд (english). Также буду рад любой критике – я iptables знаю плохо.

# to enable nat for the tunnel iptables -t nat -A PREROUTING -i tun0 -j ACCEPT iptables -t nat -A zone_wan_nat -o tun+ -j MASQUERADE iptables -A zone_wan_ACCEPT -o tun+ -j ACCEPT # needed to make router accessible from internet via ssh. Optional. iptables -I INPUT 3 -p tcp —dport 22 -i ppp0 -j ACCEPT# to enable all traffic for tunnel. Added in panic mode :) Further tuning needed. iptables -A INPUT   -i tun+ -j ACCEPT iptables -A FORWARD -i tun+ -j ACCEPT iptables -A OUTPUT  -o tun+ -j ACCEPT iptables -A FORWARD -o tun+ -j ACCEPTДалее, устанавливаем туннель:
cd /root/hotspotvpn2
openvpn hotspotvpn2.ovpn

Произойдет примерно то же самой что описано во 2-й части.

Осталость рассказать про настройку клиентов. В зависимости от OS могут быть разные проблемы, связанные с тем что в силу различных алгоритмов binding order разные системы по разному интерпретируют DHCP информацию, если она пришла из vpn-туннеля (в случае OpenVPN-сервера это настройка push “DHCP DNS…”). OS X и Linux проблем не имеют, тогда как Windows или Symbian могут не работать. Поэтому самым простым решением будет установка DNS-настроек на клиентах вручную. Я пользую Google DNS:
4.4.4.4
8.8.8.8

Это все.

Настройка SSL VPN на Cisco Router

Приветствую, коллеги, хотелось бы описать шаги настройки SSL VPN для Cisco, с описанием некоторых интересных нюансов, встречаемых на практике.

Для реализации схемы, показанной ниже, будем использовать следующее реальное физическое оборудование, также прошу заметить что названия интерфейсов условны и в реализации не применяются (реализовать ssl vpn в unl-eve не удалось, так как ни iol ни vios команды для конфигурирования webvpn не поддерживают):

Cisco 881 (C880DATA-UNIVERSALK9-M 15.2(4)M4)
Windows 7 x64 + AnyConnect 4.4

Схема подключения:

Для начала, что такое SSL VPN (или WEBVPN) от Cisco. Это своего рода наследник easy vpn или ipsec vpn, который позволяет по протоколу ssl (443 порт) удаленно подключиться к вашей корпоративной или домашней сети. Кроме простоты настройки и относительно «легкого» конфига, самым большим доводом за использование ssl является то, что он использует практически повсеместно «открытый» 443 порт для подключения, т.е. если бы вы, например, использовали ipsec, то необходимо было бы на межсетевом экране или же на граничном роутере открывать isakmp (500) порты, наверняка разрешить nat-t (4500), и еще вдобавок разрешить трафик esp, тогда как в случае с ssl подключение проходит по 443 порту, который в большинстве своем разрешен для хостов. Кроме этого не надо на стороне клиента производить каких либо настроек, удаленному пользователю достаточно знать всего лишь внешний ip или dns имя роутера, а также логин и пароль для входа (при использовании easyvpn помимо вышеперечисленного нужен pre-share ключ, а также наименование client configuration group).

Настройка:

  • Для начала необходимо активировать лицензию на роутере, в нашем случае используется cisco 881 c ios 15.2(4), для ознакомительной активации на 60 дней вводим след. команду в privilege режиме:

license modify priority SSL_VPN highПосле чего соглашаемся с лицензионным соглашением.

  • Далее копируем дистрибутив any connect на роутер любым удобным способом(копирование лучше производить в заранее созданную директорию webvpn, так как если просто скопировать в корень flash, то при установке создастся копия файла установки в той же директории, соответственно займет больше места на flash) и устанавливаем его:

mkdir flash:/webvpn copy tftp: flash:/webvpn/ crypto vpn anyconnect flash:/webvpn/anyconnect-win-4.4.00243-k9.pkg3. Включаем aaa (необходим, чтобы указать authentication list на нашем Web шлюзе (webvpn gateway)), заводим локальных пользователей (логин и пароль, которые здесь указываем необходимы для подключения к порталу из интернета, по типу внешнийадресроутера) и активируем https сервер:

aaa new-model aaa authentication login SSL_USERS local username admin secret *************** ip http secure-server4. Генерируем RSA ключи, создаем trustpoint и затем генерируем самоподписанный сертификат:

crypto key generate rsa label SSLKEY modulus 1024 crypto pki trustpoint SALAM_TRUSTPOINT enrollment selfsigned serial-number subject-name CN=firewallcx-certificate revocation-check crl rsakeypair SSLKEY crypto pki enroll SALAM_TRUSTPOINT5. Настраиваем пул адресов, который будет выдаваться клиентам и создаем WebVPN Gateway, для команды ip interface вместо интерфейса можно указать непосредственно ip адрес командой ip address **** port 443:

ip local pool WEBVPN_POOL 10.0.0.11 10.0.0.15 webvpn gateway WEBVPN_GW ip interface Dialer1 port 443 ssl trustpoint SALAM_TRUSTPOINT inservice6. Далее создаем и привязываем к нашему gateway так называемый webvpn context, в котором указаваем ранее созданный auth list, максимальное кол-во подключаемых пользователей, а также приветствие отображаемое при входе на портал через браузер(команда inservice в этом и предыдущем шаге активирует webvpn gateway и context):

webvpn context WEBVPN_CON title «Assalyamu alyaikum» login-message «Salyam» aaa authentication list SSL_USERS gateway WEBVPN_GW max-users 5 inservice7. Там же в конфигурации webvpn context создаем policy group, в которой задаем наш пул адресов, указываем какой трафик от клиентов будет заворачиваться в туннель (в нашем случае, когда destination у клиентов будут сети 192.168.1.0 /24 или 172.16.1.0/24 в таблице маршрутизации на клиентах появятся соответствующие записи только для этих двух сетей, указывающие на то, что этот трафик будет уходить в шифрованный туннель), команда functions svc-enabled указывает, что удаленный пользователь может подключаться с помощью самостоятельно установленного клиента anyconnect, т.е. не надо заходить через браузер:

policy group WEBVPN_POLICY functions svc-enabled svc address-pool «WEBVPN_POOL» netmask 255.255.255.0 svc split include 192.168.1.0 255.255.255.0 svc split include 172.16.1.0 255.255.255.0 default-group-policy WEBVPN_POLICY8. Если у нас на внешнем интерфейсе висит ACL, то необходимо дописать правило:

permit tcp any host «внешний адрес роутера» eq 443В итоге запускаем на нашем клиенте браузер, вводим внешний адрес нашего роутера 212.212.0.1 и видим приглашение:

Осталось ввести логин пароль и установить соединение, на этом бы все, но есть один нюанс.
Если обратиться к нашей схеме, то сеть 192.168.1.0/24, та самая к которой мы подключаемся, находится за NATом, настройка NAT для роутера R1 следующая:

ip nat inside source list NAT_POOL interface Dialer1 overloadгде NAT_POOL:

ip access-list extended NAT_POOL permit ip 192.168.1.0 0.0.0.255 anyчто произойдет если мы будем пинговать сеть 192.168.1.0 с подключившегося по vpn клиента(клиент получил адрес 10.0.0.12)? Пакеты от него зашифрованными будут уходить на R1, тот в свою очередь создает ответ с destination 10.0.0.12 и смотрит в таблицу маршрутизации:

R1#sh ip route 10.0.0.12 Routing entry for 10.0.0.12/32 Known via «static», distance 0, metric 0 Routing Descriptor Blocks: * directly connected, via Virtual-Access3 Route metric is 0, traffic share count is 1 R1#sh interfaces virtual-access 3 Virtual-Access3 is up, line protocol is up Hardware is Virtual Access interface Description: ***Internally created by SSLVPN context WEBVPN_CON*** Interface is unnumbered. Using address of Dialer1 (212.212.0.1) MTU 1406 bytes, BW 100000 Kbit/sec, DLY 100000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation SSL SSL vaccess Т.е. пакеты уходят с интерфейса dialer 1, а согласно вот этой замечательной таблице порядка операций над трафиком.

после routing у нас идет NAT, а наше правило nat говорит нам, что наш source заменится на публичный адрес и в таком виде уйдет на клиента, который понятия не имеет о нашем внешнем адресе, следовательно пинг не пройдет и ничего работать не будет, исправляем добавлением следующей команды в acl NAT_POOL:

ip access-list extended NAT_POOL 1 deny ip 192.168.1.0 0.0.0.255 10.0.0.0 0.0.0.255

И, все работает!

Источники

  • https://www.pvsm.ru/vpn/32300
  • https://www.rtcloud.ru/baza/nastrojka-ssl-vpn/
  • https://magazeta.com/configure-vpn
  • https://www.pvsm.ru/cisco/249766

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: