-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathnew_client_creation
34 lines (27 loc) · 1.88 KB
/
new_client_creation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/bash
##Узнаём имя микротика нового клиента
echo -n "Введите имя микротика (например, mt-lpm): "
read MT_NAME
##Создаём пароль и сохраняем его в переменную
MT_PASSWORD=$(apg -x 10 -M CSN -n 1)
[ -z "${MT_PASSWORD}" ] && { echo "Пароль не сгенерирован!"; exit 1; }
echo "Mikrotik Radius/OpenVPN password for WNAM is: ${MT_PASSWORD}"
#Настраиваем OpenVPN
##Добавляем в /etc/openvpn/user.pass логопасс
echo "${MT_NAME}:${MT_PASSWORD}" >>/etc/openvpn/user.pass
echo "Логин и пароль для OpenVPN сохранены в /etc/openvpn/user.pass"
##Выдаём туннельный IP микротику
###Находим все тунненльные IP и демонстрируем последние два
echo "Последние туннельные IP-адреса:"
cat /etc/openvpn/ipp.txt | grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" | tail -2
###Определяем следующий по порядку IP
OVPN_LAST_OCTET=$(cat /etc/openvpn/ipp.txt | tail -1 | awk -F '\\.' '{print $NF}')
OVPN_NEXT_OCTET=$((${OVPN_LAST_OCTET} + 6)) # OpenVPN при первом вводе IP воспринимает его с маской /30, при перезагрузке сервиса отобразится корректный IP площадки
echo -n "Следующий туннельный IP-адрес: "
if [ ${OVPN_NEXT_OCTET} -gt 255 ]; then
echo -e "\nОшибка! Некорректный вид IP-адреса. Пожалуйста, задайте его вручную"
else
OVPN_NEXT_IP="$(cat /etc/openvpn/ipp.txt | tail -1 | grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" | awk -F '\\.' '{print $1"."$2"."$3"."}')$openvpn_last_octet"
echo "${OVPN_NEXT_IP}"
echo "${MT_NAME}:${OVPN_NEXT_IP}" >> /etc/openvpn/ipp.txt
fi