HOKYPOKY.BLOG

サーバーつくった。その3 – SSHでログインするよ。

サーバー作ったとはいえコピペもできない、ログも20行くらいしかみれない。文字がでかい。
いつも使ってるマウスとキーボードじゃないなどなど、使いづらいったらありゃしない。

というわけで一般的にこういうサーバーはSSHをつかって他のパソコンからログインして操作するらしいよ。

インストールのときはほとんどOFFにしてインストールしたけどSSH入ってます。 

ただ、このままSSHを利用するのは危険です。新規ユーザーを作成してrootからはログインできないようにしましょう。

//以降はコメントなので入力しない事。

ではまずCentOSにrootユーザーでログインします。

centos login: _

となっているのでrootと入力し、rootのパスワードを入力します。
パスワード入力のときにいくらキーをうっても表示されないのは仕様です。

ログインしたら早速新規ユーザーを作成しましょう。

ちなみに#から始まるのはrootユーザー権限であるという意味なので覚えておくと便利ですよ。
rootユーザーでないときは$から始まります。
(Macはrootユーザーになれない設定になっているので#とかかれていたら「sudo 」とコマンドの前に追加してその行だけ一時的にroot権限になる必要があります。)

# useradd ユーザー名

ユーザー名は任意に置き換えて下さい。ただし、小文字の英数字が無難でいいですよ。

そのまま作成したユーザーにパスワードを設定します。

# passwdユーザー名
Changing password for user ユーザー名.
New UNIX password: //ここでパスワードを入力。キーをうっても表示されないので注意。
Retype new UNIX password:  //再入力
passwd: all authentication tokens updated successfully. 

次にルートになれるユーザーを制限しましょう。
制限する前に、作成したユーザーを管理者権限のあるグループに所属させます。

# usermod -G wheel ユーザー名
//確認します。
#cat /etc/group
//wheel:x:10:root,ユーザー名と書いてあればOK。

次にwheelグループ以外のユーザーはrootになれないように設定します。

# nano /etc/pam.d/su

ここでnanoを指定しましたがviなどのエディタでも全然大丈夫です。
ただnanoの方が若干直感的に使えるので、初めての人やちょっとした設定には便利です。

#auth       required     pam_wheel.so use_uid

と書いてある行を探し先頭の#を削除して保存します。
nanoの人はCtrl+Oを押すと下のハイライトされている行にファイル名がでてくるのでそのままEnterし、Ctrl+Xを押してエディタを終了します。

これで新しいユーザーを追加し、管理者権限をあたえ、管理者権限あるユーザー以外はrootになれなくなりました。
あとはrootからSSHログインできないようにします。

# nano /etc/sshd_config
 #PermitRootLogin yes
//先頭の#を削除、yesをnoにし、rootでのSSHログインをOFFにします。
PermitRootLogin no

SSHサーバーを起動します。また起動時に起動するように設定します。

# /etc/rc.d/init.d/sshd start
# chkconfig sshd on

余談ですがsshdというのはSSH Deamonの事です。
設定できているかチェックしましょう。

# chkconfig --list sshd
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
//2~5がonになってます。

SSHから作成したユーザーでのみログインできるようになりました。

ここからはMacの作業になります。

Terminal.appを起動。

ログインしてみる。

//ユーザー名はCentOSで作成したユーザー名
//IPはインストール時に設定したIP
$ ssh ユーザー名@IP

yes/no?って聞かれる場合はyesを選択。恐らく初回接続時には聞かれます。
パスワードをきかれるので作成したユーザーのパスワードを入力します。

rootになってみる。

$ su - //ハイフン(-)を入れること

rootパスワードを入力すると先頭が$から#に変わります。

# whoami
root //現在のユーザーはrootとなります。

元のユーザーに戻りたい場合は、Ctrl+Dを押すか以下を入力

# exit

すると先頭が$になります。whoami入力で作成したユーザー名が表示されます。

パスワードでログイン不可にする(認証鍵をつかったログイン)

これは運営体制によりますが、パスワードをいちいち入力するのがめんどくさいとか、もし、パスワードが割れてしまったら危険だと思う場合はパスワードではなく認証鍵というものをつかってログインする方法があります。

認証鍵ファイルは人間では覚えきれないような長いパスワードが入ったファイルです。
ただ、認証鍵ファイルをもっていないパソコンからログインできなくなります。それくらい強力な鍵という事ですね。

Terminal.appにて以下を入力し、公開鍵を作成。

$ ssh-keygen
Enter file in which to save the key (/Users/USERNAME.ssh/id_rsa)://空のままEnter
Enter passphrase (empty for no passphrase):
//パスフレーズを入れるとさらに強固になるがログイン毎にパスフレーズが必要になる。今回は空にした。
Enter same passphrase again: //空のままEnter (パスフレーズを入れた場合は再入力)
$ cd ~/.ssh
$ scp id_rsa.pub CentOSユーザー名@IP:id_rsa

SSHログインして、認証鍵を作成する。

$ ssh ユーザー名@IP //SSHでログイン。
password: //入力してエンター
$ cd ~ //ユーザーフォルダに移動
$ ls //現在のディレクトリ内にあるファイルを表示。ここにid_rsaというファイルがある。
$ mkdir -p ~/.ssh //.sshディレクトリ作成
$ chmod 700 ~/.ssh
$ cat id_rsa >> ~/.ssh/authorized_keys2 //authorized_keys2にid_rsaの内容を追加。
$cd ~/.ssh
$ chmod 600 authorized_keys2
//authorized_keys2パーミッションを600(所有ユーザーのみ読み書き可能。)に変更。

これで認証鍵でのログインもできるようになった。

ついでにパスワードのログインを不可にすることで強固なものにする。

$ su -
# nano /etc/ssh/sshd_config
# nano /etc/ssh/sshd_config //SSHサーバー設定ファイル編集
#SyslogFacility AUTH
//以下に変更
SyslogFacility AUTHPRIV

#PermitRootLogin yes
//以下に変更
PermitRootLogin no //rootでのログインを禁止(既になっているはず)

#PasswordAuthentication yes
//以下に変更
PasswordAuthentication no //パスワード式認証 no

#PermitEmptyPasswords no
PermitEmptyPasswords no //パスワードなしログイン no

Terminal.appを再起動して今度は認証鍵でログインする。

$ ssh ユーザー名@IP

おつかれさまです。
次はWEBサーバーを入れていきます。

サーバーつくった。その2 – CentOS5を入れたよ。

組み立ては以外と簡単だった。マザーボード毎にちがうしね、ここら辺は説明書見た方が詳しいので割愛。

PCが組めたらCentOSをいれる。バージョンは5.3にしました。

CentOSの前にRed Hat Enterprise Linux (RHEL)の説明をすると、企業サーバーによく用いられる有償サポート付きのOSです。企業用ということで安心感のある固いOSってことでしょうね。 仕事でサーバーを触ることがある場合、結構な確率でこのOS。

で、CentOSはRHELのクローンOSでサポートや商用パッケージこそないものの、ほぼRHELと同じように使えるOS。バージョンもRHELと同期していて、メンテナンスも7年と長い。

せっかくサーバーセットアップするのなら仕事で使いそうなRHELに似ている環境の方がいいのでこれを選択。 

備忘録を兼ねてインストール手順を軽く触れておく。

インストールディスク作成

まずCentOS5のisoをダウンロードしてくる。

Mirrorがいっぱいあるのでどこでもいいんですがボクはrikenから取ってきたかな。
http://ftp.riken.jp/Linux/centos/5.3/isos/i386/

上のURLから「CentOS-5.3-i386-bin-DVD.iso 」を選択して、DVDに焼く。
MacBookの場合はDVDをマウントした状態で落としてきたisoをディスクユーティリティで開くと、ディスクを作成ってアイコンがあるからそれ押しておしまい。

インストール

普通に手順に沿っていけばインストール終わりなんだけれども、サーバー用途であるということと、RAID1にしたかったのでそこらへんをメモ。

DVDドライブにインストールディスクを入れて起動します。 

boot:_

でとまるのでそのままEnter。

次の画面はディスクが壊れてないかチェックするかどうか。ボクは「Skip」を選択しましたw

Nextを押していくと言語選択の画面になるので「日本語(japanese)」を選択しました。Englishでもよかったかも。

キーボードも「日本語」を選択。

次を押して行くとパーティションの設定になります。ここでストップ。RAID化したくない人は、次を読み飛ばしてOKです。

インストール – RAID化

ハードディスクが安かったのでRAIDを構築することにした。超簡単にRAIDの説明をすると、複数のハードディスクを一枚のハードディスクとして認識する技術らしいですよ。

幾つか種類があるんだけどメジャーな構成は以下の3つ。説明は適当なので興味ある人はWikipediaへ -> RAID

 

  • RAID 0 – 複数枚同時に書き込むってことを、スピードに重点をおいた構造。
  • RAID 1 – 複数枚同時に書き込むってことを、安定性に重点をおいた構造。要はバックアップしながら書き込む。
  • RAID 5 – HDDが3枚以上必要なのだが、効率よくRAID 0とRAID 1を両立する構造。ただしソフトウェア制御する場合は、CPU等を喰うかも。

 

あとはRAID 0+1だったりRAID 1+0だったりRAID 0+5だったりなんかよくわからないけど組み合わせたりもできるらしいのだが、さすがにHDD何枚いるんだよ!!って感じなので今回はRAID 1にしました。wikiみてると後半笑えてきます。

RAID化の手順を書こうと思ったんだけど、結構長いのと、絵がないと説明しずらいのでこちらを紹介。

http://centossrv.com/centos5-raid-1.shtml

ぼくもここを見てやったんですけどねw

インストール – ネットワーク設定

ネットワークデバイスのところで右側にある「編集」をクリック。

DHCPをつかうとローカルIPが起動するごとに変動するのでチェックをはずします。
グローバルIP はボクは固定IPじゃないのでDynamicDNSを使う事にします。

IPv4をチェックしてIP6vのチェックをはずす。(IPv6はよくわからない。)

もちろん起動時にアクティブにチェックをつけましょう。

下のIPv4のところに指定したいIPアドレスをいれます。
192.168.1.xxxとか192.168.3.xxxとかがほとんどだと思うんだけど、xxxのところに0~255の値をいれる。

ちなみにMacの場合は「システム環境設定」->「ネットワーク」で調べるといいかもしれない。

大体DHCPなどで自動的に割り振られちゃったりするので128とかがいいかな。0と255の真ん中。
プレフィックスは255.255.255.0 (画像参照)とします。

「OK」をおして小ウィンドウを閉じます。

あとは東京を選んでUTCにチェック。

パスワードをきめます。rootは絶対にわからないパスワードにしてください。
あとでSSHの設定をするのだけど、分かりやすいパスワードをrootに設定しているととても危険です。

次の画面でプリインストールするパッケージを指定します。

Desktop-Gnomeパッケージのチェックをはずします。というか全部チェックを外して、ラジオボックスから「今すぐカスタマイズする」を選択して次へ。

すると詳細にパッケージ指定ができる画面になります。一個一個のチェックをみていき下記に記したもの以外はすべて「オフ」にします。

  • 「開発」内の「開発ツール」
  • 「ベースシステム」内の「ベース」
  • 「言語」内の「日本語のサポート」

また、「ベース」を選択時に右下のオプションパッケージを開きます。
「firstboot-tui」 のチェックを外して「閉じる」「次へ」

そのまま次に進んでいけばインストール開始します。終わったら再起動を押して終了。

再起動するとGUIなしのターミナルのような画面になります。

おつかれさまです。次はCentOSをサーバーにしていきます。