○ 参考 OpenSSH (chroot) のインストール

・最新ではないので、セキュリティに問題があります

・クライアントからサーバへのSECUREな接続を目指します
・一般ユーザのためchrootします
・openssh-4.7p1のインストールと設定をします
・chroot-openssh-4.7p1.patchを当てています
・既存を削除し、オリジナルソースからインストールします
・公開鍵認証によるアクセスを基本とします

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

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

○関連サイト

:openssh-4.7p1.tar.gz (http://www.openssh.org/)
:chroot-openssh-4.7p1.patch  (http://sourceforge.net/projects/chrootssh/develop)

○参照ファイル

:パッケージの追加
:opensslのインストール

○インストール環境

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

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



○openssh-4.7p1

○opensshパッケージの削除・ユーザsshdの修正

・opensshは"Minimal install"でインストールされます
・ソースから入れるので削除します
・ユーザ情報は削除されないので修正して使います
・sshdユーザがないとinstallのときエラーがでます

[root@jupiter:~]
# service sshd stop
# rpm -e openssh openssh-clients openssh-server
# mv /etc/ssh /etc/ssh-OLD
# mkdir -p /var/empty/sshd
# usermod -d /var/empty/sshd -s /bin/false sshd

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

・openssl-develを必要とします

# cd /usr/src
[root@jupiter:/usr/src]
# tar zxvf openssh-4.7p1.tar.gz
# chown -R root:root openssh-4.7p1
# cd openssh-4.7p1
[root@jupiter:/usr/src/openssh-4.7p1]

・chrootパッチを当てます
・パッチは1つ上のディレクトリに置きます

# patch -p1 < ../chroot-openssh-4.7p1.patch
# make distclean
# ./configure CFLAGS="-O2 -march=pentium3" \
--sysconfdir=/etc/ssh \
--with-privsep-path=/var/empty/sshd \
--with-md5-passwords \
--with-tcp-wrappers \
--with-pam

・CFLAGS="-O2 -march=pentium3" (CPU最適化オプション)
・該当しない場合は指定しない
・オプションは半角を入れて続けて記入した方が良い

# make
# make install

・起動スクリプト・pam用ファイルをコピーします
・redhat用を使います

# cd contrib/redhat
[root@jupiter:/usr/src/openssh-4.7p1/contrib/redhat]
# cp sshd.init /etc/init.d/sshd
# cp sshd.pam /etc/pam.d/sshd
# cd /usr/src
[root@jupiter:/usr/src]
# tar jcvf openssh-4.7p1-090214.tar.bz2 openssh-4.7p1/

○sshd自動起動スクリプトを修正します

:/etc/rc.d/init.d/sshd

・省略

KEYGEN=/usr/local/bin/ssh-keygen
SSHD=/usr/local/sbin/sshd

・省略

start()

{
    # Create keys if necessary
    do_rsa1_keygen
    do_rsa_keygen
    do_dsa_keygen

    echo -n $"Starting $prog:"
#    initlog -c "$SSHD $OPTIONS" && success || failure
    $SSHD $OPTIONS && success || failure
    RETVAL=$?
    [ >$RETVAL> = 0 ] && touch /var/lock/subsys/sshd
    echo
}

・省略


○sshd_configファイルを修正します

/etc/ssh/sshd_config (別記)

・"Protocol2 PubkeyAuthentication"による認証を許可しています
・公開鍵認証のパスフレーズはローカルだけで使用されnet上を流れない
・suでrootになるためのパスワードはnet上を流れます
・rootログインの許可は、個人の判断でお願いします

○自動起動スクリプトをonにし、sshdを起動します

# cd ~ 
[root@jupiter:~]
# chkconfig --add sshd
# service sshd start

○tcp_wrappersで制御します

・tcp_wrappersで制御されるものでhosts.allowの既述以外は全て拒否します

:/etc/hosts.allowに追加します

ALL: 127.0.0.1
sshd: 192.168.0.

:/etc/hosts.deny

ALL: ALL

○iptablesの設定

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

:Netfilter (iptables) の設定を参照

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