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

Linux実習


2024年4月18日更新 



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

実習機
 1号機 Core i5 2500     3.3GHz (4コア) jisshuu1(httphttps)   
 2号機 Core2Duo E7300  2.66GHz (2コア) jisshuu2(httphttps)   
 3号機 Core i3 2120     3.3GHz (2コア) jisshuu3(httphttps)   
 4号機 Core2Duo E7500  2.93GHz (2コア) jisshuu4(httphttps)   
 5号機 Core2Duo E7300  2.66GHz (2コア) jisshuu5(httphttps)   
 6号機 Core i3 3220     3.3GHz (2コア) jisshuu6(httphttps)   
 7号機 Core2Quad Q6600  2.4GHz (4コア) jisshuu7(httphttps)   
 8号機 Core2Duo E7300  2.66GHz (2コア) jisshuu8(httphttps)   
 9号機 Core i5 650      3.2GHz (2コア) jisshuu9(httphttps)   
10号機 Core i7 3770     3.4GHz (4コア) jisshuu10(httphttps)   
11号機 Core i7 930      2.8GHz (4コア) jisshuu11(httphttps)   
12号機 Core2Duo E8400   3.0GHz (2コア) jisshuu12(httphttps)   
13号機 Core i3 2120     3.3GHz (2コア) jisshuu13(httphttps)   
14号機 Core2Duo E7500  2.93GHz (2コア) jisshuu14(httphttps)   
15号機 Core2Duo E7300  2.66GHz (2コア) jisshuu15(httphttps)   

※ 実習機はIPv6で通信可能。古いバージョンのIPでは通信できない。リンクもIPv6のみ。

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



 コピペは盗作、不正行為になる。レポートは自分の文章で書くこと。引用は必要最小限で範囲を明確にして原典を明記。


第1回  序  2024年4月12日

 Linuxとは何か(歴史・特徴)

第2回  Linux のインストール  2024年4月19日

 
debian12 をインストールし、通信できて音が出ることを確認せよ。
 (実行した方法を再現できるように詳しく記録し、実行したことの意味を含めてレポートにまとめる)

・初期設定
インストール中の選択でSSHサーバとMATEの追加を推奨。GNOMEは削除可。また、アップデートのためにアーカイブミラーを選んでおく。
続けてインストール完了後に以下をやっておく。
$ sudo -s (→ パスワード入力)
# nano /etc/apt/sources.list で1行目のcdromの行を削除または無効化。行頭に#を挿入すればその行が無効化される。
# apt update
# apt upgrade
# apt install ufw
# ufw enable
# ufw allow ssh
# ufw limit ssh
# apt purge logrotate
# apt-mark hold logrotate

・IPv6アドレス
$ ip a
の出力をレポートに貼る。これを元にIPv6アドレスを登録するので、ないと遠隔ログインができない。


 ヒント

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



第3回  ユーザ管理とリモートログイン  2023年4月28日
  1. 利用者から信頼される管理者になるための心構えは。
  2. 利用者登録をするのは何のためか。
  3. 自分のサーバに全員分の利用者登録をして、初期パスワードを設定せよ。
  4. 他の受講者のサーバ全てにsshで遠隔ログインし、初期パスワードを自分の秘密のパスワードに変更せよ。
  5. 関係する次のコマンドの意味を調べ使い方を会得せよ。そして使用例を交えて使用方法を詳しく説明せよ。また、有益なオプションについても説明せよ。
      sudo, 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回  コマンド、シェル、カーネル  2023年5月2日
  1. 次のコマンドの意味を調べ使い方を会得せよ。そして使用例を交えて使用方法を詳しく説明せよ。また、有益なオプションについても説明せよ。
      man, history
      ls, cp, mv, rm, touch, cat, diff
      cd, pwd, mkdir, rmdir, du, find, locate
      date, cal, bc
      less, tee, sort, grep, wc, tr, cut, head, tail, uniq, rev, strings
      ps, bg, fg, kill, killall, uptime, nice, renice, top
      mount, umount, df, shutdown, reboot
      mail, talk, dig, ping, traceroute
      dpkg, apt

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


第5回  http (apache/nginx)  2023年5月12日
  1. wwwとは何か。その歴史と意義を述べよ。
  2. html、http、httpsとは何か。
  3. httpサーバプログラムには幾つもの種類がある。列挙してそれぞれの特徴を述べよ。
  4. nginxapacheを比較して違いを述べよ。
  5. nginxかapacheかどちらかを選びインストールと設定をせよ。
  6. 自分のサーバに世間に公開して恥ずかしくない画像入りのwwwページを作成し、公開せよ。
    (著作権や肖像権を侵害しないように。写真は自分で撮影すると良い。人物を撮影する時も写真を公開する時も相手の了解を得てから。)
  7. 設定ファイルの書式と意味を説明せよ。
  8. refererとは何か。user agentとは何か。セキュリティで注意すべき点は何か。
    ( user agentは廃止される方向にある。その事情も調べると面白い。)
  9. サーバ側ではrefererやuser agentを含むアクセス情報がどのファイルに記録されるか。
  10. Linuxを起動した時にnginxかapacheが自動的に稼働するようにせよ。
  11. 自分で作成したページを、https(443/tcp)でも公開せよ。

 ヒント 


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


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

 ヒント 

第8回  中間復習  2023年6月2日



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

  3. 共通鍵暗号と公開鍵暗号を比較し、両者の特徴と違いを述べよ。
  4. sshは共通鍵によって暗号化通信を行なっている。共通鍵を安全に生成(交換)する方法を説明せよ。
  5. 公開鍵認証の原理を説明せよ。
  6. 公開鍵認証とパスワード認証を比較し、両者の利点と欠点を述べよ。
  7. RSA鍵、DSA鍵、ECDSA鍵、ED25519鍵の数学的な原理を説明せよ。
  8. 量子コンピュータが普及したらこれらの暗号は安全か。もし短時間で解読されてしまうとしたら代わりの暗号は何が良いか。
  9. ED25519鍵を作成し、秘密鍵を自分のサーバに置け。公開鍵を自分以外の全てのサーバに置き、ssh2のED25519鍵認証で自分以外のサーバにログインできるようにせよ。
  10. sshのポートフォワード機能とは何か。原理と使い方を説明せよ。
  11. sftpを用いてファイル転送をしてみよ。また、scpを用いてファイル転送をしてみよ。
    (scpはメンテに問題があり非推奨とされたが便利なコマンドなので解決存続が望まれる)



第10回  時刻  2023年6月16日
  1. atとは何か。
  2. atの使用方法を第4回と同様に詳しく説明せよ。
  3. cronとは何か。
  4. cronの使用方法を第4回と同様に詳しく説明せよ。
  5. NTPとは何か。
  6. ntpd、ntpdateをインストールし、使用方法を第4回と同様に詳しく説明せよ。ntpsecかchronyでも良い。
  7. hwclockの使用方法を同様に説明せよ。hwclockは何のために必要か。
  8. ntp.elec.e.yamagata-u.ac.jp.を参照してサーバの時刻を常に自動的に合わせるように設定せよ。
  9. 明日の午前4時ちょうどに自動的にメールを送れ。(メールの宛先はウェブクラスに記載)
  10. 西暦14292年7月6日は何曜日か。実習機に計算させ、その方法も記せ。

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



第11回  起動とデーモン  2023年6月23日
  1. grubの役割は何か。grubの作動する仕組み、設定方法、使用方法を説明せよ。
  2. initとは何か。systemdとは何か。作動する仕組み、設定方法、使用方法を説明せよ。
  3. デーモンとは何か。
  4. ポートとは何か。
  5. インストール済の全てのデーモンの名前と目的と役割を調べ、使用しているポート番号およびプロトコルと共に一覧表にせよ。
  6. 次のコマンドの使用方法を第4回と同様に詳しく説明せよ。
      systemctl, ss, telnet, openssl (opensslはTLS通信の確認に使える機能を説明)

  7. TLSによる暗号化を含めてdovecotを適切に設定し、pop3またはimapでメールを取得できるようにせよ。
  8. 停止しても支障のないデーモンを全て止め、CPUとメモリの無駄遣いを減らして高速化、省電力化せよ。

 ヒント



第12回  ファイルシステム  2023年6月30日
  1. ファイルシステムとは何か。マウントとは何か。
  2. Linuxで使われているファイルシステムについて説明せよ。
  3. ext4とxfsとbtrfsの違いは何か。
  4. LUKSについて説明せよ。
  5. /etc/fstab、/etc/mtabの役割と書式を説明せよ。
  6. 第4回で調べた次のコマンドを復習せよ。
      mount, umount, df

  7. DVDやUSBメモリを入れると自動的にマウントされる仕組みを説明せよ。
  8. DVDで起動し、fsckでハードディスクの検査を行え。
  9. rwでマウントされているディスクにfsckをかけるのは問題がある。何故か。
  10. 次のコマンドの役割は何か。また、使用方法を第4回と同様に詳しく説明せよ。
      sync

  11. ハードディスクを増設する手順を、使用するコマンドラインを含めて具体的に説明せよ。
  12. 中身を移し替えてハードディスクを交換する手順を、使用するコマンドラインを含めて具体的に説明せよ。



第13回  IP  2023年7月7日
  1. IPとは何か。IPアドレスとは何か。
  2. IPのv6(バージョン6)とv4(バージョン4)の違いは何か。IPv6はなぜ必要になったか。
  3. IPv6から盛り込まれた機能を説明せよ。
  4. CIDRによるIPアドレス表記方法をIPv6とIPv4に分けてそれぞれ説明せよ。
  5. TCPとは何か。UDPとは何か。ICMPとは何か。
  6. TCPとUDPはどのように使い分けるか。
  7. TCPにはどのようなフラグがあるか。
  8. ICMPの種類と役割を説明せよ。ICMPはv6とv4で特に違いが大きい。それぞれに分けて説明せよ。
  9. IPv6アドレスと経路が自動的に設定される仕組みを説明せよ。
  10. IPv6アドレスにはグローバルユニキャストアドレス、リンクローカルアドレス、ユニークローカルユニキャストアドレス、マルチキャストアドレスなどの種類がある。それぞれ説明せよ。
  11. 同様にIPv4アドレスの種類についても説明せよ。
  12. pingを使ってみよ。
  13. tracerouteを使ってみよ。



第14回  パケットフィルタ  2023年7月14日
  1. パケットとは何か。
  2. パケットフィルタとは何か。何のために必要か。
  3. ufwとnftablesはどのような関係か。
  4. 次のコマンドの使用方法を第4回と同様に詳しく説明せよ。
      ip, ufw, nft
  5. パケットフィルタは必要なパケットのみを通し、残りは全て捨てるように設定すべきである。icmpは何を通せば良いか。tcpは何を通せば良いか。udpは何を通せば良いか。一覧表を作り、個々の理由も記せ。
  6. そのルールを実現するためにufwまたはnftablesを実際に設定せよ。
  7. 5日間以上パケットフィルタのログをとり、世界からどのような不正なパケットが来たかをまとめよ。また、個々の不正なパケットが発せられた理由を推理せよ。
  8. 侵入者はほとんどの場合、既知のセキュリティホールを突いて侵入して来る。最近1年間に報告されたLinuxの深刻なセキュリティホールを調べてみよ。
  9. ゼロデイ攻撃とは何か。セキュリティホールを報告された直後に知るためにはどうすれば良いか。
  10. セキュリティホールが報告された。対策の手順を説明せよ。


最終回  レポート提出・総復習  2023年7月21日




 メールアドレス