情報システム管理 情報システム管理
5 . ネットワークとファイア ウォール
水野嘉明
本日の内容 本日の内容
1 . ネットワーク TCP/IP の 基本
2 . ファイアウォール
ファイアウォールによるセ キュリティの保護について
2
1 . ネットワーク
1 .1 TCP/IP
1 .2 IPアドレスとネットマ スク 1 .3 IPアドレスの割り当て 1 .4 ポート番号
1 .5 ネットワークの設定 2 . ファイアウォール
3
本日の内容
本日の内容
1. ネットワーク 1. ネットワーク
サーバは、必ずネットワークに接 続される
インターネットは、
世界中のコンピュ-タネット
ワークを 相互に接続した ネット ワーク
4
1 1 . . 1 TCP/IP 1 TCP/IP
インターネットのプロトコルには、TCP/IP
が使用されているTransmission Control Protocol / Internet Protocol
5
1 1 . . 1 TCP/IP 1 TCP/IP
プロトコル (protocol) とは、
『通信規約 』
データの形式
データ送受信の手順 などの約束事
多岐にわたる機能を分類するた め、 階層化 されている
6
1 1 . . 1 TCP/IP 1 TCP/IP
TCP/IP の階層構造
7
応用層
(SMTP,POP3, HTTP,FTP など)
トランスポート層(T CP)
インターネット層(I P)
ネットワーク
インタフェース層
OSI参照モデル
応用層(アプリケーション 層)
プレゼンテーション層 セッション層
トランスポート層 ネットワーク層 データリンク層
OSI 参照モデ
物理層ル
ネットワークに 必要な機能を、
7つの階層に分 けて定義してい る
ISO(国際標 準化機構)が制 定
8
1 1 . . 1 TCP/IP 1 TCP/IP
TCP/IPとOSI参照モデルの対応 応用層プレゼンテー ション層 セッション層 トランスポート
層
ネットワーク層 データリンク層
物理層 応用層
(SMTP,POP3, HTTP,FTP
など)トランスポート層(T
CP)
インターネット層(I
P)
ネットワーク
インタフェース層
OSI 参照モデ ル
TCP/ IP
91 1 . . 1 TCP/IP 1 TCP/IP
パケット交換
(インターネット層の通 信)
ネットワーク同士は、ルータを介し てつながっている
パケット交換方式
データをパケットと呼ばれる単位 に区切り、
「バケツリレー式」で受け渡す
10
1 1 . . 1 TCP/IP 1 TCP/IP
(パケット)
ルータ
ルータ ルータ
11
1 1 . . 1 TCP/IP 1 TCP/IP
パケット交換の様
子
パケット交換(バケツリレー)に 必要な情報
IPアドレス
ホストの区別
ネットマスク
ネットワークアドレスを計算
ルーティング情報
受取ったパケットの転送先
121 1 . . 1 TCP/IP 1 TCP/IP
1 1 . . 2 IPアドレスとネット 2 IPアドレスとネット マスク マスク
IPアドレス
ネットワークに接続されたホストを 一意に識別するための数値
IPv4では 32 ビット、IPv6 では 128 ビット (いまだ主流は IPv4)
IPv4では、 0~255 の数値4ヶを ピリオドで区切って表示
例) 160.30.21.110
13
IPアドレスは、ネットワーク アドレス部とホストアドレス部 に分かれる
14
1 1 . . 2 IPアドレスとネット 2 IPアドレスとネット マスク マスク
ネットワークアド
レス ホストアドレ
(ネットワークアドレスは、可変長 ス
。 これは、16ビットの場合)
例) 160.30.21.110
ネットワークアドレス ネットワークを識別
ホストアドレス
ネット内のホストを識
別
151 1 . . 2 IPアドレスとネット 2 IPアドレスとネット マスク マスク
ネットワークアド
レス ホストアドレ ス
例) 160.30.21.110
ネットマスク (サブネットマスク)
ネットワークアドレスの長さを示す
ネットワークアドレス部を1とした ビット列
例 1 ) 255.255.0.0
例 2 ) IP アドレスとあわせて、
160.30.21.110/16 という表記 も可
16
1 1 . . 2 IPアドレスとネット 2 IPアドレスとネット マスク マスク
ネットワークアドレスの長さ= 16
ビット
IPアドレス 192
.
168.
10.
6ネットマスク 255
.
255.
255.
128 の時11000000 10101000 00001010 00000110
192 . 168 . 10
. 11111111 11111111 11111111 6 10000000
255 . 255 . 255
. 128 ネットワークアドレ
ス
ホストアドレス 171 1 . . 2 IPアドレスとネット 2 IPアドレスとネット
マスク マスク
ホストアドレス部が、全て0および全て1のアド レスは、特殊用途に使われる
一般のホストに割り付けることができるのは、その他のアドレス
例) ネットワークアドレス 192
.
168.
10.
0 サブネットマスク 255.
255.
255.
1 28⇒
192 .168 .10 .1 ~ 192 .168 .1 0 .126
が使用可
18
1 1 . . 2 IPアドレスとネット 2 IPアドレスとネット
マスク マスク
1 1 . . 2 IPアドレスとネット 2 IPアドレスとネット マスク マスク
以前は、 IP アドレスは、5つの アド レスクラス に分類されていた
クラス A ~クラス C が通常使われる
(クラス D 、 E は特殊用途用)
ホストアドレス部の長さが、クラス により決まっている
( ネットワークの規模が異なる)
19
1 1 . . 2 IPアドレスとネット 2 IPアドレスとネット マスク マスク
アドレスクラス A ~ C
20
クラ ス 規模 ホスト 部 アドレスの範囲 A 大 24
ビット
0.0.0.0 ~
127.255.255.255 B 中 16
ビット
128.0.0.0 ~
191.255.255.255 C 小 8
ビット
192.0.0.0 ~
223.255.255.255
1 1 . . 3 3 IP IP アドレスの割り当て アドレスの割り当て
IPアドレスは、勝手には決めら れない
衝突(重複)が起こっては困る
世界中でユニーク
21
グローバルIPアドレス
世界中で一意なIPアドレス
日本では、JPNICという組 織が割り当てを行っている
JPNIC プロバイ
ダ ユーザ
22
1 1 . . 3 3 IP IP アドレスの割り当て アドレスの割り当て
プライベートIPアドレス
アドレスの枯渇が問題
ローカルなネットワーク内では、
厳密な(世界中での)一意性は保 証しなくても良い
ローカルなネットワーク内だけで 通用するIPアドレスを割り振る
23
1 1 . . 3 3 IP IP アドレスの割り当て アドレスの割り当て
プライベートIPアドレスは、ネット ワーク外に出してはならない(ネットワーク外と通信できない)
インターネ ット
ローカルな ネットワー ク
24
1 1 . . 3 3 IP IP アドレスの割り当て アドレスの割り当て
ルータ
プライベート IP アドレスでは、外 部にアクセスできない
外にアクセスするときは、NAT 等の技術を使用する
(後日解説する予定)
サーバは、通常グローバル IP アド
レスを用いる
251 1 . . 3 3 IP IP アドレスの割り当て アドレスの割り当て
推奨されるプライベートIPアドレス
プライベートでも、どんなIPアド レスを使っても良いわけではない
クラス A
10.0.0.0 ~ 10.255.255.255 クラス B
172.16.0.0 ~ 172.31.255.255 クラス C
192.168.0.0 ~
192.168.255.255
261 1 . . 3 3 IP IP アドレスの割り当て アドレスの割り当て
固定IPアドレスと動的アドレス
通常、サーバのIPアドレスは固定
PCなどは、接続するごとにIPア ドレスを割り当てることが可能
⇒ DHCP を用いる
(後日解説)
27
1 1 . . 3 3 IP IP アドレスの割り当て アドレスの割り当て
1 1 . . 4 ポート番号 4 ポート番号
1 台のホスト上で、複数のプログラ ムが同時に通信を行う
ポート番号により、サービス
(アプリケーション)を区別する
80
番ポー トブラウ ザ
2
5番ポーメーラ
トWebサー メールサーババ
28
クライアント
IPアドレスでホストを特定し、ポー ト番号でその中のサービス(アプリ ケーション)を指定する
IPアドレス+ポート番号= ソケッ ト
0~1023番は、インターネット上 でよく使用されるサービスに割り当て られている
⇒ ウェルノウン ポート番号
29
1 1 . . 4 ポート番号 4 ポート番号
代表的なウェルノウンポート番号
サービス 機能 番号
Web Web
サーバ80
FTP
ファイル転送(データ)20 FTP
ファイル転送(コマンド)21 SSH
リモートホストの操作(暗号化)
22 Telnet
リモートホストの操作23 DNS
ホストの名前解決53
SMTP
電子メールの配信25
POP3
メールサーバからの受信110
30
1 1 . . 4 ポート番号 4 ポート番号
1 1 . . 5 ネットワークの設定 5 ネットワークの設定
ifconfig
コマンド
ネットワークインターフェースに、I Pアドレスとネットマスクを設定する$ ifconfig if ipaddr [mask]
$ ifconfig [if [option]]
if : インターフェ ース名 ipaddr : IP アドレス
mask : ネットマスク指 定
31
ifconfig コマンドの例 $ ifconfig eth0
eth0 の設定を表示
$ ifconfig eth0 down
eth0 を停止 ( up にて起動)
32
1 1 . . 5 ネットワークの設定 5 ネットワークの設定
ifconfig コマンドの例 $ ifconfig eth0 192.168.11.4 netmask
255.255.255.0 eth0 に IP アドレスとネットマスク を設定
33
1 1 . . 5 ネットワークの設定 5 ネットワークの設定
ルーティングテーブル
IP パケットを送信する時に、
「どこ宛のパケットはどのルータ に 送ればよいか」
といった経路情報を記したテーブル
34
1 1 . . 5 ネットワークの設定 5 ネットワークの設定
route コマンド
ルーティングテーブルの管理
経路情報の追加 /削除 / 変更 / 表示
$ route com target [option]
$ route [option]
com : コマンド ( add / del) target : 対象のネットワーク /
ホスト
351 1 . . 5 ネットワークの設定 5 ネットワークの設定
route コマンドの例
$ route add default gw mango-gw
デフォルト経路を追加する
$ route add -net 192.57.66.0
netmask 255.255.255.0
ネットワーク 192.5 7 . 6 6.x を 追加する
36
1 1 . . 5 ネットワークの設定 5 ネットワークの設定
route コマンドの例
$ route del -net 192.57.66.0
ネットワーク 192.5 7 . 6 6.x を 削除する
37
1 1 . . 5 ネットワークの設定 5 ネットワークの設定
1 1 . . 5 ネットワークの設定 5 ネットワークの設定
route コマンドの表示例
デフォルトゲートウ ェイ
38
netstat コマンド
ネットワークの状態や統計情報を 一覧表示する
$ netstat [option]
option なし: 有効な接続のみ表
示 -a : すべての接続を表示 -s : 統計情報を表示
-r : ルーティングテーブルを表 示
39
1 1 . . 5 ネットワークの設定 5 ネットワークの設定
1 . ネットワーク
2 . ファイアウォール
2 .1 スーパデーモンによる制御 2 .2 ファイアウォールとは
2 .3 パケットフィルタ
2 .4 アプリケーションゲート ウェイ
2 .5 DMZとファイアウォール
40
本日の内容
本日の内容
2 2 . . ファイアウォール ファイアウォール
セキュリティのためには、無条件に 通信を許すことはできない
⇒ 通信相手や通信内容等によって、
アクセス制限
スーパデーモンでのアクセス制御
パケットフィルタ型ファイア ウォール
アプリケーションゲートウェイ
412 2 . . 1 スーパデーモンによる 1 スーパデーモンによる 制御 制御
xinetdによるアクセス制御
利用を許可する/禁止するホス ト・ドメインを指定
利用可能な時間帯を指定
NIC による制限
コネクション数の制限
ログについての設定 など
42
xinetdの設定ファイル
全てのサービスに共通の設定 /etc/xinetd.conf ファイル
各サービス個別の設定
/etc/xinetd.d/ ディレクトリ 配下のサービス名と同名のファ イル (例: /etc/xinetd.d/telnet )
43
2 2 . . 1 スーパデーモンによる 1 スーパデーモンによる
制御 制御
xinetdの設定ファイル
/ ─ etc ┬─
│
└─ xinetd.d ──
44
2 2 . . 1 スーパデーモンによる 1 スーパデーモンによる 制御 制御
xinetd.conf
telnet
rsync
swat :
inetd + TCPWrapper
inetd には、xinetdのよう なアクセス制御機能はない
TCP Wrapper というアクセス制御 プログラムと組み合わせて利用
少々古いが、まだ現役
( KNOPPIX では inetdを使
用)
452 2 . . 1 スーパデーモンによる 1 スーパデーモンによる 制御 制御
再掲
2 2 . . 1 スーパデーモンによる 1 スーパデーモンによる 制御 制御
TCP Wrapper の設定
設定ファイルは、 /etc/hosts.allow および /etc/hosts.deny
hosts.allow には、アクセスを許可す るホストを書く
hosts.deny には、アクセスを拒否す るホストを書く
46
2 2 . . 1 スーパデーモンによる 1 スーパデーモンによる 制御 制御
1. /etc/hosts.allow で許可されてい るホストは許可
2. 上記で許可され
ず /etc/hosts.deny で拒否されて いるホストは拒否
3. 両方に記述のないホストは許可
47
2 2 . . 1 スーパデーモンによる 1 スーパデーモンによる 制御 制御
設定の記述方法
daemon_list
制御するサービス名
hosts_list
制御対象のホスト名、 IP アドレス
48
daemon_list : host_list
[:command ]
2 2 . . 1 スーパデーモンによる 1 スーパデーモンによる 制御 制御
command
シェルコマンド、または、拡張コ マンド ( ALLOW 、 DENY 等)
注:拡張コマンド ALLOW 、 DENY を用いると、 /etc/hosts.allow の みでアクセス制御を記述すること ができる
49
2 2 . . 1 スーパデーモンによる 1 スーパデーモンによる 制御 制御
hosts.allow サンプル
50
①②
③④
2 2 . . 1 スーパデーモンによる 1 スーパデーモンによる 制御 制御
① inetd による telnet の起動を、 IP ア ドレス 192.168.11.* のホストに許 可
② ssh によるアクセスを、すべてのホ ストに対して許可
③ ローカル( KNOPPIX が動作してい る本体)では、すべての動作を許可
④ ① ~③以外は、すべて禁止
51
2 2 . . 2 ファイアウォールとは 2 ファイアウォールとは
「外敵を防ぐ最初の砦」
内部ネットワー ク
インターネ ット
ファイアウォー ル
52
組織内ネットワーク(「信頼できる ネットワーク」)とインターネット
(「信頼できないネットワーク」)
の間で、出入りするパケットを監視
53
2 2 . . 2 ファイアウォールとは 2 ファイアウォールとは
内部ネットワー
(信頼できる) ク インターネッ
ト (信頼できな い)
FW
?
決められたルールをもとに、パ
ケットを通したり破棄したりする
ルールは、ユーザーの ポリ
シー (ネットワークをどのよう に運用したいかという考え方・
ルール)に従い作成される
54
2 2 . . 2 ファイアウォールとは 2 ファイアウォールとは
ファイアウォールには2種類
パケットフィルタリング 型
IP アドレス、ポート番号などに より判断
アプリケーションゲートウェイ 型
通信を中継するプロキシプログラ ムを使用する
55
2 2 . . 2 ファイアウォールとは 2 ファイアウォールとは
2 2 . . 3 パケットフィルタ 3 パケットフィルタ
TCP/IP では、データは「パケッ ト」を単位として送受信される
パケットには以下の情報がある
送信元の IP アドレス
送信元ポート番号
宛先の IP アドレス
宛先のポート番号
56
これらの情報を基に、パケットそ のものの通過を制御するのが
パケット・フィルタリング
シンプルで高速な処理
ルールの定義が煩雑
57
2 2 . . 3 パケットフィルタ 3 パケットフィルタ
SSH
サーバWeb
サーバFTP
サーバ(動作していない)
サーバ
パケット・
フィルタ
IP アドレス a.b.c.d からは許可
IP アドレス a.b.c.d 以外からは拒否
ポート 20 は拒否 ポート 80 は許可
2 2 . . 3 パケットフィルタ 3 パケットフィルタ
58
パケットフィルタ型ファイアウォー ルソフトウェアは、多数ある
ipfw UNIX 全般
IPFilter UNIX 全般
PF BSD
iptables Linux
ipchains Linux
59
2 2 . . 3 パケットフィルタ 3 パケットフィルタ
2 2 . . 3 パケットフィルタ 3 パケットフィルタ
iptables は、パケットが通過する経路 上に、5つの チェイン を設けている
【 INPUT 】
【 FORWARD 】
【 OUTPUT 】
【 PREROUTING 】
【 POSTROUTING 】
60
5つのチェインとパケットの流れ
61
ローカルプロセス
INPUT
OUTPUT
ルーティング(経路)の 決定
POSTROUTING FORWARD
入ってく るパケッ ト
出て行 くパケ ット
PREROUTING
2 2 . . 3 パケットフィルタ 3 パケットフィルタ
iptables は、このチェインを監視し て
『このパケットは通さない』
『 このパケットは通す 』 などの処理を行う
62
2 2 . . 3 パケットフィルタ 3 パケットフィルタ
注: その他、 NAT (後日 ) の
ための 機能もある
iptables コマンド
63
$ iptables -A chain 名 パラメータ
-j 処理方法
どのようなパケ ットが通過する
時に
どう処理するか どのチェイン
を
2 2 . . 3 パケットフィルタ 3 パケットフィルタ
( iptables コマンド例)
$ iptables -A INPUT -p tcp
--dport 80 -j ACCEPT
・ -A : ルールの追加
・ INPUT : 入力パケットが対 象
・ -p tcp : TCP プロトコル
・ --dport 80 : 80 番ポート( Web サ
ーバ) ・ -j ACCEPT: パケット受信の許可
642 2 . . 3 パケットフィルタ 3 パケットフィルタ
iptables コマンドによる設定は、再 起動により リセットされる
⇒ コマンドによりセーブしなければ ならない
$ invoke-rc.d iptables save filename
セーブする場所は、ディストリビュー ションにより異なる
( /etc/sysconfig/iptables 等)
652 2 . . 3 パケットフィルタ 3 パケットフィルタ
$ iptables-save > filename
2 2 . . 4 アプリケーションゲー 4 アプリケーションゲー トウェイ トウェイ
プロキシ (proxy) とは
「代理人」
内部ネットワークと外部(イン ターネット)との境界で、内部 のホスト/ソフトウェアの代わ りに、外部との接続を行うホス ト/ソフトウェア
66
アプリケーションゲートウェイ
プロキシを利用することにより、内 部ネットワークを外部から切り離す
外部との通信は、すべてプロキシが 仲立ちする
内部からはプロキシとだけ通信
プロキシが通信内容をチェック ⇒ 不正アクセス、侵入行為
67
2 2 . . 4 アプリケーションゲー 4 アプリケーションゲー
トウェイ トウェイ
プロキシは、プロトコルを理解し チェックする
例: URLチェック
ウィルスチェック 情報漏洩の検出
68
2 2 . . 4 アプリケーションゲー 4 アプリケーションゲー
トウェイ トウェイ
サービスのプロトコル毎に、個別 にゲートウェイプログラムを用意 する必要がある
煩雑
高度な機能を実現できる
69
2 2 . . 4 アプリケーションゲー 4 アプリケーションゲー
トウェイ トウェイ
Web サーバ htt p要求 要求を
中継 クライア ント
クライアントからは、プロキシサ ーバが Web サーバに見える
内部 外部
70
2 2 . . 4 アプリケーションゲー 4 アプリケーションゲー トウェイ トウェイ
プロキ シ
サーバ
2 2 . . 5 5 DMZ DMZ とファイアウォー とファイアウォー ル ル
DMZ
DeMilitarized Zone :非武装地帯
外部のネットワーク(インター ネット)と、内部ネットワークの 間に設けられた緩衝地帯
外部に公開するサーバを、 DMZ に置く (⇒外部からのアクセス を、この領域だけに限定する)
71
DMZ の構成例 (1)
DMZ 内部ネットワー
ク
FW FW
72
2 2 . . 5 5 DMZ DMZ とファイアウォー とファイアウォー ル ル
インターネッ ト
サーバ
DMZ の構成例 (2)
インターネッ ト
DMZ 内部ネットワー
ク
サーバ
FW
73
2 2 . . 5 5 DMZ DMZ とファイアウォー とファイアウォー
ル ル
セキュリティ設計上の注意
ファイアウォールが万能というわ けではない
各レベルでのセキュリティを併用 することにより、安全性が高まる
74
2 2 . . 5 5 DMZ DMZ とファイアウォー とファイアウォー
ル ル
【 【 課題 課題 4 4 】 】
telnet により、 Windows からログ インする
VMWARE+KNOPPIX に
は、 Windows とは別の独自 IP ア ドレスが自動的に割り振られている
「課題3」の inetd が動いていな いと、 telnet は動かない
( iptables の設定は、当面不要)
75
【 【 課題 課題 4 4 】 】
KNOPPIX 上では、
ifconfig コマンドにて、 IP アドレス を確認する
/etc/hosts.allow ファイルを編集し
、 Windows からの telnet を可能に
する ( root で作業しなければならない)
【 【 課題 課題 4 4 】 】
Windows にて、 TeraTerm を用いて KNOPPIX にログインする
ユーザ名は、「課題1」で作成した 自分名のユーザとする
ログイン画面をキャプチャ
し、 Word ファイルに貼り付ける
Word のファイル名を
report4.docx とし manaba のレ
ポート4に提出する
77【 【 課題 課題 4 4 】 】
注: TeraTerm
78
KNOPPIX の IP アド レス
telnet
を使う
【 【 課題 課題 4 4 】 】
ログインすると、こんな画面に なるはず
79
【 【 課題 課題 4 4 】 】
画面キャプチャは、
Fn + Alt + PrintScreen
(3つのキーを同時に押す)
Word のファイル上で、貼り付け
( Ctrl + V )
80
次回の予定 次回の予定
1 . セキュリティについて
セキュリティの必要性、クラッ カー の攻撃手段、など
2 . セキュリティ対策
どのようにして、セキュリティを 守るか
81