sshdの設定(DSA認証)

Posted by: admin at 11 月 8th, 2008

FreeBSDはデフォルトでsshdが起動するようになっています。
# which sshd
/usr/sbin/sshd
ですので、あとは/etc/ssh/sshd_configAllowUsers USERNAMEとするだけですが、ブルートフォースアタック(総当たり攻撃)対策としてDSA認証にしておくべきです。
アクセスログを見ればわかりますが、どこぞの国のクラッカーorボットか分りませんが、非常に多くのアタック痕跡が見つかるはずです。

設定ファイルの書き換え

/etc/ssh/sshd_config
Protocol 2
SSH2 プロトコルの使用
PermitRootLogin no
root でのログインの不可
PubkeyAuthentication yes
DSA 認証の使用
PasswordAuthentication no
PermitEmptyPasswords no
パスワード認証の不可とパスワード無しの不可
ChallengeResponseAuthentication no
これをnoにしておかないと、パスワード認証が行われてしまう。

書き換えが終わったらsshdを再起動します。
# /etc/rc.d/sshd restart
または、以前のバージョンではエラーになる場合もあるので、その場合は以下の方法が確実です。
# ps aux | grep sshd
# kill -HUP PID

秘密鍵(id_dsa)と公開鍵(id_dsa.pub)を生成

sshアクセスを有効にしたいユーザでログインします。(root以外)
下記コマンドを入力します。
$ ssh-keygen -d
Generating public/private dsa key pair.
Enter file in which to save the key (/home/USERNAME/.ssh/id_dsa):   [Enter]
Created directory '/home/USERNAME/.ssh'.
Enter passphrase (empty for no passphrase):                     [PASSWORD][Enter]
Enter same passphrase again:                                    [Re PASSWORD][Enter]
Your identification has been saved in /home/USERNAME/.ssh/id_dsa.
Your public key has been saved in /home/USERNAME/.ssh/id_dsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx USERNAME@HOST.DOMAIN.NAME

公開鍵(id_dsa.pub)をリネームする

$ cd /home/USERNAME/.ssh
$ mv id_dsa.pub authorized_keys
$ chmod 0600 authorized_keys

秘密鍵(id_dsa)をクライアントマシンへ移動する

ssh接続をしたいクライアントマシンに/home/USERNAME/.ssh/id_dsaを移動します。セキュリティを考慮する場合、FTP等では無くUSBメモリーやフロッピーディスクでおこなうと良いですが、使用したメディアの処理にはご注意を。
id_dsaファイルの保存先は、クライアントマシンのターミナルソフトウェアによって異なりますので、そちらのマニュアルを参照してください。
個人的にはオープンソースのTera Termがお勧めです。