○ 参考 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/)

○参照ファイル

パッケージの追加
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のときエラーがでます

# 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
# tar zxvf openssh-4.7p1.tar.gz
# chown -R root:root openssh-4.7p1
# cd 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
# cp sshd.init /etc/init.d/sshd
# cp sshd.pam /etc/pam.d/sshd
# cd /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ファイルを修正します

/étc/ssh/sshd_config (別記)

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

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

# 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.