strongswan
Роль StrongSwan
Тестировалось на:
- Ubuntu 18.04 и 20.04
- CentOS 7 и 8
- Debian 9 и 10
Эта роль использует синтаксис в стиле swanctl.conf (ссылаясь на секции, начиная с 5.7.0).
Переменные
Общие
strongswan_swanctl_settings
: [обязательно]: Установите все настройки для swanctl.conf
Настройки StrongSwan (сервер|клиенты):
strongswan_swanctl_config_dir
: [опционально, по умолчанию:/etc/strongswan/swanctl
]: Директория, содержащая StrongSwan swanctl.confstrongswan_swanctl_config_file
: [опционально, по умолчанию:{{ strongswan_swanctl_config_dir }}/swanctl.conf
]: Имя файла конфигурации StrongSwan swanctlstrongswan_letsencrypt_enable
: [опционально, по умолчанию:true
]: Подготовка сертификата сервера StrongSwan с помощью Let'sEncryptstrongswan_firewalld_enable
: [опционально, по умолчанию:true
]: Установка всех необходимых правил брандмауэра для сервера StrongSwanstrongswan_client
: [опционально, по умолчанию:false
]: Установите и настройте StrongSwan на клиентахstrongswan_download_cert
: [опционально, по умолчанию:false
]: Скачивание сертификата StrongSwan с серверного хоста. Должно использоваться сstrongswan_letsencrypt_enable
=true
strongswan_upload_cert
: [опционально, по умолчанию:false
]: Загрузка сертификата StrongSwan на клиентов. Должно использоваться сstrongswan_letsencrypt_enable
=true
Зависимости
- geerlingguy.certbot
Переменные
Хостовые переменные для сервера StrongSwan:
# Включите переменную ниже только для первой генерации сертификата
certbot_create_if_missing: yes
certbot_certs:
- email: [email protected]
domains:
- "{{ inventory_hostname }}"
certbot_create_standalone_stop_services: []
# Установите конфигурацию swanctl для StrongSwan
# https://wiki.strongswan.org/projects/strongswan/wiki/UsableExamples
strongswan_swanctl_settings:
connections:
ikev2-eap:
version: 2
rekey_time: 0s
fragmentation: yes
proposals: aes192gcm16-aes128gcm16-prfsha256-ecp256-ecp521,aes192-sha256-modp3072,default
encap: yes
pools: primary-pool-ipv4
dpd_delay: 30s
local-1:
certs: cert.pem
id: myid
remote-1:
auth: eap-dynamic
eap_id: "%any"
children:
ikev2-eap:
local_ts: 0.0.0.0/0,::/0
rekey_time: 0s
dpd_action: clear
esp_proposals = aes192gcm16-aes128gcm16-prfsha256-ecp256-modp3072,aes192-sha256-ecp256-modp3072,default
pools:
primary-pool-ipv4:
addrs: 192.168.252.0/24
secrets:
eap-user:
id: user
secret: Ar3e73tTnp02
Хостовые переменные для carol.strongswan.org:
strongswan_swanctl_settings:
connections:
home:
encap: yes
vips: 0.0.0.0
remote_addrs: moon.strongswan.org
version: 2
children:
home:
remote_ts: 0.0.0.0/0,::/0
start_action: none
local:
auth: eap-aka
eap_id: carol
remote:
auth: pubkey
id: moon.strongswan.org
secrets:
eap-carol:
id: carol
secret: Ar3etTnp
Примеры playbook
Playbook для сервера StrongSwan с PKI сертификатами:
- hosts: server
vars:
strongswan_letsencrypt_enable: false
roles:
- serverbee.strongswan
Playbook для сервера StrongSwan с сертификатами Letsencrypt:
- hosts: server
vars:
strongswan_letsencrypt_enable: true
certbot_certs:
- email: [email protected]
domains:
- vpn.example.com
roles:
- serverbee.strongswan
Playbook для клиентов StrongSwan:
- hosts:
- server
roles:
- serverbee.strongswan
vars:
strongswan_client: true
strongswan_download_cert: true
- hosts:
- clients
roles:
- serverbee.strongswan
vars:
strongswan_upload_cert: true
Задачи
- Удалить некоторые зависимости ролей для достижения большей гибкости.
Лицензия
Лицензия BSD 2-clause "Упрощенная"
Информация об авторах
Виталий Яковенко
hybridadmin
О проекте
Role to configure a strongSwan IPSec VPN server.
Установить
ansible-galaxy install serverbee/ansible-role-strongswan
Лицензия
Unknown
Загрузки
234
Владелец