Raspberry pi のセキュリティ関連設定
前回のユーザー名変更に引き続き、セキュリティ関連のやったことの覚え書き。
sudoコマンド実行時のパスワード必須化について
ユーザー名を変更すると、sudoコマンド実行時にパスワードを求められるようになる。
/etc/sudoers.d/010_pi-nopasswd
にユーザーpiはパスワード不要、という記述がされているため、必要に応じて削除したり変更したりする。
$ sudo nano /etc/sudoers.d/010_pi-nopasswd
SSH接続のポート番号変更
SSH接続のポート番号を広く知られる初期設定の22番から変更することで、悪意のあるロボットなどから攻撃を受けにくくする。
ポート番号は0~65535まであり、以下のように三つにわけられる。
ポート番号 | 名称 | 説明 |
---|---|---|
0~1023 | ウェルノウンポート | 何に使用するか決められているポート。使用できないものが多い。 |
1024~49512 | 登録ポート | 色々なソフトウェアによって割り当てられるポート。使用できるものもあるが、重複する可能性がある。 |
49513~65535 | ダイナミック/プライベートポート | 自由に使えるポート。 |
設定ファイルの記述「Port 22」のコメントアウトを外し、「Port 56789」など、49513~65535の任意のポート番号を指定。
$ sudo nano /etc/ssh/sshd_config
sshを再起動して、問題なく起動することを確認。
$ sudo /etc/init.d/ssh restart
ログアウトしてから、
指定外のポート番号では接続できないことをチェック。
ポート番号を指定して接続できることを確認。
$ exit # 接続できない $ ssh usr@198.xxx.xx.xx # 接続できない $ ssh usr@198.xxx.xx.xx -p 22 # 接続できる $ ssh usr@198.xxx.xx.xx -p 56789
公開鍵認証の作成と設定
RSA鍵のペアを作成。
$ ssh-keygen -t rsa
鍵ファイルの保存場所を聞かれるので、/Users/tool-lab/.ssh/id_rsa_raspi に指定。(そのままにする場合は入力せずにEnterでok) パスフレーズも任意の値を設定。設定しない場合はそのままEnter。
ポート番号、送信ファイル、ユーザー名、IPアドレスを指定してscpコマンドで公開鍵ファイルを転送する。
$ scp -P 56789 .ssh/id_rsa_raspi.pub user@192.168.xx.xx
ラズパイにログイン後、.sshディレクトリを作成し、その中のauthorized_keysファイルに公開鍵情報を書き出し、パーミッションを変更して、ホームディレクトリの公開鍵ファイルは削除する。
$ mkdir .ssh $ cat id_rsa_raspi.pub >> .ssh/authorized_keys $ chmod 700 .ssh $ chmod 600 .ssh/authorized_keys $ rm id_rsa_raspi.pub
ポート番号を指定したときの設定ファイルをまた開いて、
$ sudo nano /etc/ssh/sshd_config
以下の記述を一番下に追加。
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys PasswordAuthentication no
保存して、sshサーバーを再起動。
$ sudo /etc/init.d/ssh restart
ログアウト。
$ exit
PCのssh設定を変更。
$ nano .ssh/config
以下の記述を追加して保存。IPアドレス、ユーザー名、ポート番号はそれぞれ設定した値を入れる。
Host raspi HostName IPアドレス User ユーザー名 Port ポート番号 IdentityFile ~/.ssh/id_rsa_raspi
以下のコマンドでログインできるようになれば成功!
$ ssh raspi
つづく。