StrongSwan — это многоплатформенное, современное и удобное VPN-решение на базе IPsec для Linux с открытым исходным кодом, обеспечивающее полную поддержку обмена ключами в Интернете (IKEv1 и IKEv2) для установления ассоциаций безопасности (SA) между двумя узлами. Его полнофункциональный, модульный дизайн легко дополняется десятки плагинов, которые расширяют основные функциональные возможности.
В этой статье вы узнаете, как настроить межсетевые шлюзы IPsec VPN с использованием StrongSwan на серверах CentOS/RHEL 8. Это позволяет одноранговым узлам аутентифицировать друг друга с использованием strong pre-shared ключа (PSK). Настройка «site-to-site» означает, что у каждого шлюза безопасности есть собственная подсеть.
Тестовая среда
Не забудьте использовать свои реальные IP-адреса во время настройки, следуя руководству.
Site 1 Gateway
Public IP: 192.168.56.7
Private IP: 10.10.1.1/24
Private Subnet: 10.10.1.0/24
Site 2 Gateway
Public IP: 192.168.56.6
Private IP: 10.20.1.1/24
Private Subnet: 10.20.1.0/24
Шаг 1: Включение пересылки пакетов в ядре CentOS 8
1. Начните с включения функции пересылки IP ядра в файле конфигурации /etc/sysctl.conf на обоих VPN-шлюзах:
#nano /etc/sysctl.conf
Добавьте эти строки в файл:
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
Как настроить VPN
2. После сохранения изменений в файле выполните следующую команду, чтобы загрузить новые параметры ядра во время выполнения:
# sysctl -p
3. Затем создайте постоянный статический маршрут в файле /etc/sysconfig/network-scripts/route-eth0 на обоих шлюзах безопасности:
# nano /etc/sysconfig/network-scripts/route-eth0
Добавьте следующую строку в файл:
#Site 1 Gateway
10.20.1.0/24 via 192.168.56.7
#Site 2 Gateway
10.10.1.0/24 via 192.168.56.6
Как настроить VPN
4. Затем перезапустите диспетчер сети, чтобы применить новые изменения:
# systemctl restart NetworkManager
Шаг 2: Установка StrongSwan в CentOS 8
5. Пакет strongswan предоставляется в репозитории EPEL. Чтобы установить его, вам нужно включить репозиторий EPEL, а затем установить strongwan на обоих шлюзах безопасности:
# dnf install epel-release
# dnf install strongswan
6. Чтобы проверить версию strongswan, установленную на обоих шлюзах, выполните следующую команду:
# strongswan version
7. Затем запустите службу strongswan и включите её автоматический запуск при загрузке системы. Затем проверьте состояние на обоих шлюзах безопасности:
# systemctl start strongswan
# systemctl enable strongswan
# systemctl status strongswan
Примечание: последняя версия strongswan в CentOS/REHL 8 поставляется с поддержкой обоих swanctl (новая переносная утилита командной строки, представленная в strongSwan 5.2.0, используемая для настройки, управления и мониторинга демона IKE Charon с помощью плагина vici) и утилита запуска (или ipsec), использующая устаревший плагин Stroke.
8. Основным каталогом конфигурации является /etc/strongswan/, который содержит файлы конфигурации для обоих плагинов:
# ls /etc/strongswan/
Для этой статьи мы будем использовать утилиту IPsec, которая вызывается с помощью команды strongswan и интерфейса stroke. Поэтому мы будем использовать следующие файлы конфигурации:
- /etc/strongswan/ipsec.conf — файл конфигурации для подсистемы strongSwan IPsec.
- /etc/strongswan/ipsec.secrets — файл ключей.
Шаг 3: Настройка шлюзов безопасности
9. На этом шаге необходимо настроить профили подключения на каждом шлюзе безопасности с помощью файла конфигурации strongswan — /etc/strongswan/ipsec.conf. Как настроить VPN.
Настройка профиля подключения Site 1
# cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
# vi /etc/strongswan/ipsec.conf
Скопируйте и вставьте следующую конфигурацию в файл:
config setup
charondebug="all"
uniqueids=yes
conn ateway1-to-gateway2
type=tunnel
auto=start
keyexchange=ikev2
authby=secret
left=192.168.56.7
leftsubnet=10.10.1.1/24
right=192.168.56.6
rightsubnet=10.20.1.1/24
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
aggressive=no
keyingtries=%forever
ikelifetime=28800s
lifetime=3600s
dpddelay=30s
dpdtimeout=120s
dpdaction=restart
Настройка профиля подключения Site 2
# cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
# vi /etc/strongswan/ipsec.conf
Скопируйте и вставьте в файл следующую конфигурацию:
config setup
charondebug="all"
uniqueids=yes
conn 2gateway-to-gateway1
type=tunnel
auto=start
keyexchange=ikev2
authby=secret
left=192.168.56.6
leftsubnet=10.20.1.1/24
right=192.168.56.7
rightsubnet=10.10.1.1/24
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
aggressive=no
keyingtries=%forever
ikelifetime=28800s
lifetime=3600s
dpddelay=30s
dpdtimeout=120s
dpdaction=restart
Давайте кратко опишем каждый из параметров конфигурации приведённый выше:
- config setup — определяет общую информацию о конфигурации для IPSec, которая применяется ко всем соединениям.
- charondebug — указывает, сколько выходных данных отладки Charon должно быть зарегистрировано.
- uniqueids — определяет, должен ли конкретный идентификатор участника оставаться уникальным.
- conn gateway1-to-gateway2 — используется для установки имени соединения.
- type — определяет тип соединения.
- Auto — используется для объявления того, как обрабатывать соединение при запуске или перезапуске IPSec.
- keyexchange — объявляет версию протокола IKE для использования.
- authby — указывает, как одноранговые узлы должны аутентифицировать друг друга.
- left — объявляет IP-адрес интерфейса публичной сети левого участника.
- leftsubnet — объявляет личную подсеть позади левого участника.
- right — объявляет IP-адрес общедоступного сетевого интерфейса правого участника.
- rightsubnet — объявляет личную подсеть позади левого участника.
- ike — используется для объявления списка используемых алгоритмов шифрования/аутентификации IKE/ISAKMP SA. Обратите внимание, что это может быть список указанный через запятую.
- esp — указывает список алгоритмов шифрования/аутентификации ESP, которые будут использоваться для соединения.
- aggressive — указывает, использовать ли aggressive или Main режим.
- keyingtries — объявляет количество попыток согласования соединения.
- ikelifetime — указывает, как долго должен быть доступным канал ключей соединения перед повторным согласованием.
- lifetime — указывает, как долго должен длиться конкретный экземпляр соединения, от успешного согласования до истечения срока действия.
- dpddelay — объявляет временной интервал, с которым R_U_THERE/INFORMATIONAL сообщения обмена отправляются на одноранговый узел.
- dpdtimeout — используется для объявления интервала времени ожидания, после которого все соединения с одноранговым узлом удаляются в случае неактивности.
- dpdaction — указывает, как использовать протокол Dead Peer Detection (DPD) для управления соединением.
Вы можете найти описание всех параметров конфигурации подсистемы strongSwan IPsec, прочитав справочную страницу ipsec.conf:
# man ipsec.conf
Шаг 4. Настройка PSK для одноранговой аутентификации
10. Затем вам нужно сгенерировать PSK, который будет использоваться узлами для аутентификации следующим образом:
# head -c 24 /dev/urandom | base64
Как настроить VPN
11. Добавьте PSK в файл /etc/strongswan/ipsec.conf на обоих шлюзах безопасности:
# vi /etc/strongswan/ipsec.secrets
Введите следующие строки в файле:
#Site 1 Gateway
192.168.56.7 192.168.56.6 : PSK "Your PSK Here"
#Site 1 Gateway
192.168.56.6 192.168.56.7 : PSK "Your PSK Here"
12. Затем запустите службу strongsan и проверьте состояние подключений:
# systemctl restart strongswan
# strongswan status
Как настроить VPN
13. Проверьте, можете ли вы получить доступ к частным подсетям с любого шлюза безопасности, выполнив команду ping:
# ping 10.20.1.1
# ping 10.10.1.1
Как настроить VPN
14. И последнее, но не менее важное: чтобы узнать больше о командах strongswan для мануального установления/отключения соединений и многого другого, загляните на справочную страницу strongswan:
# strongswan --help
На этом пока все! Чтобы поделиться своими мыслями с нами или задать вопросы, свяжитесь с нами через форму обратной связи ниже. А чтобы узнать больше о новой утилите swanctl и новой, более гибкой структуре конфигурации обратитесь к документацию пользователя strongSwan.
Спасибо за уделенное время на прочтение статьи о том, как настроить VPN (site-to-site) на основе IPsec с помощью Strongswan на CentOS/RHEL 8!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet (программируемые сети) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco и Linux с трудоустройством!
- Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
- Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
- Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
- Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
- Если хотите индивидуальный график — обсудим и осуществим.
- Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- отредактировать резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
1 комментарий. Оставить новый
[[email protected]~]# strongswan status
[[email protected]~]# ping 10.20.1.1
PING 10.20.1.1 (10.20.1.1) 56(84) bytes of data.
^C
— 10.20.1.1 ping statistics —
7 packets transmitted, 0 received, 100% packet loss, time 134ms
не работает