Вопрос или проблема
В настоящее время у меня дома работает сервер Debian. Я получаю к нему доступ в основном через SSH. На нем запущено несколько сервисов, и чтобы протестировать некоторые вещи, я решил запустить виртуальную машину QEMU (тоже на Debian), к которой могу подключаться по SSH только когда уже подключен к хост-машине, чтобы не беспокоиться о безопасности. Однако я обнаружил, что QEMU также привязал порт, который я использую для SSH, к моей локальной сети, что плохо, потому что у этой машины очень плохо защищенный пароль. Как мне привязать порты только к localhost?
Команда, которую я использовал для запуска виртуальной машины: qemu-system-x86_64 -hda debian.img -boot d -m 2G -net user,hostfwd=tcp::10022-:22 -net nic -nographic
Ответ или решение
Для обеспечения безопасного доступа к вашей виртуальной машине, запущенной с использованием QEMU, вам необходимо ограничить связывание портов только на локальный интерфейс. Это можно сделать, изменив параметры командной строки, которые вы используете для запуска QEMU.
Ваш текущий запуск команды:
qemu-system-x86_64 -hda debian.img -boot d -m 2G -net user,hostfwd=tcp::10022-:22 -net nic -nographic
Здесь параметр -net user,hostfwd=tcp::10022-:22
создает проброс порта, который связывает порт 10022 на хост-машине с SSH (порт 22) в виртуальной машине. Однако этот параметр связывает порт с любым доступным интерфейсом, что делает его доступным для сети, что и является причиной вашей обеспокоенности.
Решение
Чтобы ограничить проброс порта только на локальный интерфейс, вам нужно изменить команду связи, добавив 127.0.0.1
в настройку проброса порта. Вот как это сделать:
qemu-system-x86_64 -hda debian.img -boot d -m 2G -net user,hostfwd=tcp:127.0.0.1:10022-:22 -net nic -nographic
В этом примере hostfwd=tcp:127.0.0.1:10022-:22
указывает QEMU связывать порт 10022 только с локальным интерфейсом (то есть доступ к SSH будет возможен только изнутри вашей хост-машины). Это значит, что если кто-то попытается получить доступ к этому порту извне, доступ будет заблокирован.
Шаги
- Изменение команды: Обновите вашу текущую команду запуска QEMU с вышеупомянутым изменением.
- Перезапуск виртуальной машины: После обновления команды, перезапустите виртуальную машину, чтобы изменения вступили в силу.
- Проверка доступа: Убедитесь, что вы можете подключиться к виртуальной машине по SSH через локальный порт, используя команду:
ssh -p 10022 пользователь@127.0.0.1
Замените
пользователь
на имя пользователя, с которым вы хотите войти в виртуальную машину.
Дополнительные советы
- Безопасность: Убедитесь, что у вас есть надежные пароли и дополнительные меры безопасности, такие как ключи SSH, настроенные для доступа к виртуальной машине.
- Мониторинг сети: Рассмотрите возможность использования таких инструментов, как
netstat
илиss
, для мониторинга активных соединений и открытых портов, чтобы убедиться, что ваша конфигурация безопасна.
Следуя этим шагам, вы сможете запускать QEMU на своем домашнем сервере с безопасными параметрами, не беспокоясь о том, что порты будут доступны для злоумышленников.