Я работаю над скриптом Bash для безопасного доступа к устройствам IPMI (Intelligent Platform Management Interface) через туннель SSH через хост-бастион. В настоящее время скрипт работает, но у меня есть опасения по поводу его безопасности и эффективности.
Я реализовал скрипт, как показано ниже:
Когда я запускаю этот скрипт с соответствующими аргументами, он успешно устанавливает псевдоним IP, устанавливает туннель SSH и удаляет псевдоним после подключения. Это соответствует моим основным функциональным требованиям.
Однако я ожидал:
Более безопасный способ обработки подключений SSH без отключения проверки ключа хоста. Потенциально более эффективный метод настройки нескольких переадресаций портов. Лучшая обработка ошибок и очистка в случае неожиданного завершения. Подтверждение того, что я следую передовым методам манипулирования псевдонимами IP.
Скрипт работает так, как задумано, в идеальных условиях, но меня беспокоит его поведение в крайних случаях, а также его общая безопасность и эффективность. Я ищу способы улучшить эти аспекты, сохранив при этом основную функциональность.
Спасибо!
bashCopy#!/bin/bash
set -x
shell='root@bastion'
ifalias=$1
ipmihost=$2
ports="80 443 623 5900 5901 5120 5123 8889"
for p in $ports; do
fwportspec=" ${fwportspec} -L $ifalias:$p:$ipmihost:$p "
done
ifconfig lo0 alias $ifalias
ssh -N $fwportspec -oUserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $shell
sleep 1
ifconfig lo0 -alias $ifalias