0

Mikrotik: случайный пароль для гостевой WiFi сети

07.02.2024

Задача: генерировать случайный пароль для гостевой WiFi сети и отправлять ее на определенный адрес почты

Решение: в Mikrotik нет нормального произвольного генератора паролей, поэтому либо пользуемся сторонним сервисом https://www.random.org/passwords/ либо командой /certificate scep-server otp

Примечания:

  • Необходимо настроить переменные (имя профиля сети, длину пароля, настройки для отправки пароля по почте.
  • Скрипт по умолчанию меняет пароль для WiFi / wpa2-pre-shared-key / отправляет письмо на указанный адрес без копии. Если нужно что-то изменить, внесите изменения в скрипт.
# MikroTik Random Password for WiFi (CAPsMAN)

# Define name of your WiFi (CAPsMAN) profile
:local wifiprofile security-guest

# Define Password Length
:local passlength 8

# Define the parameters for mail notification
:local destmail my@email.ru
#:local ccdestmail copy@email.ru
:local content "New Wi-Fi password"
:local emailauthuser me@email.ru
:local emailfrom me@email.ru
:local emailserver smtp.mail.ru
:local emailauthpass my_password

# Gets a new password
##:local new ([/tool fetch url="https://www.random.org/passwords/\?num=1&len=$passlength&format=plain&rnd=new" output=user as-value]->"data")
# Trim line break simbol "\n"
##:local newPassword [ :pick $new 0 [ :find $new "\n" ] ];
:local new ([/certificate scep-server otp generate minutes-valid=0 as-value]->"password");
:local newPassword [:pick $new 0 $passlength ]

# Set password to wifi profile
/caps-man security set [find name="security-guest"] passphrase=$newPassword

#Sendind e-mail
/tool e-mail send server=$emailserver to="$destmail" subject=$content body="New Password for WiFi Guest is: $newPassword" user=$emailauthuser password=$emailauthpass from="$emailfrom"

# Write a log line
:log warning message="Wifi password for profile $wifiprofile has ben set to: $newPassword"
:put $newPassword

Свежие комментарии

Подписка

Лучшие статьи


Fatal error: Uncaught Error: Call to a member function have_posts() on null in /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/blog.php:391 Stack trace: #0 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/widgets/latest-posts/widget.php(257): fox56_blog_grid(NULL, Array) #1 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/widgets/latest-posts/register.php(33): include('/home/host18670...') #2 /home/host1867038/the-devops.ru/htdocs/www/wp-includes/class-wp-widget.php(394): Wi_Widget_Latest_Posts->widget(Array, Array) #3 /home/host1867038/the-devops.ru/htdocs/www/wp-includes/widgets.php(837): WP_Widget->display_callback(Array, Array) #4 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/single.php(417): dynamic_sidebar('sidebar') #5 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/single.php(136): fox56_single_sidebar() #6 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/single.php(7): fox56_single_inner() #7 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/single.php(23): fox56_single() #8 /home/host1867038/the-devops.ru/htdocs/www/wp-includes/template-loader.php(106): include('/home/host18670...') #9 /home/host1867038/the-devops.ru/htdocs/www/wp-blog-header.php(19): require_once('/home/host18670...') #10 /home/host1867038/the-devops.ru/htdocs/www/index.php(17): require('/home/host18670...') #11 {main} thrown in /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/blog.php on line 391