○ OpenSSHのインストール 4 Router

*クライアントからサーバへのSECUREな接続を目指します
*openssh-5.5p1のインストールと設定をします
*既存を削除し、オリジナルソースからインストールします
*公開鍵認証によるアクセスを基本とします
*make はメンテナンスマシンで行っています

**以降はコメントです
*ソースの取得、削除は略します
*エディタ、ファイラーの操作は省略します
*ソースを展開したら説明文 (英文) を読みましょう
*Enterキーを省略します

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

○関連サイト

:openssh-5.5p1.tar.gz (http://www.openssh.org/)

○参照ファイル

パッケージの追加
最初の設定 (Router)
opensslのインストール

○インストール環境

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

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



○openssh-5.5p1

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

*opensshは[Base System]でインストールされます
*ソースから入れるので削除します
*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

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

# cd /usr/src
# tar zxvf openssh-5.5p1.tar.gz
# chown -R root:root openssh-5.5p1
# cd openssh-5.5p1
# make distclean
# ./configure CFLAGS="-O2 -march=pentium3" \
--sysconfdir=/etc/ssh \
--with-ssl-dir=/usr/local \
--with-privsep-path=/var/empty/sshd \
--with-md5-passwords \
--with-tcp-wrappers \
--with-pam \
--with-ipaddr-display

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

# make
# make uninstall
# 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-5.5p1-rt-100519.tar.bz2 openssh-5.5p1/

○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
}

*省略


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

:/etc/ssh/ssh_config

*"Ciphers"でCTRを優先的に使う (openssh-3.7以降 openssh-5.5ではデフォルト)

*省略

ForwardAgent yes

*省略

Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc

*省略


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

/étc/ssh/sshd_config (別記)

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

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

# chkconfig --add sshd
# service sshd start

○tcp_wrappersで制御します

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

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

ALL: 127.0.0.1
sshd: ALL

:/etc/hosts.deny

ALL: ALL

○selinuxへの対応

:/etc/pam.d/sshd

*selinuxパッチを当てない場合

#%PAM-1.0
auth required pam_stack.so service=system-auth
auth required pam_nologin.so
account required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
session required pam_selinux.so close
session required pam_stack.so service=system-auth
session required pam_selinux.so multiple open

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

# restorecon -Rv /etc
# restorecon -Rv /usr/local
# restorecon -Rv /var/empty
# restorecon -RFv /home

○iptablesの設定

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

Netfilter (iptables) の設定参照

*WAN側からはport722、LAN側からはport22で接続します

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