2012年8月25日土曜日

Host1Freeをケツの毛までむしり取りたい設定 その1 最低限のセキュリティ設定

  1. 能書き
  2. Host1Freeをケツの毛までむしり取りたい設定 その1 最低限のセキュリティ設定(これ)
  3. Host1Freeをケツの毛までむしり取りたい設定 その2 Firewallと僕とyumとか美味しいの?
  4. Host1Freeをケツの毛までむしり取りたい設定 その3 他人任せの本当はこの記事のキモになるはずのアプリケーションのインストールと注意点とハマッた事と僕と私
  5. VPSっていうかLinuxが未知の世界。余計な物を欲望のままインストールして、未知の世界のマルチ画面でトーマスに会って外国に旅した僕

  1. 環境
サーバー
  • Host1Free
  • CentOS6 32bit

  • MacBook Mountain Lion
手順
  1. Host1Freeコントロールパネルでパスワード設定
  2. ユーザー作成して管理者グループに追加
  3. RSA公開鍵認証でのみでssh接続するための設定
  4. rootをねっとりと虐めたあげくに葬り去る

Host1Freeコントロールパネルにログイン
  • online になっててIPアドレス表示されてるか確認
  • デフォルトのパスワードでSSHの接続を確認 ↓


愛機のMacBookのターミナルからVPSに接続
[macbook:~ hogehoge]$ ssh root@host1freeのIp
…mailで送られてきたデフォルトのパスワード入力

接続できたら…
Host1Freeのコントロールパネルで下記パスワードを変更。
  • Controls→Root Password
  • Controls→Console Password
  • My Account→Change Account Password


ターミナルに戻って…
さっきの接続切断
[root@xxx~]# exit

設定したパスワードで接続
[macbook:~ hogehoge]$ ssh root@host1freeのIp
アンタが設定したパスワード入力

ユーザ作成
  • 通常作業用のユーザを作成し、パスワードを設定。
[root@xxx~]# useradd <あなたのお好きなユーザ名>
(例)[root@xxx ~]# useradd oppaimomitai

[root@xxx~]# passwd <上で入力したのと同じユーザ名>

以下のように2回パスワードを求めらる。
Changing password for user hoge.New UNIX password:[好きなパスワードを再入力]
Retype new UNIX password:[好きなパスワードを再入力]
passwd: all authentication tokens updated successfully.

追加したユーザーを管理者グループに追加
[root@xxx ~]# usermod -G wheel ( ↑で入れたユーザー名)
(例)[root@xxx ~]# usermod -G wheel oppaimomitai

rootになれるユーザを管理者グループのみに限定
[root@xxx ~]# vim /etc/pam.d/su
  • 以下の行をコメントアウト(先頭の#を削除する)
#auth    required    pam_wheel.so use_uid
  ↓
auth    required    pam_wheel.so use_uid


:wq
で保存して終了

sudo設定変更wheel に所属しているユーザが sudo できるよう設定
[root@xxx ~]# visudo
  • 以下の行をコメントアウト(先頭の#を削除する)
# %wheel  ALL=(ALL) ALL
  ↓
%wheel  ALL=(ALL) ALL


:wq
で保存して終了


ユーザーグループの設定確認
[root@xxx ~]# id (↑で入れたユーザー名)

編集に必要なvim(vi)の操作
なんかキー押す(aとかbとか) 編集モードになる
ESCキー押す                           編集モードから抜ける
h(←)カーソル左移動
j(↓)カーソル上移動
k(↑)カーソル下移動
l(→)カーソル右移動
x カーソル位置の一文字削除 (編集モードじゃない時ね)

:wq セーブして終了
(編集モード抜けてから→ : を入力((け)のキーね) → wq 入力でエンターキーをバシッとかっこいく叩く)
:q!  変更した行もセーブせずに終了(なんか間違えたらコレで終了したほうがいいと思う)

MacBookでSSH 接続用のRSA鍵を作成する
  • SSHで接続する際にパスワードを使用するよりもRSA公開鍵認証を使用した方が安全らしい。SSHでパスワードのログインを禁止し、RSA公開鍵認証のログインのみを許可するのがいい模様。その設定の前に、自分のMacで使用するRSA鍵を作成しておく。ターミナルからssh-keygenで、RSA鍵が作成される。

ターミナルで新しいウィンドウかタブ開く(⌘+Tでタブ開く)
[macbook:~ hogehoge]$ ssh-keygen [Enter]
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/hogehoge/.ssh/id_rsa): [Enter]
Enter passphrase (empty for no passphrase): [好きなパスワードを入力]Enter
same passphrase again: [好きなパスワードを再入力]Enter
Your identification has been saved in /Users/hogehoge/.ssh/id_rsa.
Your public key has been saved in /Users/hogehoge/.ssh/id_rsa.pub.
~/.ssh ディレクトリに以下のようにファイルが生成される。
-rw-------   1 hoge  staff  1743  5 14 16:29 id_rsa
-rw-r--r--   1 hoge  staff   402  5 14 16:29 id_rsa.pub
-rw-r--r--@  1 hoge  staff  3911  5 11 02:28 known_hosts
見たいよね?見たいなら…
[macbook:~ hogehoge]$  cd ~/.ssh
[macbook:.ssh hogehoge]$  ls

Finderから見るには
SHIFT+⌘+Gで ~/.ssh
でひらく
  • id_rsa.pub をサーバのユーザーディレクトリの .ssh/ フォルダの中に authorized_keys という名前で保存する。
  • Host1freeだとフォルダがなかったので、まずは以下のようにサーバー側に必要なディレクトリの作成
もう一個ターミナルでまた新しいウィンドウかタブ開いて
MacBookのターミナルからVPSにさきほど作ったユーザーで接続
[macbook:~ hogehoge]$ ssh ユーザー@host1freeのIp
パスワード入力

このユーザは wheel に所属しているので、sudo できるようになっている筈。
下記のような感じで root になれるか確認。

[ほげほげ@xxx ~]$ sudo su -
[root@xxx ~]#

rootになれたら…
[root@xxx ~]# exit
とりあえず怖いのでルート抜ける

.sshというフォルダ(Linuxとかではディレクトリというらしい)を作る
[ほげほげ@xxx ~]$ cd
[ほげほげ@xxx ~]$ mkdir .ssh

さっき開いたターミナルウィンドウに戻って、MacBookからHost1Freeに鍵をブチ込む
[macbook:~ hogehoge]$ scp ~/.ssh/id_rsa.pub ユーザー名@host1freeのIP:~/.ssh/authorized_keys

転送が終わったらサーバー側でパーミッションを調整。
  • 先ほどユーザーで接続したターミナルに戻って
[ほげほげ@xxx ~]$ chmod 700 ~/.ssh
[ほげほげ@xxx ~]$ chmod 600 ~/.ssh/authorized_keys

できたら…
  • sshdの設定変更
  • パスワードでの認証をやめ、公開鍵認証でのログインに限定する。
ルートのログイン禁止、ポート番号の変更等の設定を行い、sshdを再起動する。
[hogehoge@なんたら ~]$ su
[root@xxx ~]# vim /etc/ssh/sshd_config
  • Port (0〜65535)  # ポート番号を変更 コメントアウトを外し 10022に変更
  • PermitRootLogin no //コメントアウトを外し no にする。root によるログインを禁止
  • PubkeyAuthentication yes //コメントアウトを外す
  • AuthorizedKeysFile .ssh/authorized_keys //コメントアウトを外す
  • PasswordAuthentication no //コメントアウトを外し no にする。全てのユーザーでパスワードによるログインを禁止
  • UsePAM no //コメントアウトを外す
  • #UsePAM yes //コメントアウトする
  • PermitEmptyPasswords no //空のパスワードでのログインを禁止
  • AllowUsers (INPUT LOGIN USER NAME)  // 指定ユーザのみ接続許可
  • RSAAuthentication yes
:wqで保存して終了

編集に必要なvimの操作
o [編集モード]:現在行の次に行挿入
u アンドゥ
[ESC] [編集モード]の終了

設定を反映するためsshdを再起動
[root@xxx ~]# /etc/init.d/sshd restart
[root@xxx ~]# exit

[ほげほげ@xxx ~]$ exit
サーバーから切断

この時点で最初にrootで接続したターミナルウィンドウは閉じないで残しておく

MacBookから接続確認
  • MacBookからターミナルで接続してみる。二回目からは入力無しで繋がる。
ポート変更したので -p でポート番号指定して接続
[macbook:~ hogehoge]$ ssh -p 10022 ユーザー名@host1freeのIP
//RSA鍵を作成した時のパスワード入力

[hogehoge@なんたら ~]$ exit
//logout

再度接続してみる
[macbook:~ hogehoge]$ ssh -p 10022 ユーザー名@host1freeのIP
//そのまま VPS サーバ内へ接続できるはず

[hogehoge@なんたら ~]$

できた?

接続できたらこの時点で
  • ルートでログインできない、パスワードでログインできない
  • ほげほげ(ユーザー)で鍵持ってないとログインできない
  • ほげほげ(ユーザー)でしかrootになれないとなっているハズなので、Google先生に聞いた大先生たちの見解では、おりこうさんであれば安心だそうです。
  • この時点でサーバーに最初に接続したrootでの接続も残っているはず
  • ユーザーでRSA公開鍵認証でのログインが出来ているので最初に接続したウィンドウ(タブ)は閉じても良い
  • 接続できなかったら、rootで接続しているターミナルに戻って編集したところなどを確認。
  • そのまま全てのターミナル閉じてしまうと、多分二度とサーバーに接続できなくり、初期化しなければならなくなる。(俺はやったorz)
ここまで出来たら
ウンコして手洗わないで鼻くそホジリながらVPSに登録しちゃった僕みたいな無知なユーザーでも許してもらえると思うよ。
あんしん、あんしん。

してはいけない。鼻くそホジッタのは許されたけど、ウンコして手を洗わなかったのは許してもらえていないようだ。

なんか文字ばっかで厳選した画像を貼ります


次の設定→

0 件のコメント:

コメントを投稿

iTunes Store(Japan)