Пошаговое руководство по SSH аутентификации с использованием открытых ключей RSA и DSA на маршрутизаторе MikroTik

Бывают ситуации, когда обычной связки логин и пароль недостаточно: не удовлетворяет внутренней политике безопасности, либо удобству подключения к сетевому оборудованию. Хочется использовать простое, быстрое и вместе с тем надежное и безопасное решение. Кстати, если вы еще не читали о базовых принципах защиты периметра Mikrotik, крайне рекомендую ознакомиться.

Заходим на Микротик без пароля по DSA SSH

Для начала вам необходимо сгенерировать открытый ключ dsa на вашем компьютере с linux (открытый ключ вы в последствие загрузите на Мikrotik).

В системе Linux введите следующую команду:

ssh-keygen -t dsa

Команда создаст пару ключей DSA, совместимую с Mikrotik / Linux

Система попросит ответить на вопросы:

root@desktop:~# ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/root/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_dsa. Your public key has been saved in /root/.ssh/id_dsa.pub. The key fingerprint is: 0a:c1:34:da:d1:b1:f0:b5:f2:39:04:85:9d:d0:ac:2d root@desktop The key’s randomart image is: +—[ DSA 1024]—-+ |        .=o=     | |        . *.     | |         .  E    | |        ..       | |      . S.o      | |       + =..     | |      . =.o      | |     . o *..     | |    ..o o +.     | +——————+ root@desktop:~#

Не забудьте оставить парольную фразу пустой, если вы собираетесь использовать этот ключ в автоматизированных сценариях и система не прерывала запуск скрипта запросом пароля.

Загрузка ключа в Mikrotik по FTP

Теперь, когда ключ был создан, пришло время загрузить его в Mikrotik с помощью FTP. Убедитесь, что служба FTP включена на Микротике. Загрузите ключ id_dsa.pub через ftp, используя команды ниже:

root@desktop:~# cd /root/.ssh/ root@desktop:~/.ssh# ftp 192.168.11.30 Connected to 192.168.11.30. 220 MikroTik FTP server (MikroTik 3.3) ready Name (192.168.11.30:root): admin 331 Password required for admin Password: 230 User admin logged in Remote system type is UNIX. ftp&gt, put id_dsa.pub local: id_dsa.pub remote: id_dsa.pub 200 PORT command successful 150 Opening ASCII mode data connection for ‘/id_dsa.pub’ 226 ASCII transfer complete 608 bytes sent in 0.00 secs (12007.5 kB/s) ftp&gt, exit 221 Closing root@desktop:~/.ssh#

Импортируем DSA ключ

Теперь зайдем на Mikrotik через Winbox и запустим Terminal, вам нужно импортировать ключ. Для импорта ключа используйте команду ниже:

user ssh-keys import file=id_dsa.pub user: admin

Поле пользователя выше определяет, какая учетная запись пользователя будет регистрироваться при передаче ключа. В этом примере я использую id администратора по умолчанию.

Все сделано. Вы создали пару ключей и импортировали открытый ключ на Mikrotik,

Loop Protect — защиты от петель на Микротике

Теперь вы можете запускать команды с удаленного компьютера без использования пароля.

Ниже приведены некоторые примеры из нашего Linux (при первом входе в систему он спросит вас «Вы уверены, что хотите продолжить подключение (да / нет)?» Введите yes для продолжения):

ssh admin@192.168.11.30  /system resource print The authenticity of host ‘192.168.11.30 (192.168.11.30)’ can’t be established. DSA key fingerprint is 00:aa:bb:51:8b:1c:c3:df:4d:3c:29:d8:af:48:15:d4. Are you sure you want to continue connecting (yes/no)? yes

Снова попробуйте выполнить команду, и на этот раз она будет выполняться плавно, не спрашивая ничего.

root@desktop:~# ssh admin@192.168.11.30  /system resource print uptime: 40m37s version: ‘3.3’ free-memory: 40512kB total-memory: 62276kB cpu: ‘Intel(R)’ cpu-count: 1 cpu-frequency: 3200MHz cpu-load: 1 free-hdd-space: 956832kB total-hdd-space: 1021408kB write-sect-since-reboot: 2373 write-sect-total: 2373

Вы можете сделать много интересного, используя этот метод: связать скрипты с php или webmin и управлять своим mikrotik с помощью webmin в качестве фронт энда.

Настраиваем доступ к SSH с помощью открытого ключа RSA на маршрутизаторе MikroTik

В RouterOS 6.31 MikroTik представил поддержку ключей RSA для аутентификации, поэтому я решил протестировать ее. Аутентификация с открытым ключом SSH на RouterOS с использованием ключей DSA поддерживается уже давно. Этот учебник MikroTik проведет вас через процесс настройки аутентификации с помощью ключей RSA. Этот урок состоит из трех статей в одной, выберите ту, которая соответствует вашей среде. SSH с хоста Linux, Putty в Windows или SecureCRT в Windows.

Генерация пары ключей RSA в Ubuntu Linux

Шаг 1. Запуск ssh-keygen

user@linux:~$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/osboxes/.ssh/id_rsa): Created directory ‘/home/osboxes/.ssh’. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/osboxes/.ssh/id_rsa. Your public key has been saved in /home/osboxes/.ssh/id_rsa.pub. The key fingerprint is: 8e:1e:a0:85:b9:1f:f4:80:a8:89:cd:a8:ae:99:db:48 osboxes@osboxes The key’s randomart image is: +—[RSA 2048]—-+ | | | | | | | . + | |. + = S | |o= = + o | |=E= . + . | |o= . o . | |Xo. . . | +——————+

Шаг 2. Копирование открытого ключа на маршрутизатор MikroTik.

user@linux:~$ scp ~/.ssh/id_rsa.pub admin@192.168.1.99:mykey.pub The authenticity of host ‘192.168.1.99 (192.168.1.99)’ can’t be established. RSA key fingerprint is aa:25:f6:25:12:f1:57:9b:97:1c:b6:af:dd:f2:97:e4. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added ‘192.168.1.99’ (RSA) to the list of known hosts. admin@192.168.1.99’s password: id_rsa.pub 100% 397 0.4KB/s 00:00 user@linux:~$ scp ~/.ssh/id_rsa.pub admin@192.168.1.99:mykey.pub

Генерация пары ключей RSA с использованием SecureCRT (Windows)

Важно! Если вы уже создали закрытый / открытый ключ с помощью SecureCRT, убедитесь, что вы сделали резервную копию своих ключей или просто используете существующую пару ключей.

  1. Прежде чем начать, выберите «Параметры | Глобальные параметры | SSH2 ”из меню, чтобы увидеть, если вы уже сгенерировали и настроили пару ключей SSH.
  2. Выберите Инструменты | Создать открытый ключ
  3. Нажмите кнопку Далее
  4. Выберите RSA в нашем случае
  5. Оставьте поле пустым для аутентификации без пароля
  6. Используйте длину ключа 2048
  7. Нажмите «Далее» после генерации ключа RSA.
  8. Выберите, где сохранить пару ключей, например, папку «Мои документы» с именем «sshkeys».

Настройка WAN Uplink для Mikrotik в датацентре OVH

Создаем пару ключей SSH, используя PuTTYs puttygen.exe (Windows)

  1. Нажмите «Win+R», в строке пропишите «C:\Program Files (x86)\PuTTY\puttygen.exe», нажмите Enter
  2. Убедитесь, что тип ключа — «SSH-2 (RSA)», а длина ключа — «2048». Нажмите «Создать».
  3. Выберете «Сохранить закрытый ключ» и «Сохранить открытый ключ», чтобы сохранить каждый отдельности. В нашем случае папка называется «Мои документы» \ sshkeys и открытый ключ — «puttykey.pub».

Установка открытого ключа RSA и привязка к пользователю

Шаг 1. Используйте winbox, чтобы убедиться, что файл был скопирован на маршрутизатор

Шаг 2а. Импортируйте открытый ключ с помощью Winbox.

Шаг 2б. Импортируем открытый ключ с помощью командной строки

[admin@MikroTik] &gt, /user ssh-keys import public-key-file=mykey.pub user=admin

Проверяем полученный результат:

[admin@MikroTik] &gt, /user ssh-keys print Flags: R — RSA, D — DSA # USER BITS KEY-OWNER 0 R admin 2048 admin@host

Проверяем свою конфигурацию, подключившись по SSH

user@linux:~$ ssh admin@192.168.1.99 [admin@MikroTik] &gt,

Отлично! Подключаемся без пароля

Как экспортировать конфигурацию маршрутизатора с использованием SSH

user@linux:~$ ssh admin@192.168.1.99 /export &gt, myconfig.rsc user@linux:~$ head myconfig.rsc # sep/10/2015 10:46:44 by RouterOS 6.31 # software id = 0340-0M77 # /ip address add address=192.168.1.99/24 interface=ether1 network=192.168.1.0 /ip dhcp-client add dhcp-options=hostname,clientid interface=ether1 …

И снова никаких паролей!

Как создать бинарную резервную копию и перенести с помощью SCP

user@linux:~$ ssh admin@192.168.1.99 /system backup save name=myrouter.backup Configuration backup saved user@linux:~$ scp admin@192.168.1.99:/myrouter.backup ./ myrouter.backup 100% 18KB 18.1KB/s 00:00 user@linux:~$ ls -al myrouter.backup -rw-r—— 1 osboxes osboxes 18573 Sep 11 04:35 myrouter.backup

Комментарии приветствуются.