ぽよメモ

レガシーシステム考古学専攻

初期設定 セキュリティ強化編

つい先日、京都大学東京大学の合格発表がありましたね。僕の知り合いの浪人生たちも結構な人数が受かってくれたので良かったです。落ちた人は後期頑張ってください………。
これもラズパイが来た初日に済ませてしまったのですが、もう少しセキュリティ面での教科を施します。この前の記事ではユーザーのパスワードを入力していましたが、もう少し強固なセキュリティにしてみようと思います。
SSHを公開鍵認証による接続に変えます。やはりパスワードでは総当りで解かれてしまう可能性がありますしね。
WinとMacでまたそれぞれ手順が異なります(めんどくさい

Windows(PuTTY)

PuTTYgenを起動します。スタート画面からすべてのプログラムを見ると、PuTTYの本体と同じツリーにいるはずです。スタート画面に登録していない場合は、PuTTYをインストールしたディレクトリの中にいると思います(たぶん f:id:pudding_info:20160823131210j:plain 何も考えずGenerateします。 ウィンドウ上でマウスカーソルをぐるぐるするとプログレスバーが進みます。なんかマウスの動きからキーを生成するとか聞いたような聞かなかったような。 f:id:pudding_info:20160823131226j:plain key passphraseとconfirm passphraseに覚えやすいパスワードを入れます。*1
ここでsave public keyは押さずに上部にあるダイアログ内の文字をすべてコピーします。
この前と同じようにユーザー名とパスワードでRaspberryPiにSSHでログインします。
おそらく初期状態ならば.sshというフォルダが生成されていないので、

mkdir .ssh

とします
権限を変更するために

chmod 700 .ssh

とし、このディレクトリ内に公開鍵を置きます。

vim .ssh/authorized_keys

先ほどコピーしたものをペーストし保存します。

chmod 600 .ssh/authorized_keys

これでとりあえずRaspberryPiのほうは準備完了です。
PuTTYgenに戻り、save privete keyをおします。適当な場所に保存しておきます。
PuTTYの左側ツリーの中からConnection>SSH>Authを探し出します。Authの中のPrivate key file for authenticationのところにあるBrowseをおし、先ほど生成した秘密鍵を指定します。((RaspberryPiようにセッションを保存しておくと良いです
あとは通常通りSSHし、ユーザ名を入れると鍵の認証が行われ、鍵を生成したときに設定したパスワードを入力するとログインが可能になります。

Mac

ターミナルで

mkdir .ssh #ディレクトリが無ければ
chmod 700 .ssh
ssh-keygen -t rsa #パスワードを設定するかどうかは自由
#パスワードを設定しない場合はEnter押しまくってたら大丈夫

鍵が生成されているかどうかを確認しましょう。

cd .ssh
ls -l

として

-rw-------   1 xxx xxxx 1679  5  5 23:31 id_rsa
-rw-r--r--   1 xxx xxxx  420  5  5 23:31 id_rsa.pub

このように表示されていればOKです。
id_rsa.pubの中身をエディターなりなんなりでコピーし、SSHでRaspberryPiに接続。Winの時と同様にauthorized_keysファイルに先ほどコピーした中身をペーストします。
Macに戻り、MacSSHのプロファイルを設定します。
vim ~/.ssh/configとし、SSHの設定を開きます。

Host RaspberryPi #適当に自分でホスト名を決める
HostName 192.168.x.xx #RaspberryPiのIPアドレス
Port 22 #SSH用に開けてあるポート番号、デフォルトは22
User Pi
IdentityFile  ~/.ssh/id_rsa #秘密鍵の場所を指定

適宜変更して保存します。 すると ssh 設定したホスト名とするだけで簡単に接続できるようになります。パスワードも一度入力すればキーチェーンに保存され、それ以降の入力が不要になります。
更にセキュリティを高めるため、Raspberry Pi側の設定も変更していきます。

cd /etc/ssh
#バックアップを取る場合はsudo cp sshd_config sshd_config.org
sudo vim sshd_config

とし、sshd_configを編集していきます。
今回することは以下の項目

  • root権限でのsshログインを禁止
  • SSH用に解放するポートの変更
  • パスワードによるSSH接続の禁止
  • (もし公開鍵認証がうまく行かなかった場合は)公開鍵認証の許可

を行います。最後の項目はすでにYesになっている場合があるので、各自で判断してください。

#PermitRootLogin yes
PermitRootLogin no
#Port 22
Port 50022 #適当に
#PasswordAuthentication yes
PasswordAuthentication no
#RSAAuthentication    yes
#PubkeyAuthentication yes

これらの項目を探しだして変更を加えてください。
保存したら sudo /etc/init.d/ssh restartまたはsudo shutdown -r nowとし、再起動をかけて再びSSH接続してみましょう。ちゃんと接続できれば完了です。
また、使用するポートの変更に伴い、PuTTYMacSSHの設定も変更しないと接続できません。
とりあえずこれでセキュリティはしっかりしたはずです。
次はSamba及びNetatalkを導入し、MacとWinから閲覧及びアップロード可能なファイルサーバにしてみようと思います。

*1:ログイン時に使います。オプションなのでなくても良い