Raspberry Piのセキュリティー設定 for Webサーバー用 パート2

Webサーバー用のセキュリティー設定のパート2です。
今回で一応のセキュリティはOKという状態になります。

今回やること
ファイヤーウォール(ufw)の設定
公開鍵認証を使ったSSH接続


ファイヤーウォール、ufwの設定

sudo apt-get install ufw
・・・インストール完了

とりあえずステータスを確認
sudo ufw status
Status: inactive

SSHポート(22から61209に変更済み)
sudo ufw limit 61209
Rules updated

limitにすると、30秒間に6回アクセスた接続を拒否します。

Webサーバー用なのでポート80を許可します。
sudo ufw allow 80/tcp
Rules updated

ファイヤウォールを有効にします。
sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

最後にステータスを確認。
sudo ufw status
Status: active
To                         Action      From
--                         ------      ----
61209                      LIMIT       Anywhere
80/tcp                     ALLOW       Anywhere

これでファイヤーウォールの設定が完了です。

公開鍵認証を使ったSSH接続

最後に公開鍵認証を使ってSSH接続の接続をします。

イメージ的には公開鍵と秘密鍵を作って、
公開鍵をRaspberry Piにアップロードして、
秘密鍵を使ってSSH接続をする感じです。

秘密鍵を持っていない人はSSH接続ができない代物です。
秘密鍵をなくすと自分までアクセスできなくなるので注意が必要です。

ここではPuTTYのKye Generator、puttygenを使います。

設定
SSH-2 RSA
2048bits

SSH-2 DSAもありますがRSAが推奨らしいです。



Generateというボタンをクリックして、
マウスを適当に動かします。
(マウスを動かすことで乱数を作るんだとか)

少しすると鍵ができあがるので、それにパスワードを設定して保存します。

Key passphrase(Confirm..にも)に適当なパスワードを入力します。

そして、Save public keyとSave private keyを押して公開鍵と秘密鍵を保存します。

Save public key(公開鍵)
id_rsa.pubで保存

Save private key(秘密鍵)
id_rsa.ppkで保存


id_rsa.pubをRaspberry Piにアップロード

パソコンのコマンドプロンプトからputtyのフォルダにいって下記のようなコマンドを入力します。
pscp -pw "自分のパスワード" -P SSHのポート番号 id_rsa.pub username@Raspberry PiのローカルIPアドレス:/home/username/id_rsa.pub

もう少し具体的に書くと下記のようになります。
pscp -pw "My Password" -P 61209 id_rsa.pub username@192.168.0.3:/home/username/id_rsa.pub
Store key in cashe? (y/n) y
これでRaspberry Piにid_rsa.pubがアップロードされます。

アップロードしたid_rsa.pubをOpenSSH用に使えるようにします。

Raspberry Piのユーザフォルダから
cd /home/username/
mkdir .ssh
chmod 700 .ssh
mv id_rsa.pub .ssh/id_rsa.pub
cd .ssh
ssh-keygen -i -f id_rsa.pub >> authorized_keys
これでOpenSSH用のauthorized_keysができました。

Puttyのカテゴリ→接続→SSH→認証
認証のためのプライベートキーファイルにid_rsa.ppkを指定します。

Puttyから接続する
login as: username
Authenticating with public key "rsa-key-20140809"
Passphrase for key "rsa-key-20140809":

前まではusernameを入力した後に通常のパスワードを入力していたところ、今回からはpublic keyのパスワードを入力してログインするようになりました。

公開鍵認証でログインすることになったので、
それ以外の方法のログインを無効にします。
cd /etc/ssh
sudo vim sshd_config

#PermitRootLogin yes
PermitRootLogin no

#PasswordAuthentication yes
PasswordAuthentication no

これでRootのログインと通常のパスワードでのログインを禁止しました。

最後のSSHを再起動して完了です。
sudo service ssh restart

Raspberry Piのセキュリティー設定 for Webサーバー用 パート2” への1件のコメント
  1. 匿名 より:

    いつもこのページを参考にさせていただいています。

    PuTTYで接続しようとすると、login as: でユーザー名を入力後、
    Server refused out keyとなってしまい、結局もとのユーザーパスワードでのログインしかできません。
    何かおかしいでしょうか。

"Raspberry Piのセキュリティー設定 for Webサーバー用 パート2" に 1 トラックバック・ピンバック
  1. […] 公開鍵によるログインとする これはこのサイトを参照して作成した […]

コメントを残す

メールアドレスが公開されることはありません。