サーバに接続して、一般ユーザーのアカウントを作る:仕事で使える魔法のLAMP(2)
LAMP環境を作るには、まずはサーバが必要です。今回は、前回の予告通りさくらインターネットのVPSに接続します。それから、Linuxを動かすために最低限必要な設定方法を今回と次回の2回に分けて解説していきます。(編集部)
避けては通れないセキュリティ
今回と次回の2回に分けて、LAMP環境を構築する基盤となるサーバの準備手順を解説します。
本連載はさくらインターネットのVPSサービスを利用して解説を進めます。あなたが使用するパソコンにLinuxをインストールする必要はなく、すぐに使えるようにはなっていますが、基本的な設定はやはり必要です。Linuxそのものの設定は連載のテーマから外れてしまいますので、詳しくは触れません。しかし、インターネット上にあるサーバですから、セキュリティに関する設定を無視するわけにもいきません。
そこで、Linuxで最低限やっておくべき設定項目を次の4点に絞り込みました。
- 一般ユーザーの作成
- アクセス制限
- パケットフィルタ
- CentOSのアップデート
だいぶ駆け足になるかと思いますが、詳細については@ITの過去記事や、市販の解説書なども参照してください。ここで挙げたものはあくまで最低限やるべきことであり、やろうと思えばまだまだ設定の余地もあります。追加で設定した方がよい項目については、後々取り上げていきたいと考えています。
手順はさくらインターネットのVPSサービスで標準OSとなっているCentOS 5を前提としていますが、基本的な考え方は他のディストリビューションでも通用するものです。また、他の業者が提供するサービスでは同じCentOS 5であってもパッケージのインストール状況など、初期状態が異なる場合があるのでご注意ください。利用するパッケージについてはインストール済みのものであってもできるだけ明示していきます。
サーバへのログイン方法
一般にVPSやクラウドサーバへログインするには「ssh(Secure Shell)」という通信プロトコルを利用します。このプロトコルでVPSに接続するには、あなたのパソコンに「端末エミュレータ」というソフトウェアをインストールしておく必要があります。Windows向けにはPuTTYというssh対応端末エミュレータがあります。英語版のソフトウェアですが、日本語入力を可能にするパッチもあります。本連載ではこれを利用していきます。
PuTTYインストールして起動すると、細かい設定項目がたくさんあるウィンドウが表示されます。VPSにログインするには接続先のIPアドレスあるいはホスト名を入力し、使用する通信プロトコルをsshと設定して[開く]ボタンを押すだけです(図1)。
接続に成功するとターミナルウィンドウが開き、IDとパスワードの入力を求めるプロンプトが表示されます(図2)。
なおsshを使うと、初回接続時に接続相手の情報の確認ダイアログが表示されます。この情報は保存され、次回以降の接続時に相手先が同じサーバであることがsshプロトコルによって確認されます。仮に違うサーバにすり替えられたとしても、必ず気付くようになっているのです。
rootは使わない
初期状態でログインできるユーザーはrootのみになっています。rootは何でもできるので便利ですが、操作ミスをしてしまうと致命的な問題が発生することがあります。そこで、root権限を不用意に使わないようにするため、常に一般ユーザーでログインするようにしましょう。ここではatmarkitという名前のユーザーを作成しました(図3)。
# useradd -g users atmarkit # passwd atmarkit Changing password for user atmarkit. New UNIX password: (パスワードを入力) Retype new UNIX password: (パスワードをもう一度入力) passwd: all authentication tokens updated successfully.
作成した一般ユーザーでログインする前に、sudoの設定をします。root権限が必要な作業をするとき、sudoを使えばrootユーザーでログインする必要がなくなります。複数のユーザーでサーバを利用する場合でも、ユーザー間でrootユーザーのパスワードを共有せずに済みます。さらに、ユーザーごとに権限を限定することも可能です。実行記録もログに残りますから、管理の上でとても役に立つツールです。
以下のようにsudoのパッケージをインストールしましょう。
# yum install sudo
sudoの設定ファイルは/etc/sudoersですが、これは専用のコマンドで編集します。visudoというコマンドを実行するとエディタが起動しこのファイルが開きます。最終行に以下の内容を追記してください。
atmarkit ALL=(ALL) ALL
これは「atmarkit」というユーザーにすべての操作を許可するように設定した例です。保存して終了すると、設定ファイルにミスがないか自動的に確認され、問題がなければなにも表示せずに終了します。
次に、作成した一般ユーザーでログインします。無事ログインできたら、sudo -lと実行してsudoの権限を確認しましょう。正しく設定できていれば図4のようになります。
$ sudo -l We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. [sudo] password for atmarkit: (パスワードを入力) Matching Defaults entries for atmarkit on this host: requiretty, !visiblepw, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY" User atmarkit may run the following commands on this host: (ALL) ALL
これ以降は常に一般ユーザーでログインし、root権限が必要な操作はsudoを使うようにします。sudoの設定を変えたいときも以下のようにします。
$ sudo visudo
今回は先に挙げた最低限設定しておくことのうち、一般ユーザーの作成が完了しました。次回は残りのアクセス制限、パケットフィルタ、CentOSのアップデートについて解説します。
- CMakeでMySQLをビルドしてみる
- MySQLのビルドに欠かせないCMakeを準備する
- いよいよMySQL編、ソースからビルドすべきか?
- PHPでセッションを利用するための設定
- クライアントがアクセスできる範囲を制限する
- エラーメッセージをどう扱うか?
- ファイルのアップロードを制限する
- リクエストデータを受け取る変数の扱い
- マジッククオート機能には頼らない
- 安全を考えてPHPの実行時設定を調整する
- Apacheの設定ファイルでPHPの設定を変える
- PHPの設定ファイルを作って配置してみる
- PHPスクリプトを実行できるようにする準備
- PHPエクステンション組み込みの仕上げ
- 単純なデータを管理するDBMを使えるようにする
- エクステンションの組み込み状況を確認する
- PHPでデータベースを使う準備をする
- XMLを処理できるようにする
- エクステンションを有効にしてビルドに挑戦!
- PHPテスト失敗の原因を追究する
- 早速PHPをビルド! そしてテスト!
- PHP編に突入! まずはソースをダウンロード
- 設定ファイルを作成してApacheを動作させる
- 設定ファイルや公開ドキュメントの配置を考える
- 1つのサーバに複数の仮想サーバ?
- Apacheの設定ファイルを記述する前に
- サードパーティのApacheモジュールをビルドする
- 認証DBにアクセスするライブラリを組み込む
- Apache同梱ソフトウェアに引数を渡してビルド
- OpenSSLをビルドしてApacheで利用する
- proxyやsslのモジュールを使ってみる
- ライブラリが足りなくてビルドできないときは?
- Apache HTTP Serverのビルドを始めよう
- configureでソフトウェア固有の設定を変更してみる
- configureの設定を変更してみる
- 配布パッケージの中身と、configureの役目を知る
- ダウンロードファイルが真正なものであるかを確認
- Makefileをいろいろ書き換えながらビルドしてみよう
- makeを使ってソフトウェアをビルドしてみよう
- ダイナミックリンクとスタティックリンク
- 「ビルド」という作業は何を指しているのか
- 公開鍵認証でsshを安全に使う
- sshを便利にする公開鍵暗号
- アクセス制限の設定とCentOSのアップデート
- サーバに接続して、一般ユーザーのアカウントを作る
- LAMP環境、自分で作りませんか?
Copyright © ITmedia, Inc. All Rights Reserved.