Linuxサーバの自習用カリキュラム

Linuxサーバで提供される個々のサービスの設定についてはかなりの情報を見かけるものの、ざっくりと全体を網羅できるようなカリキュラム的なものが少ないみたいなので備忘録的に書いてみようかと。あくまでも初心者向けで。


自分もそうだった「Linux勉強しようとするんだけど、インストールが終わったら何をして良いかわからなくなって放置してしゅうりょー」っていう人が主な対象です。これをさらえばLinuxサーバについては完璧!!ってものではなく、むしろ「入り口にようやく立った」っていうところに持っていければ良いなぁというところを目標にしています。


基本的にはLinuxでのインフラサービス(WWW, FTP, PROXY, MAIL, etc)をどの順序で進めればいいのか的な学習順序と適当なチェックポイント、もう少し踏み込みたい人へのリファレンス的なものについてサンプルを挙げてみます。

 # あくまでサンプルなので目的がある場合は適当にアレンジするのが吉です。それと、一応想定しているのはCentOS 5.X系のサーバになります。


一応、次の順番で解説を進めていきます。

  • この自習用カリキュラムの対象
  • 前提
  • 1:OSのインストール
  • 2:Webサーバの設定
  • 3:FTPサーバの設定
  • 4:DNSサーバの設定
  • 5:PROXYサーバの設定
  • 6:MAILサーバの設定
  • 7:NTPサーバの設定
  • 8:その他
  • 9:他のサービス
  • カリキュラム終了確認


なお、各サービスの設定方法とかについては詳しく解説してあるページが大量にあるのでGoogle様経由で探す形式で。あくまで(ざっくりとした)カリキュラムなので実際の教材コンテンツは提供しない方向です。基本的には単語をGoogle検索することで詳細情報がでてくる。。。はず。


なお、今回構築するLinuxサーバを”サーバ”、普段使っているWindowsMacを"クライアントPC"と記述します。

この自習用カリキュラムの対象

  • Linuxサーバの勉強をしてみようと思いつつ、インストールが終わったら何をして良いか分からない人
  • GUIツールに頼らずにLinuxサーバの設定を行えるようになりたい人
  • Googleを使って調べ物が行える人。
  • 行った作業をメモとして残せる人
  • ユーザとしてLinuxの基本操作を行える人(下記、前提条件を満たしている人)

前提(入り口)

  • CUIでの基本操作ができること
  • viでの基本ファイル操作(編集・保存)ができること
チェックポイント

下記動作がすべて行えればOK

  1. LinuxサーバにSSHクライアントを使用してログイン
  2. ホームディレクトリから/tmpに移動して中に"Hello World"と書いたtest.txtを作成
  3. text.txtをホームディレクトリにコピーして/tmp以下のtest.txtを削除
  4. ホームディレクトリに移動し、testディレクトリを作成した後にtext.txtをtestディレクトリに移動
  5. 移動したtext.txtの中身を"Hello Linux"に書き換えて保存
  6. ログアウト

1:OSのインストール

LinuxのインストールCDを入手してOSのインストールを行う

チェックポイント
  1. 実機なりVM Ware ServerなりxVM Virtual BOXなりのインストール環境を用意
  2. Linux サーバ OSのディスクイメージを入手してインストール
  3. ランレベルを変更してCUIモードに変更
  4. 一般ユーザを作成してみる
  5. ネットワーク設定を行いSSHログインできる状態に設定
おまけポイント
もう少し高度なことをしたい人は
  • sudoersを設定してみる
  • SSHの認証鍵ログインの設定をしてみる
  • OSのインストール時にキックスタートを利用してみる

2:Webサーバの設定

Webサーバを設定してHello WWWする

チェックポイント
  1. Apacheの設定を行いサービスを起動する
  2. Document Rootに"Hello WWW"と表示するindex.htmlを作成して設置
  3. クライアントPCのブラウザからhttp://<サーバのIPアドレス>/で接続しHello WWWされていることを確認
もう少し高度なことをしたい人は
  • 一般ユーザのWeb公開領域を利用出来るようにする(http://<サーバのIPアドレス>/~<ユーザ>/で公開できるようにする)
  • [ PHPer用? ] http://<サーバのIPアドレス>/にアクセスしたら index.phpが実行されるようにする
  • サーバの文字コードをShift-JISに変更する
  • /var/www/hoge/の内容をhttp://<サーバのIPアドレス>/hoge/で公開できるようにする
  • /var/www/hoge/で.htaccessが実行出来るようにする
  • /var/www/hoge/の内容をクライアントPC以外から接続できないようにする

3:FTPサーバの設定

FTPサーバを設定してWebサーバ上のコンテンツを入れ替えられるようにする

チェックポイント
  1. webmasterアカウントを作成し、Document Rootをホームディレクトリに設定する
  2. vsftpを設定してサービスを起動する
  3. クライアントPC上のFTPクライアントを使ってwebmasterアカウントでサーバに接続
  4. index.htmlをダウンロードしてクライアントPC上で"Hello FTP"と表示されるように編集しアップロード
  5. クライアントPCのブラウザからhttp://<サーバのIPアドレス>/で接続しHello FTPされていることを確認
もう少し高度なことをしたい人は
  • webmaster以外のユーザがFTPログイン出来ないようにする
  • ログインユーザがホームディレクトリ以外に移動できないようにする

4:DNSサーバの設定

DNSサーバーを設定し、内部DNSサーバを作成する

チェックポイント
  1. bindでルートネームサーバの設定を行いサービスを起動
  2. サーバのDNS参照先をサーバ自身(localhost127.0.0.1)に設定し自サーバ上からyahoo.co.jpを名前引きする
  3. hogehoge.hogeという嘘ドメインを検討(変更必須、インターネット上に存在しないもの)
  4. hogehoge.hogeについて自サーバ上からwww.hogehoge.hogedns.hogehoge.hoge、mail.hogehoge.hoge、proxy.hogehoge.hoge、ntp.hogehoge.hogeという名前を正引き(IPアドレスは自サーバのもの)、及び逆引きできるようにbindを再設定
  5. 自サーバ上でmail, proxy等のホスト名で名前引きできるようにDNS サフィックスを設定
もう少し高度なことをしたい人は
  • DNS問合せにアクセス制限を設定してみる
  • ルートネームサーバの役割について友達に説明してみる。適当な人がいない場合は犬猫やサボテンでも可。
  • もう一台のサーバを用意してプライマリDNSセカンダリDNSの設定をしてみる

5:PROXYサーバの設定

PROXYサーバを設定して、クライアントPCから利用する

チェックポイント
  1. squidの設定を行いサービスを起動
  2. クライアントPCのブラウザにPROXY設定を行いyahoo.co.jpに接続(IPアドレスは構築中のサーバのもの、ポートはsquidの設定を利用)
  3. www.hogehoge.hogeに接続してHello FTPを確認する
もう少し高度なことをしたい人は
  • PROXYサーバのポートを10080に変更してみる
  • クライアントPC以外からPROXYサーバを利用できないように設定する
  • なぜDNS設定のされていないクライアントPCのブラウザからwww.hogehoge.hogeのコンテンツが参照出来るのか友達に説明してみる。適当な人がいない場合は犬猫やサボテンでも可。
  • PROXY.PACを作成して自動PROXY設定を利用する

6:MAILサーバの設定

メールサービスの仕組みを理解し、SMTPサーバ、POP(またはIMAP)サーバの設定を行いメールの送受信をしてみる。

チェックポイント
  1. SMTPサービスとPOP(またはIMAP)サービスのそれぞれの役割を正確に友達に説明してみる。適当な人がいない場合は犬猫やサボテンでも可。
  2. Postfixを設定してSMTPサービスを起動し、mailコマンドで普段使用しているメールアドレスにテストメールを送信する(携帯電話のメールアドレスは多分使えない)
  3. Dovecotを設定してPOP(またはIMAP)サービスを起動し、クライアントPC上のメールクライアントからサーバに接続する。
  4. メールクライアントからサーバ上の一般ユーザ宛にメール(ex: test@hogehoge.hoge)を送信し受信できることを確認する。
もう少し高度なことをしたい人は
  • メールの受信設定をmbox形式からMaildir形式に変更してみる
  • 普段使用しているメールアドレスから今回作成したメールアドレス(ex: test@hogehoge.hoge)に送信したメールを受信するためには何をしなければいけないかを検討する
  • SMTPサーバにtelnetで接続しSMTPプロトコルを利用してメールを送信してみる
  • POP Before SMTPの設定をしてみる
  • Sendmailを10025番で待機させ、PostfixからSendmailへのリレーを設定してみる
どうでもいい話

個人的にはqmail + vpopmailが最強だと思っている

7:NTPサーバの設定

NTPサーバを設定し、時刻を同期してみる

チェックポイント
  1. ntpを設定しサービスを起動する
  2. ntpqコマンドを利用して時刻同期が行われているかを確認する
  3. クライアント端末の時刻同期先としてサーバを指定し、どうきできるか確認する
もう少し高度なことをしたい人は
  • クライアントPC以外からのアクセスを禁止する
  • NTPのstratumについて友達に説明してみる。適当な人がいない場合は犬猫やサボテンでも可。
注意
  • NTP上位サーバとして福岡大学を指定しないこと

8:その他

その他の設定

チェックポイント1:サービスの自動起動の設定
  • これまでに設定したサービスがOSを再起動しても自動的に開始されるようにする
  • 不要なサービスを調査して停止する
チェックポイント2:セキュリティ設定
  • Linuxのセキュリティについて調査し、必要と思われる項目を実施する。
  • 初っ端に無効にしてiptablesとSE Linuxについて理解する

9:他のサービス

その他のサービスへのリファレンス

その他のサービスへのリファレンス
  • LDAP、SAMBA、SNMP等のその他のサービスについてどんなものがあるかを調査し、興味があるものを設定してみる
  • サーバ管理・監視ツール(MRTG, Nagios, Zabbix, Puppet...etc)について調査し、興味があるものを設定してみる

カリキュラム終了確認(出口)

作業メモを見返しつつ、1〜8の内容をGoogle検索を使用せずに実行できればOK



                          • -

以上ー、個人的な経験とかがベースなのでかなり偏っていると思われます。これ入れた方がいいんじゃない?とかあれば教えて欲しいです。これ違うじゃん、のツッコミも歓迎です。