INT 21h

Hi, I am Vladimir Smagin, SysAdmin. Telegram Email GPG

OpenVPN dynamic local domain names with dnsmasq

№ 9436 В разделе "Администрирование" от September 25th, 2018,

There two ways:

  • Generate full config once a time
  • Generate many configs separately for all clients

Way #1

pip install openvpn_status

from openvpn_status import parse_status

hostDomain = "vpn"

with open('/etc/openvpn/openvpn-status.log') as logfile:
    status = parse_status(logfile.read())

for client in status.routing_table:
    domain = status.routing_table[client].common_name + "." + hostDomain
    address = status.routing_table[client].virtual_address
    print("address=/{}/{}".format(domain, address))

Way #2

Add to /etc/openvpn/server.conf these lines:

script-security 3 system
client-connect /opt/ovpn-dns/ovpn-dns-connect.sh
client-disconnect /opt/ovpn-dns/ovpn-dns-disconnect.sh

Script /opt/ovpn-dns/ovpn-dns-connect.sh:

#!/bin/bash
echo "address=/$common_name.vpn/$ifconfig_pool_remote_ip" > /etc/dnsmasq.d/$common_name.conf
/bin/systemctl restart dnsmasq

Script /opt/ovpn-dns/ovpn-dns-disconnect.sh:

#!/bin/bash
rm -f /etc/dnsmasq.d/$common_name.conf
/bin/systemctl restart dnsmasq

Нет комментариев »

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Микроблог перейти

# 2018-11-14 12:01:24

Hetzner тихо и незаметно обновили свой terraform провайдер для поддержки volumes, который до сих пор в бете, не дает создавать более 100 гигов и работает только в определенных регионах, но по факту он не дает создать более 10 гигов потому, что лимиты аккаунты надо поднять, которые нельзя поднять потому, что volumes сука в бете!

# 2018-11-07 23:17:33

Столько работал над плейбуками, что чувствую себя инженером по прочистке ансибла


© Vladimir Smagin, 2005-2018. Копирование материалов без разрешения запрещено. GPG 0x29AE91B1A37721C3
Яндекс.Метрика

Fortune cookie: There was a young lady in Reno, Who lost all her dough playing Keno. But she lay on her back, And opened her crack, So now she owns the Casino!