○ OpenSSHのインストール 4 Router

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

・楕円曲線暗号モード(ECDH, ECDSA)のサポートが追加されています
・redhat(fedora)のopensslは(ECDH, ECDSA)を無効にしています

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

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

○関連サイト

:openssh-5.8p2.tar.gz (http://www.openssh.org/)

○参照ファイル

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

○インストール環境

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

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



○openssh-5.8p2

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

・opensshは[Base System]でインストールされます
・ソースから入れるので削除します
・sshdユーザがないとinstallのときエラーがでます

[root@venus:~]
# 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
[root@venus:/usr/src]
# tar zxvf openssh-5.8p2.tar.gz
# chown -R root:root openssh-5.8p2
# cd openssh-5.8p2
[root@venus:/usr/src/openssh-5.8p2]
# make distclean

・version.hの修正 SSH_PORTABLE 番号 (p1 → p2)

# vi version.h

# ./configure CFLAGS="-O2 -march=pentium3" \
--sysconfdir=/etc/ssh \
--localstatedir=/var \
--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
[root@venus:/usr/src/openssh-5.8p2/contrib/redhat]
# cp sshd.init /etc/init.d/sshd
# cp sshd.pam /etc/pam.d/sshd
# cd /usr/src
[root@venus:/usr/src]
# tar jcvf openssh-5.8p2-rt-110503.tar.bz2 openssh-5.8p2/

○sshd自動起動スクリプトを修正します (変更追加部分のみ)

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

・省略

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

・省略


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

:/etc/ssh/ssh_config

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

#    $OpenBSD: ssh_config,v 1.26 2010/01/11 01:39:46 dtucker Exp $

・省略

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を起動します

# cd ~
[root@venus:~]
# 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ラベルを修正

[root@venus:~]
# 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.