Уровень статьи средне-сложный. Я не буду объяснять, как завести пользователя, как прописать ему оболочку, как настроить аутентификацию по ключам. Информации об этом валом.
Сегодня мы рассмотрим как сделать «тупиковую машину». Под ней я понимаю машину, попасть на которую можно через интернет по ssh, но на самой этой машине интернета нет.
Заинтриговал? Мозг немного взорвался? Короче, делаем ssh-прокси.
Для чего это нужно?
Это можно использовать для раздачи доступа сторонним пользователям для управления ресурсами внутри сети, для студентов, работающих на удалёнке. (студенты IT — самые агрессивные пользователи).
Короче для минимизации рисков информационной безопасности. Скажу сразу, это не панацея. Инфу/файлы можно таскать через буффер обмена. Но много информации так не передашь.
Поехали!
Понадобится 2 машины: Бастионная (Jump-сервер, ssh-прокси) — машина, которая торчит открытым портом ssh в интернет.
И Тупиковая — машина (возможно виртуалка), с открытым в локалку портом ssh, на которой будет работать пользователь. И у которой нет доступа в инет (закрыт на периметровом маршрутизаторе. Или не прописаны шлюзы.
Основное условие у пользователя не должно быть root, а то сменит IP/MAC, пропишет шлюзы…). (допустим ее локальный ip 10.10.10.10).
С Бастионной машины должен быть доступ к Тупиковой по ssh, внутри локалки.
НА БАСТИОННОЙ МАШИНЕ. (аутентификация по ключам уже настроена, ssh защищена от быстрого перебора, для этой группы пользователей запрещен проброс портов)
- Заводим пользователя, например, Tagd83j6 с паролем >=20 символов (не пригодится)
- Добавляем публичный ключ Пользователя. (Он обычно с парольной фразой) в ~/.ssh/authorized_keys
- Генерим ключ без пароля для доступа к Тупиковой машине. (лучше ed25519).
- Домашней папке Tagd83j6 создаем файл типа shell10.sh (555 root:root)
set -o errexit
set -o nounset
set -o pipefail
ssh $USER@10.10.10.10 2>/dev/null
sudo usermod -s /home/Tagd83j6/shell10.sh Tagd83j6
НА ТУПИКОВОЙ МАШИНЕ (аутентификация по ключам уже настроена)
- Заводим пользователя Tagd83j6 с паролем >=20 символов (не пригодится)
- добавляем публичный ключ(с Бастионной машины. п3) в ~/.ssh/authorized_keys
Все. Теперь, если на Бастионной машине от root набрать
su Tagd83j6
Сразу должны попасть на Тупиковую машину. Собственно все.
Аутентификация пользователя производится на Бастионной машине!!!
Вопросы, критика, плюсики приветствуется.