У меня есть задача: нужно собирать со всех ключевых систем компании бекапы и перекладывать их на отдельно стоящую систему (она не в домене), а после выключить Interface
на Mikrotik
дабы было ощущение что ее как бы и нет. Т.е. будет так: Сервис → Бекап → удаленный бекап на тайном сервере. Цель которая преследуется, защититься от возможного проникновения в инфраструктуру шифровальщика/вируса поражающего все файлы с правами которыми есть доступ к ресурсам в сети. Если это доменный пользователь — то ущерб будет минимален, а если это администратор домена — то ущерб будет колосален.
Если порт включен, то можно обратиться к ней по сети, а если выключен то она работает, но доступа к ней нет.
Что понадобится для решения моей задачи
Учетная запись на Mikrotik с правами на включение и выключение интерфейса
Доступ на mikrotik по SSH
На Windows 10 Pro нужен консольный клиент SSH с помощью которого я буду взаимодействовать с Mikrotik
Шаг №1:
Так у меня есть заметка, где я разбирал как на Windows 10 (Version 10.0.18362.356)
включить консольный SSH
клиент
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.