Strongswan centos 7 настройка

Обновлено: 05.07.2024

Мне не нужно об этом говорить, я купил гонконгский сервер у Alibaba Cloud.

1. Установите необходимое программное обеспечение (если вы также приобрели исходник yum с Али, настраивать его не нужно)

Войдите в каталог программного обеспечения

2. Создайте сертификат (если вы не понимаете, просто скопируйте и вставьте его).

Чтобы установить сертификат, скопируйте только что сгенерированный закрытый ключ и файл сертификата в указанный каталог в каталоге /etc/strongswan/ipsec.d/.

strongSwan содержит 3 файла конфигурации в каталоге / etc / strongswan /
strongswan.conf Общая конфигурация компонентов strongSwan
ipsec.conf Конфигурация, связанная с IPsec, определение версии IKE, метода аутентификации, метода шифрования, атрибутов подключения и т. д.
ipsec.secrets определяет различные ключи, такие как: закрытый ключ, предварительный общий ключ, учетная запись пользователя и пароль.

1. Настройте strongswan.conf

(Файл конфигурации может напрямую перезаписывать исходный файл)

2. Настройте ipsec.conf.

(Обратите внимание, что файл конфигурации содержит конфигурацию IP общедоступной сети, обратите внимание на изменение)

3. Настройте ipsec.secrets.

(Если файл не существует, создайте файл самостоятельно)

1. Включите пересылку ядра.

2. Измените правила брандмауэра.

(IP-адрес в файле конфигурации должен соответствовать IP-адресу в файле конфигурации ipsec.conf)

3. Запустите программное обеспечение.

Открыть сетевые настройки


Новое подключение, выберите vpn


Тип VPN выберите Cisco / IPSec


Введите адрес сервера, пароль учетной записи XAUTH,



и введите настроенный ключ в настройках аутентификации


Нажмите «Подключиться», проверка прошла успешно.


Интеллектуальная рекомендация

совместный запрос mysql с тремя таблицами (таблица сотрудников, таблица отделов, таблица зарплат)

1. Краткое изложение проблемы: (внизу есть инструкция по созданию таблицы, копирование можно непосредственно практиковать с помощью (mysql)) Найдите отделы, в которых есть хотя бы один сотрудник. Отоб.


[Загрузчик классов обучения JVM] Третий день пользовательского контента, связанного с загрузчиком классов


IP, сеанс и cookie

В последних версиях мобильной и настольной ОС компании Apple появилась полноценная поддержка VPN подключений по IKEv2. В системах компании Microsoft она была реализована еще с Windows 7. Таким образом можно предположить, что IKEv2 станет мультиплатформенным стандартом для виртуальных сетей, заменив устаревший и небезопасный PPTP.

В данной статье будет описана настройка StrongSwan как сервера IKEv2 VPN, а также проверено подключение к нему с Windows и MacOS.

VPN сервер и клиенты IKEv2 могут аутентифицировать себя как по ключам, так и по сертификатам. Причем для каждой стороны можно задать свой выбор. Для уменьшения требований, предъявляемых к клиентам, было выбрано чтобы сервер StrongSwan аутентифицировал клиентов по логину и паролю, а VPN клиенты аутентифицировали сервер по сертификату, выданному доверенным центром сертификации.

  1. Получение сертификата для сервера StrongSwan
  2. Установка и настройка сервера StrongSwan
  3. Проверка подключения к серверу с Windows и MacOS

Получение сертификата

Требование к сертификату:

  • Наличие FQDN сервера в SAN сертификата
  • Разрешение использования сертификата для проверки подлинности сервера

Установка и настройка сервера

Устанавливаем репозиторий EPEL
yum install epel-release
Устанавливаем StrongSwan
yum install strongswan
Копируем сертификат и личный ключ в папки

Указываем личный ключ сервера из папки private и логины и пароли VPN пользователей
/etc/strongswan/ipsec.secrets

Настраиваем режим работы сервера
/etc/strongswan/ipsec.conf

При настойке VPN нужно указать какой трафик будет отправляться в туннель. Существуют два выбора: туннелировать весь трафик или туннелировать только трафик, предназначенный для удаленной сети (split tunneling). Как можно видеть в приведенной настройке мы указали весь трафик через leftsubnet.

Также мы указали как будет производиться аутентификация сервера (сертификатом) и клиентов (eap-mschapv2, т.е. по протоколу EAP с логином и паролем из файла ipsec.secrets). Далее было указано какой туннельный IP (virtual IP) будет выдаваться клиентам и какой DNS сервер.

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

Настроим преобразование адреса источника, так чтобы VPN трафик, исходящий из VPN сервера в Интернет, выглядел бы так, что сервер является его источником
iptables -t nat -A POSTROUTING -s 10.9.9.0/24 -o eth0 -m policy --dir out --pol ipsec -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.9.9.0/24 -o eth0 -j MASQUERADE

Просмотреть добавленные правила можно через команду
iptables -vL -t nat

Открываем порты для IKEv2 трафика
iptables -I INPUT -p udp --dport 500 -j ACCEPT
iptables -I INPUT -p udp --dport 4500 -j ACCEPT
iptables -I INPUT -p esp -j ACCEPT

Поскольку речь идет про дополнительные заголовки, могут возникнуть проблемы с IP фрагментацией. Для того чтобы этого избежать, нужно указать MSS используемый при установке TCP соединения, чтобы сегмент вмещал в себя пакет целиком.
iptables -t mangle -I FORWARD -p tcp -m policy --pol ipsec --dir in --syn -m tcpmss --mss 1361:1536 -j TCPMSS --set-mss 1360
iptables -t mangle -I FORWARD -p tcp -m policy --pol ipsec --dir out --syn -m tcpmss --mss 1361:1536 -j TCPMSS --set-mss 1360

Для сохранения правил при перезагрузках их нужно добавить в файл
/etc/sysconfig/iptables
Для применения всех настроек лучше перезапустить машину.

Проверить статус StrongSwan можно командой

Проверка подключения с Windows

В итоге у нас должно получиться следующая настройка

Windows 8.1

Windows 10

Далее нажав на значок сети в трее, можно будет подключиться через созданный VPN.

При подключении клиента, StrongSwan добавляет в таблицу маршрутизации №220 маршрут до этого клиента. По умолчанию при выводе таблицы маршрутизации, показываются маршруты только из таблицы по умолчанию, для вывода маршрутов из таблицы 220 нужно использовать команду:

ip route show table 220

Маршрут показывает, что чтобы достичь туннельного адреса VPN клиента пакет отправляется на шлюз в локальной сети VPN сервера.

Проверим адрес VPN сервера. Обратите внимание, что никакого туннельного адреса VPN серверу не назначается.

ip address show

Проверим маршрут по умолчанию на VPN сервере
ip route show

Проверить прослушивание портов можно командой
ss -nuta | grep 500

Посмотрим таблицу маршрутизации на подключенном Windows клиенте
route print

Из таблицы видно, что имеется два маршрута по умолчанию. Маршрут через туннельный IP адрес VPN клиента с меньшей метрикой, а адрес шлюза не указан. Практически это правило означает следующее: весь трафик, не подпадающий под более точные маршруты, отправлять через интерфейс 10.9.9.1. Чтобы добраться до самого VPN сервера создается маршрут до его внешнего IP адреса через шлюз локальной сети.

Просмотрим созданный виртуальный адаптер на VPN клиенте

Можно увидеть туннельный адрес VPN клиента, и назначенный StrongSwan DNS сервер.


MacOS El Capitan

StrongSwan - это VPN-решение с открытым исходным кодом на основе IPsec. Он поддерживает протоколы обмена ключами IKEv1 и IKEv2 в сочетании с собственным стеком NETKEY IPsec ядра Linux. Из этого туториала Вы узнаете, как использовать strongSwan для настройки VPN-сервера IPSec в CentOS 7.

Установите strongSwan

Пакеты strongSwan доступны в репозитории Extra Packages for Enterprise Linux (EPEL). Сначала нужно включить EPEL, а затем установить strongSwan.

Генерировать сертификаты

И VPN-клиент и сервер нуждаются в сертификате для идентификации и аутентификации. Я подготовил два сценария оболочки для генерации и подписи сертификатов. Сначала мы загружаем эти два скрипта в папку /etc/strongswan/ipsec.d .

В этих двух .sh файлах я установил название организации как VULTR-VPS-CENTOS . Если вы хотите изменить его, откройте .sh файлы и замените O=VULTR-VPS-CENTOS на O=YOUR_ORGANIZATION_NAME .

Затем используйте server_key.sh IP-адрес вашего сервера для генерации ключа центра сертификации (CA) и сертификата для сервера. Замените SERVER_IP на IP-адрес вашего Vultr VPS.

Создайте ключ клиента, сертификат и файл P12. Здесь я создам сертификат и файл P12 для пользователя VPN "john".

Замените «Джон» и его адрес электронной почты своим, прежде чем запускать скрипт.

После того, как сертификаты для клиента и сервера будут созданы, скопируйте /etc/strongswan/ipsec.d/john.p12 и /etc/strongswan/ipsec.d/cacerts/strongswanCert.pem на свой локальный компьютер.

Настроить strongSwan

Откройте файл конфигурации strongSwan IPSec.

Замените его содержание следующим текстом.

Отредактируйте файл конфигурации strongSwan strongswan.conf .

Удалите все и замените его следующим.

Отредактируйте секретный файл IPsec, чтобы добавить пользователя и пароль.

Добавьте учетную запись пользователя "Джон" в него.

Разрешить пересылку IPv4

Изменить, /etc/sysctl.conf чтобы разрешить пересылку в ядре Linux.

Добавьте следующую строку в файл.

Сохраните файл, затем примените изменения.

Настройте брандмауэр

Откройте брандмауэр для вашего VPN на сервере.

Запустить VPN

StrongSwan теперь запущен на вашем сервере. Установите файлы сертификатов strongswanCert.pem и .p12 в свой клиент. Теперь вы сможете присоединиться к вашей частной сети.

Как установить Starbound Server в CentOS 7

Как установить Starbound Server в CentOS 7

Используете другую систему? В этом уроке я расскажу, как настроить сервер Starbound в CentOS 7. Предварительные условия Вы должны иметь эту игру на себе

Начало работы с Kubernetes в CentOS 7

Начало работы с Kubernetes в CentOS 7

Kubernetes - это платформа с открытым исходным кодом, разработанная Google для управления контейнерными приложениями на кластере серверов. Он основан на десятилетии и

Как установить мультиплеер SA-MP San Andreas на CentOS 7

Как установить мультиплеер SA-MP San Andreas на CentOS 7

Из этого руководства вы узнаете, как настроить сервер SA-MP (San Andreas Multiplayer) в CentOS 7. Предварительные условия Позволяет убедиться, что система полностью обновлена.

Сборка стека ламп на CentOS 6

Сборка стека ламп на CentOS 6

Компиляция вашего собственного стека LAMP позволяет вам использовать последние версии Apache, MySQL и PHP. Используя менеджер пакетов CentOS 6, вы получаете Apache 2.2

Установите GitLab CE на CentOS

Установите GitLab CE на CentOS

Введение Когда речь идет об онлайн-сервисах Git, популярным вариантом является GitHub. Но в целях конфиденциальности, гибкости и / или скорости сети вы можете

Как установить Left 4 Dead Server на CentOS 7

Как установить Left 4 Dead Server на CentOS 7

В этом руководстве я объясню, как установить и настроить сервер L4D в CentOS 7. Установка Left 4 Dead Прежде чем мы начнем, мы должны убедиться, что

Использование Etckeeper для контроля версий / etc

Использование Etckeeper для контроля версий / etc

Введение Каталог / etc / играет важную роль в функционировании системы Linux. Причина этого заключается в том, что почти каждая конфигурация системы

Как обновить CentOS 6 до CentOS 7

Как обновить CentOS 6 до CentOS 7

Как обновить CentOS 6 до CentOS 7

Установите Java SE на CentOS

Установите Java SE на CentOS

Введение Java - это популярная программная платформа, которая позволяет разрабатывать и запускать приложения и апплеты Java в различных аппаратных средах. Там есть

Мониторинг вашего сервера с взглядами

Мониторинг вашего сервера с взглядами

Обзор Glances - это инструмент для мониторинга системы на основе командной строки, написанный на Python, который использует библиотеку psutil для получения статистики о вашей системе. глянуть

Установите NGINX с ModSecurity на CentOS 6

Установите NGINX с ModSecurity на CentOS 6

В этой статье я объясню, как построить стек LEMP, защищенный ModSecurity. ModSecurity - это брандмауэр веб-приложений с открытым исходным кодом, который

Настройте Rust Game Server на CentOS

Настройте Rust Game Server на CentOS

В этой статье я расскажу, как установить игровой сервер Rust, который использует игровую платформу Steam. Следуйте инструкциям ниже, чтобы продолжить. Это учебник

Как настроить Fail2Ban на CentOS

Как настроить Fail2Ban на CentOS

Введение в Fail2Ban По умолчанию клиент подключается к SSH через порт 22. Поскольку это широко известный порт, конфигурация по умолчанию уязвима.

Как установить PowerDNS на CentOS

Как установить PowerDNS на CentOS

Введение В этом руководстве Vultr вы узнаете, как установить PowerDNS. PowerDNS - это программа для запуска ваших собственных серверов имен. Это очень полезно, когда

Как использовать Mosh на CentOS для удаленного администрирования сервера

Как использовать Mosh на CentOS для удаленного администрирования сервера

Используете другую систему? Mosh, сокращение от мобильной оболочки, представляет собой растущее приложение для удаленного терминала, предназначенное для обеспечения лучшей связи и использования

Настройка Composer для зависимостей PHP на CentOS 6

Настройка Composer для зависимостей PHP на CentOS 6

Введение Composer - это популярный менеджер зависимостей для PHP, который может упростить установку и обновление библиотек, необходимых для вашего проекта.

Как установить Garrys Mod Server на CentOS 7

Как установить Garrys Mod Server на CentOS 7

В этом уроке я объясню, как настроить сервер Garrys Mod. Этот учебник был написан для CentOS 7. Предварительные условия Позволяет убедиться, что система

Как установить RubyGems в Linux

Как установить RubyGems в Linux

RubyGems - менеджер пакетов для Ruby. Менеджер пакетов организует пакеты во время разработки приложения. В этом документе вы узнаете, как установить

Как установить LiteSpeed ​​на CentOS

Как установить LiteSpeed ​​на CentOS

LiteSpeed ​​- это популярный веб-сервер, являющийся форком Apache. Он построен для оптимизации и в целом быстрее. Собирались предположить, что у вас есть

Как установить Counter-Strike: глобальное наступление на CentOS 7

Как установить Counter-Strike: глобальное наступление на CentOS 7

В этом уроке я объясню, как настроить сервер Counter-Strike: Global Offensive. Шаги в этом руководстве были написаны для CentOS 7. Предварительные условия

Как установить Starbound Server в CentOS 7

Как установить Starbound Server в CentOS 7

Используете другую систему? В этом уроке я расскажу, как настроить сервер Starbound в CentOS 7. Предварительные условия Вы должны иметь эту игру на себе

Запуск CoreOS на Vultr VPS

Запуск CoreOS на Vultr VPS

Пожалуйста, прочитайте: Vultr теперь предлагает CoreOS на странице заказа - это руководство объясняет, как настроить CoreOS вручную. Эти инструкции проведут вас через бег

Как установить панель управления OpenSIPS в Ubuntu 16.04

Панель управления OpenSIPS - это веб-приложение на основе PHP для подготовки SIP-сервера OpenSIPS. Он может быть использован для обеспечения, управления и мониторинга

Как установить Reader Self 3.5 для чтения RSS на FreeBSD 11 FAMP VPS

Используете другую систему? Reader Self 3.5 - это простая и гибкая, бесплатная программа для чтения RSS с открытым исходным кодом и альтернатива Google Reader. Читатель Sel

Кластеризация RabbitMQ на CentOS 7

Настройка многопользовательского сервера SA-MP San Andreas на CentOS 6

Настройка многопользовательского сервера SA-MP San Andreas на CentOS 6

Как установить X-Cart 5 на FreeBSD 12

Используете другую систему? X-Cart - чрезвычайно гибкая платформа электронной коммерции с открытым исходным кодом, обладающая множеством функций и интеграций. Исходный код X-Cart доступен

Установите WordPress на OpenBSD 6.2

Введение WordPress является доминирующей системой управления контентом в Интернете. Он поддерживает все, от блогов до сложных сайтов с динамическим контентом

Как установить GitBucket на Ubuntu 16.04

В этом руководстве рассматривается базовая установка и настройка GitBucket для экземпляра Vultr, работающего под управлением Ubuntu 16.04, и предполагается, что вы выполняете команды как

Как установить InvoicePlane в Debian 9

Используете другую систему? InvoicePlane - это бесплатное приложение для выставления счетов с открытым исходным кодом. Его исходный код можно найти в этом хранилище Github. Этот гид

Кто бы мог подумать, что развернуть часть серверов компании в Amazon было плохой идеей.

В итоге поставленная задача — сделать дополнительный VPN-туннель между Amazon и инфраструктурой в РФ.

image



Кроме простого how-to опишу несколько особенностей в настройке, с которыми можно столкнуться.

Настройка файрвола и роутинга

Покупаем у пока еще не заблокированного хостера VPS за сумму, эквивалентную 10 000 монгольских тугриков в месяц, ставим CentOS 7, включаем пересылку пакетов


Добавляем в файрволе правила для приема пакетов IPsec

Настройка StrongSwan

Устанавливаем демон IPsec StrongSwan:


Делаем предварительные настройки в /etc/strongswan.d/charon.conf:


Настройка Strongswan может быть проведена двумя способами.

Старый способ, использующий демон strongswan, уже достаточно хорошо описан:

/etc/strongswan/ipsec.conf

Файл с паролями и сертификатами:

/etc/ipsec.secrets

Новый способ, использующий демон charon, появившийся в версии 5.2.0:

Вся конфигурация хранится в /etc/strongswan/swanctl/swanctl.conf

Рассмотрим два варианта настройки демона charon:

Одинаковые настройки аутентификации и шифрования для всех. Сделаем разными только PSK:

Индивидуальные настройки аутентификации и шифрования:

Поднятие туннелей с маршрутизаторами Cisco

Настраиваем GRE-туннели в CentOS


В настройке GRE-интерфейсов есть пара особенностей.

Первая — необходимо уменьшить MTU для корректного прохождения пакетов.

Второе — указать TTL, это понадобится в будущем, когда будем настраивать OSPF. Если этого не сделать, пакеты OSPF будут приходить на удаленный хост с TTL, равным единице (из-за GRE over IPsec), оставаясь без ответа. Соответственно устройства будут висеть в состоянии INIT/DROTHER, связности мы не дождемся. При этом корректные ответы ICMP могут сбить с толку.

Создаем туннель на Cisco 2951

Создаем туннель на Cisco CSR1000V

Настройка динамической маршрутизации на Quagga

Если вы используете динамическую маршрутизацию на основе OSPF, то следующим шагом логично было бы поднять демон OSPF на CentOS, настроив новые туннели в качестве резервного маршрута.

Настройка OSPF на CentOS

В качестве демона установим Quagga:


Создаем конфигурационный файл демона /etc/quagga/zebra.conf


Вес пути можно регулировать параметрами cost либо bandwidth, устанавливая их на нужных интерфейсах.

Устанавливаем права и включаем службу


Создаем конфигурационный файл демона /etc/quagga/ospfd.conf


Устанавливаем права и включаем службу


Далее можем запустить терминал vtysh и работать с Quagga в циско-подобном интерфейсе, например:

Настройка OSPF на Cisco 2951

Настройка OSPF на Cisco CSR1000V

Что осталось нерассмотренным

Я описал самый простой вариант. Конечно же, вы настроите обмен ключами, используя IKE v2, авторизацию по сертификату, добавите в файрвол дополнительную фильтрацию по адресам, сделаете OSPF с авторизацией и, при большом количестве маршрутизаторов, с разделением на area, измените значения hello-interval и dead-interval на интерфейсах.

Читайте также: