Successfully reported this slideshow.
Your SlideShare is downloading. ×

Linuxシステム管理入門

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 30 Ad

More Related Content

Viewers also liked (20)

Similar to Linuxシステム管理入門 (20)

Advertisement

More from VirtualTech Japan Inc./Begi.net Inc. (20)

Recently uploaded (20)

Advertisement

Linuxシステム管理入門

  1. 1. OSPN Linuxシステム管理入門 オープンソースカンファレンス実行委員会 宮原 徹(@tmiyahar)
  2. 2. OSPN 本資料のライセンスについて • 本資料はクリエイティブコモンズの「表示 - 継承 4.0 国際 (CC BY-SA 4.0) 」でライセン スされています。 2 表示 — あなたは適切なクレジットを表示し、ライセンスへのリンク を提供し、変更があったらその旨を示さなければなりません。あな たはこれらを合理的などのような方法で行っても構いませんが、許 諾者があなたやあなたの利用行為を支持していると示唆するよう な方法は除きます。 継承 — もしあなたがこの資料をリミックスしたり、改変したり、加工 した場合には、あなたはあなたの貢献部分を元の作品と同じライセ ンスの下に頒布しなければなりません。
  3. 3. OSPN 本日の内容 コマンドを使ったLinuxシステム管理の勘所をデ モを交えて解説します • 管理者権限 • パッケージの管理 • サービスの起動、停止 • 公開鍵認証を使ったSSH接続 基本的にCentOS/RHEL 6ベースで話しますが、 一部CentOS/RHEL 7ベースの話も混ざります 3
  4. 4. OSPN 管理者権限 root権限の取り扱い suコマンドやsudoコマンドを理解する 4
  5. 5. OSPN root権限の取り扱い A. 直接rootでログインさせる? – sshdの設定で制御可能 – 公開鍵認証でrootとしてログインさせる • パスワード認証は無効化 B. 一般ユーザでログインさせる? a. suコマンドを実行してrootに変更 • システム設定作業が多いインストール直後には向いて いる b. sudoコマンドを実行してroot権限でコマンド実行 • コマンド実行履歴が/var/log/secureに記録される
  6. 6. OSPN su コマンド実行の制限 • PAMを設定してwheelグループに所属してい るユーザのみsuコマンドを実行できるように設 定 • suコマンド実行時にrootのパスワードを要求し ないようにも設定できる – rootのパスワード設定が不要 – SSHで暗号化されていたとしてもネットワークに rootのパスワードを流したくない – キーロガーなどによってrootパスワードを奪われ たくない
  7. 7. OSPN sudo コマンドの制御 • /etc/sudoersで制御 – パーミッションは400 – 編集にはvisudoコマンドを使用 • sudoersの書式は以下の通り • wheelグループ所属のユーザーにsudoコマ ンドを実行させる設定 ユーザ ホスト=(実行ユーザ) [NOPASSWD:] コマンド %グループ ホスト=(実行ユーザ) [NOPASSWD:] コマンド
  8. 8. OSPN パッケージ管理 Linuxディストリビューションは パッケージの集合体 8
  9. 9. OSPN パッケージ管理 • パッケージとは、アプリケーションに必要なファイ ルをまとめて1つにしたもの – ディストリビューションはパッケージによって、ファイル を過不足なく管理できる • パッケージの間では「依存関係」が存在する – 依存しているパッケージがないと、パッケージがインス トールできない(AがないとBはインストール不可) – 依存されているパッケージがあると、パッケージを削 除できない(BがあるとAは削除不可) パッケージA パッケージB 依存
  10. 10. OSPN パッケージ管理ツール • パッケージのインストールや削除を行う • CentOS/RHELではyumコマンドが標準的 に使用されている – パッケージの依存関係を自動的に解消 – インターネット上のリポジトリを参照してパッ ケージのダウンロード、インストールを行う • rpmコマンドも使用できる – パッケージの依存関係は自動解消されない – パッケージを細かく管理するのに向いている 10
  11. 11. OSPN yumコマンドの主な使用方法 • パッケージ表示 – # yum list [installed] – # yum grouplist • インストール – # yum install パッケージ名 – # yum groupinstall パッケージグループ名 • 更新系 – # yum check-update – # yum update • 削除 – # yum erase パッケージ名 • パッケージグループ名が日本語で使いにくい場合はLANG=C を付けて実行 11
  12. 12. OSPN リポジトリ設定 • /etc/yum.repos.dディレクトリに設定ファイル ○○.repoを配置 – 内部で参照するリポジトリのURLなどを定義 • 外部リポジトリを参照すると、ディストリ ビューションに標準で含まれないソフトをイ ンストール可能 – 例)EPELなど 12
  13. 13. OSPN rpmコマンドの使い方(1) • # rpm オプション パッケージ名(あるいはrpm) – パッケージ名はURLを直接指定可能 – パッケージを複数指定で依存関係解消可能 • 検索オプション –q – -qa インストール済みのパッケージを表示 – -qi パッケージの情報を表示 – -ql パッケージに含まれるファイルを表示 – -qf 指定したファイルを含むパッケージを表示
  14. 14. OSPN rpmコマンドの使い方(2) • インストールオプション – 引数でrpmファイルを指定すること – -ivh 通常インストール – -Uvh アップデートインストール – -Fvh 既にインストールされているパッケージ のみアップデートインストール • 削除オプション – -e 指定されたパッケージを削除 • 依存関係がある場合、削除できない
  15. 15. OSPN サービスの起動、停止 15
  16. 16. OSPN SysV initとUpstart、systemd • システム起動時のサービス起動の仕組み • SysV initとUpstartは動作が似ているが、初期ス クリプトなどが若干違う • systemdは相当仕組みが異なる SysV init Upstart ディストリビューション CentOS 5 CentOS 6 初期設定ファイル /etc/inittab /etc/inittab 初期スクリプト /etc/rc.d/rc.sysinit /etc/init/rcS.conf ランレベル初期化スクリプト /etc/rc.d/rc /etc/init/rc.conf 各ランレベル実行スクリプト /etc/rc.d/rcX.d/ /etc/rc.d/rcX.d/
  17. 17. OSPN Linuxのサービス起動の仕組み • /etc/rc.d/ディレクトリに関連ファイルが集 まっている – /etc/rc.d/init.d/ 起動スクリプトを格納 – /etc/rc.d/rc?.d/ 各Runレベルでの起動ス クリプトへのシンボリックリンクを格納 scriptinit.d rc?.d etc/ script rc.d シンボリック リンク
  18. 18. OSPN serviceコマンド • service サービス名 コマンド – /etc/init.d/サービス名スクリプトを呼び出し • コマンドは以下の通り – start サービスを起動する – stop サービスを停止する – restart サービスを再起動する – reload 設定ファイルを再読み込み – status 起動状況を表示 18
  19. 19. OSPN systemdのディレクトリと起動プロセス • /usr/lib/systemd/system/ – /etc/rc.d/init.d/に相当 • /etc/systemd/system/ – サービス起動スクリプトに対するシンボリックリンクが配置 – /etc/rc.d/に相当 システム起動時のスクリプト遷移 1. /etc/systemd/system/sysinit.target.wants/ – rc.sysinit スクリプト相当 2. /etc/systemd/system/basic.target.wants/ – システム共通に実行されるスクリプト 3. /etc/systemd/system/multi-user.target.wants/ – 従来のランレベル3(CUI)に相当 4. /etc/systemd/system/graphical.target.wants/ – 従来のランレベル5(GUI)に相当 19
  20. 20. OSPN systemctlコマンド • サービス一覧を表示 – # systemctl -t service • サービスを起動、停止、再起動、状態確認 – # systemctl start|stop|restart|status service • サービス自動実行の確認、ON/OFF – # systemctl list-unit-files – # syetemctl is-enabled service – # systemctl enable|disable service • 起動時のデフォルトターゲットを確認、変更 – # systemctl get-default – # systemctl set-default target 20
  21. 21. OSPN 公開鍵認証を使ったSSH接続 21
  22. 22. OSPN SSHをしっかり理解しよう • SSHは暗号化通信でリモートログインする 仕組み – ファイル転送やX11プロトコルの転送も可能 • パスワード認証、公開鍵認証、ホスト認証 などをサポート – パスワード認証は危険なので公開鍵認証を設 定後に、SSHサーバで無効に設定 22
  23. 23. OSPN 秘密鍵/公開鍵暗号の仕組み • 秘密鍵と公開鍵はペアで生成される • 公開鍵で暗号化された情報は、秘密鍵だけが復号(元の 情報を取り出す)できる 公開鍵 情報 情報 秘密鍵 情報 暗号 復号 ペア 暗号化 情報
  24. 24. OSPN 公開鍵認証の開始手順 公開鍵 暗号 通信 SSHクライアント SSHサーバ 公開鍵 公開鍵 照合 乱数 乱数 復号化 暗号化 乱数 乱数 MD5 MD5 チェックサム 照合 3DES 乱数 取出し 乱数 秘密鍵 3DES パス フレーズ
  25. 25. OSPN 公開鍵認証の設定 1. 公開鍵・秘密鍵の生成 – ssh-keygenコマンドを実行 – 秘密鍵にパスフレーズを設定 – ~/.sshディレクトリに秘密鍵、公開鍵のペアが生成 2. 公開鍵をサーバに設置 – ~/.ssh/authorized_keysに追加 – 所有権をログインするユーザー、パーミッションを ~/.sshは700、authorized_keysは600に設定 3. サーバに接続 – sshコマンドを実行 – 初回のみホスト証明書の受け入れ確認 – 2回目以降は~/.ssh/known_hostsと照合
  26. 26. OSPN 公開鍵・秘密鍵の作成 $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/user/.ssh/id_rsa): (エンターキー) Created directory '/home/user/.ssh'. Enter passphrase (empty for no passphrase): (パスフレーズは非表示) Enter same passphrase again: (パスフレーズは非表示) Your identification has been saved in /home/user/.ssh/id_rsa. Your public key has been saved in /home/user/.ssh/id_rsa.pub. The key fingerprint is: b9:52:95:18:24:3c:83:91:9d:8d:76:06:0e:7a:b7:c2 user@centos6.example.com ↑フィンガープリントは公開鍵のハッシュ値 (略) $ ls -l .ssh 合計 8 -rw-------. 1 user user 1743 11月 18 15:28 2015 id_rsa ←秘密鍵 -rw-r--r--. 1 user user 406 11月 18 15:28 2015 id_rsa.pub ←公開鍵 26
  27. 27. OSPN 公開鍵の設置 1. 接続先サーバにユーザーを作成 2. ~/.sshディレクトリを作成 – 所有者はユーザー(rootでの作業時に注意) – パーミッションは700 3. ~/.ssh/authorized_keysファイルを作成 – 所有者はユーザー(rootでの作業時に注意) – パーミッションは600 4. 公開鍵(id_rsa.pub)の内容を ~/.ssh/authorized_keysに追記 – $ cat id_rsa.pub >> ~/.ssh/authorized_keys – ターミナルでエディタを使ってコピペでもOK 27
  28. 28. OSPN サーバーに公開鍵を設置 # useradd sshuser ←ユーザーを作成 # su - sshuser ←作業するユーザーを変更 $ mkdir .ssh $ chmod 700 .ssh $ cd .ssh $ touch autorized_keys $ chmod 600 autorized_keys $ cat id_rsa.pub >> autorized_keys ↑ファイルがあらかじめ配置されている前提だが、どうやって ファイルを持ってくるかが問題 28
  29. 29. OSPN sshコマンドで接続 $ ssh sshuser@server.example.com The authenticity of host 'server.example.com (192.168.0.102)' can't be established. RSA key fingerprint is e3:ea:71:a7:b6:e8:6b:2e:27:f9:83:a5:0f:63:95:13. Are you sure you want to continue connecting (yes/no)? yes ←yesと入力 Warning: Permanently added 'server.example.com,192.168.0.102' (RSA) to the list of known hosts. Enter passphrase for key '/home/user/.ssh/id_rsa': (パスフレーズを入力。非表示) [sshuser@server ~]$ 29
  30. 30. OSPN OpenSSHサーバの設定 • /etc/ssh/sshd_configを設定 – デフォルトのままではセキュリティ的にやや問題 – 特に以下の2点については設定変更が必要 – 設定後sshdサービスを再起動 ① PasswordAuthentication – パスワード認証の可否を設定 – 公開鍵認証を設定後、設定をnoに変更する • 設定しないとパスワード総当たり攻撃の対象に ② PermitRootLogin – 直接rootでログインすることの可否を設定 – noに設定し、一般ユーザーでログイン後にsuやsudoでroot 権限を取得するやり方が多い?

×