セットアップ時のパッケージ選択でシステム管理ツールを選択していた場合,起動時にこの画面が出ます.
項目 | 備考 |
---|---|
Authentication | 認証設定 |
Firewall configuration | SELinuxやポートの開放を設定 |
Keyboard configuration | キーボード設定 |
Network Configuration | ネットワーク設定 |
System services | デーモン設定.inetd?xinetd? |
Timezone configuration | 地域と時刻の設定 |
とりあえず,Firewall configurationでSE Linuxを切っておきましょう.
まずは,SE Linux無しで正常稼動することを確認してからSE LinuxをONにした方が何が問題かがわかりやすいです.
ポートについては,まずはSSHさえ開いていればよく,そしてデフォルトで22番ポートは開放されています.
System Servicesを見ればわかりますが,OpenSSHはデフォルトで入ってます.
最小構成なのでKDEやGNOMEはおろか,Xも入ってません.
なのでコンソールが起動します.
まだrootアカウントしか存在しないので,rootでログインします.
次に,ユーザアカウントを作成します.非常に単純な構成だと次のようになります.本格的に運用する場合は,有効期限などの設定も考慮して下さい.
参考:@IT:Linux Tips[ユーザー管理]
参考:Manpage of USERADD
# 一般ユーザのグループ
groupadd admin_user
# 一般ユーザの追加
# -g: グループ
# -d: ホームディレクトリ
# -m: ホームディレクトリを作る
useradd -g public_user -d /home/foo -m foo
# パスワードの設定
passwd foo
また,ユーザを編集,削除する時は,@ITの記事によると次のコマンドを使います.
ユーザーの情報を修正するには、usermodコマンドを使用する。原則として、usermodのオプションはuseraddコマンドと同じだが、ユーザー名を修正するためのオプションが追加されている。ユーザー名を修正するには、以下のように行う。
次に,sudoにより作業用のアカウントにrootでしか実行できない作業をsuでrootにならなくても実行できるようにしておきます.
sudo自体はデフォルトでインストールされています.
作業用のアカウントでrootにならなくてもmake installなどを実行できるようにします.
そのためにsudoを設定しておきます.
sudo自体はデフォルトでインストールされています.
sudoの設定は,visudoコマンドでviを立ち上げて行います.
viは,使い方にクセがあって普通のエディタを常用している人にはわかりにくいですが,とりあえず次のことを覚えておけば簡単な編集は可能.
設定は,次のようにします.
# ユーザfooに全てのコマンドを許可
# ただし,実際にこれをするのは危ないでしょう
foo ALL=(ALL) ALL
# ユーザfooにmake installを許可
foo ALL=(ALL) make insatll
@IT:特定のroot用コマンドを一般ユーザーが実行できるようにするには
UNIXの部屋 検索:sudo
@IT:止められないUNIXサーバの管理対策 第5回
username allowhost=(user) command
の形式で記述し,usernameのユーザは,allowhostから接続していたら(user)の権限でcommandを実行できることになります.
allowhost,user,commandともにALLという記述が使え,そうすることによりusernameのユーザは,どこから接続していても全てのユーザ権限で全てのコマンドを実行できることになります.
詳しくは,参照元を見て下さい.
とりあえず,make installを使えるようにしておくのは必須です.
fastestmirrorは,yumでパッケージをダウンロードする時にいくつかあるミラーサイトのなかから一番速度が出るところを自動的に選択してくれるyumのプラグインです.インストールには,yumを使います.
yum -y install yum-fastestmirror
www.centos.org - News - CentOS 4 - New CentOS-4 update system
はじめての自宅サーバー構築 - yum plugin「fastestmirror」の導入 -
yum updateなどをした時に,
Loading "fastestmirror" plugin
と表示されれば成功です.
viだけでは,色々面倒なのでemacsも入れておきます.
# emacs本体
yum install emacs
# emacsで日本語入力を可能にする
yum install anthy-el
# ユーザ権限で作成するか,作成後権限をユーザに委譲する
[user] emacs ~/.emacs
# === ここからemacs ===
;===================================
; Anthy
;===================================
(set-input-method "japanese-anthy")
# === ここまでemacs ===
これで,emacs起動中に「Ctrl-\」のコマンドで日本語が入力できるようになります.
デフォルトで入っているSSHdは,OpenSSHです.
とりあえずルートログインの禁止とパスワードでは認証しないように設定を書き換えます.
ただし,鍵ファイルを物理的にクライアントマシンに輸送することが困難な環境であるならば,
この設定ファイルの書き換えは,次項で説明する鍵ファイルの転送後に行う方が良いです.
(鍵ファイルを転送するための接続に鍵ファイルが必要になってしまいます)
emacs /etc/ssh/sshd_config
# === ここからemacs ===
# 追記
# 変更
# 通常パスワードの許可. noに変更
PasswordAuthentication yes
# ルートログインの許可. コメントアウト(#)を削除
# PermitRootLogin no
# 確認
PermitEmptyPasswords no
# 空パスワードの許可. noになっているか確認
# === ここまでemacs ===
# 再起動
/etc/rc.d/init.d/sshd restart
# 鍵の作成
# もしsuでrootになっていたりする場合は,
# exitで戻るかsuで鍵を作りたいユーザに変わってください
ssh-keygen -t rsa
Generating public/private rsa key pair.
# 保存場所を聞いている.通常はデフォルトの位置で問題ないです.Enterを押下
Enter file in which to save the key (/home/foo/.ssh/id_rsa):
Created directory '/home/foo/.ssh'.
# 鍵に設定するパスワードを聞いている.パスワードをかけないならそのままEnter
Enter passphrase (empty for no passphrase): ******
Enter same passphrase again:
# 秘密鍵はこっち
Your identification has been saved in /home/foo/.ssh/id_rsa.
# 公開鍵はこれ
Your public key has been saved in /home/foo/.ssh/id_rsa.pub.
The key fingerprint is:
e2:b3:b8:8d:27:03:e4:49:5d:b8:f8:38:9b:8f:7b:dd foo@localhost
# 認証用の公開鍵ファイルを作成
# (初回は,この二つのプロセスをまとめてcpかmvでやっても同じ)
touch /home/foo/.ssh/authorized_keys
# 新しく作った公開鍵を認証用に追加
cat /home/foo/.ssh/id_rsa.pub >> /home/foo/.ssh/authorized_keys
# 公開鍵を本人以外触れなくする
chmod 600 /home/foo/.ssh/authorized_keys
# authorized_keysに情報を入れたので不要になった鍵は削除
rm /home/foo/.ssh/authorized_keys
# 確認
# authorized_keys : 公開鍵
# id_rsa : SSHクライアントで使う秘密鍵
[foo@localhost .ssh]$ ll /home/foo/.ssh/
合計 8
-rw------- 1 foo user_public 398 5月 4 00:34 authorized_keys
-rw------- 1 foo user_public 1743 5月 4 00:33 id_rsa
はじめての自宅サーバー構築 - SSHサーバの構築(OpenSSH) -
さて,この秘密鍵をクライアントからアクセスできるようにすれば設定は完了です.
ただし,この鍵を一体どうやって手元に持ってくるかは大きな問題になります.
FTPやHTTPで転送すると鍵認証にした意味が無くなっちゃいますから.
一番いいのは,サーバマシンからフロッピーディスクやCD-Rなどで物理的に輸送することですが,
ここでは簡易的にSFTPで転送することにします.
SFTPの詳細については,お決まりのWikipediaとか@ITの記事を見て下さい.
ここでは,どうすればSFTPでサーバから秘密鍵を取ってこれるのかを書きます.
SFTPクライアントとしては,SSHクライアントで有名なputtyをベースにしたWinSCPが有名みたいなんですが,
私の環境では以前コネクションがしょっちゅう切断するという問題が発生してしまい,それからFileZillaを使っています.
ファイルをちょっと転送する程度の用途だと使い方自体はどちらも大差無いです.
参考:FileZillaの利用について
公式サイトのダウンロードページから,本体をダウンロードします.
いくつものファイルが登録されていますが,とりあえずは FileZilla_2_*_**_setup.exe(一番数字が新しいの)をダウンロードしてくるのが無難です.
インストーラから日本語に対応しているので,指示に従ってぽちぽちとクリックしていればインストールが完了します.
起動画面はこんな感じ.
まず,ファイル→サイトマネージャで接続設定画面を呼び出します.
すると,新しいFTPサイトを登録する欄があらわれ,画面右部に上図のような設定入力欄が表示されます.
サーバの種類をSFTP using SSH2に変更し,ホスト名にはIPアドレスを入れ,
ログオンの種類を通常にしてログイン可能なユーザ名とパスワードの組み合わせを入力します.
最後に,接続ボタンを選択するとサーバに繋がります.
初回接続時には,図のように未確認のキーを検出してクライアントのキャッシュにそのキーを追加するかどうかを尋ねるダイアログが表示されます.
基本的に「はい」で問題無いはずです.
接続に成功すると,図のようにWindowsのエクスプローラと同じ画面が出ます.
表示されているディレクトリは,ログインに使用したユーザのホームディレクトリです.
ここで.sshディレクトリに入り,先ほど作成したid_rsaファイルをコピーすれば無事に鍵ファイルを転送することに成功です.
この秘密鍵ファイルは,非常に大切なので慎重に管理しなくてはなりません.
鍵ファイルをクライアントマシンに転送したら,以後はクライアントマシンからSSHで接続して作業をするのが楽です.
とりあえず,日本で有名なTeraTermProと世界で有名なPuTTyの二つについて説明します.
TeraTermProでは,簡単に接続が可能ですが,PuTTyにおいては鍵をPuTTy用に変換する必要があります.
TeraTermProと言っても,オリジナルは,さすがに古すぎて今日日の環境では使えないのでUTF-8 TeraTerm Pro with TTSSH2を使います.
公式サイトに行って「現在の最新版は 4.xx です。」と書いてある部分のリンクから最新版をダウンロードできます.
インストールは,インストーラの指示に従っていれば特に問題無いです.
起動すると,上図のような画面が出ます.
ここでホストにサーバのIP,サービスはSSHでSSHバージョンはSSH2を選択してOKを選択します.
すると,次図のように認証画面に移ります.
ログインするにはまず,ユーザ名にはログインしたいユーザ名を入れます.
パスワード認証ならば,ここでそのユーザのパスワードをパスフレーズの部分に入れてOKを選択すればOKです.
しかし,ここでは鍵認証を使うことにするので,「RSA/DSA keyを使用」 のラジオボタンにチェックを入れます.
そして,「Private key file:」ボタンを選択してサーバから持ってきた鍵ファイルを選択し,
パスフレーズに秘密鍵にかけたパスワードを入力します.
(秘密鍵にパスワードを入力していないなら,パスフレーズには何も入力しません)
最後に,OKを選択すると,入力項目に誤りが無ければ接続できます.
接続後は,サーバにキーボードとディスプレイを直接接続してコンソールを出すのと同じように操作が可能です.
PuTTyは,外国人の方が作ったソフトなので当然UIは英語です.
しかし,私は日本人なのでやはり日本語のUIの方がストレス無く操作できます.
そこで,日本語化されたPuTTyを使うことになるのですが,現在有名な日本語化PuTTyは,
PuTTY β 0.58 ごった煮版とPuTTYjpの二つがあります.
実際のところ,単純に接続するだけならどちらを使っても同じです.
ただし,ごった煮版は,ここでは説明しませんがポートフォワード機能を楽に使えるようになる
非常に有用なpfwd.exeが含まれている利点があり,
PuTTYjpの方は,2007/05/04時点で最新版のPuTTyをベースにしているという利点があります.
そこで,私は両方ダウンロードしてきてPuTTYjpをベースにごった煮版からpfwd.exeをコピーしてくることをおすすめします.
では,PuTTyで鍵ログインする手順を説明します.
PuTTy(putty.exeもしくはputtyjp.exe)を起動すると,次の画面が表示されます.
まず,サーバのIPを入力します.次に,ウィンドウの変換で文字コードをUTF-8に変更します.
そして,接続→SSHの認証で認証のためのプライベートキーファイルで先ほど持ってきた鍵ファイルを指定します.
最後にセッションに戻ってセッション一覧に任意の識別可能な接続名を入力して保存し,開くを選択します.
すると,次のようなエラーが表示されます..
これは,先ほど作成した鍵ファイルをPuTTyではそのまま扱えないことをあらわしています.
そこで,ごった煮版にもPuTTYjpにも同封されているputtygen.exeを使います.
これを起動し,File→Load private keyで秘密鍵を選択し,パスワードが必要な場合は,それを入力します.
すると,次のようなダイアログが表示されて秘密鍵のPuTTy向け変換が完了します.
最後に,File→Save private keyを選択して変換後の秘密鍵を保存します.
そして,putty.exe(puttyjp.exe)を起動して先程保存した設定を読み込み,
認証に使う秘密鍵に変換後のファイルを指定すると認証画面に移ります.
ユーザ名と秘密鍵のパスワードを入力し,それが正しければTeraTermProと同じようにサーバにログインできます.
なお,初回接続時に上図のようなダイアログが表示されることがありますが,
これは,サーバの公開鍵の情報をクライアントに登録するかを聞いています.
はいを押さないと接続するたびに聞かれるので,何度も接続する予定があるならはいを選ぶのが無難です.
ただし,この情報は,レジストリに登録されるので自分が所有するパソコン以外から接続する時には注意が必要です.