Категорії
Misc, staff, other Security

[OpenVPN] Масово генеруємо ovpn-конфіги

Зараз все частіше доводиться генерувати саме ovpn файли, де все вже в середині (і конфіг і сертифікати). Нижче буде коротке how-to для випадку, коли треба зробити це для 10 чи 20 логінів.

1. Створюємо шаблон

client
dev tun0
remote XX.XX.XX.XX 1194
proto udp
tun-mtu 1500
ns-cert-type server
remote-cert-tls server
pull
cipher AES-128-CBC
resolv-retry infinite
nobind
persist-tun
persist-key
keepalive 10 30
comp-lzo
verb 3
<ca>
-----BEGIN CERTIFICATE-----
XXX
-----END CERTIFICATE-----
</ca>
<cert>
CRT_TMPL
</cert>
<key>
KEY_TMPL
</key>

2. Генеруємо конфіги

for i in `cat list1.txt`; do echo $i; echo '-----BEGIN CERTIFICATE-----'> ${i}.crt;cat /etc/openvpn/easy-rsa/keys/${i}.crt | sed -n '/BEGIN CERTIFICATE/,/END CERTIFICATE/ {//!p}'>>${i}.crt;echo '-----END CERTIFICATE-----'>>${i}.crt; done

for i in `cat list1.txt`; do echo $i; sed "/^KEY_TMPL/ r /etc/openvpn/easy-rsa/keys/${i}.key" < client.ovpn_example > ${i}.ovpn_tmp; done

for i in `cat list1.txt`; do echo $i; sed "/^CRT_TMPL/ r ${i}.crt" < ${i}.ovpn_tmp > ${i}.ovpn_new; done

for i in `cat list1.txt`; do echo $i; cat ${i}.ovpn_new | sed '/KEY_TMPL/d' | sed '/CRT_TMPL/d' > ${i}.ovpn_new2;done

mkdir VPN;for i in `cat list1.txt`; do echo $i; mv ${i}.ovpn_new2 VPN/${i}.ovpn;done

3. Пояснення.

Ключі і сертифікати знаходяться у папці /etc/openvpn/easy-rsa/keys/ , а результуючі – у папці VPN поточної папки, список користувачів у файлі list1.txt (по одному на рядок)

4. Нюанси.

Враховуючи, що є різні реалізації sed, то в данному випадку мається на увазі GNU sed, тобто на BSD/Solaris може не працювати.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP
Powered by Muff