Управление удаленным доступом
Настройка сервера удаленного доступа к корпоративной сети по PPTP-протоколу
PPTP (англ. Point-to-Point Tunneling Protocol) – туннельный протокол типа точка-точка, позволяющий компьютеру устанавливать защищённое соединение с сервером за счёт создания специального туннеля в обычной незащищенной сети. PPTP помещает (инкапсулирует) кадры PPP в IP-пакеты для передачи по глобальной IP-сети, например, Интернет. PPTP может также использоваться для организации туннеля между двумя локальными сетями. РРТР использует дополнительное TCP-соединение для обслуживания туннеля.
Алгоритм настройки
Шаг | Описание | Команда | Ключи |
---|---|---|---|
1 | Создать профиль PPTP-сервера. | esr(config)# remote-access pptp <NAME> | <NAME> – имя профиля PPTP-сервера, задаётся строкой до 31 символа. |
2 | Указать описание конфигурируемого сервера (не обязательно). | esr(config-pptp-server)# description <DESCRIPTION> | <DESCRIPTION> – описание PPTP-сервера, задаётся строкой до 255 символов. |
3 | Указать IP-адрес, который должен обрабатывать PPTP-сервер. | esr(config-pptp-server)# outside-address | <OBJ-GROUP-NETWORK-NAME> – имя профиля содержащего IP-адрес, который должен слушать PPTP-сервер, задаётся строкой до 31 символа; <ADDR> – начальный IP-адрес диапазона, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IF> – тип и идентификатор интерфейса маршрутизатора; <TUN> – тип и номер туннеля маршрутизатора. |
4 | Указать IP-адрес локального шлюза. | esr(config-pptp-server)# local-address | <OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, который содержит IP-адрес локального шлюза, задаётся строкой до 31 символа; <ADDR> – начальный IP-адрес диапазона, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
5 | Указать список IP-адресов, из которого PPTP выдаются динамические IP-адреса удаленным пользователям. | esr(config-pptp-server)# remote-address | <OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, который содержит список IP-адресов удаленных пользователей, задаётся строкой до 31 символа; <FROM-ADDR> – начальный IP-адрес диапазона, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <TO-ADDR> – конечный IP-адрес диапазона, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
6 | Выбрать режим аутентификации PPTP-клиентов. | esr(config-pptp-server)# authentication mode |
|
7 | Разрешить необходимые методы аутентификации удаленных пользователей | esr(config-pptp-server)# authentication method <METHOD> | <METHOD> - метод аутентификации, принимает значения [chap, mschap, mschap-v2, eap, pap]. По умолчанию разрешен только chap |
8 | Указать имя пользователя (при использовании локальной аутентификации пользователей). | esr(config-pptp-server) username < NAME > | <NAME> – имя пользователя, задаётся строкой до 12 символов. |
9 | Указать пароль пользователя(при использовании локальной аутентификации пользователей). | esr(config-pptp-user) password ascii-text | <PASSWORD> – пароль пользователя, задается строкой до 32 символов. |
10 | Активировать пользователя(при использовании локальной аутентификации пользователей). | esr(config-pptp-user) enable | |
11 | Включить PPTP-сервер в зону безопасности и настроить правила взаимодействия между зонами или отключить firewall (см. раздел Конфигурирование Firewall). | esr(config-pptp-server)# security-zone <NAME> | <NAME> – имя зоны безопасности, задаётся строкой до 31 символа. |
12 | Включить сервер. | esr(config-pptp-server)# enable | |
13 | Указать DSCP-приоритет исходящих пакетов (не обязательно). | esr(config-pptp-server)# dscp <DSCP> | <DSCP>– dscp приоритет исходящих пакетов [0..63]. |
14 | Включить шифрование MPPE для PPTP-соединений (не обязательно). | esr(config-pptp-server)# encryption mppe | |
15 | Указать размер MTU (MaximumTransmitionUnit) для сервера (не обязательно). | esr(config-pptp-server) mtu <MTU> | <MTU> – значение MTU, принимает значения в диапазоне [1280..1500]. Значение по умолчанию: 1500. |
16 | Указать список DNS-серверов, которые будут использовать удаленные пользователи (не обязательно). | esr(config-pptp-server)# dns-servers | <OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, содержащего, который содержит адреса необходимых DNS-серверов, задаётся строкой до 31 символа. |
17 | Указать список WINS-серверов, которые будут использовать удаленные пользователи (не обязательно). | esr(config-pptp-server)# wins-servers object-group | <OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, который содержит адреса необходимых WINS-серверов, задаётся строкой до 31 символа. |
Пример настройки
Задача:
Настроить PPTP-сервер на маршрутизаторе.
- адрес PPTP-сервера – 120.11.5.1;
- шлюз внутри туннеля для подключающихся клиентов – 10.10.10.1;
- пул IP-адресов для выдачи 10.10.10.5-10.10.10.25;
- DNS-серверы: 8.8.8.8, 8.8.8.4;
- учетные записи для подключения – fedor, ivan.
Решение:
Создадим профиль адресов, содержащий адрес, который должен слушать сервер:
esr# configure
esr(config)# object-group network pptp_outside
esr(config-object-group-network)# ip address-range 120.11.5.1
esr(config-object-group-network)# exit
Создадим профиль адресов, содержащий адрес локального шлюза:
esr(config)# object-group network pptp_local
esr(config-object-group-network)# ip address-range 10.10.10.1
esr(config-object-group-network)# exit
Создадим профиль адресов, содержащий адреса клиентов:
esr(config)# object-group network pptp_remote
esr(config-object-group-network)# ip address-range 10.10.10.5-10.10.10.25
esr(config-object-group-network)# exit
Создадим PPTP-сервер и привяжем вышеуказанные профили:
esr(config)# remote-access pptp remote-workers
esr(config-pptp)# local-address object-group pptp_local
esr(config-pptp)# remote-address object-group pptp_remote
esr(config-pptp)# outside-address object-group pptp_outside
esr(config-pptp)# dns-servers object-group pptp_dns
Выберем метод аутентификации пользователей PPTP-сервера:
esr(config-pptp)# authentication mode local
Укажем зону безопасности, к которой будут относиться сессии пользователей:
esr(config-pptp)# security-zone VPN
Создадим PPTP-пользователей Ivan и Fedor для PPTP-сервера:
esr(config-pptp)# username ivan
esr(config-pptp-user)# password ascii-text password1
esr(config-pptp-user)# enable
esr(config-pptp-user)# exit
esr(config-pptp)# username fedor
esr(config-pptp-user)# password ascii-text password2
esr(config-pptp-user)# enable
esr(config-pptp-user)# exit
esr(config-pptp)# exit
Включим PPTP-сервер:
esr(config-pptp)# enable
После применения конфигурации маршрутизатор будет прослушивать 120.11.5.1:1723. Состояние сессий PPTP-сервера можно посмотреть командой:
esr# show remote-access status pptp server remote-workers
Счетчики сессий PPTP-сервера можно посмотреть командой:
esr# show remote-access counters pptp server remote-workers
Очистить счетчики сессий PPTP-сервера можно командой:
esr# clear remote-access counters pptp server remote-workers
Завершить сессию пользователя fedor PPTP-сервера можно одной из следующих команд:
esr# clear remote-access session pptp username fedor
esr# clear remote-access session pptp server remote-workers username fedor
Конфигурацию PPTP-сервера можно посмотреть командой:
esr# show remote-access configuration pptp remote-workers
Помимо создания PPTP-сервера необходимо в firewall открыть TCP-порт 1723 для обслуживания соединений и разрешить протокол GRE(47) для туннельного трафика.
Настройка сервера удаленного доступа к корпоративной сети по L2TP over IPsec протоколу
L2TP (англ. Layer 2 Tunneling Protocol – протокол туннелирования второго уровня) – туннельный протокол, использующийся для поддержки виртуальных частных сетей. L2TP помещает (инкапсулирует) кадры PPP в IP-пакеты для передачи по глобальной IP-сети, например, Интернет. L2TP может также использоваться для организации туннеля между двумя локальными сетями. L2ТР использует дополнительное UDP-соединение для обслуживания туннеля. L2TP-протокол не предоставляет средств шифрования данных и поэтому он обычно используется в связке с группой протоколов IPsec, которая предоставляет безопасность на пакетном уровне.
Алгоритм настройки
Шаг | Описание | Команда | Ключи |
---|---|---|---|
1 | Создать профиль L2TP-сервера. | esr(config)# remote-access l2tp <NAME> | <NAME> – имя профиля L2TP-сервера, задаётся строкой до 31 символа. |
2 | Указать описание конфигурируемого сервера (не обязательно). | esr(config-l2tp-server)# description <DESCRIPTION> | <DESCRIPTION> – описание L2TP-сервера, задаётся строкой до 255 символов. |
3 | Указать IP-адрес, который должен слушать L2TP-сервер. | esr(config-l2tp-server)# outside-address | <OBJ-GROUP-NETWORK-NAME> – имя профиля содержащего IP-адрес, который должен слушать L2TP-сервер, задаётся строкой до 31 символа; <ADDR> – начальный IP-адрес диапазона, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IF> – тип и идентификатор интерфейса маршрутизатора; <TUN> – тип и номер туннеля маршрутизатора. |
4 | Указать IP-адрес локального шлюза либо отключить firewall для PPTP-сервера | esr(config-l2tp-server)# local-address { object-group | <OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, который содержит IP-адрес локального шлюза, задаётся строкой до 31 символа; <ADDR> – начальный IP-адрес диапазона, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
5 | Указать список IP-адресов из которого L2TP выдаются динамические IP-адреса удаленным пользователям. | esr(config-l2tp-server)# remote-address | <OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, который содержит список IP-адресов удаленных пользователей, задаётся строкой до 31 символа; <FROM-ADDR> – начальный IP-адрес диапазона, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <TO-ADDR> – конечный IP-адрес диапазона, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
6 | Выбрать режим аутентификации L2TP-клиентов. | esr(config-l2tp-server)# authentication mode |
|
7 | Разрешить необходимые методы аутентификации удаленных пользователей | esr(config-l2tp-server)# authentication method <METHOD> | <METHOD> - метод аутентификации, принимает значения [chap, mschap, mschap-v2, eap, pap]. По умолчанию разрешен только chap. |
8 | Включить L2TP-сервер в зону безопасности и настроить правила взаимодействия между зонами (см. раздел Конфигурирование Firewall). | esr(config-l2tp-server)# security-zone <NAME> | <NAME> – имя зоны безопасности, задаётся строкой до 31 символа. |
9 | Указать имя пользователя (при использовании локальной базы аутентификации). | esr(config-l2tp-server) username < NAME > | <NAME> – имя пользователя, задаётся строкой до 12 символов. |
10 | Указать пароль пользователя (при использовании локальной базы аутентификации). | esr(config-l2tp-user) password ascii-text | <PASSWORD> – пароль пользователя, задается строкой до 32 символов. |
11 | Включить пользователя (при использовании локальной базы аутентификации). | esr(config-l2tp-user) enable | |
12 | Выбрать метод аутентификации по ключу для IKE-соединения (). | esr(config-l2tp-server)# ipsec authentication method pre-shared-key | |
13 | Указать общий секретный ключ для аутентификации, который должен совпадать у обоих сторон, устанавливающих туннель. | esr(config-l2tp-server)# ipsec authentication pre-shared-key | <TEXT> – строка [1..64] ASCII символов; <HEX> – число размером [1..32] байт задаётся строкой [2..128] символов в шестнадцатеричном формате (0xYYYY...) или (YYYY...). <ENCRYPTED-TEXT> – зашифрованный пароль размером [1..32] байт, задаётся строкой [2..128] символов; <ENCRYPTED-HEX> – зашифрованное число размером [2..64] байт, задаётся строкой [2..256] символов. |
14 | Включить сервер. | esr(config-l2tp-server)# enable | |
15 | Указать DSCP приоритет исходящих пакетов. | esr(config-l2tp-server)# dscp <DSCP> | <DSCP> – dscp приоритет исходящих пакетов [0..63]. |
16 | Указать размер MTU (MaximumTransmitionUnit) для сервера (не обязательно). | esr(config-l2tp-server) mtu <MTU> | <MTU> – значение MTU, принимает значения в диапазоне [1280..1500]. Значение по умолчанию: 1500. |
17 | Указать список DNS-серверов, которые будут использовать удаленные пользователи (не обязательно). | esr(config-l2tp-server)# dns-servers object-group | <OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, содержащего, который содержит адреса необходимых DNS-серверов, задаётся строкой до 31 символа. |
18 | Указать список WINS-серверов, которые будут использовать удаленные пользователи (не обязательно). | esr(config-l2tp-server)# wins-servers | <OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, который содержит адреса необходимых WINS-серверов, задаётся строкой до 31 символа. |
Пример настройки
Задача:
Настроить L2TP-сервер на маршрутизаторе для подключения удаленных пользователей к ЛВС. Аутентификация пользователей проходит на RADIUS-сервере.
- адрес L2TP-сервера – 120.11.5.1;
- шлюз внутри туннеля – 10.10.10.1;
- адрес Radius-сервера – 192.168.1.4;
Для IPsec используется метод аутентификации по ключу: ключ — «password».
Решение:
Предварительно нужно выполнить следующие действия:
- Настроить подключение к RADIUS-серверу;
- Настроить зоны для интерфейсов te1/0/1 и gi1/0/1;
- Указать IP-адреса для интерфейсов te1/0/1 и te1/0/1.
Создадим профиль адресов, содержащий адрес локального шлюза:
esr(config)# object-group network l2tp_local
esr(config-object-group-network)# ip address-range 10.10.10.1
esr(config-object-group-network)# exit
Создадим профиль адресов, содержащий DNS-серверы:
esr(config)# object-group network pptp_dns
esr(config-object-group-network)# ip address-range 8.8.8.8
esr(config-object-group-network)# ip address-range 8.8.4.4
esr(config-object-group-network)# exit
Создадим L2TP-сервер и привяжем к нему вышеуказанные профили:
esr(config)# remote-access l2tp remote-workers
esr(config-l2tp)# local-address ip-address 10.10.10.1
esr(config-l2tp)# remote-address address-range 10.10.10.5-10.10.10.15
esr(config-l2tp)# outside-address ip-address 120.11.5.1
esr(config-l2tp)# dns-server object-group l2tp_dns
Выберем метод аутентификации пользователей L2TP-сервера:
esr(config-l2tp)# authentication mode radius
Укажем зону безопасности, к которой будут относиться сессии пользователей:
esr(config-l2tp)# security-zone VPN
Выберем метод аутентификации первой фазы IKE и зададим ключ аутентификации:
esr(config-l2tp)# ipsec authentication method psk
esr(config-l2tp)# ipsec authentication pre-shared-key ascii-text password
Включим L2TP-сервер:
esr(config-l2tp)# enable
После применения конфигурации маршрутизатор будет прослушивать IP-адрес 120.11.5.1 и порт 1701. Состояние сессий L2TP-сервера можно посмотреть командой:
esr# show remote-access status l2tp server remote-workers
Счетчики сессий L2TP-сервера можно посмотреть командой:
esr# show remote-access counters l2tp server remote-workers
Очистить счетчики сессий L2TP-сервера можно командой:
esr# clear remote-access counters l2tp server remote-workers
Завершить сессию пользователя fedor L2TP-сервера можно одной из следующих команд:
esr# clear remote-access session l2tp username fedor
esr# clear remote-access session l2tp server remote-workers username fedor
Конфигурацию L2TP-сервера можно посмотреть командой:
esr# show remote-access configuration l2tp remote-workers
Помимо создания L2TP-сервера необходимо в firewall открыть UDP-порты 500, 1701, 4500 для обслуживания соединений и разрешить протоколы ESP (50) и GRE (47) для туннельного трафика.
Настройка сервера удаленного доступа к корпоративной сети по OpenVPN-протоколу
OpenVPN — полнофункциональное средство для построения виртуальных частных сетей (Virtual Private Networks, VPN), организации удалённого доступа, и решения ряда других задач, связанных с безопасностью передачи данных, базирующееся на SSL.
Алгоритм настройки
Шаг | Описание | Команда | Ключи |
---|---|---|---|
1 | Создать профиль OpenVPN-сервера. | esr(config)# remote-access openvpn <NAME> | <NAME> – имя профиля OpenVPN-сервера, задаётся строкой до 31 символа. |
2 | Указать описание конфигурируемого сервера (не обязательно). | esr(config-openvpn-server)# description <DESCRIPTION> | <DESCRIPTION> – описание OpenVPN-сервера, задаётся строкой до 255 символов. |
3 | Определим подсеть, из которой выдаются IP-адреса пользователям. (только для tunnel ip). | esr(config-openvpn-server)# network <ADDR/LEN> | <ADDR/LEN> – адрес подсети, имеет следующий формат: AAA.BBB.CCC.DDD/EE – IP-адрес подсети с маской в форме префикса, где AAA-DDD принимают значения [0..255] и EE принимает значения [1..32]; |
4 | Указать инкапсулируемый протокол. | esr(config-openvpn-server)# protocol <PROTOCOL> | <PROTOCOL> – тип инкапсуляции, возможные значения:
|
5 | Определить тип соединения с частной сетью через OpenVPN-сервер. | esr(config-openvpn-server)# tunnel <TYPE> | <TYPE> – инкапсулирующий протокол, принимает значения:
|
6 | Указать список IP-адресов, из которого OpenVPN сервером выдаются динамические IP-адреса удаленным пользователям в режиме L2. (только для tunnel ethernet). | esr(config-openvpn-server)# address-range <FROM-ADDR>-<TO-ADDR> | <FROM-ADDR> – начальный IP-адрес диапазона, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <TO-ADDR> – конечный IP-адрес диапазона, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
7 | Включить клиентские соединения по OpenVPN в L2 домен (только для tunnel ethernet). | esr(config-openvpn-server)# bridge-group <BRIDGE-ID> | <BRIDGE-ID> – идентификационный номер моста. |
8 | Указать сертификаты и ключи. | esr(config-openvpn-server)# certificate <CERTIFICATE-TYPE> <NAME> | <CERTIFICATE-TYPE> – тип сертификата или ключа, может принимать следующие значения:
<NAME> – имя сертификата или ключа, задаётся строкой до 31 символа. |
9 | Выбрать алгоритм шифрования, используемый при передачи данных. | esr(config-openvpn-server)# encryption algorithm <ALGORITHM> | <ALGORITHM> – идентификатор протокола шифрования, принимает значения: 3des,blowfish128, aes128. |
10 | Включить OpenVPN-сервер в зону безопасности и настроить правила взаимодействия между зонами (см. раздел Конфигурирование Firewall). | esr(config-openvpn-server)# security-zone <NAME> | <NAME> – имя зоны безопасности, задаётся строкой до 31 символа. |
11 | Определить дополнительные параметры для указанного пользователя OpenVPN-сервера (при использовании локальной базы для аутентификации пользователей). | esr(config-openvpn-server)# username < NAME > | <NAME> – имя пользователя, задаётся строкой до 31 символа. |
12 | Определить подсеть для указанного пользователя OpenVPN-сервера. | esr(config-openvpn-user)# subnet <ADDR/LEN> | <ADDR/LEN> – адрес подсети, имеет следующий формат: |
13 | Определить статический ip-адрес для указанного пользователя OpenVPN-сервера | esr(config-openvpn-user)# ip address <ADDR> | <ADDR> – адрес имеет следующий формат: |
14 | Включить профиль OpenVPN-сервера. | esr(config-openvpn-server)# enable | |
15 | Включить блокировку передачи данных между клиентами (не обязательно). | esr(config-openvpn-server)# client-isolation | |
16 | Устанавливается максимальное количество одновременных пользовательских сессий (не обязательно). | esr(config-openvpn-server)# client-max <VALUE> | <VALUE> – максимальное количество пользователей, принимает значения [1..65535]. |
17 | Включается механизм сжатия передаваемых данных между клиентами и сервером OpenVPN (не обязательно). | esr(config-openvpn-server)# compression | |
18 | Указать список DNS-серверов, которые будут использовать удаленные пользователи (не обязательно). | esr(config-openvpn-server)# dns-server <ADDR> | <ADDR> – IP-адрес DNS сервера, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; |
19 | Указать TCP-/UDP-порт, который будет прослушиваться OpenVPN-сервером (не обязательно). | esr(config-openvpn-server)# port <PORT> | <PORT> – TCP/UDP порт, принимает значения [1..65535]. Значение по умолчанию: 1194 |
20 | Включить анонсирование маршрута по умолчанию для OpenVPN соединений, что приводит к замене маршрута по умолчанию на клиентской стороне (не обязательно). | esr(config-openvpn-server)# redirect-gateway | |
21 | Включить анонсирование указанных подсетей, шлюзом является IP-адрес OpenVPN-сервера (не обязательно). | esr(config-openvpn-server)# route <ADDR/LEN> | <ADDR/LEN> – адрес подсети, имеет следующий формат: AAA.BBB.CCC.DDD/EE – IP-адрес подсети с маской в форме префикса, где AAA-DDD принимают значения [0..255] и EE принимает значения [1..32]; |
22 | Указать временной интервал, по истечению которого встречная сторона считается недоступной (не обязательно). | esr(config-openvpn-server)# timers holdtime <TIME> | <TIME> – время в секундах, принимает значения [1..65535]. Значение по умолчанию: 120 |
23 | Указать временной интервал, по истечению которого идет проверка соединения со встречной стороной (не обязательно). | esr(config-openvpn-server)# timers keepalive <TIME> | <TIME> – время в секундах, принимает значения [1..65535]. Значение по умолчанию: 10 |
24 | Разрешить подключаться к OpenVPN-серверу нескольким пользователям с одним сертификатом. | esr(config-openvpn-server)# duplicate-cn | |
25 | Указать список WINS-серверов, которые будут использовать удаленные пользователи (не обязательно). | esr(config-openvpn-server)# wins-server <ADDR> | <ADDR> – IP-адрес WINS сервера, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
26 | Изменить алгоритм аутентификации OpenVPN-клиентов (не обязательно). | esr(config-openvpn-server)# authentication algorithm <ALGORITHM> | <ALGORITHM> – алгоритм аутентификации:
Значение по умолчанию: sha |
Пример настройки
Задача:
Настроить OpenVPN-сервер в режиме L3 на маршрутизаторе для подключения удаленных пользователей к ЛВС.
- подсеть OpenVPN-сервера – 10.10.100.0/24;
- режим – L3;
- аутентификация на основе сертификатов.
Решение:
Предварительно нужно выполнить следующие действия:
- Подготовить сертификаты и ключи:
- Сертификат Удостоверяющего Центра (СА)
- Ключ и сертификат для OpenVPN сервера
- Ключ Диффи-Хелмена и HMAC для TLS
- Настроить зону для интерфейса te1/0/1
- Указать IP-адреса для интерфейса te1/0/1.
Импортируем по tftp сертификаты и ключи:
esr# copy tftp://192.168.16.10:/ca.crt certificate:ca/ca.crt
esr# copy tftp://192.168.16.10:/dh.pem certificate:dh/dh.pem
esr# copy tftp://192.168.16.10:/server.key certificate:server-key/server.key
esr# copy tftp://192.168.16.10:/server.crt certificate:server-crt/server.crt
esr# copy tftp://192.168.16.10:/ta.key certificate:ta/ta.key
Создадим OpenVPN-сервер и подсеть, в которой он будет работать:
esr(config)# remote-access openvpn AP
esr(config-openvpn)# network 10.10.100.0/24
Укажем тип соединения L3 и протокол инкапсуляции.
esr(config-openvpn)# tunnel ip
esr(config-openvpn)# protocol tcp
Объявим подсети ЛВС которые будут доступны через OpenVPN соединение и укажем DNS сервер
esr(config-)# route 10.10.0.0/20
esr(config-openvpn)# dns-server 10.10.1.1
Укажем ранее импортированные сертификаты и ключи, которые будет использоваться OpenVPN-сервером:
esr(config-openvpn)# certificate ca ca.crt
esr(config-openvpn)# certificate dh dh.pem
esr(config-openvpn)# certificate server-key server.key
esr(config-openvpn)# certificate server-crt server.crt
esr(config-openvpn)# certificate ta ta.key
Укажем зону безопасности, к которой будут относиться сессии пользователей:
esr(config-openvpn)# security-zone VPN
Выберем алгоритм шифрования aes128:
esr(config-openvpn)# encryption algorithm aes128
Включим OpenVPN-сервер:
esr(config-openvpn)# enable
После применения конфигурации маршрутизатор будет прослушивать порт 1194 (используется по умолчанию).
Состояние сессий OpenVPN-сервера можно посмотреть командой:
esr# show remote-access status openvpn server AP
Счетчики сессий OpenVPN-сервера можно посмотреть командой:
esr# show remote-access counters openvpn server AP
Очистить счетчики сессий OpenVPN-сервера можно командой:
esr# clear remote-access counters openvpn server AP
Завершить сессию пользователя fedor OpenVPN-сервера можно одной из следующих команд:
esr# clear remote-access session openvpn username fedor
esr# clear remote-access session openvpn server AP username fedor
Конфигурацию OpenVPN-сервера можно посмотреть командой:
esr# show remote-access configuration openvpn AP
Помимо создания OpenVPN-сервера необходимо в firewall открыть TCP-порт 1194.
Настройка клиента удаленного доступа по протоколу PPPoE
PPPoE — это туннелирующий протокол (tunneling protocol), который позволяет инкапсулировать IP PPP через соединения Ethernet и обладает программными возможностями PPP-соединений, что позволяет использовать его для виртуальных соединений на соседнюю Ethernet-машину и устанавливать соединение точка-точка, которое используется для транспортировки IP-пакетов, а также работает с возможностями PPP. Это позволяет применять традиционное PPP-ориентированное ПО для настройки соединения, которое использует не последовательный канал, а пакетно-ориентированную сеть (например, Ethernet), чтобы организовать классическое соединение с логином и паролем для Интернет-соединений. Кроме того, IP-адрес по другую сторону соединения назначается только когда PPPoE-соединение открыто, позволяя динамическое переиспользование IP-адресов.
Алгоритм настройки
Шаг | Описание | Команда | Ключи |
---|---|---|---|
1 | Создать PPPoE-туннель и перейти в режим конфигурирования PPPoE-клиента. | esr(config)# tunnel pppoe <PPPoE> | <PPPoE> – порядковый номер туннеля от 1 до 10. |
2 | Указать описание конфигурируемого клиента (не обязательно). | esr(config-pppoe)# description <DESCRIPTION> | <DESCRIPTION> – описание PPPoE-сервера, задаётся строкой до 255 символов. |
3 | Указать имя экземпляра VRF, в котором будут использоваться PPPoE-клиент (не обязательно). | esr(config-pppoe)# ip vrf forwarding <VRF> | <VRF> – имя VRF, задается строкой до 31 символа. |
4 | Указать интерфейс через который будет устанавливаться PPPoE соединение. | esr(config-pppoe)# interface <IF> | <IF> – интерфейс или группа интерфейсов. |
5 | Указать имя пользователя и пароль для подключения к PPPoE-серверу. | esr(config-pppoe)# username <NAME> password ascii-text | <NAME> – имя пользователя, задаётся строкой до 31 символа; <CLEAR-TEXT> – пароль, задаётся строкой [8 .. 64] символов; <ENCRYPTED-TEXT> – зашифрованный пароль, задаётся строкой [16..128] символов. |
6 | Включить PPPoE-туннель в зону безопасности и настроить правила взаимодействия между зонами (см. раздел Конфигурирование Firewall). | esr(config-pppoe)# security-zone <NAME> | <NAME>-имя зоны безопасности, задаётся строкой до 31 символа. |
7 | Активировать конфигурируемый профиль | esr(config-pppoe)# enable | |
8 | Указать метод аутентификации (не обязательно). | esr(config-pppoe)# authentication method <METHOD> | <METHOD> – метод аутентификации, возможные значения: chap, mschap, mschap-v2, eap, pap Значение по умолчанию: chap |
9 | Включить отказ от получения маршрута по умолчанию от PPPoE-сервера (не обязательно). | esr(config-pppoe)# ignore-default-route | |
10 | Указать интервал времени, за который усредняется статистика о нагрузке (не обязательно). | esr(config-pppoe)# load-average <TIME> | <TIME> – интервал времени в секундах от 5 до 150 (по умолчанию 5 сек) |
11 | Указать размер MTU (MaximumTransmitionUnit) для PPPOE-туннеля. | esr(config-pppoe)# mtu <MTU> | <MTU> – значение MTU, принимает значения в диапазоне:
Значение по умолчанию: 1500. |
12 | Изменить количество неудачных data-link тестов перед разрывом сессии (не обязательно). | esr(config-pppoe)# ppp failure-count <NUM> | <NUM> – количество неудачных data-link тестов, задается в диапазоне [1..100]. Значение по умолчанию: 10 |
13 | Изменить интервал времени в секундах, по истечении которого маршрутизатор отправляет keepalive-сообщение (не обязательно). | esr(config-pppoe)# ppp timeout keepalive <TIME > | <TIME> – время в секундах, задается в диапазоне [1..32767]. Значение по умолчанию: 10 |
14 | Переопределить значение поля MSS (Maximum segment size) во входящих TCP-пакетах (не обязательно). | esr(config-pppoe)# ip tcp adjust-mss <MSS> | <MSS> – значение MSS, принимает значения в диапазоне [500..1460]. Значение по умолчанию: 1460 |
15 | Включить запись статистики использования текущего туннеля (не обязательно). | esr(config-pppoe)# history statistics | |
Также для PPPoE-клиента возможно настроить:
|
Пример настройки
Задача:
Настроить PPPoE-клиент на маршрутизаторе.
- Учетные записи для подключения – tester;
- Пароли учетных записей – password;
- Подключение должно осуществляться с интерфейса gigabitethernet 1/0/7.
Решение:
Предварительно настроить PPPoE-сервер с учетными записями.
Зайдем в режим конфигурирования PPPoE-клиента и отключим межсетевой экран:
esr# configure
esr(config)# tunnel pppoe 1
esr(config-pppoe)# ip firewall disable
Укажем пользователя и пароль для подключения к PPPoE-серверу:
esr(config-pppoe)# username tester password ascii-text password
Укажем интерфейс через который будет устанавливаться PPPoE-соединение:
esr(config-pppoe)# interface gigabitethernet 1/0/7
esr(config- pppoe)# enable
Состояние PPPoE-туннеля можно посмотреть командой:
esr# show tunnels configuration pppoe 1
Счетчики сессий PPPoE-клиента можно посмотреть командой:
esr# show tunnels counters pppoe 1
Настройка клиента удаленного доступа по протоколу PPTP
PPTP (англ. Point-to-Point Tunneling Protocol) – туннельный протокол типа точка-точка, позволяющий устанавливать защищённое соединение за счёт создания специального туннеля в обычной незащищенной сети. PPTP помещает (инкапсулирует) кадры PPP в IP-пакеты для передачи по глобальной IP-сети, например, Интернет. PPTP может также использоваться для организации туннеля между двумя локальными сетями. РРТР использует дополнительное TCP-соединение для обслуживания туннеля.
Алгоритм настройки
Шаг | Описание | Команда | Ключи |
---|---|---|---|
1 | Создать PPTP-туннель и перейти в режим его конфигурирования. | esr(config)# tunnel pptp <INDEX> | <INDEX> – идентификатор туннеля в диапазоне: [1..10]. |
2 | Указать описание конфигурируемого туннеля (не обязательно). | esr(config-pptp)# description <DESCRIPTION> | <DESCRIPTION> – описание туннеля, задается строкой до 255 символов. |
3 | Указать экземпляр VRF, в котором будет работать данный PPTP-туннель (не обязательно). | esr(config-pptp)# ip vrf forwarding <VRF> | <VRF> – имя VRF, задается строкой до 31 символа. |
4 | Включить PPTP-туннель в зону безопасности и настроить правила взаимодействия между зонами или отключить firewall (см. раздел Конфигурирование Firewall). | esr(config-pptp)# security-zone <NAME> | <NAME> – имя зоны безопасности, задаётся строкой до 31 символа. |
esr(config-pptp)# ip firewall disable | |||
5 | Установить удаленный IP-адрес для установки туннеля. | esr(config-pptp)# remote address <ADDR> | <ADDR> – IP-адрес локального шлюза, задается в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
6 | Установить размер MTU (MaximumTransmitionUnit) для туннеля (не обязательно) | esr(config-pptp)# mtu <MTU> | <MTU> – значение MTU, принимает значения в диапазоне:
Значение по умолчанию: 1500. |
7 | Указать пользователя и установить пароль в открытой или зашифрованной форме для аутентификации удаленной стороны. | esr(config-pptp)# username <NAME> password ascii-text | <NAME> – имя пользователя, задается строкой до 31 символа. <WORD> – пароль в открытой форме, задается строкой [8..64] символов, может включать символы [0-9a-fA-F]. <HEX> – пароль в зашифрованной форме, задается строкой [16..128] символов. |
8 | Активировать туннель. | esr(config-pptp)# enable | |
9 | Переопределить значение поля MSS (Maximum segment size) во входящих TCP-пакетах (не обязательно). | esr(config-pptp)# ip tcp adjust-mss <MSS> | <MSS> – значение MSS, принимает значения в диапазоне [500..1460]. Значение по умолчанию: 1460 |
10 | Игнорировать маршрут по умолчанию через данный PPTP-туннель (не обязательно) | esr(config-pptp)# ignore-default-route | |
11 | Задать интервал времени, за который усредняется статистика о нагрузке на туннель (не обязательно). | esr(config-pptp)# load-average <TIME> | <TIME> – интервал в секундах, принимает значения [5..150] Значение по умолчанию: 5 |
12 | Указать метод аутентификации (не обязательно). | esr(config-pptp)# authentication method <METHOD> | <METHOD> – метод аутентификации, возможные значения: chap, mschap, mschap-v2, eap, pap Значение по умолчанию: chap |
13 | Включить запись статистики использования текущего туннеля (не обязательно). | esr(config-pptp)# history statistics | |
14 | Изменить интервал времени в секундах, по истечении которого маршрутизатор отправляет keepalive-сообщение (не обязательно). | esr(config-pptp)# ppp timeout keepalive <TIME > | <TIME> – время в секундах, задается в диапазоне [1..32767]. Значение по умолчанию: 10 |
15 | Изменить количество неудачных data-link тестов перед разрывом сессии (не обязательно). | esr(config-pptp)# ppp failure-count <NUM> | <NUM> – количество неудачных data-link тестов, задается в диапазоне [1..100]. Значение по умолчанию: 10 |
Пример настройки
Задача:
Настроить PPTP-туннель на маршрутизаторе:
- адрес PPTP-сервера 20.20.0.1;
- учетная запись для подключения – логин: ivan, пароль: simplepass.
Решение:
Создадим туннель PPTP:
esr(config)# tunnel pptp 1
Укажем учетную запись (пользователя Ivan) для подключения к серверу:
esr(config-pptp)# username ivan password ascii-text simplepass
Укажем удаленный шлюз:
esr(config-pptp)# remote address 20.20.0.1
Укажем зону безопасности:
esr(config-pptp)# security-zone VPN
Включим туннель PPTP:
esr(config-pptp)# enable
Состояние туннеля можно посмотреть командой:
esr# show tunnels status pptp
Счетчики входящих и отправленных пакетов можно посмотреть командой:
esr# show tunnels counters pptp
Конфигурацию туннеля можно посмотреть командой:
esr# show tunnels configuration pptp
Настройка клиента удаленного доступа по протоколу L2TP
L2TP (англ. Layer 2 Tunneling Protocol – протокол туннелирования второго уровня) –туннельный протокол, использующийся для поддержки виртуальных частных сетей. L2TP помещает (инкапсулирует) кадры PPP в IP-пакеты для передачи по глобальной IP-сети, например, Интернет. L2TP может также использоваться для организации туннеля между двумя локальными сетями. L2ТР использует дополнительное UDP-соединение для обслуживания туннеля. L2TP-протокол не предоставляет средств шифрования данных и поэтому он обычно используется в связке с группой протоколов IPsec, которая предоставляет безопасность на пакетном уровне.
Алгоритм настройки
Шаг | Описание | Команда | Ключи |
---|---|---|---|
1 | Создать L2TP-туннель и перейти в режим его конфигурирования. | esr(config)# tunnel l2tp <INDEX> | <INDEX> – идентификатор туннеля в диапазоне: [1..10]. |
2 | Указать экземпляр VRF, в котором будет работать данный L2TP-туннель (не обязательно). | esr(config-l2tp)# ip vrf forwarding <VRF> | <VRF> – имя VRF, задаётся строкой до 31 символа. |
3 | Указать описание конфигурируемого туннеля (не обязательно). | esr(config-l2tp)# description <DESCRIPTION> | <DESCRIPTION> – описание туннеля, задается строкой до 255 символов. |
4 | Включить L2TP-туннель в зону безопасности и настроить правила взаимодействия между зонами или отключить firewall (см. раздел Конфигурирование Firewall). | esr(config-l2tp)# security-zone <NAME> | <NAME> – имя зоны безопасности, задаётся строкой до 31 символа. |
esr(config-l2tp)# ip firewall disable | |||
5 | Установить удаленный IP-адрес для установки туннеля. | esr(config-l2tp)# remote address <ADDR> | <ADDR> – IP-адрес локального шлюза, задается в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
6 | Указать пользователя и установить пароль в открытой или зашифрованной форме для аутентификации удалённой стороны. | esr(config-l2tp)# username <NAME> password ascii-text | <NAME>– имя пользователя, задается строкой до 31 символа. <WORD> – пароль в открытой форме, задается строкой [8..64] символов, может включать символы [0-9a-fA-F]. <HEX> – пароль в зашифрованной форме, задается строкой [16..128] символов. |
7 | Выбрать метод аутентификации по ключу для IKE-соединения. | esr(config-l2tp)# ipsec authentication | |
8 | Указать общий секретный ключ для аутентификации, который должен совпадать у обоих сторон, устанавливающих туннель. | esr(config-l2tp)# ipsec authentication pre-shared-key | <TEXT> – строка [1..64] ASCII символов; <HEX> – число размером [1..32] байт задаётся строкой [2..128] символов в шестнадцатеричном формате (0xYYYY...) или (YYYY...); <ENCRYPTED-TEXT> – зашифрованный пароль размером [1..32] байт, задаётся строкой [2..128] символов; <ENCRYPTED-HEX> – зашифрованное число размером [2..64] байт, задаётся строкой [2..256] символов. |
9 | Активировать туннель | esr(config-l2tp)# enable | |
10 | Установить размер MTU (MaximumTransmitionUnit) для туннеля (не обязательно). | esr(config-l2tp)# mtu <MTU> | <MTU> – значение MTU, принимает значения в диапазоне:
Значение по умолчанию: 1500. |
11 | Игнорировать маршрут по умолчанию через данный L2TP-туннель (не обязательно) | esr(config-l2tp)# ignore-default-route | |
12 | Указать метод аутентификации (не обязательно). | esr(config-l2tp)# authentication method <METHOD> | <METHOD> – метод аутентификации, возможные значения: chap, mschap, mschap-v2, eap, pap Значение по умолчанию: chap |
13 | Задать интервал времени, за который усредняется статистика о нагрузке на туннель (не обязательно). | esr(config-l2tp)# load-average <TIME> | <TIME> – интервал в секундах, принимает значения [5..150] Значение по умолчанию: 5 |
14 | Изменить интервал времени в секундах, по истечении которого маршрутизатор отправляет keepalive-сообщение (не обязательно). | esr(config-l2tp)# ppp timeout keepalive <TIME > | <TIME> – время в секундах, задается в диапазоне [1..32767]. Значение по умолчанию: 10 |
15 | Изменить количество неудачных data-link тестов перед разрывом сессии (не обязательно). | esr(config-l2tp)# ppp failure-count <NUM> | <NUM> – количество неудачных data-link тестов, задается в диапазоне [1..100]. Значение по умолчанию: 10 |
Также для PPPoE-клиента возможно настроить QoS в базовом или расширенном режимах (см. раздел Управление QoS). |
Пример настройки
Задача:
Настроить клиента удаленного доступа по протоколу L2TP на маршрутизаторе:
- адрес L2TP сервера 20.20.0.1;
- учетная запись для подключения – логин: ivan, пароль: simplepass
Решение:
Создадим туннель L2TP:
esr(config)# tunnel l2tp 1
Укажем учетную запись (пользователя Ivan) для подключения к серверу:
esr(config-l2tp)# username ivan password ascii-text simplepass
Укажем удаленный шлюз:
esr(config-l2tp)# remote address 20.20.0.1
Укажем зону безопасности:
esr(config-l2tp)# security-zone VPN
Укажем метод аутентификации IPsec:
esr(config-l2tp)# ipsec authentication method pre-shared-key
Укажем ключ безопасности для IPsec:
esr(config-l2tp)# ipsec authentication pre-shared-key ascii-text password
Включим туннель L2TP:
esr(config-l2tp)# enable
Состояние туннеля можно посмотреть командой:
esr# show tunnels status l2tp
Счетчики входящих и отправленных пакетов можно посмотреть командой:
esr# show tunnels counters l2tp
Конфигурацию туннеля можно посмотреть командой:
esr# show tunnels configuration l2tp