Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Linux入門講座

 Linux入門講座

長崎県立大学情報セキュリティ学科の学生を対象として開催した、Linux入門講座のスライド資料です。

More Decks by 機械音痴の鯖防人

Other Decks in Technology

Transcript

  1. 参考資料 © 2018 Cyber Tech Study Group All Rights Reserved.

    2 https://img.ips.co.jp/ij/13/1113101068/1113101068-520x.jpg
  2. Linuxディストリビューション(ディストロ) • Red Hat系 • Debian系 • Slackware系 • Arch

    Linux • Gentoo Linux など © 2018 Cyber Tech Study Group All Rights Reserved. 4
  3. Red Hat系 • Fedora • Red Hat Enterprise Linux •

    Fedoraのテスト済み安定版 • サポートが受けられる.商用.有償(むっちゃ高い) • CentOS • RHELのクローン • サポートなし.無償 • サーバ用OSとして採用されることが多い など © 2018 Cyber Tech Study Group All Rights Reserved. 5
  4. Arch Linux & Gentoo Linux • ここでは説明しません • 気になる人は •

    自分で調べて • 自分で触ってみて • そして挫折してください • 玄人向け(?) © 2018 Cyber Tech Study Group All Rights Reserved. 8
  5. スーパーユーザへの昇格 $ sudo コマンド 例)$ sudo shutdown –h now •

    プロンプトが#の場合はsudoする必要はない © 2018 Cyber Tech Study Group All Rights Reserved. 14
  6. システム終了/再起動 • シャットダウン $ sudo shutdown –h now • 再起動

    $ sudo shutdown –r now • ログアウト $ exit ※デスクトップ環境上のTerminalで実行するとTerminal終了 © 2018 Cyber Tech Study Group All Rights Reserved. 15
  7. コマンドの使い方がわからなくなった… • helpオプションを使う 例)$ shutdown --help • manコマンドを使う 例)$ man

    shutdown • ググる 例)[Linux shutdown コマンド]で検索 © 2018 Cyber Tech Study Group All Rights Reserved. 16
  8. ファイルの種類 • 通常ファイル • 通常のファイル.主にこれを操作する • ディレクトリ • フォルダのようなもの.ファイルを格納することができる •

    リンクファイル • 特殊ファイル • デバイスファイルなどの特殊なファイル © 2018 Cyber Tech Study Group All Rights Reserved. 18
  9. ファイル名 • 「拡張子」という概念が存在しない最高の世界 • hoge.txtの様にしてもしなくてもよい • .(ドット)から始まるファイル/ディレクトリ名は隠しファイル/ディレクトリ • ファイル名に使える文字は英数字とアンダーバー(_)とハイフン(-)とドット(.) •

    スペースは使わない(アンダーバー等で代用) • ファイル名は大文字小文字で区別される 例)HOGE.txt Hoge.txt hoge.txt はすべて別ファイル © 2018 Cyber Tech Study Group All Rights Reserved. 19
  10. Linuxのディレクトリ構造 • 右の図のような感じ • 一番上のディレクトリを「ルートディレクトリ」 • ルートディレクトリは「/」で表す • 今いるディレクトリを「カレントディレクトリ」 または「ワーキングディレクトリ」という

    • カレントディレクトリは「.」で表す • カレントディレクトリの1つ上のディレクトリは「..」で表す © 2018 Cyber Tech Study Group All Rights Reserved. 20 / home root hoge hoge. txt
  11. ファイルの一覧表示 • ls(LiSt)コマンド • さまざまなオプションがある(追々説明する) • Windowsのdirコマンドに相当 • 絶対パス/相対パスでディレクトリを指定 •

    ディレクトリ名を省略するとカレントディレクトリのファイル一覧を表示 $ ls [オプション] [ディレクトリ名] © 2018 Cyber Tech Study Group All Rights Reserved. 26
  12. カレントディレクトリの変更 • 適切なタイミングで適切なディレクトリに移動することによって 作業効率が上がる • cd(Change Directory)コマンド • 絶対パス/相対パスで対象ディレクトリを指定できる •

    cd - で1つ前,cd .. で1つ上のディレクトリに移動 • cd ~ または cd でホームディレクトリに移動する $ cd [対象ディレクトリ名] © 2018 Cyber Tech Study Group All Rights Reserved. 30
  13. カレントディレクトリの変更 $ cd .. $ pwd $ cd – $

    pwd $ cd /var/log/ $ pwd $ ls © 2018 Cyber Tech Study Group All Rights Reserved. 31 作業
  14. ファイルの中身表示 • cat(conCATenate)コマンド • ファイルの先頭から末尾までを一気に表示 • ただ表示するだけ • lessコマンド •

    ファイルを開きっぱなしにして自由にファイルを閲覧可能 • Spaceキーでページ送り/Ctrl+Bでページ戻り • ↑キー/Kキーで1行上へ 下キー/Jキーで1行下へ • Qキーで終了 • moreコマンド • lessコマンドとほぼ同じ © 2018 Cyber Tech Study Group All Rights Reserved. 32
  15. ファイルのコピー • cp(CoPy)コマンド • ファイルをコピーする $ cp コピー元ファイル名 コピー先ファイル名 $

    cp コピー元ファイル名 コピー先ディレクトリ © 2018 Cyber Tech Study Group All Rights Reserved. 34
  16. ファイルのコピー $ cp /etc/passwd /tmp (または $ cp /etc/passwd /tmp/passwd)

    $ ls /tmp © 2018 Cyber Tech Study Group All Rights Reserved. 35 作業
  17. ファイル名の変更・ファイルの移動 • mv(MoVe)コマンド • 通常はファイルやディレクトリの移動に使うコマンドだが,ファイル名の変更 にも使う • ファイル名の変更 $ mv

    変更前ファイル名 変更後ファイル名 • ファイルの移動 $ mv 移動元ファイル名 移動先ファイル名 $ mv 移動元ファイル名 移動先ディレクトリ © 2018 Cyber Tech Study Group All Rights Reserved. 36
  18. ファイル名の変更・ファイルの移動 • ファイルの移動 $ mv /tmp/passwd . (または $ mv

    /tmp/passwd ./passwd) • ファイル名の変更 $ mv passwd userslist © 2018 Cyber Tech Study Group All Rights Reserved. 37 作業
  19. ファイルの削除 $ rm –i userslist ~~~~~? y ←y応答 © 2018

    Cyber Tech Study Group All Rights Reserved. 39 作業
  20. 空ディレクトリの作成・削除 • 空ディレクトリの作成 • mkdir(MaKe DIRectory)コマンド(Windowsと同じ) • -pオプションを付けると複数階層のディレクトリを作成 例) $mkdir

    hoge $ mkdir hoge/fuga • 空ディレクトリの削除 • rmdir(ReMove DIRectory)コマンド(Windowsと同じ) • 空のディレクトリを削除する • -pオプションを付けると複数階層のディレクトリを削除 © 2018 Cyber Tech Study Group All Rights Reserved. 40 OR $ mkdir –p hoge/fuga
  21. 空ディレクトリの作成・削除 • 空ディレクトリの作成 $ mkdir hoge $ ls $ mkdir

    –p hoge/hoge/fuga $ tree (事前に $ sudo yum install tree) • 空ディレクトリの削除 $ rmdir –p hoge/hoge/fuga © 2018 Cyber Tech Study Group All Rights Reserved. 41 作業 hoge hoge fuga
  22. viとは • テキストエディタ • viを使ってテキスト編集することが多い 特徴 • Escキーを酷使する • j,

    k, l, mでカーソル移動 • 慣れるまで訓練が必要だが,慣れると高速にテキスト編集が可能 © 2018 Cyber Tech Study Group All Rights Reserved. 4
  23. Vim • viの進化版 • 基本的にはVimを使う • viのコマンドをそのまま使うことができる • viには無かった「ビジュアルモード」がある •

    Vimには低機能な「Vim-tiny」や 高機能な「Vim-enhanced」などがある © 2018 Cyber Tech Study Group All Rights Reserved. 5
  24. コマンドモードと挿入(インサート)モード • コマンドモード • viを操作するためのコマンドを受け付けるモード • vi起動直後はコマンドモードになっている • i(Insert)キー等で挿入モードへ移行 •

    挿入モード • 文字を入力してテキストを編集するモード • それ以上でもそれ以下でもない. • Escキーでコマンドモードへ移行 © 2018 Cyber Tech Study Group All Rights Reserved. 7
  25. コマンドモード→挿入モード • 「i」でカーソル位置に挿入 • 「a」でカーソル位置の1つ後ろに挿入 • 「I」で行の先頭に挿入 • 「A」で行の末尾に挿入 ←便利!

    • 「o」でカーソル位置の下に空行を挿入して挿入モード • 「O」でカーソル位置の上に空行を挿入して挿入モード © 2018 Cyber Tech Study Group All Rights Reserved. 8
  26. テキストの保存・viの終了 • viの終了 • コマンドモードで「:q」 • テキストを上書き保存 • コマンドモードで「:w」 •

    名前を付けて保存 • コマンドモードで「:w ファイル名」 • テキストを保存して終了 • コマンドモードで「:wq」 • 変更を破棄して終了 • コマンドモードで「:q!」 © 2018 Cyber Tech Study Group All Rights Reserved. 18
  27. PacVim • VimでPacMan(?) $ sudo yum install ncurses-devel $ git

    clone https://github.com/jmoon018/PacVim.git $ cd PacVim $ sudo make install © 2018 Cyber Tech Study Group All Rights Reserved. 21 作業
  28. vimtutor • VIM教本 $ vimtutor © 2018 Cyber Tech Study

    Group All Rights Reserved. 22 作業
  29. 登場人物の関係性(シェルの機能) © 2018 Cyber Tech Study Group All Rights Reserved.

    5 >_ カーネル シェル ターミナル ユーザからの要求(コマンド) 結果を出力(表示) ユーザのコマンドを解釈して Kernelに対し処理要求 実行結果を返す(渡す)
  30. 標準入出力 • シェルに限らず,Linux上で実行されるプログラムには 標準入力(stdin),標準出力(stdout),標準エラー出力(stderr)が ある • ファイルディスクリプタという識別子があり,標準入力には0,標準出力に は1,標準エラー出力には2が割り当てられている • デフォルトではキーボードからの入力が標準入力で,標準出力・標準エ

    ラー出力の両方が出力される © 2018 Cyber Tech Study Group All Rights Reserved. 7 $ echo “stdout” ←標準入力 stdout ←標準出力 $ ls /hoge > /dev/null ←標準入力 ls: cannot access /hoge: No such file or directory ←標準エラー出力 (標準出力を表示しないようにし,標準エラー出力のみ画面に出力)
  31. シェルのメタキャラクタ(一部) メタキャラクタ 読み方(一例) 機能 * アスタリスク 0文字以上の任意の文字列 ? クエスチョンマーク 任意の1文字

    [] ブラケット []内の任意の1文字 \ バックスラッシュ \(バックスラッシュ)直後のメタキャラクタの打ち消し “ “ / ‘ ‘ ダブル/シングルクォート クォーテーション内をただの文字列とする © 2018 Cyber Tech Study Group All Rights Reserved. 9 重要 ワイルドカード
  32. $ ls /r* $ ls /h??e $ ls /[d-e]* シェルのメタキャラクタ

    © 2018 Cyber Tech Study Group All Rights Reserved. 10 実践
  33. 1行で複数のコマンドを実行 $ date; pwd $ ls /etc && echo “/etc

    found” $ ls /hoge || echo “/hoge not found” © 2018 Cyber Tech Study Group All Rights Reserved. 15 実践
  34. パイプ $ cat /etc/passwd | less(moreでもよい) $ cat /etc/passwd |

    grep root (この場合,grep root /etc/passwdでいけちゃう…汗) ※grepコマンドはテキストファイルまたは出力を対象に文字列検索をするコ マンド © 2018 Cyber Tech Study Group All Rights Reserved. 17 実践
  35. リダイレクト(>) • 実行結果を標準出力ではなくファイルに出力する • コマンド > ファイル名 • コマンド >>

    ファイル名 • >と>>の違いは上書き(>)or追記(>>) © 2018 Cyber Tech Study Group All Rights Reserved. 18 重要
  36. リダイレクト(>) $ echo “stdout” ←標準入力 stdout ←標準出力 $ echo “stdout”

    > stdout $ cat stdout stdout ←標準出力 $ echo “stdout” >> stdout $ cat stdout stdout ←標準出力 stdout © 2018 Cyber Tech Study Group All Rights Reserved. 19 実践
  37. リダイレクト(>) • 標準出力 > ファイル 以外もできる • 例 • 標準出力

    > 標準エラー出力 • 標準エラー出力 > 標準出力 • 標準エラー出力 > ファイル • 標準出力 > /dev/null など */dev/null(nullデバイス)にリダイレクトすると出力されない © 2018 Cyber Tech Study Group All Rights Reserved. 20
  38. リダイレクト(>) $ ls /hoge > /dev/null ←標準入力 ls: cannot access

    /hoge... ←標準エラー出力 © 2018 Cyber Tech Study Group All Rights Reserved. 21 実践
  39. 発展:標準エラー出力のリダイレクト • 標準エラー出力を捕まえたい時がいつか必ず来る(!) $ ls /hoge 2> stderr *”2”は標準エラー出力を表す(0:標準入力 1:標準出力)

    標準出力と標準エラー出力両方捕まえたいときは $ ls /hoge >& output など © 2018 Cyber Tech Study Group All Rights Reserved. 22 おすすめのページ:https://qiita.com/laikuaut/items/e1cc312ffc7ec2c872fc
  40. シェルスクリプトを書いてみよう $ vi hello.sh © 2018 Cyber Tech Study Group

    All Rights Reserved. 27 実践 #!/bin/bash #使用するシェル # これはコメント行です echo “hoge” echo “fuga” echo “Hello World”
  41. もうちょっとシェルスクリプトを書いてみよう $ vi hello.sh © 2018 Cyber Tech Study Group

    All Rights Reserved. 30 実践 #!/bin/bash whoami=`whoami` # =$(whoami)でも良い echo “こんにちは${whoami}さん“ # $whoamiでも良い echo “現在は`date`です“ # ..$(date)..でも良い
  42. © 2018 Cyber Tech Study Group All Rights Reserved. 33

    以上! お疲れ様でした!
  43. プログラムの実行手順 プログラム 機械語 実行 © 2018 Cyber Tech Study Group

    All Rights Reserved. 5 コンパイルとは 高級言語で書かれたプログラムを,低水 準な言語に変換すること.機械語やアセ ンブラに変換される.
  44. © 2018 Cyber Tech Study Group All Rights Reserved. 6

    プ ロ グ ラ ム ア セ ン ブ ラ 機 械 語 コンパイル 逆コンパイル
  45. tar.gz形式での展開・圧縮 • 展開 $ tar xzvf xxxx.tar.gz • 圧縮 $

    tar czvf xxxx.tar.gz ※.tar形式にしてgzipで圧縮という方法もあるがおすすめしない © 2018 Cyber Tech Study Group All Rights Reserved. 12
  46. ソフトウェアのソースインストール $ make ←コンパイル $ sudo make install ←インストール または

    $ make && sudo make install © 2018 Cyber Tech Study Group All Rights Reserved. 14 実践
  47. パッケージ • Linuxではソフトウェアをパッケージという単位で管理している • パッケージには実行ファイル,設定ファイル,ドキュメントが含まれていて, 基本的にはコンパイル等の手順を経ずにソフトウェアをインストールできる • ファイルのフォーマットはDebian系では.deb,Red Hat系では.rpm •

    Red Hat系ではパッケージからインストールされるソフトウェアは RPM(RPM Package Manager)で管理される (Debian系ではAPT(Advanced Packaging Tool),他ディストロ ではYaSTやpacmanなど) © 2018 Cyber Tech Study Group All Rights Reserved. 16
  48. YUM • RPM(RPM Package Manager)のパッケージを管理するメタパッケージ 管理システム…(笑) • パッケージの管理は基本的にRPMで行われているが, インストール/アンインストール時に依存関係を検査してくれる •

    インストール時に依存関係により必要なパッケージは同時にインストールさ れる • Red Hat系でソフトウェアをインストールする際は基本的にはYUMを使う ←依存関係を満たすようにインストールするため © 2018 Cyber Tech Study Group All Rights Reserved. 19
  49. YUMでのインストール $ sudo yum install wireshark $ sudo yum –y

    install wireshark-gnome *インストールしたいパッケージがあれば好きにインストールしてみてください Java, Python, Vim, Emacs, Z shell... © 2018 Cyber Tech Study Group All Rights Reserved. 20 実践
  50. © 2018 Cyber Tech Study Group All Rights Reserved. 25

    以上! お疲れ様でした!
  51. ハードディスク • /dev/sda …1つ目のハードディスク • /dev/sda1 …1つ目の基本パーティション • /dev/sda2 …2つ目の基本パーティション

    • /dev/sda3 …3つ目の基本パーティション • /dev/sda4 …4つ目の基本パーティション • /dev/sda5 …1つ目の論理パーティション • /dev/sda6 …2つ目の論理パーティション … • /dev/sdb …2つ目のハードディスク … © 2018 Cyber Tech Study Group All Rights Reserved. 7
  52. パーティションの種類 • 基本パーティション • 1つのHDDに1つ以上必要 • 1つのHDDに最大4つ作成可能 • 拡張パーティション •

    基本パーティションのうち1つだけを拡張パーティションにすることができる • ファイルシステムを作成することはできない • 拡張パーティションの中に複数の論理パーティションを作成可能 • 論理パーティション • 拡張パーティションに作成されるパーティション • /dev/sd?5以降で識別される © 2018 Cyber Tech Study Group All Rights Reserved. 10
  53. ファイルシステムの種類 • ext2…一昔前のLinux標準ファイルシステム • ext3…ext2を改良し機能強化したファイルシステム • ext4…ext3を改良したファイルシステム • xfs…高速かつ堅牢なファイルシステム •

    NTFS…Windowsのファイルシステム • FAT…デジカメなどでよく使われているファイルシステム • ISO9660…CD-ROMで使われているファイルシステム • UDF…DVDで使われているファイルシステム © 2018 Cyber Tech Study Group All Rights Reserved. 13 引用:1週間でLPICの基礎が学べる本 第2版 pp.235
  54. ファイルシステムの作成 • mkfs(MaKe FileSystem) • mkfs [-t ファイルシステムの種類] デバイスファイル名 •

    -tオプションを省略するとext2でファイルシステムが作成される © 2018 Cyber Tech Study Group All Rights Reserved. 14
  55. デバイスのマウント・アンマウント マウント # mkdir /test # mount /dev/sda? /test アンマウント

    # umount /test © 2018 Cyber Tech Study Group All Rights Reserved. 17 実践
  56. /etc/fstabについて • マウントに関する情報が記述されている • 書かれている定義に従ってOS起動時などに自動的にマウントされる • 1列目…デバイス名 • 2列目…マウントポイント •

    3列目…ファイルシステムの種類 • 4列目…マウントオプション • 5列目…dump(バックアップ)するか否か 0(しない)/1(する) • 6列目…fsckチェックを行うか否か 0(しない)/1,2…(する) © 2018 Cyber Tech Study Group All Rights Reserved. 18
  57. ファイルシステムの自動マウント # vi /etc/fstab 以下を追記 /dev/sda? /test ext4 defaults 0

    0 # shutdown –r now # mount マウント確認 # ls /test 中身確認 © 2018 Cyber Tech Study Group All Rights Reserved. 19 実践 async / auto / dev / exec / nouser / rw / suid
  58. © 2018 Cyber Tech Study Group All Rights Reserved. 20

    以上! お疲れ様でした!
  59. プログラム, プロセス, スレッド © 2018 Cyber Tech Study Group All

    Rights Reserved. 4 プログラム 実行 プロセス CPU プロセス プロセス プロセス ・・・ ス レ ッ ド ス レ ッ ド ・・・ ス レ ッ ド ス レ ッ ド ・・・ ス レ ッ ド ス レ ッ ド ・・・
  60. 実行中のプロセスの確認 • ps コマンド • 主なオプション • a …他のユーザのプロセスも表示 •

    u …ユーザ名等も表示 • x …端末から実行されたプロセス以外のプロセスも表示 • 主な表示項目 © 2018 Cyber Tech Study Group All Rights Reserved. 5 USER プロセスを実行中のユーザ START プロセスの実行開始日時 PID プロセスID TIME プロセスの実行時間 STAT プロセスのステータス COMMAND 実行コマンド
  61. 実行中のプロセスの確認 $ ps $ ps aux | less © 2018

    Cyber Tech Study Group All Rights Reserved. 6 実践
  62. プロセスの終了(プロセスを◦す) • 勝手に終了しないプロセスもある • プロセスを終了させる方法 • Ctrl + C •

    kill/killall コマンド • シグナルをプロセスに送信して、 プロセスを終了させたり一時停止させたりする © 2018 Cyber Tech Study Group All Rights Reserved. 8 シグナルID シグナル名 プロセスの動作 9 KILL 強制終了 15 TERM 終了(デフォルト) 18 CONT 再開 19 STOP 一時停止
  63. killコマンド • プロセスにシグナルを送信するコマンド $ kill [シグナルID] プロセスID $ kill –s

    [シグナル名] プロセスID プロセスの終了 $ kill 28000 $ kill -15 28000 $ kill –s TERM 28000 プロセスの強制終了 $ kill –s KILL 28000 © 2018 Cyber Tech Study Group All Rights Reserved. 9
  64. killコマンド $ firefox & ↓ firefoxのプロセスIDを調べる ↓ killコマンドを使ってfirefoxを終了(not 強制終了)させる ↓

    firefoxが終了したか確認する © 2018 Cyber Tech Study Group All Rights Reserved. 10 実践
  65. © 2018 Cyber Tech Study Group All Rights Reserved. 12

    以上! お疲れ様でした!
  66. MACアドレスの確認 (例えば) $ ip link show $ ip l ©

    2018 Cyber Tech Study Group All Rights Reserved. 6
  67. IPアドレスの確認 (例えば) $ ip addr show $ ip a ©

    2018 Cyber Tech Study Group All Rights Reserved. 8
  68. ARPテーブル • ARP(Address Resolution Protocol) …IPアドレスからMACアドレスを解決するためのプロトコル • ARPテーブル …ホストが解決した、IPアドレスとMACアドレスとの対応表 •

    ARPテーブルの確認 $ ip neighbor show $ ip n (または)$ arp –a ARPテーブルの編集も可能 © 2018 Cyber Tech Study Group All Rights Reserved. 9
  69. ネットワークに関連するファイル群(Red Hat系) • /etc/hosts …IPアドレスとホスト名の対応を記述 • /etc/resolv.conf …利用するDNSサーバを記述 • /etc/sysconfig/network

    …ネットワークに関する基本的な設定を記述 • /etc/sysconfig/network-scripts/* …ネットワークインターフェースごとのネットワーク設定を記述 NetworkManagerが有効の時は、基本的に触らない方が無難。 /etc/hostsあたりは触ることがあるかも? © 2018 Cyber Tech Study Group All Rights Reserved. 12
  70. 余談:サンプル用アドレス・ドメイン • サンプル用として使用できるIPアドレスやドメインなどが RFC(Request for Comments)で規定されている • サンプル用IPアドレス • 192.0.2.0/24

    • 198.51.100.0/24 • 203.0.113.0/24 123.456.789.012 はダメ!!(IPアドレスは0~255) • サンプル用ドメイン • example.com • example.jp • ドメイン名例.jp(xn--eckwd4c7cu47r2wf.jp) など © 2018 Cyber Tech Study Group All Rights Reserved. 16 ↑punycode
  71. © 2018 Cyber Tech Study Group All Rights Reserved. 17

    以上! お疲れ様でした!
  72. 情報セキュリティの3要素 •A … •I … •C … © 2019 Cyber

    Tech Study Group All Rights Reserved. 3 Availability (可用性) Integrity (完全性) Confidentiality (機密性)
  73. CIAとAIC • C (Confidentiality) が先か、A (Availability) が先か →優先度の違い • 対象となるシステムによって異なる

    • 機密性と可用性はトレードオフの関係になりやすい • 私は、多くの場合は可用性を優先すべきだと考える © 2019 Cyber Tech Study Group All Rights Reserved. 4
  74. 情報セキュリティの7要素 • Availability (可用性) • Integrity (完全性) • Confidentiality (機密性)

    • Authenticity (真正性) • Accountability (責任追跡性) • Reliability (信頼性) • Non-repudiation (否認防止) © 2019 Cyber Tech Study Group All Rights Reserved. 6
  75. © 2019 Cyber Tech Study Group All Rights Reserved. 7

    情報セキュリティの3要素 あるいは7要素すべてを確実にすることが 情報セキュリティ
  76. 主なセキュリティ製品 • Firewall • IDS / IPS • WAF •

    UTM , NGFW • DPI • EDR • マルウェア対策ソフト などなど © 2019 Cyber Tech Study Group All Rights Reserved. 8
  77. Linuxセキュリティの基本 • パーティショニング …適切なパーティショニングによりデータの破壊などの被害を最小限に • OS・ソフトウェアのアップデート …アップデートを行い常に最新の状態に • サービス・ファイアウォールの設定 …動作させるサービスや、許可する通信は最小限に

    • パーミッション …適切なパーミッションを設定しデータの機密性・完全性を保つ • ユーザアカウント …ユーザのパスワードを適切に設定し権限は最小限に © 2019 Cyber Tech Study Group All Rights Reserved. 9
  78. Firewalld • firewalldの設定にはfirewall-cmdコマンドを使う • 「ゾーン」に対してルールを設定し、それを各NWインターフェースに適用 • ルールを変更できる「ゾーン」と変更できない「ゾーン」がある • 9つの「ゾーン」があらかじめ設定されている(ユーザ定義も可能) •

    block…外部からの接続を遮断。変更不可 • dmz…DMZ用 • drop…外部からの通信をすべて遮断。変更不可 • external…外部ネットワーク接続用 • home…自宅用 • internal…内部ネットワーク用 • public…publicな用途 • trusted…すべての通信を許可。変更不可 • work…職場用 © 2019 Cyber Tech Study Group All Rights Reserved. 12 https://www.server-memo.net/centos-settings/firewalld/firewalld.html
  79. firewalldの状態確認 • ステータスの確認 # firewall-cmd --state または # systemctl status

    firewalld • ゾーンの設定の確認 # firewall-cmd [--zone=ゾーン名] --list-all • すべてのゾーンの設定の確認 # firewall-cmd --list-all-zone © 2019 Cyber Tech Study Group All Rights Reserved. 13
  80. firewalldのゾーンの設定 • ゾーンへの許可するサービスの追加 # firewall-cmd --zone=ゾーン名 --add-service=サービス名 • ゾーンに設定されているサービスの削除 #

    firewall-cmd --zone=ゾーン名 --remove-service=サービス名 • ゾーンへの許可するポートの追加 # firewall-cmd --zone=ゾーン名 --add-port=ポート番号/プロトコル • ゾーンに設定されているポートの削除 # firewall-cmd --zone=ゾーン名 --remove-port=ポート番号/プロト コル • デフォルトのゾーンの変更 # firewall-cmd --set-default-zone=ゾーン名 © 2019 Cyber Tech Study Group All Rights Reserved. 14
  81. SELinuxの強制アクセス制御(MAC) • SELinuxで扱われている強制アクセス制御のモデル • Type Enforcement(TE) …プロセス毎の権限の最小化 • Role-Based Access

    Control(RBAC) …役割ベースのアクセス制御 • Multi Category Security(MCS) …カテゴリ毎のアクセス制御 • Multi Level Security(MLS) …セキュリティレベルによるアクセス制御 © 2019 Cyber Tech Study Group All Rights Reserved. 17 ※MAC…Mandatory Access Control アクセス制御については「認証とアクセス制御」にて
  82. SELinuxの状態の確認・変更 • SELinuxには3つのモードがある • Enforcing …有効。禁止された動作を止める • Permissive …有効。禁止された動作を止めず、ログに記録 •

    Disabled …無効 • Permissiveに設定→ログを確認しながら動作テスト→ →ルールのチューニング→Enforcingに設定 © 2019 Cyber Tech Study Group All Rights Reserved. 19
  83. SELinuxの状態の確認・変更 • 動作モードの確認 $ getenforce • 動作モードの変更(Enforcing→Permissive) # setenforce 0(シャットダウンまで有効)

    または /etc/selinux/configの ”SELINUX=enforcing”を”SELINUX=permissive”に変更して再起動 © 2019 Cyber Tech Study Group All Rights Reserved. 20
  84. IDS / IPS • IDS(Intrusion Detection System)…侵入検知システム • IPS(Intrusion Prevention

    System)…侵入防止システム • ホスト型(HIDS,HIPS)とネットワーク型(NIDS,NIPS)がある • ルールに従って、不正な通信やファイルの改ざんなどを検知、防止する • 代表的なIDS,IPS • Snort, Suricata • Bro IDS • Tripwire © 2019 Cyber Tech Study Group All Rights Reserved. 22
  85. TELNETとSSH • TELNET • 遠隔操作のためのプロトコル • 通信内容は暗号化されない • 23番ポートを使用 •

    平文のパスワード認証 • 攻撃者に狙われやすい など • SSH • 遠隔操作のためのプロトコル • 通信内容は暗号化される • 22番ポートを使用 • 鍵やパスワードによる認証 • 攻撃者に狙われやすい など © 2019 Cyber Tech Study Group All Rights Reserved. 23
  86. SSHサーバ構築 # yum install openssh-server # systemctl start sshd (※デフォルトでSSH有効の場合がある)

    firewalldでSSHが許可されているか確認する © 2019 Cyber Tech Study Group All Rights Reserved. 25 実践
  87. SSHサーバにやっておくべき設定 • SSH1の禁止 • rootログイン禁止 • 使用ポートの変更(49152~65535が良い) • パスワードではなく鍵による認証 •

    SSHログイン可能なユーザの制限 • ログイン試行回数の制限 • 利用可能なアルゴリズムの制限 などなど © 2019 Cyber Tech Study Group All Rights Reserved. 26
  88. © 2019 Cyber Tech Study Group All Rights Reserved. 30

    詳しい内容は 3年前期 「ネットワークセキュリティ」 「ネットワークセキュリティ演習」 「不正アクセス技法」 にて
  89. © 2019 Cyber Tech Study Group All Rights Reserved. 31

    以上! お疲れ様でした!