山形大学徽章 山形大学地域教育文化学部

Linux実習


2016年5月18日更新 



 ※非推奨ブラウザ マイクロソフトエッジでは正常に表示できない可能性があります。


授業概要
 実習を通してサーバ管理者として必要なことを学ぶ。

実習機
 1号機 Core2Quad 2.83GHz (4コア) jisshuu1(httphttps)   
 2号機 Pentium  2.8GHz (2コア) jisshuu2(httphttps)   
 3号機 Core2Duo 2.13GHz (2コア) jisshuu3(httphttps)   
 4号機 Pentium  2.8GHz (2コア) jisshuu4(httphttps)   
 5号機 Celeron  2.8GHz (2コア) jisshuu5(httphttps)   
 6号機 Core2Duo  2.4GHz (2コア) jisshuu6(httphttps)   
 7号機 Core2Duo 2.66GHz (2コア) jisshuu7(httphttps)   
 8号機 Pentium  1.8GHz (2コア) jisshuu8(httphttps)  
 9号機 Pentium  3.4GHz (2コア) jisshuu9(httphttps)   
10号機 Core2Duo 2.93GHz (2コア) jisshuu10(httphttps)   
11号機 Core2Duo 2.93GHz (2コア) jisshuu11(httphttps)   
12号機 Pentium  3.0GHz (2コア) jisshuu12(httphttps)  
13号機 Core2Duo  2.4GHz (2コア) jisshuu13(httphttps)   
14号機 Pentium  2.6GHz (2コア) jisshuu14(httphttps)   
15号機 Pentium  3.0GHz (2コア) jisshuu15(httphttps)  
16号機 Core2Duo 2.66GHz (2コア) jisshuu16(httphttps)   


 地域教育文化学部は年々予算が削られて貧乏です。自前で機材を買うことができません。実習用機材の大部分は廃棄処分になった10年前のパソコンを再利用しています。



twitter


第1回  序  2016年4月13日

 実習の掟  Linuxとは何か(歴史、特徴)

第2回  Linux のインストール  2016年4月20日

 Vine Linux 6.3をインストールし、ネットワークとX window systemと音源を使えるようにせよ。
 (実行した方法を再現できるように詳しく記録してレポートにまとめる)

 ヒント

第3回  ユーザ管理とリモートログイン  2016年4月27日
  1. 利用者から信頼される管理者になるための心構えは。
  2. わざわざ一人ずつ利用者登録をするのは何のためか。
  3. 自分のサーバに全員分の利用者登録をして、初期パスワードを設定せよ。
  4. 他の受講者のサーバ全てにsshで遠隔ログインし、初期パスワードを自分の秘密のパスワードに変更せよ。
  5. 関係する次のコマンドの意味を調べ使い方を会得せよ。そして使用例を交えて使用方法を詳しく説明せよ。また、有益なオプションについても説明せよ。
      useradd, userdel, passwd, chfn, chsh,
      ssh, who, last, finger, chmod, chown, chgrp

  6. 関係する次のファイルの使用目的を説明せよ。
      /etc/passwd, /etc/shadow, /etc/group, /etc/skel/

  7. /etc/passwd、/etc/shadow、/etc/groupの書式(行中の「:」で区切られた各欄の意味)を説明せよ。


第4回  コマンド、シェル、カーネル  2016年5月11日
  1. 次のコマンドの意味を調べ使い方を会得せよ。そして使用例を交えて使用方法を詳しく説明せよ。また、有益なオプションについても説明せよ。
      man, history
      ls, cp, mv, rm, touch, cat, diff
      cd, pwd, mkdir, rmdir, du, find, locate
      date, cal, bc
      more, less, tee, sort, grep, wc, tr, cut, head, tail, uniq, rev, strings
      ps, bg, fg, kill, killall, uptime, nice, renice, ionice, top
      su, mount, umount, df, shutdown, reboot
      mail, talk, dig, ping, traceroute
      rpm, apt-get

  2. 標準入力、標準出力、パイプラインとは何か。
  3. 「*」「?」「&」「;」「>」「>>」「<」「|」という各記号にはどのような意味があるか。
        例 ls -l > file
          ls -l | less
  4. シェルとは何か。
  5. 各種シェル(sh, ash, bash, csh, tcsh, ksh, zsh, dash, sashなど)の特徴を述べよ。
  6. カーネルとは何か。
  7. Vine 6.3はLinuxカーネル3.4を使用している。歴代のLinuxカーネルの進歩の歴史を説明せよ。また、カーネルの各バージョンの機能の違いも説明せよ。


第5回  http (Apache)  2016年5月18日
  1. WWWとは何か。その歴史と意義を述べよ。
  2. html、http、httpsとは何か。
  3. httpサーバプログラムには幾つもの種類がある。列挙してそれぞれの特徴を述べよ。
  4. 他のhttpサーバと比較してApacheの特徴を述べよ。
  5. Apacheの設定をした上で、自分のサーバに世間に公開して恥ずかしくない画像入りのWWWページを作成し、公開せよ。
    (著作権や肖像権を侵害しないように。写真は自分で撮影すると良い。人物を撮影したり写真を公開したりする時は本人の了解を得てから。)
  6. 関係する次のファイルの書式と意味を説明せよ。
      /etc/apache2/conf/httpd.conf, /var/log/apache2/access_log
  7. refererとは何か。refererが作られた目的は何か。refererにはどのようなセキュリティ上の問題があるか。
  8. agentとは何か。
  9. refererとagentはどのファイルに記録されるか。
  10. Linuxを起動した時にApacheが自動的に稼働するようにせよ。
  11. /etc/apache2/conf/にある設定ファイルを変更し、適切かつ好みの設定にせよ。
  12. 自分で作成したページを、https(443/tcp)でも公開せよ。

    ヒント iptables、ip6tablesの設定変更も必要


第6回  クライアントとしての利用  2016年5月25日


 健康診断のため5月25日は休講です。今回は自主勉強の課題になります。提出してもしなくても評価には影響しません。

  1. Sylpheedの設定をし、大学のサーバを使ってメールの送受信ができるようにせよ。
  2. Firefoxを適切に使い易く設定せよ。
  3. プリンタを接続して印刷ができるように設定せよ。
  4. LibreOfficeのワープロで試しに文章を作成し印刷せよ。
  5. 好みのビデオプレーヤでmpegビデオファイルとwmvビデオファイルを再生してみよ。
  6. GIMPを使い、画像の加工をしてみよ。
  7. その他、好みのアプリケーションを使ってみよ。

 大学のメールサーバのパスワードが必要です。



これより下は昨年度の課題です。順次更新します。



第6回  smtp (postfix)  2015年5月22日
  1. MTAとは何か。役割と意義を述べよ。
  2. MTAとMUAとMSAの違いを述べよ。
  3. sendmailqmailpostfixその他幾つものMTAがあるが、それぞれの特徴と違いを述べよ。
  4. postfixを適切に設定せよ。postfixを稼働させ、メールが正しく送受信できることを確かめよ。
  5. SMTP認証を利用できるように設定せよ。
  6. 25/tcp, 465/tcp, 587/tcpをどのように使い分けるか。
  7. メールをやり取りすると、/var/log/maillogには何が記録されるか。実例を示して書式を説明せよ。
  8. smtpで応答に用いられる3桁の数字は何か。特に百の位の意味を説明せよ。
  9. 自分宛のメールをサーバに残し、かつ電話機にも転送したいとする。どのように設定すればよいか。
  10. TLSが使用できるようにpostfixを設定せよ。
  11. MTAでの主な迷惑メール対策(SPF、Greylisting、アドレス検証、Greet pause、その他)について説明せよ。可能なら実際に作動させてみよ。

    ヒント http://www.rfc-editor.org/rfc.html

 次回(5月29日)は健康診断日ですが、授業を行います。健康診断該当者は、レポートを提出して、自分のサブドメイン名を決めて記入してから健康診断に行ってください。


第7回  DNS (BIND)  2015年5月29日
  1. DNSとは何か。DNSの必要性と仕組みを説明せよ。
  2. 世界中どこからでも検索することを可能にした方法を詳しく説明せよ。
  3. BINDdjbdnsPowerDNSなど幾つかのDNSデーモンがあるが、それぞれの特徴と違いを述べよ。
  4. 先ずキャッシュサーバを運用せよ。その際、再帰的名前解決を提供する範囲を実習室内に制限せよ。そして/etc/resolv.confを書き換え、自分のnamedを利用せよ。ただし、NetworkManagerを使用しているとresolv.confが破壊されてしまうので、NetworkManagerを抹消すると良い。
  5. 再帰的名前解決を無制限に提供すること(オープンキャッシュ)は何が問題か。
  6. キャッシュ汚染とは何か。何が問題か。
  7. DNSSECとは何か。必要性と仕組みを説明せよ。
  8. キャッシュサーバでDNSSECを有効にする設定をせよ。
  9. 自分のドメイン名を決めよ。ここでは仮にhoge.elec.e.yamagata-u.ac.jp.であるとして説明する。
  10. named.confと順引用設定ファイルを編集し、自分のドメインhoge.elec.e.yamagata-u.ac.jp.を運用せよ。
  11. メールをID@hoge.elec.e.yamagata-u.ac.jpで受け取れるようにせよ。
  12. WWWページをhttp://www.hoge.elec.e.yamagata-u.ac.jp/で見えるようにせよ。
  13. サーバを起動した時、自動的にnamedが動くようにするにはどうしたら良いか。
  14. 「SOA」「A」「PTR」「MX」「NS」「CNAME」「AAAA」「TXT」の各レコードの意味は何か。実例を示して書式も説明せよ。
  15. SPFを登録せよ。
  16. 逆引(IPアドレス→FQDNの変換)の仕組みを説明せよ。

    ヒント http://www.root-servers.org/
        caching-nameserverが入っていない場合は、最初にapt-getでインストールすると良い。


第8回  ssh  2015年6月5日
  1. sshとは何か。使用目的、特徴、意義を述べよ。
  2. 次のコマンドの使用方法を第4回と同様に詳しく説明せよ。
      ssh, slogin, scp, sftp, ssh-keygen

  3. 共通鍵暗号と公開鍵暗号を比較し、両者の特徴と違いを述べよ。
  4. sshは共通鍵によって暗号化通信を行なっている。共通鍵を安全に生成(交換)する方法を説明せよ。
  5. 公開鍵認証の原理を説明せよ。
  6. 公開鍵認証とパスワード認証を比較し、両者の利点と欠点を述べよ。
  7. RSA鍵、DSA鍵、ECDSA鍵、ED25519鍵の数学的な原理を説明せよ。
  8. Vine6標準のopensshは古い。Vine Seedにある新しいopensshをrpm --rebuildして手動アップデートせよ。
  9. ED25519鍵を作成し、秘密鍵を自分のサーバに置け。公開鍵を自分以外の全てのサーバに置き、ssh2のED25519鍵認証で自分以外のサーバにログインできるようにせよ。
  10. sshのポートフォワード機能とは何か。原理と使い方を説明せよ。
  11. sshのポートフォワードを通してXを使い、別のサーバで実行したプログラムのウインドウを手元に開け。
  12. sftpを用いてファイル転送をしてみよ。また、scpを用いてファイル転送をしてみよ。

    ヒント rpm --rebuildでパッケージ不足のエラーになる時は、apt-get build-depすると良い。


第9回  デーモン  2015年6月12日
  1. ポートとは何か。
  2. デーモンとは何か。
  3. ランレベルとは何か。
  4. inetdやxinetdの目的と役割は何か。
  5. tcpdの目的と役割は何か。
  6. インストール済のその他全てのデーモンの名前と目的と役割を調べ、ポート番号およびプロトコルと共に一覧表にせよ。
  7. 次のコマンドの使用方法を第4回と同様に詳しく説明せよ。
      netstat, telnet, chkconfig

  8. qpopperまたはdovecotを適切に設定(TLSによる暗号化を含む)し、pop3またはimapでメールを取得できるようにせよ。
  9. /etc/hosts.allowと/etc/hosts.denyの書式を説明せよ。
  10. /etc/hosts.allowと/etc/hosts.denyを設定し、実際どのようにtcpdが働くかを実験せよ。
  11. tcpdで禁止したアクセスがあるとログにはどのように記録が残るか。許可したアクセスの場合はどうか。実例を示して説明せよ。
  12. /etc/rc.d/以下のファイルが各ランレベル毎の自動起動に使われる仕組みを説明せよ。
  13. 停止しても支障のないデーモンを全て止め、CPUとメモリの無駄遣いを減らして高速化せよ。


第10回  時刻  2015年6月19日
  1. atとは何か。
  2. atの使用方法を第4回と同様に詳しく説明せよ。
  3. cronとは何か。
  4. cronの使用方法を第4回と同様に詳しく説明せよ。
  5. NTPとは何か。
  6. ntpd、ntpdateの使用方法を第4回と同様に詳しく説明せよ。
  7. /sbin/clockは何のためにあるか。また、clockの使用方法を同様に説明せよ。
  8. ntp.elec.e.yamagata-u.ac.jp.を参照してサーバの時刻を常に自動的に合わせるように設定せよ。
  9. 明日の午前4時ちょうどに自動的にメールを送れ。(メールの宛先は実習室の扉に貼ってある)
  10. 閏秒とは何か。閏秒はなぜ必要か。
  11. 前回の閏秒でLinuxにはどのような問題が発生したか。
  12. 2015年7月1日に閏秒がある。どのような準備をすれば良いか。また、実際にその準備をせよ。
  13. 閏秒が終了してから状況を分析して報告せよ。(この課題のみ7月3日に提出)
  14. 西暦14292年7月6日は何曜日か。求めた方法も記せ。

    ヒント http://www.ntp.org/


第11回  起動とファイルシステム  2015年6月26日
  1. initとは何か。
  2. grubの役割は何か。grubの使い方を説明せよ。起動時に任意のランレベルを指定するにはどうしたら良いか。
  3. /etc/fstab、/etc/mtabの役割と書式を説明せよ。
  4. upstartの仕組みと、/etc/init/*の役割・書式を説明せよ。
  5. /etc/sysconfig/以下の各ファイルの役割を個別に説明せよ。
  6. マウントとは何か。
  7. DVDやUSBメモリを入れると自動的にマウントされる仕組みを説明せよ。
  8. Linuxで使われているファイルシステムについて説明せよ。
  9. ext2とext3とext4の違いは何か。
  10. シングルユーザモードとは何か。
  11. インストール用DVDで起動し、fsckでハードディスクの検査を行え。
    (ヒント CTRL+ALT+F2でシェルを出す)
  12. rwでマウントされているディスクにfsckをかけるのは問題がある。何故か。
  13. /bin/syncの役割は何か。
  14. ハードディスクを増設する手順を具体的に説明せよ。
  15. 中身を移し替えてハードディスクを交換する手順を具体的に説明せよ。


第12回  パケットフィルタ  2015年7月3日
  1. IPとは何か。TCPとは何か。UDPとは何か。ICMPとは何か。TCPとUDPはどのように使い分けるべきか。
  2. TCPにはどのようなフラグがあるか。また、ICMPの種類と役割を説明せよ。
  3. パケットとは何か。
  4. パケットフィルタとは何か。何のために必要か。
  5. 次のコマンドの使用方法を第4回と同様に詳しく説明せよ。
      iptables, iptables-save, iptables-restore
      ip6tables, ip6tables-save, ip6tables-restore

  6. iptablesのモジュール「icmp」「tcp」「udp」「state」「recent」の使用方法を説明せよ。
  7. パブリックIPv4アドレスとは何か。プライベートIPv4アドレスとは何か。
  8. パケットフィルタは必要なパケットのみを通し、残りは全て捨てるように設定すべきである。icmpは何を通せば良いか。tcpは何を通せば良いか。udpは何を通せば良いか。一覧表を作り、個々の理由も記せ。
  9. そのルールをiptablesとip6tablesの書式で書け。
  10. そのルールを実際に設定し、ログを記録せよ。(iptables-ipv6をインストールする必要あり)
  11. 起動時に自動的にパケットフィルタを有効にするためにはどうすれば良いか。
  12. 5日間以上パケットフィルタのログを記録し、世界からどのような不正なパケットが来たかを報告せよ。また、個々の不正なパケットが発せられた理由を推理せよ。
  13. 侵入者はほとんどの場合、既知のセキュリティホールを突いて侵入して来る。過去に報告された深刻なセキュリティホールを調べてみよ。
  14. セキュリティホールの情報は、報告された直後に知る必要がある。どうすれば素早く知ることができるか。
  15. セキュリティホールが報告された。さてどうすべきか。


第13回  IPv6  2015年7月10日
  1. IPv6とは何か。IPv4とは何か。IPv6は何故必要か。
  2. IPv6に盛り込まれた新機能は何か。
  3. IPv6アドレスの構造と表記方法を説明せよ。
  4. IPv6アドレスと経路が自動的に設定される仕組みを説明せよ。
  5. http://www.kame.netを表示してみよ。IPv6で通信しているかどうかは「DANCING KAME」で確かめること ができる。
  6. IPv6で外の世界にping6をかけてみよ。traceroute6で経路を確認せよ。
  7. namedにIPv6アドレスを設定せよ。
  8. namedがIPv6で通信できるように設定せよ。
  9. ApacheがIPv6で通信できるように設定せよ。
  10. PostfixとSylpheedがIPv6を使用するように設定せよ。そして送受信したメールのヘッダでIPv6が使用されたことを確認せよ。
  11. sshを使ってIPv6で他のサーバから自分のサーバにログインせよ。
  12. その他全ての通信でもIPv6を使用するように設定せよ。


第14回  自由課題  2015年7月24日
  1. 自分で課題を設定し、解決せよ。


第15回  レポート提出  2015年7月31日



 



 メールアドレス