ウ 基盤構築演習
Cloud Infrastructure Design and Deployment
3. 認証技術、ネッ ワー 、 ー の基礎演習
2017.v1
Table of contents
本演習 Linux ー ー 基本的 機能
い 実際 操作 行い 理解
演習環境 い
o 共通演習環境 準備
o 演習環境 構築
SSH公開鍵認証
LVM ー iSCSI 操作
iptables 操作
演習環境 つい
演習環境の概要
演習用 OpenStack環境上 各自割 当 ン 内 利用
ン 内 自分専用 演習環境 構築 い
環境 構築 予 ン ー 準備 自動化 仕組 利用
o 自動化 仕組 後 講義 仕組 解説
tenant-XX / student-XX tenant-YY / student-YY ・・・
ン
( )
仮想 ー ー
内部 ワー
192.168.199.0/24
ワー 環境
仮想 ン環境 CentOS7
192.168.199.10
CentOS7
192.168.199.20
第3回 共通演習環境 構築 実施
第3回 演習環境 構築 実施
様々 演習 実施
操作 OpenStack Heat いう自動化機能 利用
Heat い 後 演習
解説
共通演習環境の準備
ン ー か ネッ ワー 環境を作成し す
演習環境への ン
演習環境 ン く さい
ン 成功 以下 う 画面 表示さ
o 画面 多少 差異 あ 場合 あ
o 表示さ 言語 設定 依存
o ン出来 い場合 講師 連絡 く さい
タッ の起動
左 ー Orchestration → Stacks 選択
後 Launch Stack 押下
ン ー の指定
Template Source URL 指定
Template URL http://<<ip address>>/hands-on/00_default.yaml 指定
o <<ip address>> 部分 講師 値 指定 あ
値 設定 Next 押下
URL 選択
http://<<ip address>>/hands-on/00_default.yaml
ーターの指定
Stack Name default 指定
Paイイエんィよ りんィ ウイらィ “xxxxx 自分 OpenStack ー ー student-xxxxxx ワー 入 く さい o 値 pass-xxxxxxx
値 設定 Launch 押下
default
自分 OpenStack ワー
入力
状態の確認
操作 問題 Create Complete 状態
何 失敗等 発生 場合 次項 参照 操作 や 直 く
さい
o 多く 場合 失敗 原因 URL 打 間違え ワー 打 間違え
う く行か い場合 失敗した場合のや 直し
成功 い 場合 手順 キ く さい
o default 入 Delete Stacks 押下
o 後 作成 操作 や 直 く さい
o 削除 失敗 場合 講師 連絡 く さい
作成さ たネッ ワー 環境を確認
Network → Network Topology 選択 作成 ワー 環境 確
認
正常 作成 完了 以下 状態 い
o ワー public ワー work-net ー ー Ext-Router 接続
さ い
演習環境の準備
ン ー か サー ー環境を作成し す
タッ の起動
先ほ 同様 操作
左 ー Orchestration → Stacks 選択
後 Launch Stack 押下
ン ー の指定
Template Source URL 指定
Template URL http://<<repo_ip>>/hands-on/03_handson.yaml 指定
o <<repo_ip>> 部分 講師 値 指定 あ
値 設定 Next 押下
URL 選択
http://<<repo_ip>>/hands-on/03_handson.yaml
ーターの指定
Stack Name hands-on-3 入力
Password 自分 OpenStack ワー 入力
hands-on repository server ー ー IP 入力
o IP 講師 指示 あ
hands-on-3
自分 OpenStack ワー
入力
ー ー IP
正常終了の確認
2分前後 作成 完了 Create Complete
o 失敗 場合 hands-on-3 選択 Delete Stack 押下 削除
o 後 再度作成 や 直 く さい
環境の確認
Network → Network Topology 選択 作成 ワー 環境 確認
正常 作成 完了 以下 状態 い
o ワー work-net 2台 ー ー handson3-srv1 handson3-srv2 接続さ い
サー ーの確認
Compute → Instances 選択 作成さ 2 台 ー ー
情報 確認
o 2 台 使 演習 進 い
o 2 台 ン ン 状態 Active い い場合 講師 連絡
く さい
ン情報の確認
作成 ー ー ン 情報 確認
Orchestration → Stacks → hands-on-3 →
Overview 選択 い
ン情報
Overview 必要
情報 確認
o instance1,2
ー ー IP
ー ー名
Floating IP
IP Instance1
割 当 い
各自 ー PC IP
対 SSH 行い
o password
上記2台 ー ー ン
ワー
ー ー名 centos
ワー 各自異
環境 作 び 変わ
o private_key
後 演習 利用 秘密鍵
SSH 公開鍵認証
演習内容
作成 2 台 ー ー SSH ン 実施
o 各自 端末 srv1 対 SSH ワー ン 行い
時 Floating IP 対 ン 行い Floating IP NAT 行わ
srv1 さ
仕組 い 後 講義 解説 行い
o srv1 秘密鍵 取 込 srv2 対 公開鍵認証 ン 行い
srv1 srv2 2台 同 公開鍵 既 設定さ い
o srv2 証明書 再作成 認証 与え 影響 確認
handson3-srv1
192.168.199.10
handson3-srv2
192.168.199.20 Floating IP
各自 端末
SSH ン 使い
Floating IP 対 ワー ン 行う
公開鍵 公開鍵
秘密鍵 srv 設定
srv 対 ン 行う
srv 証明書 変更
認証 影響 確認
SSH の ワー ン
srv1 SSH ワー ン 行い
Floating IP 対 ン 行い
o 各自 端末 SSH ン 操作 行 く さい
o ン 使用 値 前 演習 最後 確認 値
Floating IP: 前 演習 確認
ー ー名:centos
ワー : 前 演習 確認
以下 CentOS7 実施 例
$ ssh centos@xxx.xxx.xxx.xxx
The authenticity of host '157.1.141.112 (157.1.141.112)' can't be established. ECDSA key fingerprint is SHA256:647+5ufeeUX5LzfnUNa7R6Gzo6TVa3I+vATiD4O9GXk. Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '157.1.141.112' (ECDSA) to the list of known hosts. centos@157.1.141.112's password:
公開鍵認証
公開鍵認証 行い
o 演習環境 srv2 既 公開鍵 ン設定 行わ い
o srv1 対 秘密鍵 設定 srv2 公開鍵認証 行い
一 前 ン 今回 ン 流 違う 何 違う 確認 く さい
[centos@handson3-srv1 ~]$ vi ~/id_rsa_handson
[centos@handson3-srv1 ~]$ chmod 600 ~/id_rsa_handson
[centos@handson3-srv1 ~]$ ssh -i ~/id_rsa_handson centos@192.168.199.20
The authenticity of host '192.168.199.20 (192.168.199.20)' can't be established. ECDSA key fingerprint is 48:1e:b2:7b:4a:b0:7d:65:90:71:91:9b:ae:17:c3:be.
Are you sure you want to continue connecting (yes/no)? yes
Orchestration → Stacks → hands-on-3 → Overview
確認 private_key 値 保存 く さい
ン 成功
公開鍵認証
自分 キー 秘密鍵・公開鍵 作成 鍵 用い
ン 行い
o srv1 新 キー 作成
o srv2 別 ー ー 作成 ー ー 公開鍵認証 設定 行い
srv1 ン 行い
[centos@handson3-srv1 ~]$ ssh-keygen -P '' -f ~/id_rsa_handson_user Generating public/private rsa key pair.
Your identification has been saved in /home/centos/id_rsa_handson_user. Your public key has been saved in /home/centos/id_rsa_handson_user.pub. The key fingerprint is:
c4:22:19:fe:70:e8:82:d1:8a:cd:45:f7:cf:ec:42:5a centos@handson3-srv1 The key's randomart image is:
+--[ RSA 2048]----+
| o . |
| . o = o |
|. . B o + |
|.* o = o + |
|+ + . . E + |
| . + . |
| . . . |
| . |
| |
+---+
ワー 空 キー
作成
公開鍵認証 鍵 権限 重要
ン う くい い場合 権限 確認
う
公開鍵認証
[centos@handson3-srv1 ~]$ cat id_rsa_handson_user.pub ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDlUK2jN4baXUIZy4XauXHmYYNy8IkH+EgR+5J3mrM4aSRwkG13xKIIsXc73DdgfHRv4z7fDi1htcUNP6 8DhFq2HnRsV/2RdGrN/CPzZm+2KzxW2EuIHcalqK4vma/V1inaLg0fc7TfOLHaXThZkzWLeexSgfnCTahpcJaoqH1SOsnxe/dTODFwRD62XRQo eNlfVIECyZiVG+VyH4dSoVJZc0UciWWSax1FVSEe0AumtGkZcU2mi2Ozc3iYTZQoAQkrBI6ste3BzjOZGn/NZRAG6KuIznBCSWvFYVdx2xZ6It Wj5a+Nz7cY6aaGQ9x/xwyMMEmNFMiDhgCZxcVXw2Dd centos@handson3-srv1
[centos@handson3-srv1 ~]$ ssh -i ~/id_rsa_handson centos@192.168.199.20 [centos@handson3-srv2 ~]$ sudo -i
[root@handson3-srv2 ~]# useradd newuser [root@handson3-srv2 ~]# su - newuser [newuser@handson3-srv2 ~]$ mkdir ~/.ssh/
[newuser@handson3-srv2 ~]$ vi ~/.ssh/authorized_keys [newuser@handson3-srv2 ~]$ chmod 700 ~/.ssh/
[newuser@handson3-srv2 ~]$ chmod 600 ~/.ssh/authorized_keys [newuser@handson3-srv2 ~]$ exit
[root@handson3-srv2 ~]# exit [centos@handson3-srv2 ~]$ exit [centos@handson3-srv1 ~]$
[centos@handson3-srv1 ~]$ ssh -i ~/id_rsa_handson_user newuser@192.168.199.20 [newuser@handson3-srv2 ~]$
公開鍵 表示 い
値 帳等 ー
い く さい
srv2 新 ー ー
newuser 作成 い
newuser 切 替え 公開鍵 登録
authorized_key 上 操作 表示 公
開鍵 ー 保存 く さい
一旦 srv1
改 newuser 対
公開鍵認証 ン 直
証明書の変更
srv2 証明書 変更 影響 確認
o srv2 証明書 削除 再作成 行い
o srv1 ン 行い
[centos@handson3-srv1 ~]$ ssh -i ~/id_rsa_handson centos@192.168.199.20 [centos@handson3-srv2 ~]$ sudo -i
[root@handson3-srv2 ~]# rm -f /etc/ssh/ssh_host_* [root@handson3-srv2 ~]# systemctl restart sshd.service [root@handson3-srv2 ~]# ll /etc/ssh/
合計 276
-rw-r--r--. 1 root root 242153 3月 22 2016 moduli -rw-r--r--. 1 root root 2208 3月 22 2016 ssh_config
-rw-r---. 1 root ssh_keys 227 3月 9 06:11 ssh_host_ecdsa_key -rw-r--r--. 1 root root 162 3月 9 06:11 ssh_host_ecdsa_key.pub -rw-r---. 1 root ssh_keys 387 3月 9 06:11 ssh_host_ed25519_key -rw-r--r--. 1 root root 82 3月 9 06:11 ssh_host_ed25519_key.pub -rw-r---. 1 root ssh_keys 1679 3月 9 06:11 ssh_host_rsa_key
-rw-r--r--. 1 root root 382 3月 9 06:11 ssh_host_rsa_key.pub -rw-r--r--. 1 root root 4360 3月 4 19:02 sshd_config
[root@handson3-srv2 ~]# exit
srv2 ン
存在 い 証明書
削除
キー 削除さ 状態
SSH ー ン 再起動
キー 新 い値 再作成さ
新 い キー 作成さ
い 確認
証明書の変更
[centos@handson3-srv1 ~]$ ssh -i ~/id_rsa_handson centos@192.168.199.20
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is 09:d5:dc:14:c6:67:da:cd:9e:ec:56:95:d9:a4:ec:d4.
Please contact your system administrator.
Add correct host key in /home/centos/.ssh/known_hosts to get rid of this message. Offending ECDSA key in /home/centos/.ssh/known_hosts:1
ECDSA host key for 192.168.199.20 has changed and you have requested strict checking. Host key verification failed.
[centos@handson3-srv1 ~]$ rm ~/.ssh/known_hosts
[centos@handson3-srv1 ~]$ ssh -i ~/id_rsa_handson centos@192.168.199.20
The authenticity of host '192.168.199.20 (192.168.199.20)' can't be established. ECDSA key fingerprint is 09:d5:dc:14:c6:67:da:cd:9e:ec:56:95:d9:a4:ec:d4.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.199.20' (ECDSA) to the list of known hosts. Last login: Thu Mar 9 03:35:24 2017 from 192.168.199.10
[centos@handson3-srv2 ~]$
[centos@handson3-srv2 ~]$ exit [centos@handson3-srv1 ~]$
ン srv2 試
srv1 記憶 srv2
キー 異 ン
srv1 記憶 キー 削
一度接続 除 ー ー
キー known_hosts
保存さ い
再度 ン 行う 初回接続時 同様
yes/no 選択肢 表示さ
yes known_hosts
キー 登録さ い
補足: ニュ の参照方法
Linux OS 上 ン ン 準備さ 場 参
照可能
o 初 見 ン 等 出 場合 man xxxxx 参照 見 く さい
o ン 以外 ー 等 情報 様々 情報 参照
# man ssh
SSH(1) BSD General Commands Manual SSH(1)
NAME ssh ― OpenSSH SSH client remote login program
SYNOPSIS
ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address]
[-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
[-i identity_file] [-L [bind_address:]port:host:hostport] 省略
DESCRIPTION
ssh (SSH client) is a program for logging into a remote machine and for executing commands on a remote machine. It is intended to replace rlogin and rsh, and provide secure
encrypted communications between two untrusted hosts over an insecure network. X11 connections and arbitrary TCP ports can
# man man
MAN(1) Manual pager utils MAN(1)
NAME
man - an interface to the on-line reference manuals SYNOPSIS
man [-C file] [-d] [-D] [--warnings[=warnings]] [-R encod‐ ing] [-L locale] [-m system[,...]] [-M path] [-S list] [-e extension] [-i|-I] [--regex|--wildcard] [--names-only] [-a] [-u] [--no-subpages] [-P pager] [-r prompt] [-7] [-E encod‐
省略 DESCRIPTION
man is the system's manual pager. Each page argument given to man is normally the name of a program, utility or func‐ tion. The manual page associated with each of these argu‐ ments is then found and displayed. A section, if provided, will direct man to look only in that section of the manual. The default action is to search in all of the available sec‐
ssh 参照 参照
LVM ー iSCSI の操作
演習内容
srv1上 LVM/iSCSI 設定 行い
設定さ LVM/iSCSI 領域 srv2 接続 利用
handson3-srv1 handson3-srv2
ー
disk01.img
/dev/loop1
ー ン
vg01
lv01 lv02
LVM 利用
/dev/sdX
iscsi target
iscsi initiator
自 ー ー
領域 利用
iSCSI 接続 利用
実体 ー
空 作成
LVM ュー の作成
srv1上 LVM ー 作成
o ー 作成
o 作成 ー ー ン
o ン ー LVM ー
o LVM ー 作成
[centos@handson3-srv1 ~]$ sudo -i [root@handson3-srv1 ~]#
[root@handson3-srv1 ~]# dd if=/dev/zero of=/disk01.img bs=1MB count=2048 [root@handson3-srv1 ~]# ll -h /disk01.img
-rw-r--r--. 1 root root 2.0G 3月 17 03:12 /disk01.img
[root@handson3-srv1 ~]# losetup -v /dev/loop0 /disk01.img [root@handson3-srv1 ~]# losetup
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0 0 0 0 0 /disk01.img
srv1 root ー ー 作業
行い
約2GB 空 作成
dd ン bs 指定
if 指定
count 回数読 込 of 書 込
ン
作成 ー
/dev/loop0 関連付
操作 2GB 2GB
LVM ュー の作成
[root@handson3-srv1 ~]# pvcreate /dev/loop0
Physical volume "/dev/loop0" successfully created. [root@handson3-srv1 ~]# pvs
PV VG Fmt Attr PSize Pfree /dev/loop0 lvm2 --- 1.91g 1.91g
[root@handson3-srv1 ~]# vgcreate vg01 /dev/loop0 Volume group "vg01" successfully created [root@handson3-srv1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree vg01 1 0 0 wz--n- 1.91g 1.91g
[root@handson3-srv1 ~]# lvcreate -L 512MB -n lv01 vg01 Logical volume "lv01" created.
[root@handson3-srv1 ~]# lvcreate -L 1024MB -n lv02 vg01 Logical volume "lv02" created.
[root@handson3-srv1 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv01 vg01 -wi-a--- 512.00m
lv02 vg01 -wi-a--- 1.00g [root@handson3-srv1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree vg01 1 2 0 wz--n- 1.91g 416.00m
LVM 使用
登録
次 ー ー
vg01 いう名前 作成
vg01 上 2 領域
lv01 lv02 作成
2GB 領域 1GB 512MB 領
域 作成 残 領域 約
400MB い
iSCSI 領域の作成
作成 LVM 領域 iSCSI領域 設定
o 作成 2 領域 iSCSI ー 利用 う 登録
[root@handson3-srv1 ~]# targetcli ls /
o- / ... [...] o- backstores ... [...]
| o- block ... [Storage Objects: 0]
| o- fileio ... [Storage Objects: 0]
| o- pscsi ... [Storage Objects: 0]
| o- ramdisk ... [Storage Objects: 0] o- iscsi ... [Targets: 0] o- loopback ... [Targets: 0]
[root@handson3-srv1 ~]# targetcli /backstores/block create name=data01 dev=/dev/vg01/lv01 Created block storage object data01 using /dev/vg01/lv01.
[root@handson3-srv1 ~]# targetcli /backstores/block create name=data02 dev=/dev/vg01/lv02 Created block storage object data02 using /dev/vg01/lv02.
[root@handson3-srv1 ~]# targetcli ls /
o- / ... [...] o- backstores ... [...]
| o- block ... [Storage Objects: 2]
| | o- data01 ... [/dev/vg01/lv01 (512.0MiB) write-thru deactivated]
| | o- data02 ... [/dev/vg01/lv02 (1.0GiB) write-thru deactivated]
| o- fileio ... [Storage Objects: 0]
| o- pscsi ... [Storage Objects: 0]
| o- ramdisk ... [Storage Objects: 0]
初期状態 確認 行い
targetcli ン 各種設定
ー構造 管理さ / 頂
点 ー 示
LVM 作成 2 領域
登録 い
登録 領域 確認
iSCSI 領域の作成
ー 側 iqn 作成
o ン iqn 対 行い
o 時点 単独 iqn 名 定義 い 次項 手順 iqn ー 関
連付 必要 あ
[root@handson3-srv1 ~]# targetcli /iscsi create iqn.1994-05.com.redhat:srv1 Created target iqn.1994-05.com.redhat:srv1.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
[root@handson3-srv1 ~]# targetcli ls /
o- / ... [...] o- backstores ... [...]
| o- block ... [Storage Objects: 2]
| | o- data01 ... [/dev/vg01/lv01 (512.0MiB) write-thru deactivated]
| | o- data02 ... [/dev/vg01/lv02 (1.0GiB) write-thru deactivated]
| o- fileio ... [Storage Objects: 0]
| o- pscsi ... [Storage Objects: 0]
| o- ramdisk ... [Storage Objects: 0] o- iscsi ... [Targets: 1]
| o- iqn.1994-05.com.redhat:srv1 ... [TPGs: 1]
| o- tpg1 ... [no-gen-acls, no-auth]
| o- acls ... [ACLs: 0]
| o- luns ... [LUNs: 0]
| o- portals ... [Portals: 1]
iqn 作成 い
iqn 名 好 値 設定
様 設定 慣例的 い
1 iqn 作成
配下 関連 階層
作 い 確認
iSCSI 領域の作成
iqn ー 関連付
o iqn ン 使用 ー 設定
[root@handson3-srv1 ~]# targetcli /iscsi/iqn.1994-05.com.redhat:srv1/tpg1/luns create /backstores/block/data01 Created LUN 0.
[root@handson3-srv1 ~]# targetcli /iscsi/iqn.1994-05.com.redhat:srv1/tpg1/luns create /backstores/block/data02 Created LUN 1.
[root@handson3-srv1 ~]# targetcli ls /
o- / ... [...] o- backstores ... [...]
| o- block ... [Storage Objects: 2]
| | o- data01 ... [/dev/vg01/lv01 (512.0MiB) write-thru activated]
| | o- data02 ... [/dev/vg01/lv02 (1.0GiB) write-thru activated]
| o- fileio ... [Storage Objects: 0]
| o- pscsi ... [Storage Objects: 0]
| o- ramdisk ... [Storage Objects: 0] o- iscsi ... [Targets: 1]
| o- iqn.1994-05.com.redhat:srv1 ... [TPGs: 1]
| o- tpg1 ... [no-gen-acls, no-auth]
| o- acls ... [ACLs: 0]
| o- luns ... [LUNs: 2]
| | o- lun0 ... [block/data01 (/dev/vg01/lv01)]
| | o- lun1 ... [block/data02 (/dev/vg01/lv02)]
| o- portals ... [Portals: 1]
| o- 0.0.0.0:3260 ... [OK] o- loopback ... [Targets: 0]
登録 ー
ー LUN
iqn 関連付
iSCSI ン か の接続
srv2 接続 行い
o iscsi ー ー ー ー 接続 利用可能 ー 検索
o 後 検索 ー 対 接続 行い
o 接続 失敗 い ー ー側 ACL 設定さ い
い
[root@handson3-srv1 ~]# ssh centos@192.168.199.20
The authenticity of host '192.168.199.20 (192.168.199.20)' can't be established. ECDSA key fingerprint is 09:d5:dc:14:c6:67:da:cd:9e:ec:56:95:d9:a4:ec:d4.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.199.20' (ECDSA) to the list of known hosts. centos@192.168.199.20's password:
Last login: Fri Mar 17 03:34:51 2017 from 192.168.199.10 [centos@handson3-srv2 ~]$
[centos@handson3-srv2 ~]$ sudo -i [root@handson3-srv2 ~]#
[root@handson3-srv2 ~]# iscsiadm -m discovery --type sendtargets --portal 192.168.199.10 192.168.199.10:3260,1 iqn.1994-05.com.redhat:srv1
srv2 接続 root 作
業 行い
iscsi ー ー
srv1 上 接続可能 iSCSI
ー 検索
検索 ー 接続 行い
ACL 設定 不足 い
失敗
ACL の設定
srv2 許可 設定 行い
o srv2 iqn 調
o srv1 上記 調 iqn 登録
o 再度 ー ー 接続 行い
[root@handson3-srv2 ~]# cat /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.1994-05.com.redhat:8d961786542b
[root@handson3-srv2 ~]# exit [centos@handson3-srv2 ~]$ exit [root@handson3-srv1 ~]#
[root@handson3-srv1 ~]# targetcli ls
o- / ... [...] o- backstores ... [...]
| o- block ... [Storage Objects: 2]
| | o- data01 ... [/dev/vg01/lv01 (512.0MiB) write-thru activated]
| | o- data02 ... [/dev/vg01/lv02 (1.0GiB) write-thru activated]
| o- fileio ... [Storage Objects: 0]
| o- pscsi ... [Storage Objects: 0]
| o- ramdisk ... [Storage Objects: 0] o- iscsi ... [Targets: 1]
| o- iqn.1994-05.com.redhat:srv1 ... [TPGs: 1]
| o- tpg1 ... [no-gen-acls, no-auth]
| o- acls ... [ACLs: 0]
| o- luns ... [LUNs: 2]
| | o- lun0 ... [block/data01 (/dev/vg01/lv01)]
iSCSI ー ー iqn
設定さ い
編集 iscsid 再起動
い iqn 変更
初期状態 ACL 何
登録さ い
iqn 値 後 利用
帳等 ー
い く さい
ACL の設定
srv2 iqn ACL 登録
o 登録さ iqn 対 自動的 登録済 LUN 登録さ
o 特定 LUN ー ン ー 等 更 細 い 制御
可能
[root@handson3-srv1 ~]# targetcli /iscsi/iqn.1994-05.com.redhat:srv1/tpg1/acls create iqn.1994-05.com.redhat:8d961786542b Created Node ACL for iqn.1994-05.com.redhat:8d961786542b
Created mapped LUN 1. Created mapped LUN 0.
[root@handson3-srv1 ~]# targetcli ls
o- / ... [...] o- backstores ... [...]
| o- block ... [Storage Objects: 2]
| | o- data01 ... [/dev/vg01/lv01 (512.0MiB) write-thru activated]
| | o- data02 ... [/dev/vg01/lv02 (1.0GiB) write-thru activated]
| o- fileio ... [Storage Objects: 0]
| o- pscsi ... [Storage Objects: 0]
| o- ramdisk ... [Storage Objects: 0] o- iscsi ... [Targets: 1]
| o- iqn.1994-05.com.redhat:srv1 ... [TPGs: 1]
| o- tpg1 ... [no-gen-acls, no-auth]
| o- acls ... [ACLs: 1]
| | o- iqn.1994-05.com.redhat:8d961786542b ... [Mapped LUNs: 2]
| | o- mapped_lun0 ... [lun0 block/data01 (rw)]
許可 iqn 登録
指定 iqn ン ー ン部分 1
前 ー 確認 srv2 値 使 く
さい
登録 iqn 対 自
動的 LUN 登録さ
い
iSCSI ン か の接続 再
再度 srv2 ン ー ー 接続 行い
o 今回 ACL 設定済 正常 接続 完了
o ー 側 設定 2 LUN 512MB 1GB 領域 認識 い
確認
[root@handson3-srv1 ~]# ssh centos@192.168.199.20 centos@192.168.199.20's password:
Last login: Fri Mar 17 03:50:35 2017 from 192.168.199.10 [centos@handson3-srv2 ~]$ sudo -i
[root@handson3-srv2 ~]#
[root@handson3-srv2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 20G 0 disk
└─vda 5 : 0 20G 0 part /
[root@handson3-srv2 ~]# iscsiadm -m node -T iqn.1994-05.com.redhat:srv1 -p 192.168.199.10:3260 -l
Logging in to [iface: default, target: iqn.1994-05.com.redhat:srv1, portal: 192.168.199.10,3260] (multiple) Login to [iface: default, target: iqn.1994-05.com.redhat:srv1, portal: 192.168.199.10,3260] successful.
[root@handson3-srv2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
再度 ン 試
lsblk ン OS 認識 い
ー ン情報 表示
iSCSI の利用
認識 iSCSI 利用可能 状態
o ー ン 作成 行う
o 作成 ー
o ン
[root@handson3-srv2 ~]# fdisk /dev/sda Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them. Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xc5b2267d.
コマン (m ル ): n エンター
Partition type:
p primary (0 primary, 0 extended, 4 free) e extended
Select (default p): p エンター
ー ション番号 (1-4, default 1): (そ エンター) 最初 sector (2048-1048575, 初期値 2048): (そ エンター) 初期値 2048 を使い す
Last sector, +sectors or +size{K,M,G} (2048-1048575, 初期値 1048575): (そ エンター) 初期値 1048575 を使い す
Partition 1 of type Linux and of size 511 MiB is set
コマン (m ル ): m
コマン 動作
a toggle a bootable flag b edit bsd disklabel
c toggle the dos compatibility flag d delete a partition
g create a new empty GPT partition table G create an IRIX (SGI) partition table l list known partition types m print this menu
n add a new partition
o create a new empty DOS partition table p print the partition table
q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only)
fdisk ン ー ン 作成
ン 独自 操作体系 持 起
動後 m 参照
iSCSI の利用
作成 ー ン上 作成
ext4 ー 利用 い CentOS7(RHEL7
他 xfs 等 利用可能
[root@handson3-srv2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 512M 0 disk
└─sda1 8:1 0 511M 0 part sdb 8:16 0 1G 0 disk vda 253:0 0 20G 0 disk
└─vda 5 : 0 20G 0 part /
[root@handson3-srv2 ~]# mkfs.ext4 /dev/sda1 mke2fs 1.42.9 (28-Dec-2013)
Filesystem label= OS type: Linux
Block size=1024 (log=0) Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=124 blocks 131072 inodes, 523264 blocks
26163 blocks (5.00%) reserved for the super user First data block=1
Maximum filesystem blocks=34078720 64 block groups
8192 blocks per group, 8192 fragments per group 2048 inodes per group
Superblock backups stored on blocks:
作成 ー ン
認識 い 確認
作成
iSCSI の利用
作成 ン
ン 用 配置 正常 書 込 行え 確認
い
o 後 演習 利用 必 作成 い く さい
[root@handson3-srv2 ~]# mkdir /mnt/iscsi01 [root@handson3-srv2 ~]# df -h
ァ ルシ サ 使用 残り 使用% マウン 位置
/dev/vda1 20G 1.1G 19G 6% / devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 17M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup tmpfs 380M 0 380M 0% /run/user/1000
tmpfs 380M 0 380M 0% /run/user/0
[root@handson3-srv2 ~]# mount /dev/sda1 /mnt/iscsi01 [root@handson3-srv2 ~]# df -h
ァ ルシ サ 使用 残り 使用% マウン 位置
/dev/vda1 20G 1.1G 19G 6% / devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 17M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup tmpfs 380M 0 380M 0% /run/user/1000
tmpfs 380M 0 380M 0% /run/user/0
ン 先 作成
作成 ン 利用可能
ン 成功 新 い
い 確認 認識さ
iSCSI の利用
2 領域 利用可能
先ほ 同様 ー ン 作成
[root@handson3-srv2 ~]# fdisk /dev/sdb
コマン (m ル ): n エンター
Partition type:
p primary (0 primary, 0 extended, 4 free) e extended
Select (default p): p エンター
ー ション番号 (1-4, default 1): 1 エンター
最初 sector (2048-2097151, 初期値 2048): そ エンター 初期値 2048 を使い す
Last sector, +sectors or +size{K,M,G} (2048-2097151, 初期値 2097151): そ エンター 初期値 2097151 を使い す
Partition 1 of type Linux and of size 1023 MiB is set
コマン (m ル ): p エンター
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes I/O サ (最小 / 推奨): 512 / 126976
Disk label type: dos ク識別子: 0xa1929734
Id
2 目 領域 fdisk ン
ー ン 作成
iSCSI の利用
作成 ー ン上
作成
[root@handson3-srv2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 512M 0 disk
└─sda 8:1 0 511M 0 part /mnt/iscsi01 sdb 8:16 0 1G 0 disk
└─sdb1 8:17 0 1023M 0 part vda 253:0 0 20G 0 disk
└─vda 5 : 0 20G 0 part /
[root@handson3-srv2 ~]# mkfs.ext4 /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013)
Filesystem label= OS type: Linux
Block size=4096 (log=2) Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=31 blocks 65536 inodes, 261888 blocks
13094 blocks (5.00%) reserved for the super user First data block=0
Maximum filesystem blocks=268435456 8 block groups
32768 blocks per group, 32768 fragments per group 8192 inodes per group
作成 ー ン 認識さ
い 確認
ー 作成
iSCSI の利用
作成 ン
ン 領域 作成 正常 書 込 行え 確認
o 後 演習 利用
[root@handson3-srv2 ~]# mkdir /mnt/iscsi02
[root@handson3-srv2 ~]# mount /dev/sdb1 /mnt/iscsi02 [root@handson3-srv2 ~]# df -h
ァ ルシ サ 使用 残り 使用% マウン 位置
/dev/vda1 20G 1.1G 19G 6% / devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 17M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup tmpfs 380M 0 380M 0% /run/user/1000
tmpfs 380M 0 380M 0% /run/user/0
/dev/sda1 487M 2.3M 456M 1% /mnt/iscsi01 /dev/sdb1 991M 2.6M 922M 1% /mnt/iscsi02
[root@handson3-srv2 ~]# echo "This server is SRV2" >> /mnt/iscsi02/server_name.txt [root@handson3-srv2 ~]# cat /mnt/iscsi02/server_name.txt
This server is SRV2
作成 ン
ン 確認
行い 書 込
iSCSI の切断
iSCSI領域 srv2 切 離
o ン ン 行い 後 iSCSI 接続 解除
o 後 演習 srv2
[root@handson3-srv2 ~]# cd
[root@handson3-srv2 ~]# umount /mnt/iscsi01 [root@handson3-srv2 ~]# umount /mnt/iscsi02 [root@handson3-srv2 ~]# df -h
ァ ルシ サ 使用 残り 使用% マウン 位置
/dev/vda1 20G 1.1G 19G 6% / devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 17M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup tmpfs 380M 0 380M 0% /run/user/1000
tmpfs 380M 0 380M 0% /run/user/0
[root@handson3-srv2 ~]# iscsiadm -m node
192.168.199.10:3260,1 iqn.1994-05.com.redhat:srv1
[root@handson3-srv2 ~]# iscsiadm -m node -T iqn.1994-05.com.redhat:srv1 -p 192.168.199.10:3260 --logout Logging out of session [sid: 2, target: iqn.1994-05.com.redhat:srv1, portal: 192.168.199.10,3260] Logout of [sid: 2, target: iqn.1994-05.com.redhat:srv1, portal: 192.168.199.10,3260] successful.
[root@handson3-srv2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 20G 0 disk
ン 解除 結果 確
認 い
iSCSI ー
認識 い sda, sdb
iSCSI ュー を別サー ーか 利用
先程利用 iSCSI ー 別 ー ー srv1 利用
o srv1 iqn 確認 ACL 設定
o srv1 iSCSI ー ン ー 利用
[root@handson3-srv1 ~]# cat /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.1994-05.com.redhat:7b4f476a18b
[root@handson3-srv1 ~]# targetcli ls
o- / ... [...] o- backstores ... [...]
| o- block ... [Storage Objects: 2]
| | o- data01 ... [/dev/vg01/lv01 (512.0MiB) write-thru activated]
| | o- data02 ... [/dev/vg01/lv02 (1.0GiB) write-thru activated]
| o- fileio ... [Storage Objects: 0]
| o- pscsi ... [Storage Objects: 0]
| o- ramdisk ... [Storage Objects: 0] o- iscsi ... [Targets: 1]
| o- iqn.1994-05.com.redhat:srv1 ... [TPGs: 1]
| o- tpg1 ... [no-gen-acls, no-auth]
| o- acls ... [ACLs: 1]
| | o- iqn.1994-05.com.redhat:8d961786542b ... [Mapped LUNs: 2]
| | o- mapped_lun0 ... [lun0 block/data01 (rw)]
| | o- mapped_lun1 ... [lun1 block/data02 (rw)]
| o- luns ... [LUNs: 2]
| | o- lun0 ... [block/data01 (/dev/vg01/lv01)]
srv1 iqn 確認
値 後 利用 帳
等 ー い く さい
iSCSI ュー を別サー ーか 利用
確認 iqn ACL 登録
o 時 ー 側 iqn ー ー側 iqn 値 別々 管理さ い
注目 く さい
[root@handson3-srv1 ~]# targetcli /iscsi/iqn.1994-05.com.redhat:srv1/tpg1/acls create iqn.1994-05.com.redhat:7b4f476a18b Created Node ACL for iqn.1994-05.com.redhat:7b4f476a18b
Created mapped LUN 1. Created mapped LUN 0.
[root@handson3-srv1 ~]# targetcli ls
o- / ... [...] o- backstores ... [...]
| o- block ... [Storage Objects: 2]
| | o- data01 ... [/dev/vg01/lv01 (512.0MiB) write-thru activated]
| | o- data02 ... [/dev/vg01/lv02 (1.0GiB) write-thru activated]
| o- fileio ... [Storage Objects: 0]
| o- pscsi ... [Storage Objects: 0]
| o- ramdisk ... [Storage Objects: 0] o- iscsi ... [Targets: 1]
| o- iqn.1994-05.com.redhat:srv1 ... [TPGs: 1]
| o- tpg1 ... [no-gen-acls, no-auth]
| o- acls ... [ACLs: 2]
| | o- iqn.1994-05.com.redhat:7b4f476a18b ... [Mapped LUNs: 2]
| | | o- mapped_lun0 ... [lun0 block/data01 (rw)]
| | | o- mapped_lun1 ... [lun1 block/data02 (rw)]
| | o- iqn.1994-05.com.redhat:8d961786542b ... [Mapped LUNs: 2]
| | o- mapped_lun0 ... [lun0 block/data01 (rw)]
| | o- mapped_lun1 ... [lun1 block/data02 (rw)]
srv1 iqn ACL 登録
ン ー ン部分 自分 環境
値 読 替え く さい
新 い ACL 追加さ い
iSCSI ュー を別サー ーか 利用
srv1 ー ー srv1 ー 接続
接続 成功 srv2 作成 領域 確認
[root@handson3-srv2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 20G 0 disk
└─vda 5 : 0 20G 0 part /
[root@handson3-srv1 ~]# iscsiadm -m discovery --type sendtargets --portal 192.168.199.10 192.168.199.10:3260,1 iqn.1994-05.com.redhat:srv1
[root@handson3-srv1 ~]# iscsiadm -m node -T iqn.1994-05.com.redhat:srv1 -p 192.168.199.10:3260 -l
Logging in to [iface: default, target: iqn.1994-05.com.redhat:srv1, portal: 192.168.199.10,3260] (multiple) Login to [iface: default, target: iqn.1994-05.com.redhat:srv1, portal: 192.168.199.10,3260] successful. [root@handson3-srv1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 512M 0 disk
└─sda1 8:1 0 511M 0 part
sdb 8:16 0 1G 0 disk
└─sdb1 8:17 0 1023M 0 part
vda 253:0 0 20G 0 disk
└─vda 253:1 0 20G 0 part / loop0 7:0 0 1.9G 0 loop
├─vg0 -lv01 252:0 0 512M 0 lvm
└─vg0 -lv02 252:1 0 1G 0 lvm [root@handson3-srv1 ~]# blkid
接続直後 既 ー ン等 認
識さ い 確認
srv2 作成 情報 残 い
blkid ン OS 認識
iSCSI ュー を別サー ーか 利用
認識 ン 存在 確認
srv2 上 作成 確認
[root@handson3-srv1 ~]# mkdir /mnt/iscsi{01,02} [root@handson3-srv1 ~]# mount /dev/sda1 /mnt/iscsi01 [root@handson3-srv1 ~]# mount /dev/sdb1 /mnt/iscsi02 [root@handson3-srv1 ~]# df -h
ァ ルシ サ 使用 残り 使用% マウン 位置
/dev/vda1 20G 3.0G 18G 15% / devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 17M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup tmpfs 380M 0 380M 0% /run/user/1000 /dev/sda1 487M 2.3M 456M 1% /mnt/iscsi01 /dev/sdb1 991M 2.6M 922M 1% /mnt/iscsi02 [root@handson3-srv1 ~]# find /mnt
/mnt
/mnt/iscsi01
/mnt/iscsi01/lost+found /mnt/iscsi01/my_file.txt /mnt/iscsi02
/mnt/iscsi02/lost+found /mnt/iscsi02/server_name.txt
srv2 上 作成 srv1
参照 い
iSCSI ュー の切断
ー 切断 次 演習 準備
[root@handson3-srv1 ~]# cd
[root@handson3-srv1 ~]# umount /mnt/iscsi01 [root@handson3-srv1 ~]# umount /mnt/iscsi02
[root@handson3-srv1 ~]# iscsiadm -m node -T iqn.1994-05.com.redhat:srv1 -p 192.168.199.10:3260 --logout Logging out of session [sid: 2, target: iqn.1994-05.com.redhat:srv1, portal: 192.168.199.10,3260]
Logout of [sid: 2, target: iqn.1994-05.com.redhat:srv1, portal: 192.168.199.10,3260] successful. [root@handson3-srv1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 20G 0 disk
└─vda 253:1 0 20G 0 part / loop0 7:0 0 1.9G 0 loop
├─vg0 -lv01 252:0 0 512M 0 lvm
└─vg0 -lv02 252:1 0 1G 0 lvm
[root@handson3-srv1 ~]# exit [centos@handson3-srv1 ~]$ exit
iptables ッ 操作
演習内容
iptables ー 設定 行い 挙
動 確認
o srv1 httpd 起動
o srv1 ー 80 httpd iptables 制御
仮想 ー ー
内部 ワー
192.168.199.0/24
handson3-srv1
192.168.199.10
handson3-srv2
192.168.199.20 httpd ー 80
iptables
演習の準備
srv1 httpd 用 ー 準備
o ー 以下 方法
srv1 → localhost(127.0.0.1) 自分自身 192.168.199.10
srv2 → srv1(192.168.199.10)
作業用端末 → srv1 ssh 使用 IP
# ssh centos@xxx.xxx.xxx.xxx centos@157.1.141.112's password:
Last login: Fri Mar 17 03:34:37 2017 from reposerver [centos@handson3-srv1 ~]$ sudo -i
[root@handson3-srv1 ~]#
[root@handson3-srv1 ~]# echo "This is your_name's server" > /var/www/html/index.html [root@handson3-srv1 ~]# cat /var/www/html/index.html
This is your_name's server
[root@handson3-srv1 ~]# curl localhost This is your_name's server
[root@handson3-srv1 ~]# ssh centos@192.168.199.20 centos@192.168.199.20's password:
Last login: Tue Mar 21 03:00:52 2017 from 192.168.199.10
srv1 root 作業 行い
srv1 用 ー 準
備
your name 部分 自
分 名前 置換 く さ
srv1 localhost curl ン い
http い
srv2 ン curl ン 使
srv2 http く さい
iptables ッ の拒否 ッ
srv1上 ー 80 対 拒否 設定 行い
設定後 各 行い挙動 確認
[root@handson3-srv1 ~]# iptables -nvL Chain INPUT (policy ACCEPT 1252 packets, 3251K bytes)
pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 938 packets, 90943 bytes)
pkts bytes target prot opt in out source destination
[root@handson3-srv1 ~]# iptables -A INPUT -p tcp --dport 80 -j REJECT
[root@handson3-srv1 ~]# iptables -nvL --line-numbers Chain INPUT (policy ACCEPT 25 packets, 1936 bytes)
num pkts bytes target prot opt in out source destination
1 1 60 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 reject-with icmp-port-unreachable Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 20 packets, 1812 bytes)
num pkts bytes target prot opt in out source destination
[centos@handson3-srv2 ~]$ curl 192.168.199.10
現在 ー一覧 確認
初期状態 何 ー 設定さ
い
ー 80 無条件 拒否 REJECT
設定 投入
ー 追加さ い 確認
特定の条件化 http セ を許可す
全 http 禁止さ い 状態 srv2(192.168.199.20) 許可
う 設定 い
iptables ー 優先順位 設定 新 い ー 優先順位 上 設定
ー 80 全 拒否 先 条件 さ 許可さ
[root@handson3-srv1 ~]# iptables -I INPUT 1 -p tcp -s 192.168.199.20 --dport 80 -j ACCEPT
[root@handson3-srv1 ~]# iptables -nvL --line-numbers Chain INPUT (policy ACCEPT 9 packets, 660 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT tcp -- * * 192.168.199.20 0.0.0.0/0 tcp dpt:80
2 57 3632 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 reject-with icmp-port-unreachable Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 5 packets, 712 bytes)
num pkts bytes target prot opt in out source destination
[root@handson3-srv1 ~]# ssh centos@192.168.199.20 centos@192.168.199.20's password:
[centos@handson3-srv2 ~]$ curl 192.168.199.10
srv2 IP ー 80 許可
ー 追加 時 優先順位 1 最 高い
優先順位 与え い
追加さ ー 順番 注目 く
優先順位 srv2 さい ー 80 許可
優先順位2 全 ー 80 拒否
い
状態 srv2 curl ン
設定の保存 復元
設定 ー 保存さ い ー 再起動やOS 再起
動 行う ー さ い
ー 保存 復元 手順 確認 い
[root@handson3-srv1 ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] [root@handson3-srv1 ~]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.21 on Tue Mar 21 04:12:12 2017
*nat
:PREROUTING ACCEPT [55:3552] :INPUT ACCEPT [2:164]
:OUTPUT ACCEPT [7:1180] :POSTROUTING ACCEPT [7:1180] COMMIT
# Completed on Tue Mar 21 04:12:12 2017
# Generated by iptables-save v1.4.21 on Tue Mar 21 04:12:12 2017
*filter
:INPUT ACCEPT [113:7504] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [145:12376]
-A INPUT -s 192.168.199.20/32 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j REJECT --reject-with icmp-port-unreachable COMMIT
# Completed on Tue Mar 21 04:12:12 2017 [root@handson3-srv1 ~]# iptables -F
[root@handson3-srv1 ~]# iptables -nvL --line-numbers Chain INPUT (policy ACCEPT 71 packets, 5191 bytes)
ン 現在設定さ い
ー 書 出 可能
書 出さ 確認 い
演習 設定 2 ー 記載さ
い 確認
iptables -F 設定 ー 全
可能
設定の保存 復元
設定 後 書 出
ー 復元
[root@handson3-srv1 ~]# service iptables restart
Redirecting to /bin/systemctl restart iptables.service
[root@handson3-srv1 ~]# iptables -nvL --line-numbers Chain INPUT (policy ACCEPT 19 packets, 1360 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT tcp -- * * 192.168.199.20 0.0.0.0/0 tcp dpt:80
2 0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 reject-with icmp-port-unreachable Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 10 packets, 1056 bytes)
num pkts bytes target prot opt in out source destination
[root@handson3-srv1 ~]# curl 192.168.199.10
curl: (7) Failed connect to 192.168.199.10:80; 接続を拒否され した
iptables 再起動 書 出 設定
ー さ
設定 復元さ い 確認
設定 復元さ い
オ ョン演習
時間 余裕 あ 方 以下 演習 試 く さ
い
方法 比較
o 今回 演習 ー 80 拒否
REJECT 使 い DROP 変え
場合 う 違い あ 確認 く さい
o ー 変更方法
iptables -nvL --line-numbers ー 80 全 REJECT
ー 番号 確認 演習通 あ 2
iptables -D INPUT 2 削除
オ ョン演習の回答
REJECT ン 場合 拒否 通
知 ICMP 返送 DROP ン
該当 黙 破棄
REJECT 場合 接続 拒否さ ン
検知 接続 拒否さ 表示さ
o 場合 ン ー ー 存在 上 接続 拒否さ
いう事 認識
一方 DROP 設定さ い 場合 ン ー ー
応答 待 続
o 場合 ン ー ー 存在 い い 接続
単 拒否さ いう 認識
Namespace の操作
演習内容
srv1上 ワー ー ー 作成
挙動 確認
o ー ー 作成 い場合 挙動 確認
o ワー ー ー 作成 場合 挙動 比較
handson3-srv1
192.168.199.10
eth0
ー ー 1 ー ー 2
仮想NIC
(172.16.10.10) (172.16.10.10)仮想NIC http ー ー
ー 8000 httpー 8000ー ー
ネッ ワー 状態の確認
srv1 ン root ー ー 切 替え 演習 進
ip ン 使 ワー ン ー ー NIC
ワー ー ー 状態 確認
# ssh centos@xxx.xxx.xxx.xxx centos@157.1.141.112's password:
[centos@handson3-srv1 ~]$
[centos@handson3-srv1 ~]$ sudo -i
[root@handson3-srv1 ~]#
[root@handson3-srv1 ~]# ip netns
[root@handson3-srv1 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc pfifo_fast state UP qlen 1000 link/ether fa:16:3e:35:33:40 brd ff:ff:ff:ff:ff:ff
inet 192.168.199.10/24 brd 192.168.199.255 scope global dynamic eth0 valid_lft 59720sec preferred_lft 59720sec
現在 ワー ー 一覧 表示
現時点 ー ー 存在 い い
何 表示さ
ワー ン ー ー NIC IP
状態 確認
初期状態 lo ー
eth0 192.168.199.10 存在 い
特定 ー のWEBサー ーの起動
2 WEB ー ー 起動
o 用 ー 準備
o ー 8001 1 目 WEB ー ー 起動
[root@handson3-srv1 ~]# cd ~/
[root@handson3-srv1 ~]# mkdir wwwroot1 wwwroot2
[root@handson3-srv1 ~]# echo "wwwroot1 - 172.168.10.10" > wwwroot1/index.html [root@handson3-srv1 ~]# echo "wwwroot2 - 172.168.10.10" > wwwroot2/index.html
[root@handson3-srv1 ~]# cd ~/wwwroot1
[root@handson3-srv1 wwwroot1]# python -m SimpleHTTPServer 8001 & [1] 7132
Serving HTTP on 0.0.0.0 port 8001 ... [root@handson3-srv1 wwwroot1]#
[root@handson3-srv1 wwwroot1]# curl localhost:8001
127.0.0.1 - - [02/Apr/2017 17:18:01] "GET / HTTP/1.1" 200 - wwwroot1 - 172.168.10.10
ー 用 準備
python 標準機能 使 ン
WEB ー ー 用 起動
時 ー 8001 起動 う
指定
curl ン ー 8001
WEB ー ー 起動 確認
ー を重複させたWEBサー ーの起動
2 WEB ー ー ー 8001 起動
o 時 既 ー 8001 1 WEB ー ー 使 い ー
o ー 番号 変更 8002 2 目 WEB ー ー 起動
[root@handson3-srv1 wwwroot1]# cd ~/wwwroot2
[root@handson3-srv1 wwwroot2]# python -m SimpleHTTPServer 8001 Traceback (most recent call last):
File "/usr/lib64/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code exec code in run_globals
File "/usr/lib64/python2.7/SimpleHTTPServer.py", line 220, in <module> test()
File "/usr/lib64/python2.7/SimpleHTTPServer.py", line 216, in test BaseHTTPServer.test(HandlerClass, ServerClass)
File "/usr/lib64/python2.7/BaseHTTPServer.py", line 595, in test httpd = ServerClass(server_address, HandlerClass)
File "/usr/lib64/python2.7/SocketServer.py", line 419, in __init__ self.server_bind()
File "/usr/lib64/python2.7/BaseHTTPServer.py", line 108, in server_bind SocketServer.TCPServer.server_bind(self)
File "/usr/lib64/python2.7/SocketServer.py", line 430, in server_bind self.socket.bind(self.server_address)
File "/usr/lib64/python2.7/socket.py", line 224, in meth return getattr(self._sock,name)(*args)
socket.error: [Errno 98] Address already in use
ー 8001 指定 2 目 WEB
ー ー 起動 う ー
既 使わ い ー
ー 変更 8002 起動
起動 成功
セ の確認 セ の終了
8001 8002 WEB ー ー 起動 確認
o 様 ー 番号 分 1 ー ー上 複数 同一 ー 起動 可能
起動 確認 WEB ー ー 終了
[root@handson3-srv1 wwwroot2]# cd
[root@handson3-srv1 ~]# curl localhost:8001
127.0.0.1 - - [02/Apr/2017 17:20:25] "GET / HTTP/1.1" 200 - wwwroot1 - 172.168.10.10
[root@handson3-srv1 ~]# curl localhost:8002
127.0.0.1 - - [02/Apr/2017 17:20:25] "GET / HTTP/1.1" 200 - wwwroot2 - 172.168.10.10
[root@handson3-srv1 ~]# ps -ef | grep "python -m SimpleHTTPServer"
root 7132 7043 0 17:17 pts/0 00:00:00 python -m SimpleHTTPServer 8001 root 7138 7043 0 17:19 pts/0 00:00:00 python -m SimpleHTTPServer 8002
root 7144 7043 0 17:20 pts/0 00:00:00 grep --color=auto python -m SimpleHTTPServer
[root@handson3-srv1 ~]# kill -9 7132 7138
[1]- 強制終了 python -m SimpleHTTPServer 8001 (wd: ~/wwwroot1) (wd now: ~)
[2]+ 強制終了 python -m SimpleHTTPServer 8002 (wd: ~/wwwroot2) (wd now: ~)
起動 い WEB ー ー
確認
ネッ ワー ネー ー の作成
2 ワー ー ー WWW1 WWW2 作成
ー ー 作成 何 動作
続く演習 隔離さ 空間 様々 操作 行 い
[root@handson3-srv1 ~]# ip netns add WWW1 [root@handson3-srv1 ~]# ip netns add WWW2 [root@handson3-srv1 ~]# ip netns
WWW2 WWW1
[root@handson3-srv1 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc pfifo_fast state UP qlen 1000 link/ether fa:16:3e:35:33:40 brd ff:ff:ff:ff:ff:ff
inet 192.168.199.10/24 brd 192.168.199.255 scope global dynamic eth0 valid_lft 50624sec preferred_lft 50624sec
inet6 fe80::f816:3eff:fe35:3340/64 scope link valid_lft forever preferred_lft forever
ワー ー ー 作成
特 現状 ワー 影響
与え
仮想NICの追加 ネー ー への組 込
仮想 NIC 作成 ワー ー ー 組 込
[root@handson3-srv1 ~]# ip tuntap add tap0 mode tap [root@handson3-srv1 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc pfifo_fast state UP qlen 1000 link/ether fa:16:3e:35:33:40 brd ff:ff:ff:ff:ff:ff
inet 192.168.199.10/24 brd 192.168.199.255 scope global dynamic eth0 valid_lft 50624sec preferred_lft 50624sec
inet6 fe80::f816:3eff:fe35:3340/64 scope link valid_lft forever preferred_lft forever
3: tap0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 500 link/ether ce:29:b5:0b:6a:c8 brd ff:ff:ff:ff:ff:ff
[root@handson3-srv1 ~]# ip tuntap add tap0 mode tap ioctl(TUNSETIFF): Device or resource busy
[root@handson3-srv1 ~]# ip link set tap0 netns WWW1 [root@handson3-srv1 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever inet6 ::1/128 scope host