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