○ dropbearのインストール 4 Router

・複数のsshアクセスルートを確保し、相互のメンテナンスに利用します
・opensshと同等に、サーバへのSECUREな接続を目指します
・dropbear-2016.74をソースからインストールし、設定します
・opensshで作成した公開鍵を読み込んで使用します
・make はメンテナンスマシンで行っています

・ソースの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文を読みましょう
・Enterキーを省略します

・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます

○関連サイト

:dropbear-2016.74.tar.bz2 (https://matt.ucc.asn.au/dropbear/dropbear.html)

○参照ファイル

パッケージの追加
最初の設定 (Router)

○インストール環境

:OS CentOS 6.8
:selinux permissive
:インストール先  /usr/local/ (デフォルト)
:作業 ~/src
:言語 LANG=en_US.UTF-8
:ユーザー rootで実行

・メンテナンスの場合は一般ユーザから行います



○dropbear-2016.74

○ソースの展開・インストール

# cd ~/src
[root@venus:~/src]
# tar jxvf dropbear-2016.74.tar.bz2
# chown -R root:root dropbear-2016.74
# cd dropbear-2016.74
[root@venus:~/src/dropbear-2016.74]
# make clean

・CFLAGS="-O2 -march=i686 -mtune=atom" (CPU最適化オプション)
・該当しない場合は指定しない

# ./configure CFLAGS="-O2 -march=i686 -mtune=atom" \
--sysconfdir=/etc --localstatedir=/var

・options.hの修正(下記参照)

# vi options.h

・コンパイル

# make

・インストール (アップデートは別項参照)

# make install

# cd ~/src
[root@venus:~/src]
# tar jcvf dropbear-2016.74-rt-160723.tar.bz2 dropbear-2016.74/

・専用ディレクトリの作成

# mkdir /etc/dropbear

:~/src/dropbear-2016.74/options.h

・SFTPSERVER_PATHをopensshのインストールに合わせる

#ifndef SFTPSERVER_PATH
#define SFTPSERVER_PATH "/usr/local/libexec/sftp-server"
#endif

・dropbearのインストールに合わせる

#define DROPBEAR_PATH_SSH_PROGRAM "/usr/local/bin/dbclient"

・DEFAULT_PATHをopensshに合わせる

#define DEFAULT_PATH "/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin"

○アップデート

・新規インストールの場合は、次項へ進みます
・ソースの展開・コンパイルの表記は略します

・アップデート

# cd ~/src/dropbear-2016.74
[root@venus:~/src/dropbear-2016.74]
# make install

・selinuxラベルを修正 (有効な場合)

# restorecon -Rv /etc
# restorecon -Rv /var
# restorecon -Rv /usr/local

・再起動します

# service dropbear restart

○dropbearデーモンの起動

: /etc/sysconfig/dropbear

・"-s" パスワードログインの禁止
・"-w" rootログインの禁止
・"-p 192.168.0.1:922" 接続を待ち受けるアドレス:ポート

OPTIONS="-s -w -p 192.168.0.1:922"

: /etc/rc.d/init.d/dropbear (詳細別記)

・dropbearデーモンを起動します

# cd ~
[root@venus:~]
# service dropbear start
# chkconfig --add dropbear

・起動の確認

# ps ax | grep dropbear
# netstat -lnp | grep dropbear

○公開鍵の作成

・~/.ssh/authorized_keysを読み込みます (サーバ側)
・公開鍵の作成はssh-keygen(openssh)で行います --省略--

○selinuxへの対応 (selinuxが有効の場合)

:新規インストールファイルのselinuxラベルを修正

[root@venus:~]
# restorecon -Rv /etc
# restorecon -Rv /var
# restorecon -Rv /usr/local

○iptablesの設定

・Netfilter (iptables) で制御している場合、ポートを開けてください

Netfilter (iptables) の設定参照



○クライアントからの接続

○sshでの接続

・~/.ssh/known_hostsに情報が保存されている場合は削除します(クライアント側)
・ポート番号を指定してアクセスします

[sola@mars ~]
$ ssh -p 922 sola@venus.528p.com



○xinetdで起動 (参考)

○dropbearデーモンの停止

・dropbearがデーモンモードで起動している場合、停止します

[root@venus:~]
# service dropbear stop
# chkconfig --del dropbear

○鍵の作成

・/etc/dropbearに鍵が存在しない場合、作成します

[root@venus:~]
# cd /etc/dropbear
[root@venus:/etc/dropbear]
# dropbearkey -t ecdsa -f dropbear_ecdsa_host_key
# dropbearkey -t rsa -f dropbear_rsa_host_key
# dropbearkey -t dss -f dropbear_dss_host_key

○/etc/servicesの修正

・dropbearの設定を追加します (接続ポートを指定します)

dropbear        922/tcp

○/etc/hosts.allowの修正

・dropbearの設定を追加します (localからの接続のみ許可します)

dropbear: 192.168.0.

○/etc/xinetd.d/dropbearの追加

・dropbearの設定を追加します (localからの接続のみ許可します)
・"-i" サービスプログラムモード (inetd,xinetdなどから起動する場合)

service dropbear
{
    socket_type     = stream
    only_from       = 192.168.0.0/24
    wait            = no
    user            = root
    protocol        = tcp
    server          = /usr/local/sbin/dropbear
    server_args     = -i -s -w
    disable         = no
}

○xinetdの再起動

# cd ~
[root@venus:~]
# service xinetd restart

・起動の確認

# netstat -lnp | grep xinetd

○ Copyright(c) 528p.com All Rights Reserved.