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

Пошаговое руководство по 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> 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> exit
221 Closing
root@desktop:~/.ssh#

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

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

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

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

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

Ниже приведены некоторые примеры из нашего 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.SecureCRT проверка существующих ключей
  2. Выберите “Инструменты | Создать открытый ключ…”создаем открытый ключ
  3. Нажмите кнопку “Далее”SecureCRT начало генерации
  4. Выберите RSA в нашем случаеSecureCRT тип ключа rsa или dsa
  5. Оставьте поле пустым для аутентификации без пароляSecureCRT кодовая фраза
  6. Используйте длину ключа 2048SecureCRT длина ключа
  7. Нажмите «Далее» после генерации ключа RSA.SecureCRT процесс создания ключа
  8. Выберите, где сохранить пару ключей, например, папку «Мои документы» с именем «sshkeys».SecureCRT путь для сохранения ключа

 

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

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

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

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

список файлов WinBox

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

импорт открытой части ssh ключа

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

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

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

[admin@MikroTik] > /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] >

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

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

user@linux:~$ ssh admin@192.168.1.99 /export > 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

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

Читать далее

Оставьте комментарий

Adblock detector