Поиск по сайту:

SSH-сервер Drop Bear Chrooted HowTo


На этой странице

  1. Падение медведя
  2. Установка
    1. Скачать
    2. Извлечь
    3. Установить инструменты сборки
    4. Конфигурация
    5. Подборка
    6. Установка

    1. Структура
    2. Библиотеки
    3. Дополнительные библиотеки
    4. Файлы
    5. Устройства
    6. Пользователи
    7. Оболочка

    Это руководство написано, чтобы помочь вам установить SSH-сервер Drop Bear в среде chroot. Он охватывает следующие разделы:

    * Установка Drop Bear
    * Настройка Drop Bear
    * Настройка среды Chroot
    * Отладка Chrooted Drop Bear

    Отбросьте медведя

    Dropbear — это относительно небольшой сервер и клиент SSH 2. Это альтернативная облегченная программа для OpenSSH, предназначенная для сред с небольшим объемом памяти и ресурсов процессора, таких как встроенные системы.

    Все шаги в этом руководстве выполняются от имени пользователя root с Debian 9 в качестве операционной системы. Приведенные ниже шаги должны работать и для других ОС Linux.

    Установка

    Скачать

    wget -c https://matt.ucc.asn.au/dropbear/dropbear-2018.76.tar.bz2

    Извлекать

    tar jxf dropbear-2018.76.tar.bz2

    Установить инструменты сборки

    Для Debian 9 инструменты для компиляции программного обеспечения можно установить с помощью apt:

    apt-get install build-essential zlib1g-dev

    Конфигурация

    В нашей установке мы выбираем: /chroot/dropbear в качестве корневого пути нашей среды chroot. И только в образовательных целях мы меняем TCP-порт по умолчанию для ssh на 2222:

    cd dropbear-2018.76
    ./configure --prefix=/chroot/dropbear
    sed -i 's/22/2222/g' options.h

    Сборник

    Просто как тот:

    make

    Установка

    Процесс установки по умолчанию:

    make install

    Ключи

    Следующим шагом будет создание ключей dss и rsa для ssh-сервера dropbear.

    Сначала мы должны создать папку с ключами dropbears:

    mkdir -pv /chroot/dropbear/etc/dropbear

    А потом:

    /chroot/dropbear/bin/dropbearkey -t dss -f /chroot/dropbear/etc/dropbear/dropbear.dss
    /chroot/dropbear/bin/dropbearkey -t rsa -s 4096 -f /chroot/dropbear/etc/dropbear/dropbear.rsa

    Как видите, мы использовали путь среды chroot без необходимости в нашей иерархии путей распространения. Ключи Drop Bears уже установлены в нашу среду chroot сразу.

    Общие библиотеки

    Теперь нам нужно проверить все необходимые общие библиотеки, которые нужны dropbear для запуска в среде chroot:

    ldd /chroot/dropbear/sbin/dropbear

    Chroot-окружение

    Состав

    cd /chroot/dropbear/
    mkdir -pv dev/pts proc etc lib usr/lib var/run var/log lib/x86_64-linux-gnu lib64

    Библиотеки

    cp /lib/x86_64-linux-gnu/libutil.so.1 lib/x86_64-linux-gnu/
    cp /lib/x86_64-linux-gnu/libz.so.1 lib/x86_64-linux-gnu/
    cp /lib/x86_64-linux-gnu/libcrypt.so.1 lib/x86_64-linux-gnu/
    cp /lib/x86_64-linux-gnu/libc.so.6 lib/x86_64-linux-gnu/
    cp /lib64/ld-linux-x86-64.so.2 lib64/

    Дополнительные библиотеки

    Эти библиотеки в основном предназначены для процесса аутентификации.

    cp /lib/x86_64-linux-gnu/libnss_dns.so.2 lib/x86_64-linux-gnu/
    cp /lib/x86_64-linux-gnu//libnss_files.so.2 lib/x86_64-linux-gnu/

    Файлы

    Скопируйте необходимые файлы из корня в chroot:

    cp /etc/localtime etc/
    cp /etc/nsswitch.conf etc/
    cp /etc/resolv.conf etc/
    cp /etc/host.conf etc/
    cp /etc/hosts etc/
    touch var/log/lastlog
    touch var/run/utmp
    touch var/log/wtmp
    echo 'SSH' > etc/dropbear/dropbear.banner

    Устройства

    Теперь мы должны быть очень осторожны со следующим шагом нашего процесса. Нам нужно создать все необходимые устройства для запуска dropbear.

    (Помните, что мы всегда находимся на пути chroot, например, /chroot/dropbear.)

    mknod dev/urandom c 1 9
    chmod 0666 dev/urandom
    mknod dev/ptmx c 5 2
    chmod 0666 dev/ptmx
    mknod dev/tty c 5 0
    chmod 0666 dev/tty

    Пользователи

    Конечно, нам нужно добавить пользователей в нашу настройку chroot dropbear. Вы можете добавить существующего пользователя или создать нового. Я предпочитаю добавить существующего пользователя (например, ebal):

    grep ^ebal /etc/passwd > etc/passwd
    grep ^ebal /etc/group > etc/group
    grep ^ebal /etc/shadow > etc/shadow
    mkdir -pv home/ebal
    chown ebal.ebal !$

    Ракушка

    Каждому пользователю нужна оболочка! Но нам не нужно устанавливать bash, мы можем просто использовать busybox. Busybox — это легкая оболочка, объединяющая множество распространенных утилит Unix в небольшой исполняемый двоичный файл.

    cp /etc/shells etc/
    sed -i 's/bash/sh/' etc/passwd
    cd bin
    wget -c https://busybox.net/downloads/binaries/1.27.1-i686/busybox
    chmod 0755 busybox
    ln -s busybox sh
    cd ../

    Точки крепления

    Это самая важная вещь, которую мы (вы) должны сделать должным образом. Новой среде нужен доступ к терминалам (это необходимо для входа пользователя) и к файловой системе proc.

    mount -o bind /dev/pts dev/pts/
    mount -o bind /proc proc/

    Беги, падающий медведь

    Наконец, мы готовы запустить Drop Bear из среды chroot:

    chroot /chroot/dropbear/ \
    /sbin/dropbear \
    -b /etc/dropbear/dropbear.banner \
    -d /etc/dropbear/dropbear.dss \
    -r /etc/dropbear/dropbear.rsa \
    -F -E -w -g -p 2222

    Отлаживать

    Но если что-то пойдет не так, мы всегда можем отладить запущенный процесс с помощью strace:

    strace -f chroot /chroot/dropbear/ \
    /sbin/dropbear \
    -b /etc/dropbear/dropbear.banner \
    -d /etc/dropbear/dropbear.dss \
    -r /etc/dropbear/dropbear.rsa \
    -F -E -w -g -p 2222