Демон для настройки iptables на VPN-сервере для разграничения сетевых доступов:
- считывает пользователей из ldap
- генерирует нехватающие ccd-файлы со статическим ip и, если надо, релоадит OpenVPN
- из конфига читает роли с белыми списками
- ищет группу пользователей с этой ролью в LDAP и применяет белые списки к этим пользователям
- перезаписывает iptables, но только в случае, если правила поменялись
- скрипт запускается по крону раз в минуту и пишет в /var/log/acl.log
Демон настраивает правила iptables для разграничения сети OpenVPN. Правила формирует на основе конфига и групп в LDAP. Завернут в saltstack-формулу, которая тестировалась на Debian 9.
Конфиг задаётся через пиллар (см. pillar-example.yaml
):
- acl.ldap: учетные данные пользователя для доступа в LDAP
- acl.ccd.group: пользователи из этой LDAP-группы будут иметь доступ в сеть
- acl.iptables.nat: правила NAT для всей системы
- acl.iptables.acl: словарь белых списков.
В конфиге acl.iptables.acl
указаны LDAP-группы и разрешенные для них подсети. Если пользователь из acl.ccd.group
включен в одну из групп в acl.iptables.acl
, то его будет пускать в подсети, описанные для этой группы.
Демон завернут в SaltStack-формулу. Пример пиллара в pillar-example.yaml
. Его надо передать в переменную config
в init.sls
.
GPLv2: https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt