• 検索結果がありません。

No02 Basic Linux Operations

N/A
N/A
Protected

Academic year: 2018

シェア "No02 Basic Linux Operations"

Copied!
61
0
0

読み込み中.... (全文を見る)

全文

(1)

基盤構築演習

Cloud Infrastructure Design and Deployment

2. Linux ー 構築 基礎知識

2017.v1

(2)

Table of contents

 Linux ー ー 基礎

o OS 役割

o Linux 起動

o systemd 起動

 ー 基礎

o ン LVM 構成

o 利用

o iSCSI ー ッ 構成

 ネッ ワー 基礎

o IP ネッ ワー VLAN 基礎

o iptables 基礎

o iptables NAT 処理

o ネッ ワー ネー

o OpenFlow Open vSwitch

 鍵 SSH 認証

(3)

Linux ー ー 基礎

OS 役割と

(4)

OS 役割と ?

 OS 物理 ン ーネン 違い 吸収 抽象化 単純化 架空 ン

ー ー / ー ン・ 提供

o OS 利用者 基本的 違い 意識 必要 あ

 OS 導入・設定 管理者 ー 違い 理解 上 適

切 構成 必要 あ

o 選択 導入 注意 必要

物理 ン ーネン

抽象化 単純化

架空 ン ー

ー ン・

(5)

役割

 ー ・ ー 物理

NIC 要求

Linux ーネ 適切 使

用 実際 行い

 Linux ーネ ー ン 対応

ン 必要 あ

o Red Hat Enterprise Linux 各 ーネ

RPM ッ ー 内 ーネ 本体 合わ

ン 一式 含

o /lib/modules/< ーネ ン>/以下 該

当 ーネ 用 導入

 Linux起動時 ー

ン 必要 初

期RAM 提供

o 初期RAM 後 説明

物理

ー ・

ソー 配分

ー 空間

Linux ーネ

(6)

Linux ー ー 基礎

Linux 起動プ セ

(7)

Linux 起動プ セ と初期RAM

 ー 電源 入 ー 搭載 BIOS 起動 ー

GRUB2 読 込 実行 開始

o BIOS 使用 独自機能 起動

 GRUB2 起動 ーネ 選択画面 表示 指定 ーネ 初期RAM 読

込 後 ーネ 実行 開始

o 初期RAM 必要 init

 ーネ 初期RAM 上 領域 展開 読

込 後 init 実行

ー ー GRUB2

/boot

ー ー 読 込

RAM 領域

展開

物理 起動

Linux ーネ

初期RAM

Linux ーネ

初期RAM

RAM 領域

・init

・ 他 ン 類

BIOS 起動

(8)

Linux 起動プ セ と初期RAM (2)

 ーネ 展開 初期RAM 含 init 実行 OS 起動

開始 RHEL7 以降 init systemd ン い

o systemd 後 補足

 RHEL6以前 init 以下 う い

lrwxrwxrwx 1 root root 7 2 21 11:13 bin -> usr/bin drwxr-xr-x 2 root root 4.0K 2 21 11:13 dev

drwxr-xr-x 11 root root 4.0K 2 21 11:13 etc

lrwxrwxrwx 1 root root 23 2 21 11:13 init -> usr/lib/systemd/systemd lrwxrwxrwx 1 root root 7 2 21 11:13 lib -> usr/lib

lrwxrwxrwx 1 root root 9 2 21 11:13 lib64 -> usr/lib64 drwxr-xr-x 2 root root 4.0K 2 21 11:13 proc

drwxr-xr-x 2 root root 4.0K 2 21 11:13 root 省略

#!/bin/nash 中略

echo "Loading ehci-hcd.ko module" insmod /lib/ehci-hcd.ko

echo "Loading ohci-hcd.ko module" insmod /lib/ohci-hcd.ko

echo "Loading uhci-hcd.ko module" insmod /lib/uhci-hcd.ko

mount -t usbfs /proc/bus/usb /proc/bus/usb echo "Loading jbd.ko module"

insmod /lib/jbd.ko 中略

echo Mounting root filesystem. mount /sysroot

echo Setting up other filesystems. setuproot

echo Switching to new root and running init. switchroot

#!/bin/sh

#

# Licensed under the GPLv2

#

# Copyright 2008-2009, Red Hat, Inc.

# Harald Hoyer <harald@redhat.com>

# Jeremy Katz <katzj@redhat.com> 中略

# start up udev and trigger cold plugs udevd --daemon –resolve-names=never

中略

exec switch_root "$NEWROOT" "$INIT" $initargs || { warn "Something went very badly wrong in the init ramfs. Please "

warn "file a bug against dracut." emergency_shell

} fi

RHEL5 場合

→ insmod ン 明示的 ー RHEL6 → udevd 必要 場合 判別 ー (*)

判別 参考資料: RHEL6 け 機能変更 ョ udev 自動 ー 参照

(9)

Linux ー ー 基礎

systemd ービ 起動

(10)

systemd

 systemd Linux ーネ 起動後 一番最初 起動 常 ID=1

o systemd 起動 予 用意 設定 従い 様々 起動 OS 起動時

自動実行 い 様々 や ー ン systemd 起動

 RHEL7以降 標準機能 採用 い

o 以前 SysVinit いう形式 採用 い

 SysVinit Unix 受け継 伝統的 起動方法 ーネ 起動 /sbin/init /etc/inittab 設定 従い

初期化 ン 応 起動 順次実行 いく方式

 起動 単純 管理 わ や く 容易

 限界 systemd ッ

o OS 利用環境 多様化 従い OS 起動処理 様々 要件 求 代表的 例

仮想 ー ー 普及 あ

 物理環境 あ 一度起動 後 構成 変更 新 機器 接続等 稀 初期化 起動時 一回行

え 十分 仮想化環境や 環境 仮想 ー ー ネッ ワー や 構成 動的 変更

可能

 構成 変更 行わ 一部 初期化処理 再実行 必要 あ 記述 起動処理

部分 切 出 再実行 再実行 伴い 影響 うけ ? い 操作 SysVinit 形式

困難

o systemd 問題 解決 起動時 行わ 処理 Unit いう単位 細分化

依存関係 定義 う い 必要 応 特定 処理 再実行 事 容易

o 依存関係 定義 依存関係 並列 起動 起動 高速化

う ッ あ

(11)

Unit 種類と ービ 操作

 systemd 管理 Unit いく 種類 あ Unit 管理 拡

張子 種類 判別 以下 Unit 種類

o service : ー 起動 管理者 主 操作

o target :複数 Unit ー 化

o mount /etc/fstab 自動生成

o swap : ワッ 領域 有効可 /etc/fstab 自動生成

o device 処理 認識 自動生成

 設定 以下 保存 い

o /usr/lib/systemd/system 設定内容

o /etc/systemd/system 変更 内容

 systemd 管理 ー systemctl ン 操作 行い

o 起動: systemctl start <<service>>

o 停止: systemctl stop <<service>>

o 有効化: systemctl enable <<service>>

o 無効化: systemctl disable <<service>>

o 再起動: systemctl restart <<service>>

o 一覧表示: systemctl - a

 systemd 詳 い説明 参考資料 確認く い

o Linux 構築・運用技術 第5章 Linux 内部構造

(12)

基礎

ンとLVM 構成

(13)

領域 ン構成

 領域 ー ン 特別 要件 無い限 次 単純 構成

o (*) 本来 ワッ 領域 不要 程度 十分 実 搭載 望 場

合 最大 2GB 程度 ワッ 領域 用意 十分

 ー ン 構成方法

o ー 時 ン設定画面 作成 選択後 上

記 ー ン 指定

o 自動 ー 選択 LVM ( 論理 ネー ) 利用

ー ン構成

ー ン ー ッ 説明

/boot ext4 / xfs 通常 500MB 程度 十分

/ ext4 / xfs 10GB 程度あ ッ ー 導入 可能

内蔵 総容量 応 決定

ワッ 領域 Swap Red Hat 社 下記 推奨 い

(*)

・実 2GB 以下 時 : 実 2

・実 2-8GB 時 : 実 同

・実 8-64GB 時:実 半分

・実 64GB 以上 時:利用用途 応 決定

(14)

LVM 概要

 論理 ー ・ ネー LVM 物理 ー

PV VG 論理 LV

概念 管理

o 物理 PV :個々 物理 /dev/sdX

o VG :複数 PV

o 論理 LV :VG内 作成 仮想的

 LV 上 作成 使用

o 複数PV LV 作成可能 LV 拡張 可能

o PV 追加 VG 全体 拡張可能

ー ー VG

論理 ー LV

物理 ー PV

ー ン

LVM 管理

LVM 管理

/dev/<VG名>/<LV名> /dev/sda1

/dev/sda2

/dev/sda3

(15)

LVM 基本操作

 新規PV VG 構成 LV 作成 手順 例 (1)

o pvcreate: /dev/sdb /dev/sdc PV 登録

o vgcreate: /dev/sdb /dev/sdc VG vg_data00 作成

o lvcreate: vg_data00 内 512MB LV lv_data00 作成

o -i 複数PV 2 指定

 LV 上 作成 使用 (2)

o 複数PV LV 作成可能 LV 拡張 可能 (3)

o PV 追加 VG 全体 拡張可能 (4)

# pvcreate /dev/sdb

# pvcreate /dev/sdc

# vgcreate vg_data00 /dev/sdb /dev/sdc

# lvcreate -i 2 -L 512M -n lv_data00 vg_data00

# mkfs.ext4 /dev/vg_data00/lv_data00

# mkdir /data00

# mount /dev/vg_data00/lv_data00 /data00

(1) PV/VG 構成 LV 作成

(2) LV 作成

# pvcreate /dev/sdd

# vgextend vg_data00 /dev/sdd

(4) VG 新規PV 追加

# lvextend -L+128M /dev/vg_data00/lv_data00

# resize2fs /dev/vg_data00/lv_data00

(3) LV 拡張

# pvdisplay (or pvs)

# vgdisplay (or vgs)

# lvdisplay (or lvs)

構成情報 確認

# yum install -y lvm2

# reboot

(16)

LVM ップ ついて

 既存 論理 ー ッ ッ 論理 ー 作成

o 元 論理 差分 ー 保存 領域 け 持

論理 ー ッ ッ 書 込 発生 差分 ー

o 読 込 差分 あ 場合 差分 ー 差分 い場

合 元 論理 ー ー 読

 差分 ー 領域 不足 ッ ッ 使用不能

o 通常 物理 ー 取得

破棄

論理 ー

差分 ー 領域

読 込

差分 あ 場合

差分 い場合

ッ ッ

LVM 仕組

ッ ッ

論理 ー

(17)

LVM ップ ップ

 ッ ッ 作成 一瞬 終わ ッ ッ 取得

う ー ン停止時間 短縮 い場合 有用

o 作成 削除 次 用い

o lvcreate -s -L < 差分領域 容量> -n < ッ ッ LV名> /dev/<VG名

>/<LV 名>

o lvremove -f /dev/<VG 名>/< ッ LV名>

ッ ッ ッ ッ

取得 後 ッ ッ 削除

LVM ッ 取得 流 ン 例

・ ー ン停止

・ ↓ ン ン

・ ッ ↓ ッ 作成

・ ↓ ン

・ ↓ ー ン再開

ン停止

# umount /data00

# lvcreate -s -L 100M -n lv_snap00 /dev/vg_data00/lv_data00

# mount /dev/vg_data00/lv_data00 /data00

ー ン再開

# mount /dev/vg_data00/lv_snap00 /mnt/snapshot

/mnt/snapshot

# umount /mnt/snapshot

# lvremove -f /dev/vg_data00/lv_snap00

(18)

Device Mapper ついて

 LVM 動作 内部的 Device Mapper いう機能 実現 い

o Device Mapper 特定 切 出 別名 付け

ッ う

o Device Mapper Linux 操作 基本機能 1 LVM う 論理

実現 ー ン ー 二重化 暗号化等

利用 い

 様々 ッ ン 可能

o 方式:Linear Striped Mirror Multipath Snapshot Crypt Zero Error Delay

o 詳細 man(8) dmsetup 参照

DM

Linear ッ ン

DM

Striped ッ ン

(19)

基礎

ー フ と ープ ッ 利用

(20)

ー フ 仕組み

 ー 通常 ー

使用 仕組

o DVD ー 形式 ISO

ー 一種

 ー 内部 ー ン 分割

各 ー ン 作成

o ー 仮想化環境 仮想 ン 接続

想 利用

ー 内部 仮想

ー ン 分割

作成

ー ン

論理 ー

/dev/vda1

/dev/vda2

/dev/vda3

(21)

ープ ッ 利用 (1)

 ー ンや論理 ー 対応 あ

o /dev/sda1 /dev/<VG 名>/<LV名>

o 指定

 ー ー ッ 紐 け ー 内

ン 編集

o 内部 ン 持 いISO -o loop

ン 自動的 ー ッ 紐 け 行わ

o 次 例 dvd.iso /dev/loop0 紐 け

dvd.iso

物理 ー

/dev/sda

/dev/loop0

ー ッ

# mount -o loop dvd.iso /mnt/iso

# df | grep loop

/dev/loop0 3351190 3351190 0 100% /mnt/iso

/dev/sda1

/dev/sda2

/dev/sda3

(22)

ープ ッ 利用 (2)

 ー 内部 ー ン 作成 場合 ー

ン 個別 ッ ン 操作 必要

o 各 ー /dev/mapper/loopXpY ッ ン

 losetup -fv < ー > : ー 全体 紐付け

 kpartx -av < ー ッ > : ー 含 ー ン ッ ン

 kpartx -d < ー ッ > : ッ ン 解除

 losetup -d < ー ッ > : ー 全体 紐 け 解除

o 次 3 ン 持 volume01.img 第2 ー

/boot ー ン ー ー ン Swap 領域 持 仮想 ー

# losetup -fv volume01.img Loop バイ /dev/loop0 です

# kpartx -av /dev/loop0

add map loop0p1 (253:0): 0 208782 linear /dev/loop0 63 add map loop0p2 (253:1): 0 8193150 linear /dev/loop0 208845 add map loop0p3 (253:2): 0 1044225 linear /dev/loop0 8401995

# mount /dev/mapper/loop0p2 /mnt/image

# ls -l /mnt/image/ 合計 184

drwxr-xr-x. 2 root root 4096 2 14 11:56 2011 bin drwxr-xr-x. 2 root root 4096 2 14 09:57 2011 boot drwxr-xr-x. 2 root root 4096 2 14 09:57 2011 dev drwxr-xr-x. 74 root root 4096 3 4 08:56 2011 etc

以下略

# umount /mnt/image

# kpartx -d /dev/loop0

# losetup -d /dev/loop0

/dev/loop0

/dev/mapper/loop0p1

/dev/mapper/loop0p2

/dev/mapper/loop0p3

volume01.img

(23)

基礎

iSCSI ター ッ 構成

(24)

iSCSI 概要

 iSCSI ー 接続 SCSI IP ネッ ワー 転送

技術

o 従来 同 SCSI 認識

 iSCSI接続専用 使用 ー ・ ー

く 通常 NIC 使用 ソ ・ ー

利用

o iSCSI 処理 上 行わ

Linux 通常 SCSI 認識

o Linux 機能 iSCSI 処理 行い

/dev/sdX

SCSI

SCSI /dev/sdX

従来 SCSI接続 SCSI

iSCSI ー 装置

iSCSI 接続

仮想SCSI

NIC IP

SCSI iSCSI 変換

ー ・ ー 仕組

ネッ ワー

Linux 従来 同

SCSI 見え

iSCSI 接続

専用

Linux

SCSI 見え

(25)

ソフ ・ター ッ 利用

Linux 機能 iSCSI ー 装置 ー ン ソ ・ ー ッ 呼

o Linux ー 上 論理 ー や iSCSI 他 Linux ー

o ー ッ 側 iqn いう識別 設定 関連付け iqn iSCSI ー ー 行い

o 3GB LVM iSCSI 公開 的 ACL 無効化

# yum install -y targetcli

# systemctl enable target.service && systemctl start target.service

# pvcreate /dev/vdb

# vgcreate vg_data01 /dev/vdb

# lvcreate -L 3G -n lv_data01 vg_data01 && lvcreate -L 3G -n lv_data02 vg_data01

# lvs

LV VG Attr LSize lv_data01 vg_data01 -wi-a--- 3.00g lv_data02 vg_data01 -wi-a--- 3.00g

# targetcli /backstores/block create name=data01 dev=/dev/vg_data01/lv_data01

# targetcli /backstores/block create name=data02 dev=/dev/vg_data01/lv_data02

# targetcli /iscsi create iqn.2016-03.com.example:host01

# targetcli /iscsi/iqn.2016-03.com.example:host01/tpg1/luns create /backstores/block/data01

# targetcli /iscsi/iqn.2016-03.com.example:host01/tpg1/luns create /backstores/block/data02

# targetcli /iscsi/iqn.2016-03.com.example:host01/tpg1 set attribute generate_node_acls=1

# targetcli /iscsi/iqn.2016-03.com.example:host01/tpg1 set attribute authentication=0

# targetcli saveconfig

lv_data01

/dev/sdX

lv_data02

物理 LVM

data01

data02

ソ ー ッ

ー ッ LUN

iqn.2016- 03.com.exampl

e:host01

ー ッ iqn

ー ー

ソ ・ ー ッ

ン ー 有効化

LVM 作成

LVM

ー ッ LUN 登録

iqn 登録 LUN 関連付け ACL 無効化 設定 保存

(26)

ソフ ーター 利用

 ー ー ー ッ 側 設定 iqn

行い

o iqn ン 行う iqn 関連付け

可能

o 以下 Linux ー ー 用い 先 例 公

iqn ン 例

# yum install -y iscsi-initiator-utils

# systemctl enable iscsid.service

# systemctl start iscsid.service

# iscsiadm -m discovery --type sendtargets --portal <<ターゲッ IP >>

<IP >:3260,1 iqn.2016-03.com.example:host01

# iscsiadm -m node -T iqn.2016-03.com.example:host01 -p <<ターゲッ IP : 番号>> -l

Logging in to [iface: default, target: iqn.2016-03.com.example:host01, portal: <<taget ip>>] (multiple) Login to [iface: default, target: iqn.2016-03.com.example:host01, portal: <<target ip>>] successful.

# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 3G 1 disk

sdb 8:16 0 3G 1 disk vda 5 :0 0 0G 0 disk

└─vda1 5 : 0 0G 0 part /

ソ ・ ー ー

ン ー 有効化

ー ッ iqn 検索

ー ッ iqn

対 ン

実行

ー ッ 側 公開 ー ー ー側 参照可能

(27)

iqn と ACL

 先 例 ー ッ 側 認証 無効化 い 実際 環境 ACL 使

可能 ー ー 制限 必要 あ

o 上 理由 あ iSCSI 公開

あ 利用 ー ー側 OS ext4 やxfs等 作成

利用

o 一般的 OS キ ッ 制御や排他制御 行う事 複数

1 iSCSI 領域 利用 高確率 破壊

o 問題 避け 接続 複数 OS間

1 領域 共有 利用 必要 あ

 iSCSI 一般的 ACL ー ッ 側 接続可能 ー ー iqn 制限

iSCSI ー ー側 iqn 持

data01 iqn.2016- 03.com.exampl

e:host01 iqn.2016- 03.com.exampl

e:client01

iqn.2016- 03.com.exampl

e:client02

ー ッ

ー ー

ACL 無効化 い 環境 場合

制御

接続可能!

制御

data01 iqn.2016- 03.com.exampl

e:host01 iqn.2016- 03.com.exampl

e:client01

iqn.2016- 03.com.exampl

e:client02

ー ッ

ー ー

ACL 設定 い 環境 場合

制御

接続不可

全 接続OK 03.com.example:clientiqn iqn.2016-

01 以外 接続禁止

(28)

ネッ ワー 基礎

IP ネッ ワー とVLAN 基礎

(29)

IP ネッ ワー 基本構造

 IPネッ ワー 基本単位 L2 ッ 相互接続 続 ネッ

複数 ネッ ー 相互接続

o ネッ 接続 直接 交換

o ネッ 向け 中継

o L3 内部 仮想 ー 持 ネッ ワー

192.168.1.1 192.168.2.1

192.168.1.10 192.168.1.20

192.168.2.10 192.168.2.20

ネッ 192.168.2.0/24

ネッ 192.168.1.0/24

L3

仮想 ー

L2 L2 L2

ネッ ネッ

論理接続図

物理接続図

(30)

ネッ ワー 表記方法

 各 ネッ 利用 IP 範囲 示 ネッ ワー 割

o ネッ ワー 192.168.1.0/24 192.168.1.0 24 ッ 分 固定

後 自由 使え いう意味

 IP 8 ッ .8 ッ .8 ッ .8 ッ いう数字 並 今 場合

192.168.1. 固定 最後 8 ッ 0 〜255 自由 使え

 範囲 最初 最後 あ 192.168.1.0 192.168.1.255 特別 意味 持

割 当 最初 192.168.1.0 ネッ ワー 最後

192.168.1.255 ー キ

o 192.168.1.0/255.255.255.0 192.168.1.0/24 同 意味

 関係 下図 参照 く い /255.255.255.0 や /24 ネッ

 IP 表記 際 ネッ ワー 明示 ネッ 併

記 あ

o 例え 192.168.1.10/24 ネッ ワー 192.168.1.0/24 ネッ

属 わ

o 1 ネッ 内 異 ネッ ワー IP 混在

255.255.255.0 11111111.11111111.11111111.00000000

2 進数表記

24

(31)

ネッ ワー 計算例

 IP 192.168.100.5/255.255.255.240 ネッ ネッ ワー

計算 利用可能 IP 範囲 求

o 下図 自由 使え 部分 末尾 4 ッ IP 範囲 192.168.100.0

192.168.100.15

o 自由 使え 部分 0 入 ネッ ワー

192.168.100.0/28 あ い 192.168.100.0/255.255.255.240 ネッ ワー

 同様 IP 192.168.100.24/255.255.255.240 ネッ

ネッ ワー 計算 う う ?

o 192.168.100.16/28

255.255.255.240 11111111.11111111.11111111.1111 0000

28

192.168.100.5 11000000.10101000.01100100.0000 0101

2 進数表記 固定部分 自由 使え 部分

(32)

VLAN 基本的 仕組み

 VLAN L2 ッ 内部 複数 ネッ ワー ン 作成

機能

o 内部 VLAN 接続 指定 ー VLAN

o ー VLAN 設定 接続 機器 VLAN 用 特別 設定 不

 ッ 間 ー 接続 際 接続 ー VLAN

o 出入 VLAN 行く VLAN

付け

ー VLAN100 ー VLAN200

VLAN VLAN

1 2 3 4 5

VLAN100 VLAN200

ッ #1 ッ #2

1 2 3 4 5

VLAN100 VLAN200

ー VLAN100 ー VLAN200

部分 VLAN VLAN100

く VLAN200 付 ッ 流

(33)

Linux VLAN 接続方法

 Linux ー VLAN 接続

2 種類 方法 あ

o ー VLAN 設定

接続

 Linux ー 側 特別 設定 不要

 ー VLAN 設定 VLAN 通信

行い

o VLAN 設定

 Linux ー 側 付け外 行う

VLAN 構成 必要 あ

 複数 VLAN 構成 複数

VLAN 通信 可能

1 3 4 5

VLAN100 VLAN200

eth0

192.168.100.10

eth0

2

eth0

eth0.100 eth0.200

192.168.200.10

192.168.100.11 192.168.200.11

VLAN

192.168.100.10

DEVICE=eth0.100 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.100.11 NETMASK=255.255.255.0 ifcfg-eth0.100

DEVICE=eth0 ONBOOT=yes BOOTPROTO=none

ifcfg-eth0

物理NIC

(34)

ー 仮想化 おけ VLAN接続

 ー 仮想化環境 仮想 ッ 仮想

ッ 経由 仮想 ン VLAN

接続 仮想 ン VLAN

接続

o 仮想 OS 仮想NIC

IP 設定

o VLAN 付け外 VLAN 行う

OS VLAN 存在 意識 必要

あ 1 3 4 5

VLAN100 VLAN200

2

eth0

仮想 ン#1

br100 br200

仮想 ン#2

仮想 ン#3

仮想 ン#4

eth0.100 eth0.200

付 ッ

仮想 ッ

VLAN

DEVICE=eth0.100 ONBOOT=yes BOOTPROTO=none BRIDGE=br0 ifcfg-eth0.100

DEVICE=eth0 ONBOOT=yes BOOTPROTO=none

ifcfg-eth0

物理NIC

DEVICE=br100 ONBOOT=yes TYPE=Bridge BOOTPROTO=none ifcfg-br100

(35)

ネッ ワー 基礎

iptables 基礎と ッ フ タ ン

(36)

iptables 機能

 iptables 機能 大 く ッ ン

NAT (Network Address Translation)

o Linux ー 機能 提供

IP 送信 受信 転送 許可条件

設定

o NAT Linux 使用 際 利用 機能

ッ 転送時 ッ 含 送信元 く 宛先IP

変換

 正確 DNAT 宛先 変換 SNAT 送信元 変換 ー

SNAT 特別版 3 種類 あ 詳細 後 説明

ン ーネッ

192.168.100.10

192.168.100.1 192.168.100.11

iptables 利用例

ン ーネッ

接続 ッ ン

ー IP

XX.XX.XX.XX

ー ネッ ワー

ン ーネッ ー 接続 外部 接続

ー 用 Linux

ー ネッ ワー 192.168.100.0/24

(37)

iptables 設定方法

 iptables 有効化/無効化 iptables ー 起動・停止 行い

o # service iptables start : 設定 /etc/sysconfig/iptables

o # service iptables stop : 設定 無効

 RHEL7 iptables 利用 iptables-services 導入

 iptables 設定 設定 編集 再 化 方法

iptables 設定 直接変更 方法 あ

o 設定 直接変更 場合 別途 設定 内容 書 出

い 再起動後 変更 失わ

iptables 設定

/etc /sysconfig/iptables 設定

設定 編集

iptables 2 種類 設定方法

設定 再 化

# service iptables restart

設定 書 出

# service iptables save

(38)

iptables おけ 処理 流

 Linux ー 通過 ッ いく ーン 通過 い

o INPUT ーン : 受信 通過

o OUTPUT ーン : 送信 通過

o PREROUTING FORWARD POSTROUTING ーン : 転送 通過

 ーン 次 ー 設定 従 ッ 処理 行わ

o filter : 処理 定義

o nat : NAT 処理 定義

ネッ ワー

filter

filter

INPUT ーン

OUTPUT ーン

ネッ ワー #2

nat

nat

PREROUTING ーン

POSTROUTING ーン

ネッ ワー #1

filter

FORWARD ーン

DNAT処理 SNAT処理

受信 ッ

INPUT ーン

送信 ッ

転送 ッ

ー ン

(39)

ッ フ タ ン 設定例

 ッ ン 設定 基本 ン 次 通

o 指定条件 ー ッ 定義

 iptables -A < ーン> < ッ 条件> -j < ー ッ >

o ー ッ 定義

 iptables -P < ーン> < ー ッ >

o -A ン 設定 ッ 条件 評価 行わ 最初 条件 対

ー ッ 実行 LOG ン以外 評価 終了

o 条件 場合 -P ン 指定 ン 実行

o 現在 設定 次 表示

 iptables [-v][-n] -L < ーン>

 -v ン 詳細情報 表示 -n ン IP やTCP/UDP ー 番号 数値 表示

指定 い場合 名前解決 行い

ー ッ 説明

ACCEPT 送受信 許可

DROP 破棄

REJECT 拒否 ICMP 通

LOG ッ 情報 Syslog 出力

# service iptables stop

# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# iptables -A INPUT -i lo -j ACCEPT

# iptables -A INPUT -d 192.168.100.10 -p tcp -m tcp --dport 22 -j ACCEPT

# iptables -A INPUT -j LOG -m limit --log-prefix "[INPUT Dropped] "

# iptables -P INPUT DROP

# service iptables save

# service iptables start

受信 ッ 対 ン 設定手順 例

192.168.100.10

外部 接続 ッ

(40)

ー 定義チ ーン

 用意 ーン 他 任意 名前 ーン 追加

定義 ー 定義 ーン 呼

o -j ー ッ 名 ー 定義 ーン 指定

該当 ー 定義 ーン 指定 処理 行わ

 ー ン 呼 出 ー ー 定義 ーン内 評価

ッ ッ 呼 出 元 ーン 戻 評価 継続

o SSH 接続 許可 条件 設定 SSH_OK ーン 定義

FORWARD ーン 呼 出 例

# iptables -N SSH_OK

# iptables -A SSH_OK -p tcp -p tcp -m tcp --dport 22 -j ACCEPT

# iptables -A FORWARD -j SSH_OK

SSH_OK ーン 作成

SSH_OK ーン 追加

SSH_OK ーン 転送

ネッ ワー #2

nat

nat

PREROUTING ーン

POSTROUTING ーン

ネッ ワー #1

filter

FORWARD ーン

転送 ッ

filter

(41)

iptables と firewalld

 RHEL7 iptables ッ ー あ firewalld いう

ッ ー管理 採用 い

o 仮想化や ン 環境 登場 iptables ー 複雑化 複数

頻繁 ー 変更 行わ う 全体 整合

ー 管理 仕組 必要 firewalld 誕生

o firewalld 内部 iptables 利用 い 2 同時 ー ー 操

 2 設定 競合 う可能性 あ

 本講義 主 iptables 利用 い

o OpenStack 等 設定 確認 利用

firewalld

実際 ッ ー設定

iptables

(42)

ネッ ワー 基礎

iptables よ NAT処理

(43)

SNAT/ マ カ ー 仕組み

 下図 SNAT/ ー 送信元IP 変換 例

o ー ネッ ワー IP 192.168.100.10

ーネッ IP YY.YY.YY.YY 送信

o ー 用Linux 送信元IP 自身 IP XX.XX.XX.XX

換え ン ーネッ ッ 転送

o ン ーネッ 返送 宛先IP

192.168.100.10 逆変換 ー ネッ ワー 送 返

YY.YY.YY.YY

ン ーネッ

192.168.100.10 192.168.100.10

YY.YY.YY.YY

XX.XX.XX.XX YY.YY.YY.YY

XX.XX.XX.XX YY.YY.YY.YY

192.168.100.10 YY.YY.YY.YY

宛先IP 送信元IP

宛先IP 送信元IP

逆変換 変換

IP

XX.XX.XX.XX

ー ネッ ワー 192.168.100.0/24

ー 用 Linux

(44)

複数 ー SNAT 処理 ついて

 複数 ー ー IP 共通 ー IP 変換 際 逆変換 際 変換先

ー IP 正 く判別 必要 あ

 iptables 送信元IP 送信元 ー 番号 記憶 返送 ッ 送信先

ー 番号 逆変換先 IP 決定

o 複数 ー 同 送信元 ー 番号 使 場合 SNAT処理 い 送信元 ー 番号 変換

o 大量 同時 SNAT 利用 変換先 送信元 ー 番号 不足 SNAT 処理

く 場合 あ

 SNAT対象 ー 個別 ー IP 割 当 使用 可能

ン ーネッ

192.168.100.10

192.168.100.1

192.168.100.11 192.168.100.12

IP

XX.XX.XX.XX

ー ネッ ワー 192.168.100.0/24

ー 用 Linux

送信元IP 送信元 ー 番号 送信元 ー 番号変換後

192.168.100.10 3021 3021

192.168.100.11 4008 4008

192.168.100.12 3021 9000

SNAT 記憶 ー

(45)

DNAT 仕組み

 下図 DNAT 宛先IP 変換 例

o ン ーネッ IP YY.YY.YY.YY PC ー 用Linux ー

IP XX.XX.XX.XX 送信

o ー 用Linux 宛先IP ー ネッ ワー IP

192.168.100.10 書 換え 転送

o ー ネッ ワー 返送 送信元IP

XX.XX.XX.XX 逆変換 ン ーネッ PC 送 返

ン ーネッ

192.168.100.10 192.168.100.10

YY.YY.YY.YY

XX.XX.XX.XX YY.YY.YY.YY

XX.XX.XX.XX YY.YY.YY.YY

192.168.100.10 YY.YY.YY.YY

宛先IP 送信元IP

宛先IP 送信元IP

変換 逆変換

YY.YY.YY.YY

IP

XX.XX.XX.XX

ー ネッ ワー 192.168.100.0/24

ー 用 Linux

(46)

NAT 設定例 (1)

 NAT 設定 -t nat ン nat ー 指定 SNAT/

DNAT 使用 ーン 異

o SNAT/ POSTROUTING ーン 使用 変換IP

NIC IP 自動的 使用

 iptables -t nat -A POSTROUTING < ッ 条件> -j SNAT --to-source <変換IP >

 iptables -t nat -A POSTROUTING < ッ 条件> -j MASQUERADE

 DNAT PREROUTIGN ーン 使用

 iptables -t nat -A PREROUTING < ッ 条件> -j DNAT --to-destination <変換IP >

 SNAT/ ー 設定例

o 変換元 変換先 IP 1対1 指定 SNAT 変換 行い

o ー ネッ ワー 192.168.100.0/24 他 ネッ ワー 通信

ー 変換

 ー 処理 変換先 IP 指定 ッ 送出 NIC IP 自動的

選択

# iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j MASQUERADE

# iptables -t nat -A POSTROUTING -s 192.168.100.10 -j SNAT --to-source XX.XX.XX.10

# iptables -t nat -A POSTROUTING -s 192.168.100.11 -j SNAT --to-source XX.XX.XX.11

# iptables -t nat -A POSTROUTING -s 192.168.100.12 -j SNAT --to-source XX.XX.XX.12

(47)

NAT 設定例 (2)

 DNAT 設定例

o 前 ー SNAT 変換表 同 変換 DNAT 行い

 SNAT け 場合 ー ネッ ワー ー ン ーネッ 接続 ン ー

ネッ ー ネッ ワー ー 接続 前 ー SNAT 合わ DNAT

設定 ー ネッ ワー ン ーネッ 双方向通信 可能

o ン ーネッ IP XX.XX.XX.XX HTTP

ー ネッ ワー ー 192.168.100.10 転送 応答 返

 宛先 ー TCP80 番 ッ け 選択 192.168.100.10 Web 転送

ン ーネッ

192.168.100.10 192.168.100.1

Web http://XX.XX.XX.XX

HTTP 転送

ー IP

XX.XX.XX.XX

ー ネッ ワー 192.168.100.0/24

ー 用 Linux

# iptables -t nat -A PREROUTING -d XX.XX.XX.XX -p tcp --dport 80 -j DNAT --to-destination 192.168.100.10

# iptables -t nat -A PREROUTING -d XX.XX.XX.10 -j DNAT --to-destination 192.168.100.10

# iptables -t nat -A PREROUTING -d XX.XX.XX.11 -j DNAT --to-destination 192.168.100.11

# iptables -t nat -A PREROUTING -d XX.XX.XX.12 -j DNAT --to-destination 192.168.100.12

(48)

ネッ ワー 基礎

ネッ ワー ネー ペー

(49)

Linux 名前空間

 Linux OS 内部 様々 名前 識別子 持 い 命名や採番 OS内

一意 あ 求 多くあ

o /hoge/foo/bar

o PID=xxx

o 多数

 名前 使え 空間 分離 重複 命名や採番 行え う ネー

ー 呼 機能

# ls / bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

# chroot /usr

# ls / bin etc games include lib lib64 libexec local sbin share src tmp

chroot 分離

chroot 実行 指定

/ 見え

降 実行

# df -h

フ イ シ サイ 使用 残り 使用% ウン 位置

/dev/vda1 10G 977M 9.1G 10% /

〜省略〜

# unshare --mount /bin/bash

# mkdir /mnt/tmpfs

# mount -t tmpfs tmpfs /mnt/tmpfs

# df -h

フ イ シ サイ 使用 残り 使用% ウン 位置

/dev/vda1 10G 977M 9.1G 10% /

〜省略〜

tmpfs 497M 0 497M 0% /mnt/tmpfs

ン ン 分離

同 ン

実行実行結果

異 い 起動 確認

上記 /mnt/tmpfs 確認 い

(50)

ネッ ワー ネー ペー

 ネッ ワー ネー ー 名 通 ネッ ワー 関 機能 名前空間 分離

 名前空間 分離 ネッ ワー 設定 行う 1 OS 上 ナ矛盾 設定ナやナ重複 設

定ナ 行う 可能

o ip netns 使 ネッ ワー ネー 管理

 下記 例 1 台 Linux ー ー上 同 IP 持 仮想 ー ー 起動 仮

想 ー ー 外部 通信 う 設定 概略図

o 192.168.1.254 重複 ネッ ワー ネー 隔離

設定 可能

1台 Linux ー ー上 重複 IP 管理 概略図 実際 う少 複雑

仮想 ン1 仮想 ン2

eth eth

192.168.1.1 192.168.1.1

tap tap

br br

192.168.1.254 192.168.1.254

eth0

br

tap tap

tap tap

172.16.1.10 172.16.1.20

ネー ー ネー ー 2

やNAT設定 やNAT設定

tap, br 的 NIC 同

ふ い 論理的 ネッ ワー

・ ン ー ー

(51)

名前空間 実装

 機能 ーネ 上 実装 い 最終

的 ー clone(2) 実行

o 確認 う 名前空間 存在

確認

# yum install -y man-pages

# man 2 clone

CLONE(2) Linux Programmer's Manual CLONE(2)

NAME

clone, __clone2 - create a child process

SYNOPSIS

/* Prototype for the glibc wrapper function */

#include <sched.h>

int clone(int (*fn)(void *), void *child_stack, int flags, void *arg, ...

/* pid_t *ptid, struct user_desc *tls, pid_t *ctid */ );

/* Prototype for the raw system call */

long clone(unsigned long flags, void *child_stack, void *ptid, void *ctid,

struct pt_regs *regs);

~~~~~~~~~~(省略)~~~~~~~~~~

(52)

ネッ ワー 基礎

OpenFlow と Open vSwitch

(53)

OpenFlow よ フ ー制御とOpen vSwitch

 用語 覚え い く い

o OpenFlow

 L1-4 各種 ッ 情報 用い ー ッ ッ 対 特

定 ン 行わ ー ネッ ワー 制御

 従来 L2 MAC L3 IP 用い 転送制御 比

柔軟 動的 ネッ ワー 管理 可能

o Open vSwitch

 OpenFlow ー ー ンソー ソ

 Linux 従来使わ ッ 変わ 機能 備え

 仮想化 ー ー等 利用 仮想ネッ ワー 実現 使わ

 両者 OpenStack 内部 使わ 機能

演習 中 確認 い

o OpenFlow Open vSwitch 直接操作 演習 あ

興味 あ 方 各自 調査 く い

(54)

鍵ペ よ SSH認証

(55)

鍵ペ よ 認証 基礎

 ネッ ワー 上 認証 ー 認証 ー 認証 あ

o ー 認証:接続 許可 本物 確認

o ー 認証:接続 本物 確認

 認証 主 非対称鍵暗号 利用 方法 用い

o 非対称鍵暗号 暗号化 使う鍵 復号化 使う鍵 異

o 非対称鍵暗号 鍵 所有者 け 保管 秘密鍵 万人 配布 構わ い公開鍵

利用 秘密鍵 誤 他人 手 渡 い う 管理 必要 あ

 下図 事前 配布 公開鍵 暗号化 ッ ー 送 う例

ッ ー 秘密鍵 持 自分 け 復号化 読

秘密鍵

公開鍵

A

公開鍵

僕 秘密鍵 い 誰

復号化 い 安心 A 暗号化 公開鍵

(56)

対称鍵暗号 ついて

 暗号化 復号化 同 鍵 秘密鍵 使う対称鍵暗号 非対称鍵暗号

比較 次 う 特徴 あ

o 暗号化/復号化 計算量 少 く 高速 処理 可能

o 秘密鍵 共有 必要 あ 相手側 鍵 情報 仕組

必要

 SSH接続 ー 認証/ ー 認証 非対称鍵暗号 用い

通信内容 暗号化 対称鍵暗号 使用

o 非対称鍵 認証 成功 後 通信 暗号化 対称鍵

ン鍵 生成 利用 SSH 接続 終了 ッ ン鍵 破棄

 Kerberos認証 Windows AD認証 対称鍵暗号 使用

o 秘密鍵 集中管理 専用 認証局 用い

鍵 共有 く安全 認証 行い

o 歴史的 非対称鍵暗号化 研究 進 い 時代 開発 技術

ネッ ワー 的 閉 環境 認証方式 現在 使用 い

(57)

鍵ペ よ SSH ー 認証 仕組み

 公開鍵認証 SSH接続 際 次 流 ー 認証 行わ

o SSH 接続 事前 生成 公開鍵 接続先 ー 登録

o SSH 接続 受け付け SSH ー ン 乱数 発生 公開鍵

暗号化 ン SSH ン 送信

o 対応 秘密鍵 復号化 値 返答

o 元 乱数 値 計算 返答 一致

確認

ー 秘密鍵

復号化

乱数 乱数

暗号化

ッ 値

ッ 値計算

SSH

SSH ー ン

ッ 値計算

比較

ー 公開鍵

ー 公開鍵

ー A 鍵 生成

authorized_keys 保存

事前 登録

(58)

鍵ペ よ SSH ー 認証 仕組み

 SSH接続 際 ー 見 接続先 ー 本物 あ 確

認 ー 認証 行わ

o ー 証明書 公開鍵 受け取 保存

o 以前 異 公開鍵 受け取 場合 処理 中断

o 乱数 公開鍵 暗号化 対応

秘密鍵 復号化 ッ 値 返送

o 元 乱数 値 計算 返答 一致

確認

ー 公開鍵

暗号化

乱数 乱数

復号化

ッ 値

ッ 値計算

SSH

SSH ー ン

ッ 値計算

比較

known_hosts 保存

ー 秘密鍵

ー 証明書

ー 公開鍵

(59)

SSH 公開鍵認証 設定手順

 次 SSH ン 上 ー 鍵 作成 ー server01

user01 公開鍵登録 行う例

o ssh-keygen 作成 ~/.ssh/id_rsa 秘密鍵

~/.ssh/id_rsa.pub 公開鍵 保存

 -N ン 秘密鍵 使用 際 入力 ー 指定 秘密鍵 盗難 あ 場

合 安全対策 ッ 処理 自動接続 行う場合 ー

鍵 必要

o ssh-copy-id 接続先 ー ~/.ssh/authorized_keys 公開鍵 登録

同時 接続先 ー ー 証明書 ー 公開鍵 ン ー

ン 側 ~/.ssh/known_hosts 登録

1 行 1 公開鍵 記載 キ キ 編集可能

server01 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAnakSHxbAkQ0oDML1aYNyKS/2aqIkVDSKfpr+KKR/VoICon9HlX 0TS2oks1oqt/VYt8EFsRjyQgkXjd+hoU71rea+9Wvbya5/54nQeqtyqnlNKFkNMG6r4ewrpjOv1DccYLF5bFouXig1SuYM5 168QiSW7pjBDFNRKKBMGa3koGpaX1PCBybUwH6aCZe3MYF4BR9zYzwePI3/d6w0Y+PX/3TWEadsdXdncrbLguVqyVbD5QJ2 ZQIHV9d8zO1IxjjeSL15/0Jgm+VtUkt5PntZ9UAm/RDXe8lHmd6S05ieTqfEUpqiiblSwg08HnpgCDrjn/74pi/XJw7mD3w AaYR3xQ==

10.7.7.55 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3K0ppAgND9dVJxQmvLUCaSBblwSDr7xHa4ePuUtdBVXRdjIiY o9EVNEv0oQDfzrQICJH6HKwf06etJogYiNBc4UOv4OWLEQqoXES56BceD+Sx3uenel7N8T1bjIQfW4gpH1nwC5BHyaR71dM Bpr9nfbhp2NlXZS6Ar9Sd8PiXw/3u6jPa0UiwFB48smLpKxWxqQotWsvWSiUtGPEQBz8FoiDKY2ENECeW8i1LBKJA44rxyB VD9JTFB4WwZTbvyO9dCCpF6tOVT9vptFTVALm5m2cpKRYg2AU8gRAZo3tmP1QaFZhlSVaJSYoaVj8X+bPJ4bA462B83PHdm XrDh/tkw==

~/.ssh/known_hosts

# ssh-keygen -N ""

# ssh-copy-id user01@server01

(60)

SSH 公開鍵認証を使用す 際 注意点

 新 い ー 初 接続 際 ー 証明書 受け入 確認 ッ ー 表示

場合 あ

 以前 接続 あ ー 前回 異 ー 証明書 ー 公開鍵 受

け取 場合 偽者 ー 可能性 あ ン 接続 拒否

o 理由 公開鍵 変更 い 場合 ~/.ssh/known_hosts

該当 ン 削除 再度 SSH接続

# ssh root@server01

The authenticity of host 'server01 (XXX.XXX.XXX.XXX)' can't be established. RSA key fingerprint is 7c:e6:a3:78:a6:54:a8:4b:f2:87:0b:d5:5d:66:9c:d9. Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'server01' (RSA) to the list of known hosts.

新 い ー 証明書 受け入 確認 ッ ー

# ssh root@server01

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA host key has just been changed.

The fingerprint for the RSA key sent by the remote host is e3:d4:87:e2:5b:34:21:8b:7b:40:7a:41:93:91:06:d0.

Please contact your system administrator.

Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending key in /root/.ssh/known_hosts:1

RSA host key for server01 has changed and you have requested strict checking. Host key verification failed.

ー 証明書 前回 異 場合 警告 ッ ー

(61)

参照

関連したドキュメント

In this work we try to understand the behavior of algebraic shifting with respect to some basic constructions on simplicial complexes, such as union, cone, and (more generally)

It is assumed that the reader is familiar with the standard symbols and fundamental results of Nevanlinna theory, as found in [5] and [15].. Rubel and C.C. Zheng and S.P. Wang [18],

ESET Server Security for Windows Server、ESET Mail/File/Gateway Security for Linux は

(A precise definition is given in Section 3.) In particular, we show that Z is equal in distribution to a Brownian motion running on an independent random clock for which

8, and Peng and Yao 9, 10 introduced some iterative schemes for finding a common element of the set of solutions of the mixed equilibrium problem 1.4 and the set of common fixed

In place of strict convexity we have in this setting the stronger versions given by the order of contact with the tangent plane of the boundary: We say that K ∈ C q is q-strictly

本資料は Linux サーバー OS 向けプログラム「 ESET Server Security for Linux V8.1 」の機能を紹介した資料です。.. ・ESET File Security

Touchdown Total may be applied as a spot spray in peppermint and spearmint. Apply spray-to-wet with hand-held equipment, such as backpack and knapsack sprayers, pump-up