Technology Engineering

178inaba の技術ブログ

ConoHaでサーバ立ててユーザ追加したりSSHの設定したり

inabaです。

ConoHaが安くてサーバ立ち上げが早くて良さげです。

www.conoha.jp

なのでVPSを借りて、いじって遊ぶ用のサーバを作ります。

参考記事:

qiita.com

大体は上記に書いてある通りに進めます。
使用するOSはCentOS 7です。
ここには気になった事や追加でやった事等を書いていきます。

wheelグループって何?

wheelグループに追加と書かれている箇所があります。

# wheelグループに追加
$ gpasswd -a newuser wheel

wheelグループとはデフォルトでsudoができるグループです。
所属しているとユーザ個別に設定しなくてもsudoができます。 設定は/etc/sudoersに記述されています。

$ cat /etc/sudoers
...
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)   ALL
...

gpasswd

いつもグループへの追加はusermodでやっていて、gpasswdは知りませんでした。
usermod-a忘れるとグループが置き換えられる事がありますが、gpasswdはその心配が無いので良さげです。

qiita.com

パスワード無しでsudo

先程の/etc/sudoersのwheelグループの設定の下にパスワード無し用の設定がコメントアウトされているのでそのコメントアウトを外し、元の設定をコメントアウトします。
sudoは結構重要な操作なので自分は一旦パスワード有りで使ってみて、面倒になってきたら外そうと思います。

## Allows people in group wheel to run all commands
# %wheel    ALL=(ALL)   ALL

## Same thing without a password
%wheel  ALL=(ALL)   NOPASSWD: ALL

SSHログイン許可の設定はデフォルトを使う

参考サイトのSSHログインを許可の項目ですが、設定ファイル(/etc/ssh/sshd_config)はデフォルトだとこうなっていました。

#RSAAuthentication yes
#PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys

RSAAuthenticationPubkeyAuthenticationコメントアウトされています。
コメントアウトされているという事はデフォルト値が使われるという事。

ここにデフォルト値が書いてあるのですが、

sshd の設定(sshd_config)

RSAAuthenticationPubkeyAuthenticationのデフォルト値はyesです。
自分は極力デフォルトで行けるならデフォルトを使いたい人間なので、設定はいじらず、コメントアウトのまま使います。

SSHキーはローカルにあるものを使う

SSH鍵を作成の項目でホスト側でキーを新たに作ってローカルに秘密鍵をコピーしていますが、自分はローカルにSSHキーが生成してあるのでこれを使います。

ローカル:

$ cat ~/.ssh/id_rsa.pub # 公開鍵
ssh-rsa foobarbaz...
# 出た文字列をコピー

サーバ(rootではなく、新しく作ったユーザで実行。):

$ ssh-keygen # ~/.sshディレクトリを手で作るのが面倒なのでコマンドで作る。
# デフォルトで良いのでEnter3回

$ echo 'ssh-rsa foobarbaz...' > ~/.ssh/authorized_keys # ローカルでコピーした公開鍵を登録

$ chmod 600 ~/.ssh/authorized_keys # パーミッションを設定

ssh-keygenを使っちゃってますが、これは補完が効くコマンドの方が打つのが楽だから使ってます。
作った鍵は今は使わないので、普通にmkdir ~/.sshでもいいです。

authorized_keysパーミッションの設定が重要

これで結構ハマった。
SSHキーを使ってでログインしようとしても、パスワードを聞かれるので、sshのログが書かれる /var/log/secureあたりを調べて

Authentication refused: bad ownership or modes for file /home/newuser/.ssh/authorized_keys

と出てきたのでこれで検索。

takuya-1st.hatenablog.jp

authorized_keysパーミッションオーナー以外の書き込み権限がついているとダメなようだった。
実際にauthorized_keysパーミッションを見てみるとrw-rw-r–になっていたので上記の通りchmod 600 ~/.ssh/authorized_keysパーミッションを設定してやると、パスワードを聞かれなくなった!

ログイン攻撃がヤバい

lastbでログイン失敗履歴が見られるのだが、身に覚えのない失敗が約1000回くらいあった。
怖くなってlastでログイン成功履歴を見たが、そっちには身に覚えの無い履歴は無かったので良かったが、こんなに攻撃されるのかとビビるね。
精神衛生上良くない。

なので、rootからのログインを禁止パスワードによるログインを禁止は絶対やるべき。

/etc/ssh/sshd_config:

PermitRootLogin no
PasswordAuthentication no

まとめ

何点か書きましたが、sshauthorized_keysパーミッション以外は特にハマること無く進められました。
このサーバで何しよっかな〜。

今日はここまで。