Transcript 20130419
最低限 Unix (Linux) I
~ Linux 入門 ~
情報実験 第 2 回 (2013/04/19)
北海道大学大学院
理学院 宇宙理学専攻
三上 峻
目次
1.
2.
3.
4.
5.
Linux とは
Linux のデータ管理
Linux のアカウントシステム
アカウントが盗まれたら
良いパスワードを付ける
1. Linux とは
はじめに
• 貴方の周り(家)のパソコンを思い浮かべてください
そのパソコンで使っている OS は何でしょう?
▫
▫
▫
▫
Windows
Mac OS
Linux
その他
• この授業では Linux を使います
そもそも OS とは何?
OS (Operating System)
• 計算機を管理・操作するための基本ソフトウェア
• OS がないとアプリケーションソフトは動作しない
▫ アプリケーションソフトとは特定の目的の為に作られた
ソフトウェアのこと(例 : Excel, Internet Explorer など)
▫ アプリケーションソフトとハードウェアとの仲介を務める
OSはえらい
http://crew-lab.sfc.keio.ac.jp/projects/2001ipl-text/info-2002-9/04/index.html
この授業で用いる OS: Linux
• Linus Torvalds 氏が開発 (1991)
▫ Unix の勉強の為にゼロから開発
▫ Linus + Unix = Linux (諸説あり)
• フリーソフトウェア
▫ 無料
▫ オープンソース
ソースコードが開示されている
▫ システムを自分好みにカスタマイズ可能
▫ ソフトウェアの脆弱性にメーカーではなくユーザ間で
対応
▫ ウェブ上のフリーのマニュアルも充実
▫ ただし,無保証!!
ぜいじゃく
http://adamjarret.com/blog/index.php/2009/11/linus-torvalds-interviewed-on-floss-weekly/
Linux ディストリビューション
• Linux ディストリビューション
▫ Linux カーネル(OSの中核,第3回)に各種アプリケーション
を加えたもの
•例
▫ Debian系
Debian GNU/Linux
Ubuntu
▫ Red Hat 系
Fedora
CentOS
Vine Linux(日本), Red Flag Linux(中国), Red Star OS(北朝鮮)
INEX ではなぜ Debian GNU/Linux か
• フリーOS
▫ フリー = 無料 + オープンソース
• 堅牢なパッケージ管理システム
▫ 安心の三段階審査
▫ 最初にパッケージ管理システムを導入
• サーバの構築・管理に便利
▫ 必要最小限のシステム構成にすることが比較的容易
セキュリティを高める上で重要
2. Linux のデータ管理
Linux のデータ管理
• 全てファイルとして扱われる
▫ アプリケーションソフト, 周辺機器さえもファイル
マウス, キーボード, ハードディスク…
• ファイルはディレクトリにより階層的に管理
▫ ディレクトリ とはファイルを格納するためのファイル
Windows で言えばフォルダ
▫ ディレクトリの中にディレクトリを格納することも可能
Linux のディレクトリ階層構造
• ルートディレクトリ “/” を起点とするツリー構造
/ (root)
・・・・
home
etc
usr
proc
・・・・
foo
bar
bin
lib
ディレクトリの呼び方
• ホームディレクトリ
▫ 各ユーザ用ディレクトリ
/ (root)
▫ home ディレクトリとは異なる
▫ “~” (チルダ)で表す
• カレントディレクトリ
▫ 現在いるディレクトリ
▫ “.” (ドット)で表す
• 親ディレクトリ
▫ 一段上のディレクトリ
▫ “..” (ドットドット)で表す
• 子ディレクトリ
▫ 一段下のディレクトリ
・・・・
home
etc
foo
bar
work
test.txt
ファイルの指定方法
• パス
▫ 目的のファイルにたどり着くた
めの道順
/ (root)
• 絶対パスを用いた指定
・・・・
▫ ルートディレクトリ “/” を起点
/home/foo/test.txt
/home/foo/work
home
etc
foo
bar
• 相対パスを用いた指定
▫ カレントディレクトリ “ . ” を起点
../foo/test.txt
../foo/work
• “~” を用いた指定
▫ ホームディレクトリを起点
~foo/test.txt
~foo/work
work
test.txt
ディレクトリに関するコマンド
• cd
▫ ディレクトリを移動する
• pwd
▫ 現在のディレクトリの場所を絶対パスで表示
• ls
▫ ディレクトリの中身や情報を表示
• tree
▫ ファイル・ディレクトリをツリー形式で表示
▪ mkdir, rmdir
▫ ディレクトリを作成・削除
▪ rm
▫ ファイル・ディレクトリを削除
詳しくは実習編で!!
3. Linux のアカウントシステム
アカウントシステム
• 利用者を事前に登録 (アカウント登録)するシステム
• アカウントとは利用権限のことを指す
• 登録しないと使えない/使わせない
• アカウント情報
•
•
•
•
アカウント名
パスワード
フルネーム
住所
等.
• アカウントをもらうとログインができる
• アカウントの貸し借りは絶対にしない
Windows の場合
このパソコンでは二つのアカウントが登録されている
Windows の場合
右のアカウントでログインしたい!!
Windows の場合
アカウント名
パスワード入力[Enter]
Linux の場合
ホスト名
(計算機の名前)
アカウント名入力 [Enter]
Linux の場合
パスワード入力(出力されない) [Enter]
ログイン完了!!
Linux のログインとアカウントの種類
• 必要な入力事項はアカウント名とパスワードのみ
• アカウントの種類
▫ 計算機管理者(root)
計算機内での最高権限者
全権限を行使可能
例:アカウントの新規作成・削除・システムファイルの編集
▫ 一般ユーザ
root 以外のアカウント(さっきの画像では mikataka)
計算機自体の運用については不可触
例:シャットダウンすら不可能
アカウントシステム
• 安全・円滑に共用を可能にする利用方式
• 一つのマシンを複数のユーザで使うことができる
• プライバシー
• 他人からのデータの操作はパーミッション設定を適切にす
ることで防止できる
• アカウントを持つ人はパスワードを守る責務を負う
▫ 漏えいするとクラッキング(計算機の不正使用)される
恐れがある
自分だけでなく他人にまで迷惑がかかる(詳細は後述)
パーミッション
• ファイル・ディレクトリの利用権限
▫ ファイル・ディレクトリに対して「誰が」「何を」していい
のか
▫ すべてのファイル・ディレクトリにそれぞれパーミッショ
ンが設定されている
パーミッションはなぜ必要か?
• 大事なものを守る
▫ プライバシーの保持
他者に見られたくないファイル
メール・未発表の研究データ・ムフフなあいつ…
勝手に改変されると困るファイル
公開データ・自作プログラム・自分のウェブページ…
▫ システム管理等の重要ファイルの保護
/etc/shadow 等のシステムファイル(実技編発展 参照)
計算機を共同利用する上で,目的に応じた適切なパー
ミッション設定が必要となる
パーミッション具体例
chappy@joho38:/home/chappy/test$ ls -l
合計 28
-rwx-w-r-x 1 chappy epnetfan 17082 2011-12-11 12:22 ichigo.txt
• 「誰が」
▫ ファイル所有ユーザ(User)
▫ ファイル所有グループ(Group)
▫ その他(Others)
• 「何を」
▫ 読み取り(Read)
▫ 書き込み(Write)
▫ 実行(eXecute)
• コマンド
▫ chmod
(ファイルの権限の変更)
▫ chgrp
(ファイルのファイル所有グループの変更)
▫ chown
(ファイル所有ユーザの変更)
• 例外
▫ システム管理者( root )はパーミッション設定に関係なくあら
ゆる権限を持つ
詳しくは実習編で!!
4. アカウントが盗まれたら
アカウントクラック時の被害(1) : 本人
•
自分のアカウント情報書き換え
▫
•
パスワードが変更されればログイン不可
データの盗難・破壊
▫
•
自分が蓄積した経験が水の泡…
将来にわたっての継続的な不安
▫
▫
盗み見られたデータに基づく恐喝
ネットワークへのデータ流出に伴う半永久的な損害
一旦出てしまえば事実上回収は不可能
クラック時の被害(2) : 他のユーザ
•
計算機の運用妨害
▫
•
高負荷処理によるサービス妨害
他のアカウントへの被害波及
▫
▫
一旦ログインできればあとは比較的簡単
ルートクラック ≒ 計算機の運用停止
ルートクラックの恐ろしさ
• 計算機の全情報が自由に操作される
▫ 計算機管理者は絶対主権者なので計算機の全情報
を見られる・変更できる・消去できる
• 一度でもルートクラックされると・・・
1. クラッカー達の鴨リストに載り, そのマシン情報はす
ぐにネットワークを通じて拡散する
2. 容易に暴けるクラック対象として世界中から集中攻
撃を受けるようになる
3. 数カ月おきにクラックされるようになる
4. 計算機の運用停止に追い込まれる
▫ こうして joho21 は・・・
クラック時の被害(3) : 世界
•
同一ネットワーク内の他の計算機へ侵入
▫
•
「自分の手」を汚さずに「内側」からクラック
インターネットを通じてより大規模なクラックへの踏
み台として悪用
▫ クラックした複数のマシンをさらなるクラックのための
高速計算に転用
▫ 多数のマシンを使っての大規模なサービス妨害
• 犯罪等への加担
▫ 時には国際問題にも発展
• ネットワークにつながった計算機 = 凶器になりうる
このような被害を
出さないためにも
アカウントを持つ人は
良いパスワードをつけて
計算機を守る義務がある
5. 良いパスワードを付ける
まずは敵を知る(クラッキング手法)
• Brute Force Attack(BFA, 総当たり攻撃)
▫ 考えられる全てのパスワードを片っ端から試す
▫ 解読に要する時間は字数に大きく依存
一文字増えるごとに指数関数的に長くなる
1 か月継続的に試すクラッカーは(現実的には)いない
• Dictionary Attack (DA, 辞書攻撃)
▫ 様々な分野の単語を記録したクラッキング用辞書を使う
▫ BFA より極めて効率的
大文字,小文字,数字を組み合わせてクラックできる
例:o →O(小文字を大文字に),i → 1(英語を数字に)
良いパスワードとは
• パスワードにも善し悪しがある
▫ 「弱い」パスワードはほとんど役に立たない
• 必要条件
▫ なによりも頑丈さ (十分な長さ, 様々な記号の使用)
▫ 他者にとっての使いにくさ(予想しにくい)
• 理想
▫ 自分にとっての使いやすさ (憶えやすい)
良いパスワードの必要条件
• 8文字以上並べる
• 可能な範囲でばらばらの文字・記号を使う
▫ 大文字, 小文字, 数字, 記号
• 推定しやすい文字列を用いない
▫ 辞書にある単語
▫ 個人情報から推定できる言葉
• 簡単な規則のみで置き換えた文字列を用いない
▫ 逆つづり(yranoitcid), 繰り返し(dictionarydictionary)
▫ 小文字→大文字(YranoItcid), 小文字→数字
(yran01tc1d)
パスワード例
• 悪いパスワード
▫ 単語・固有名詞・個人情報から推定できるもの
Flower,hokudai,mikataka …
▫ 専門用語
Pneumonoultramicroscopicsilicovolcanoconiosis (塵肺症)
• 良いパスワード
▫ スリジャヤ・ワルダナ・プラコッテ(スリランカの首都)を少し
いじってみる
srjywrdnprkt
Srjy!Wrdn$Prkt#
もちろんこのパスワードは
すでに良いパスワードではない
パスワードマナー
• パスワード打鍵時は視線を逸らす
▫ 「ソーシャルクラッキング」と呼ばれる立派なクラック手
法
• パスワードは誰にも教えない
• パスワードはメモしない(方がいい)
▫ やむを得ずメモする場合は
見せない・捨てない・失くさない
• 同じパスワードを使いまわさない
• パスワードは定期的に変更する
• 初期パスワードは迅速にログインしたうえで変更す
る
実習編では・・・
Linux をいじり倒す準備を整える
• アカウント作成
▫ アカウント名
▫ 良いパスワード
• ログイン・ログアウト
• 簡単なコマンドの実行
• ディレクトリ階層構造の理解
▫ ディレクトリの移動
▫ カレントディレクトリの把握
▫ ファイルの指定 (絶対パス, 相対パス)
• パーミッション設定
まとめキーワード
•
OS
▫
▫
•
Linux
Linux ディストリビューション, Debian
データ管理
▫
▫
•
ファイル, ディレクトリ
絶対パス, 相対パス, チルダ(~)
アカウントシステム
▫
▫
•
root
パーミッション
パスワード
▫
▫
クラッキング, ルートクラック, ソーシャルクラッキング
BFA, DA
参考文献(1)
• 日本ネットワークセキュリティ協会教育部会, 2009
情報セキュリティプロフェッショナル教科書, アスキー・メ
ディアワークス
• 林晴比古, 2004,
改訂 新 Linux/Unix 入門, ソフトバンククリエイティブ
• 橋本英勝, 2010,
基礎からのLinux 改訂版, ソフトバンククリエイティブ
参考文献(2)
• LinuxとFreeBSD等の違いを使用感から述べてみました
http://yatsute.s22.xrea.com/contents/article//everything/
pc/freebsd/etc/Linux%82%C6FreeBSD%81%95etc.pf
• GUIとCUI - 南野 輝
http://www2s.biglobe.ne.jp/~chic/tron008.html
• GUIとCUI(2) - 京都産業大学
http://www.cc.kyoto-su.ac.jp/~hirai/text/cui.html
参考文献(3)
• 情報実験第 2 回講義資料 最低限UNIX(1) UNIX における
パスワード - 高橋康人
http://www.ep.sci.hokudai.ac.jp/~inex/y2011/0422/lecture/
pub/
• 情報実験第 3 回講義資料 最低限UNIX(2) Linux 入門 山下 達也
http://www.ep.sci.hokudai.ac.jp/~inex/y2011/0506/lecture/
pub/
付録:Linux 内のアカウント情報
• 他の情報と同じくファイルとして保存
▫ 3つに分けて保存されている
• /etc/passwd
▫ アカウントの基本情報。閲覧制限なし
• /etc/shadow
▫ アカウントの暗号化済みパスワード情報。 root のみ
閲覧可。
• /etc/group
▫ グループの基本情報。閲覧制限なし
▫ グループについては最低限UNIX Ⅱ を参照
付録:ドットファイル(隠しファイル)
• ドットファイルの例
▫ .bashrc, .bash_profile, .emacs など
• ユーザの環境設定用ファイル
▫ “ . ” で始まるファイル
▫ 各ユーザのホームディレクトリ直下に存在
▫ ls (ファイル一覧表示コマンド) と打っただけでは表示
されない (ls –a と打つべし)
▫ 日本語環境の設定など
▫ 削除したり書き換えする際には慎重に ! !
▫ 実習編でも紹介
付録:”/”以下のディレクトリの役割(一部)
▫ /home : ユーザ用ディレクトリ
▫ 各ユーザのホームディレクトリを格納
▫ /usr : 各種プログラム用ディレクトリ
▫ カーネルソースや共有プログラムを格納
▫ /etc : システム管理用の各種設定ファイルを格納
▫ /proc : カーネルの動作情報を示す, 特殊なファイルを格納
その他にもたくさんあります
詳しくは実習編の発展のページで