サーバーを構築すると常に不正アクセスの脅威にさらされます。
SSH2の導入は、必須と言えるべき時代になりました。
玄箱を導入した時点ではSSHは導入されていますが、私の環境では公開鍵方式のアクセスがうまくできませんでした。
そこで、SSHを入れ替える事にします。
この変更の場合、telnetとの接続ができておりませんとサーバーとのアクセスが一切できなくなりますので、telnetで接続できる事を確認しておきます。
[root@meckk webmail]# yum -y remove openssh
Loading "installonlyn" plugin
Setting up Remove Process
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package openssh.ppc 0:4.3p2-19.fc6 set to be erased
--> Running transaction check
Setting up repositories
core 100% |=========================| 1.1 kB 00:00
updates 100% |=========================| 1.2 kB 00:00
extras 100% |=========================| 1.1 kB 00:00
Reading repository metadata in from local files
Excluding Packages in global exclude list
Finished
--> Processing Dependency: openssh = 4.3p2-19.fc6 for package: openssh-server
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Package openssh-server.ppc 0:4.3p2-19.fc6 set to be erased
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Removing:
openssh ppc 4.3p2-19.fc6 installed 768 k
Removing for dependencies:
openssh-server ppc 4.3p2-19.fc6 installed 547 k
Transaction Summary
=============================================================================
Install 0 Package(s)
Update 0 Package(s)
Remove 2 Package(s)
Downloading Packages:
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Removing : openssh ######################### [1/2]
warning: /etc/ssh/sshd_config saved as /etc/ssh/sshd_config.rpmsave
Removing : openssh-server ######################### [2/2]
Removed: openssh.ppc 0:4.3p2-19.fc6
Dependency Removed: openssh-server.ppc 0:4.3p2-19.fc6
Complete!
[root@meckk ~]#
新しいSSHを再構築します。
[root@meckk webmail]# wget http://chrootssh.sourceforge.net/download/openssh-4.5p1-chroot.tar.bz
2
--10:29:46-- http://chrootssh.sourceforge.net/download/openssh-4.5p1-chroot.tar.bz2
chrootssh.sourceforge.net をDNSに問いあわせています... 66.35.250.209
chrootssh.sourceforge.net|66.35.250.209|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 777528 (759K) [application/x-tar]
Saving to: `openssh-4.5p1-chroot.tar.bz2'
100%[=================================================>] 777,528 242K/s in 3.5s
10:29:50 (218 KB/s) - `openssh-4.5p1-chroot.tar.bz2' を保存しました [777528/777528]
展開します。
[root@meckk webmail]# tar jxvf openssh-4.5p1-chroot.tar.bz2
openssh-4.5p1-chroot/
openssh-4.5p1-chroot/match.h
openssh-4.5p1-chroot/CREDITS
openssh-4.5p1-chroot/ChangeLog
openssh-4.5p1-chroot/INSTALL
openssh-4.5p1-chroot/LICENCE
openssh-4.5p1-chroot/Makefile.in
openssh-4.5p1-chroot/OVERVIEW
openssh-4.5p1-chroot/README
openssh-4.5p1-chroot/README.dns
途中省略
openssh-4.5p1-chroot/ssh-keysign.0
openssh-4.5p1-chroot/sshd_config.0
openssh-4.5p1-chroot/ssh_config.0
[root@meckk ~]#
2箇所の変更を行います。
[root@meckk webmail]# vi openssh-4.5p1-chroot/contrib/redhat/openssh.spec
# Do we want to disable building of x11-askpass? (1=yes 0=no)
%define no_x11_askpass 0
↓
%define no_x11_askpass 1 ← x11_askpassの無効化
# Do we want to disable building of gnome-askpass? (1=yes 0=no)
%define no_gnome_askpass 0
↓
%define no_gnome_askpass 1 ← gnome_askpassの無効化
以下の手順は、Fedora で自宅サーバーを構築のサイトの指示通りです。
[root@meckk webmail]# rm -rf openssh-4.5p1-chroot/contrib/{aix,hpux,caldera,suse,cygwin,solaris}
展開してできたディレクトリをリネームします。
[root@fedora ~]# mv openssh-4.5p1-chroot openssh-4.5p1
リネーム後のディレクトリを圧縮します。
[root@fedora ~]# tar czvf openssh-4.5p1.tar.gz openssh-4.5p1/
不要となったリネーム後のディレクトリを削除します。
[root@fedora ~]# rm -rf openssh-4.5p1
インストールに必要なパッケージのインストール
[root@fedora ~]# yum -y install openssl-devel
インストールに必要なパッケージのインストール
[root@fedora ~]# yum -y install pam-devel
SSHを構築します。
これにはかなりの時間がかかります。
[root@meckk webmail]# rpmbuild -tb --clean openssh-4.5p1.tar.gz
実行中(%prep): /bin/sh -e /var/tmp/rpm-tmp.54662
+ umask 022
+ cd /usr/src/redhat/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ cd /usr/src/redhat/BUILD
+ rm -rf openssh-4.5p1
+ /bin/gzip -dc /root/openssh-4.5p1.tar.gz
+ tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd openssh-4.5p1
++ /usr/bin/id -u
途中省略
ファイルの処理中: openssh-debuginfo-4.5p1-1
伸張ファイルの検査中: /usr/lib/rpm/check-files /var/tmp/openssh-4.5p1-buildroot
書き込み完了: /usr/src/redhat/RPMS/ppc/openssh-4.5p1-1.ppc.rpm
書き込み完了: /usr/src/redhat/RPMS/ppc/openssh-clients-4.5p1-1.ppc.rpm
書き込み完了: /usr/src/redhat/RPMS/ppc/openssh-server-4.5p1-1.ppc.rpm
書き込み完了: /usr/src/redhat/RPMS/ppc/openssh-debuginfo-4.5p1-1.ppc.rpm
実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.23099
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd openssh-4.5p1
+ rm -rf /var/tmp/openssh-4.5p1-buildroot
+ exit 0
実行中(--clean): /bin/sh -e /var/tmp/rpm-tmp.23099
+ umask 022
+ cd /usr/src/redhat/BUILD
+ rm -rf openssh-4.5p1
+ exit 0
[root@meckk ~]#
以下を構築して終了です。
[root@meckk ~]# rpm -Uvh /usr/src/redhat/RPMS/ppc/openssh-4.5p1-1.ppc.rpm
準備中... ########################################### [100%]
1:openssh ########################################### [100%]
[root@meckk ~]# rpm -Uvh /usr/src/redhat/RPMS/ppc/openssh-server-4.5p1-1.ppc.rpm
準備中... ########################################### [100%]
1:openssh-server ########################################### [100%]
[root@meckk ~]# rpm -Uvh /usr/src/redhat/RPMS/ppc/openssh-clients-4.5p1-1.ppc.rpm
準備中... ########################################### [100%]
1:openssh-clients ########################################### [100%]
[root@meckk ~]#
SSHサーバーの起動スクリプトを修正するように指示がありますのでその通りにします。
[root@meckk ~]# vi /etc/rc.d/init.d/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
}
ホストキー(RSA1)の再作成を行います。
この辺は手順は、Fedora で自宅サーバーを構築のサイトの指示通りに行いました。
[root@meckk ~]# ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N ""
Generating public/private rsa1 key pair.
/etc/ssh/ssh_host_key already exists.
Overwrite (y/n)? y
Your identification has been saved in /etc/ssh/ssh_host_key.
Your public key has been saved in /etc/ssh/ssh_host_key.pub.
The key fingerprint is:
41:4f:30:53:7e:a2:c1:a5:aa:50:39:0e:8b:cd:12:8b root@meckk.com
ホストキー(RSA2)再作成を行います。
[root@fedora ~]# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ""
Generating public/private rsa key pair.
/etc/ssh/ssh_host_rsa_key already exists.
Overwrite (y/n)? y
Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.
The key fingerprint is:
a2:ad:b1:ff:94:ed:cb:85:6d:32:78:c7:e5:15:4a:50 root@meckk.com
ホストキー(DSA)再作成を行います。
[root@fedora ~]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ""
Generating public/private dsa key pair.
/etc/ssh/ssh_host_dsa_key already exists.
Overwrite (y/n)? y
Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
The key fingerprint is:
c2:10:be:ec:53:c3:b0:07:b4:da:c3:49:1c:02:a5:68 root@meckk.com
SSHサーバーを起動します。
[root@meckk ~]# /etc/rc.d/init.d/sshd start
sshd を起動中: [ OK ]
[root@meckk ~]#
SSHサーバーの自動起動を設定します。
[root@meckk ~]# chkconfig sshd on
設定の確認を行います。
[root@meckk ~]# chkconfig --list sshd
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@meckk ~]#
これまでの手順は、CPUがppcとi386の違いは若干ありましたが、他サイトの解説と基本的な設定は全く同じです。
鍵方式の設定の手順も、何ら変わる事はありませんので、ここではその手順の記載は省略します。
私の場合は、鍵方式でのみの認証方式にしましたので今までと安心感がまるで違います。
サーバーを運用していると、途絶える事なくサーバー内への進入を試みられますので鍵方式は必須だとさえ思っております。