openvpn+dns

Linux, безопасность, сети и все что с этим связано
agreshnov
Заглянувший
Сообщения: 1
Зарегистрирован: 28 сен 2010, 12:30

openvpn+dns

Сообщение agreshnov »

#!/bin/sh
echo=/bin/echo
dnsup=/usr/bin/nsupdate
rm=/bin/rm
$echo "server 127.0.0.1" >> /tmp/dnsup
$echo "key dhcp_update nt4AIb4nQX06vd4EMIF6MLV0DhJbKAtiUjXdHIn+ZmBRaeUgkDKtDNJGr5s91/DszwqZTHZesq5NtrlHp2FgYw==" >> /tmp/dnsup
$echo "zone example.com" >> /tmp/dnsup
#этого кода небыло 26.09.2010
l=`ls /etc/openvpn/ccd` #читаем заданый каталог
#список поключеных клиентов извлекаем первое поле
grep -o "$l" /etc/openvpn/openvpn-status.log | sort | uniq | less > /etc/openvpn/user
#переход в каталог ccd необходимо для строки ниже
cd /etc/openvpn/ccd
#извлекаем строки с ip клиентов из индивидуальных конфигов пользователей
grep ifconfig-push * -R > /etc/openvpn/ipp
#возвращаемся в задоный каталог
cd /etc/openvpn/
#из строки с ip клиентов файла ipp извлекаем их ip с добовлением элементов
cat ipp | awk '{split($0,usr,"\t"); print (" 60 A ") user $2}' > ip
grep $l /etc/openvpn/ipp > /etc/openvpn/ipp2
#из строки с ip клиентов файла ipp извлекаем их ip с добовлением элементов
cat /etc/openvpn/ipp2 | awk '{split($0,usr,"\t"); print (" 60 A ") user $2}' > /etc/openvpn/ip2
paste -d "\t" /etc/openvpn/user /etc/openvpn/ip2 > /etc/openvpn/res
t=`wc -l /etc/openvpn/user | awk '{print $1}'`
e=$t
for ch in `seq $e`
do
echo "update add" >> /etc/openvpn/res2
done
paste -d "\t" /etc/openvpn/res2 /etc/openvpn/res >> /tmp/dnsup
###############
$echo "show" >> /tmp/dnsup
$echo "send" >> /tmp/dnsup
$dnsup /tmp/dnsup
mv /tmp/dnsup /tmp/dnsup_old