GNU/Linux >> Linux の 問題 >  >> Linux

ChrootされたDropBearSSHサーバーのハウツー

このチュートリアルは、DropBearSSHサーバーをchroot環境にインストールするのに役立つように作成されています。以下のセクションについて説明します。

*DropBearのインストール
*DropBearのセットアップ
*Chroot環境のセットアップ
*ChrootedDropBearのデバッグ

ドロップベア

Dropbearは、比較的小規模なSSH2サーバーおよびクライアントです。これは、OpenSSHの代替の軽量プログラムであり、組み込みシステムなど、メモリとプロセッサのリソースが少ない環境向けに設計されています。

https://matt.ucc.asn.au/dropbear/dropbear.html

このチュートリアルのすべてのステップは、オペレーティングシステムとしてDebian9を使用してrootユーザーとして実行されます。以下の手順は、他のLinuxOSでも機能するはずです。

インストール ダウンロード
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環境のルートパスとして/ chroot/dropbearを選択します。また、教育目的でのみ、sshのデフォルトのTCPポートを2222に変更します:

cd dropbear-2018.76
./configure --prefix=/chroot/dropbear
sed -i 's/22/2222/g' options.h
コンパイル

簡単です:

make
インストール

デフォルトのインストールプロセス:

make install
キー

次のステップは、dropbearsshサーバー用のdssキーとrsaキーを作成することです。

最初にドロップベアのキーフォルダを作成する必要があります:

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 Bearのキーは、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/
ファイル

必要なファイルをrootから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
デバイス

プロセスの次のステップには、細心の注意を払う必要があります。ドロップベアを実行するために必要なすべてのデバイスを作成する必要があります。

(私たちは常に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
ユーザー

もちろん、chrootdropbearの設定にユーザーを追加する必要があります。既存のユーザーを追加するか、新しいユーザーを作成するかを選択できます。既存のユーザー(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/
ドロップベアを実行

最後に、chroot環境からDropBearを実行する準備が整いました:

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

Linux
  1. Ssh –実行中のアプリケーションを別のXサーバーに移動しますか?

  2. Ssh、Sudo、それからダウンロード?

  3. 別のサーバーを使用してサーバーにSSH接続する方法は??

  1. AndroidからLinuxでSSH接続する方法

  2. LinuxでパスワードなしのSSHを設定する方法

  3. SSHのトラブルシューティング

  1. SSHセッションを存続させる方法

  2. SSH ログインが遅いのはなぜですか?

  3. .bashrc をソースにしない SSH