У меня есть задача: нужно собирать со всех ключевых систем компании бекапы и перекладывать их на отдельно стоящую систему (она не в домене), а после выключить Interface на Mikrotik дабы было ощущение что ее как бы и нет. Т.е. будет так: Сервис → Бекап → удаленный бекап на тайном сервере. Цель которая преследуется, защититься от возможного проникновения в инфраструктуру шифровальщика/вируса поражающего все файлы с правами которыми есть доступ к ресурсам в сети. Если это доменный пользователь — то ущерб будет минимален, а если это администратор домена — то ущерб будет колосален.

Если порт включен, то можно обратиться к ней по сети, а если выключен то она работает, но доступа к ней нет.

Что понадобится для решения моей задачи

  • Учетная запись на Mikrotik с правами на включение и выключение интерфейса
  • Доступ на mikrotik по SSH
  • На Windows 10 Pro нужен консольный клиент SSH с помощью которого я буду взаимодействовать с Mikrotik

Шаг №1: Так у меня есть заметка, где я разбирал как на Windows 10 (Version 10.0.18362.356) включить консольный SSH клиент

Установка SSH клиента в Windows 10

Win + X → Power Shell (Администратор)

PS C:\Windows\system32> get-windowscapability -online | ? Name -like 'OpenSSH*'

Доступна клиентская часть SSH для установки если нужно

Name : OpenSSH.Client~~~~0.0.1.0

State : Installed

Доступна серверная часть SSH для установки если нужно

Name : OpenSSH.Server~~~~0.0.1.0

State : NotPresent

Мне нужен OpenSSH-клиент, потому и устанавливаю:

PS C:\Windows\system32> Add-WindowsCapability -online -name OpenSSH.Client~~~~0.0.1.0

Path :

Online : True

RestartNeeded : Fals

Из вывода видно, что клиент SSH установлен, перезагружать систему не требуется:

PS C:\Windows\system32> ssh

usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]

[-b bind_address] [-c cipher_spec] [-D [bind_address:]port]

[-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]

[-i identity_file] [-J [user@]host[:port]] [-L address]

[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]

[-Q query_option] [-R address] [-S ctl_path] [-W host:port]

[-w local_tun[:remote_tun]] destination [command]

PS C:\Windows\system32>

Шаг №2: Теперь проверяю, что могу через данный SSH клиент из среды PowerShell либо cmd.exe подключиться к Mikrotik по SSH (обязательно должно быть разрешено подключение из этой сети в которой находится рабочая станция под управлением Windows 10 Pro)

PS C:\Windows\system32> ssh -l ekzorchik 172.33.3.102 -p 22

The authenticity of host '172.33.3.102 (172.33.3.102)' can't be established.

RSA key fingerprint is SHA256:f1wYje+67mbGTEHdOJ1PY4xAFEebd9Ksa51+mQfjFWo.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '172.33.3.102' (RSA) to the list of known hosts.

ekzorchik@172.33.3.102's password:

[ekzorchik@ekzhome2] > system routerboard print

routerboard: yes

model: CRS326-24G-2S+

serial-number: 94550B529566

firmware-type: dx3230L

factory-firmware: 6.44.5

current-firmware: 6.47.3

upgrade-firmware: 6.47.3

[ekzorchik@ekzhome2] >

Да подключение успешно.

Шаг №3: Я вспомнил, что ранее в одной организации использовать из пакета Putty консольную утилиту plink.exe

Win + X - > Command Prompt (Admin)

C:\Windows\system32>cd /d c:\Script

c:\Script>echo y | plink.exe -ssh 172.33.3.102 -l admin -pw password "system routerboard print"

The server's host key is not cached in the registry. You

have no guarantee that the server is the computer you

think it is.

The server's rsa2 key fingerprint is:

ssh-rsa 2048 c8:d8:4b:f7:c2:bd:77:a1:f2:5f:98:55:d3:63:39:ae

If you trust this host, enter "y" to add the key to

PuTTY's cache and carry on connecting.

If you want to carry on connecting just once, without

adding the key to the cache, enter "n".

If you do not trust this host, press Return to abandon the

connection.

Store key in cache? (y/n) routerboard: yes

model: CRS326-24G-2S+

serial-number: 94550B529566

firmware-type: dx3230L

factory-firmware: 6.44.5

current-firmware: 6.47.3

upgrade-firmware: 6.47.3

либо так:

c:\Script>plink.exe -auto_store_sshkey -ssh 172.33.3.102 -l admin -pw password "system routerboard print"

routerboard: yes

model: CRS326-24G-2S+

serial-number: 94550B529566

firmware-type: dx3230L

factory-firmware: 6.44.5

current-firmware: 6.47.3

upgrade-firmware: 6.47.3

На заметку:

Ключа -auto_store_sshkey в версии plink.exe 0.73 нет

plink.exe -auto_store_sshkey -ssh

plink: unknown option «-auto_store_sshkey»

а вот в plink.exe 0.63-RU-15 команда отрабатывает. Во вложении plink0_63_ru_15та версия в которой есть опция.

Вот отлично, пожалуй на утилите plink я и остановлюсь.

Шаг №4: Чтобы выключить Interface на Mikrotik:

c:\Script>echo y | plink.exe -ssh 172.33.3.102 -l admin -pw password "interface ethernet disable ether10"

Шаг №5: Чтобы включить Interface на Mikrotik:

c:\Script>echo y | plink.exe -ssh 172.33.3.102 -l admin -pw password "interface ethernet enable ether10"

От 13.02.2021

Сваял первый вариант скрипта через который включаю порт на Mikrotik и после уже могу через RDP зайти на отдельно стоящую машину выделеннную под бекапы куда в ручную (пока) переношу их:

rem Mikrotik Port Open
rem plink work version: 0.63-RU-15 
set /P input= "Insert (1) Enable Port and (0) Disable Port: "

set pass="password"
set PuttyFolder="w:\owncloud\tips_mikrotik\"
set pingAddr="sw_1-1-1.polygon.local"
rem set pingAddr="172.33.33.6"
pushd %InstallFolder%

if %input% == 1 (
rem port on mikrotik
plink.exe -auto_store_sshkey -l oxi -ssh %pingAddr% -pw %pass% "interface ethernet enable ether6"
echo %input%

) else if %input% == 0 (
rem port off mikrotik
plink.exe -auto_store_sshkey -l oxi -ssh %pingAddr% -pw %pass% "interface ethernet disable ether6"
echo %input%
) else (
echo "Ne 1 i ne 2"
)

popd

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

На этом пока у меня всё, с уважением автор блога Олло Александр aka ekzorchik.

От ekzorchik