SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
Linux女子部 iptables復習編
ver1.1 中井悦司
Twitter @enakai00
オープンクラウド・キャンパス
Linux女子部
iptables復習編
Open Cloud Campus
2
Linux女子部 iptables復習編
自己紹介
 中井悦司(なかいえつじ)
– Twitter @enakai00
 日々の仕事
– Senior Solution Architect and
Cloud Evangelist at Red Hat K.K.
企業システムでオープンソースの活用を希望される
お客様を全力でご支援させていただきます。
 昔とった杵柄
– 素粒子論の研究(超弦理論とか)
– 予備校講師(物理担当)
– インフラエンジニア(Unix/Linux専門)
「Linux独習書の新定番」
書きました!
読者の声より ――
「今はインターネット上に情報が溢れているけど、質の高い入門書が少なく 
 なっているのは不幸なことだと思う。そんな中、この本はすごくいい」
「平易な言葉でありながら、決して足りなくはない。慎重に選ばれています。
 脳みそに染みこんで来ます」
Open Cloud Campus
3
Linux女子部 iptables復習編
Contents
 iptablesの基礎
 コネクショントラッキング
 補足資料
Linux女子部 iptables復習編
iptablesの基礎
Open Cloud Campus
5
Linux女子部 iptables復習編
iptablesの機能
 iptablesの機能は、大きくは「パケットフィルタリング」と「NAT (Network Address
Translation)」に分かれます。
– パケットフィルタリングは、Linuxにファイアウォール機能を提供するもので、IPパケットの送信、
受信、転送のそれぞれについて、許可条件を設定します。
– NATは、Linuxサーバをルータとして使用する際に利用する機能で、パケットの転送時に、パケット
に含まれる送信元、もしくは宛先IPアドレスを変換します。
• 正確には、DNAT(宛先アドレス変換)、SNAT(送信元アドレス変換)、マスカレード(SNAT
の特別版)の3種類があります。
インターネット
192.168.100.10
プライベートネットワーク
192.168.100.0/24
192.168.100.1
グローバル
IPアドレス
XX.XX.XX.XX
インターネットからの
接続パケットをフィルタリング プライベートネットワークから
インターネットにマスカレード接続
ルータ用
Linuxサーバ
192.168.100.11
外部からの接続パケットを
フィルタリング
iptablesの利用例
Open Cloud Campus
6
Linux女子部 iptables復習編
iptablesの設定方法
 iptablesの有効化/無効化は、iptablesサービスの起動・停止で行います。
– # service iptables start : 設定ファイル「/etc/sysconfig/iptables」をアクティブ化します。
– # service iptables stop : アクティブな設定をすべて無効化します。
 iptablesの設定は、設定ファイルを編集して再アクティブ化する方法と、iptablesコマンド
でアクティブな設定を直接変更する方法があります。
– アクティブな設定を直接変更した場合は、別途、設定ファイルに内容を書き出しておかないと、再
起動後に変更が失われます。
iptablesコマンドで設定
アクティブな設定
設定ファイルに書き出し
# service iptables save
設定ファイルを再アクティブ化
# service iptables restart
/etc/sysconfig/iptables
設定ファイルを編集
iptablesの2種類の設定方法
Open Cloud Campus
7
Linux女子部 iptables復習編
iptablesにおける処理の流れ
 Linuxサーバを通過するパケットは、いくつかの「チェーン」を通過します。
– INPUTチェーン : 受信パケットが通過します。
– OUTPUTチェーン : 送信パケットが通過します。
– PREROUTING、FORWARD、POSTROUTINGチェーン : 転送パケットが通過します。
 通常の利用法では、下図のチェーンとテーブルを覚えておけば十分です。
– filterテーブル : パケットフィルタリングの処理を定義します。
– natテーブル : NATの処理を定義します。
ネットワーク
アプリケーション
プログラム
filterテーブルfilterテーブル
INPUTチェーンOUTPUTチェーン
ネットワーク#2
natテーブルnatテーブル
PREROUTINGチェーンPOSTROUTINGチェーン
ネットワーク#1
filterテーブル
FORWARDチェーン
DNAT処理SNAT/
マスカレード処理
受信パケット
送信パケット
転送パケット
Open Cloud Campus
8
Linux女子部 iptables復習編
パケットフィルタリングの設定例
 パケットフィルタリング設定の基本コマンドは次の通りです。
– 指定条件にマッチするパケットに対するターゲットの定義
• iptables -A <チェーン> <パケット条件> -j <ターゲット>
– デフォルトターゲットの定義
• iptables -P <チェーン> <ターゲット>
– -Aオプションで設定した順にパケット条件の評価が行われて、最初にマッチした条件に対するター
ゲットが実行されます。LOGアクション以外はそこで評価が終了します。
– どの条件にもマッチしなかった場合は、-Pオプションで指定したアクションが実行されます。
– 現在のアクティブな設定は次のコマンドで表示します。
• iptables [-t <テーブル>] [-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
受信パケットに対するフィルタリング設定手順の例
コネクショントラッキングの「パケットステータス」
によるフィルタリング(後述)
Open Cloud Campus
9
Linux女子部 iptables復習編
REJECTとDROPの違い
 REJECTの場合は、接続拒否を示す「ICMP unreachable」を返すのでクライアント側は即座
にエラーになります。DROPの場合、クライアント側は応答パケットを待ち続けて、最終的
にタイムアウトします。
– クライアントに対してサーバの存在そのものを隠したい場合は、DROPを使用します。
REJECT
HTTP接続パケット
ICMP unreachable
サーバー内部
DROP
HTTP接続パケット
サーバー内部
返事が無い?
接続失敗
Open Cloud Campus
10
Linux女子部 iptables復習編
NATの設定例 (1)
 NATの設定は、「-t nat」オプションでnatテーブルを指定します。SNAT/マスカレードと
DNATで使用するチェーンが異なります。
– 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/マスカレードの設定例
– 変換元と変換先のIPを1対1で指定して、SNAT変換を行います。
– プライベートネットワーク「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
Open Cloud Campus
11
Linux女子部 iptables復習編
NATの設定例 (2)
 DNATの設定例
– 前ページのSNAT変換表と同じ変換をDNATでも行います。
• SNATだけの場合、プライベートネットワークのサーバからインターネットへの接続はできます
が、インターネットからプライベートネットワークのサーバへの接続はできません。前ページの
SNATと合わせて、DNATを設定することで、プライベートネットワークとインターネットの双方
向通信が可能になります。
– インターネットからグローバルIPアドレス「XX.XX.XX.XX」にHTTPでアクセスすると、プライベー
トネットワークのサーバ「192.168.100.10」に転送して応答を返します。
• 宛先ポートがTCP80番のパケットだけを選択して、「192.168.100.10」のWebサーバに転送し
ています。
# 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
インターネット
192.168.100.10
プライベートネットワーク
192.168.100.0/24
192.168.100.1
グローバル
IPアドレス
XX.XX.XX.XX ルータ用
Linuxサーバ
Webサーバ
http://XX.XX.XX.XX
HTTPアクセスのみ転送
Open Cloud Campus
12
Linux女子部 iptables復習編
ユーザ定義チェーンの利用
 デフォルトで用意されたチェーンの他に任意の名前のチェーンを追加で定義することがで
きます。これを「ユーザ定義チェーン」と呼びます。
– -jオプションのターゲット名にユーザ定義チェーンを指定すると、そのパケットは該当のユーザ定
義チェーンに指定した処理が行われます。
• これは「サブルーチン」を呼び出すイメージになります。ユーザ定義チェーン内の評価にマッ
チしなかったパケットは、呼び出し元のチェーンに戻って評価を継続します。
# iptables -N SSH_OK
# iptables -A SSH_OK -p tcp -p tcp -m tcp --dport 22 -j ACCEPT
# iptables -A FORWARD -j SSH_OK
ネットワーク#2
natテーブルnatテーブル
PREROUTINGチェーンPOSTROUTINGチェーン
ネットワーク#1
filterテーブル
FORWARDチェーン
転送パケット
filterテーブル
ユーザ定義チェーン
– 次は、SSH接続を許可する条件を設定した
「SSH_OK」チェーンを定義して、FORWARD
チェーンから呼び出す例です。
Linux女子部 iptables復習編
コネクショントラッキング
Open Cloud Campus
14
Linux女子部 iptables復習編
コネクショントラッキングとは?
 iptablesは、コネクショントラッキング機能により、それぞれのパケットが属する「スト
リーム」を判別します。
– 「ストリーム」とは、クライアント・サーバ間の特定の通信に伴うパケットの流れを表します。
– 例:
• SSH接続における1つのTCPセッション
• DNSサーバによる名前解決時にやりとりする一連のUDPパケット
• pingコマンドにおける一連のecho request/echo replyの繰り返し
 認識されているストリームは、「/proc/net/nf_conntrack」から確認できます。
– 該当ストリームに属するパケットを受信しないと、タイムアウト値が減っていき、0になるとこの
ストリームの情報は削除されます。
# cat /proc/net/nf_conntrack
ipv4 2 icmp 1 23 src=192.168.122.1 dst=192.168.122.101 type=8 code=0 id=4652
src=192.168.122.101 dst=192.168.122.1 type=0 code=0 id=4652 mark=0
secctx=system_u:object_r:unlabeled_t:s0 zone=0 use=2
ipv4 2 tcp 6 431999 ESTABLISHED src=192.168.122.1 dst=192.168.122.101 sport=46866
dport=22 src=192.168.122.101 dst=192.168.122.1 sport=22 dport=46866 [ASSURED] mark=0
secctx=system_u:object_r:unlabeled_t:s0 zone=0 use=2
タイムアウト
送信(受信)側パケットの情報
受信(送信)側パケットの情報
Open Cloud Campus
15
Linux女子部 iptables復習編
パケットステータスによるフィルタリング
 コネクショントラッキングが各パケットが属するストリームを判別する際に、そのパケッ
トのステータスを割り当てます。
 iptablesの「--state」オプションでは、コネクショントラッキングで割り当てられたス
テータスによって、パケットをマッチングすることができます。
– 次は、既存のストリームに属するか、関係するパケットの受信を許可します。
• # iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
– この場合、サーバ側から送信したパケットの応答パケットは「ESTABLISHED」と認識されるので、
必ず受信が許可されます。
ステータス 説明
NEW 新しいストリームを開始するパケット
ESTABLISHED 既存のストリームに属するパケット
RELATED 既存のストリームに「関係する」パケット
INVALID 不正なパケット(存在しないストレージに対する応答パケットなど)
Open Cloud Campus
16
Linux女子部 iptables復習編
ヘルパーモジュールの利用
 「RELATED」に分類されるパケットは、コネクショントラッキングが独自のロジックで判
別します。
– 例えば、エラー通知用のICMPパケットは、エラー発生の原因となったストリームに「関係する」パ
ケットと分類されます。
 追加のヘルパーモジュール(カーネルモジュール)をロードすることで、「RELATED」に
分類するロジックを追加することができます。
– 例えば、「nf_conntrack_ftp」をロードすると、FTPにおけるデータセッションをコントロール
セッションに関連するものと分類します。
• 詳細は次ページを参照
– 「nf_conntrack_netbios_ns」をロードすると、NETBIOSのネームサービスによる名前解決の応答
パケットを最初の問い合わせパケットに関連するものと分類します。
• NETBIOSのネームサービスはブロードキャストで問い合わせするので、これがないと、応答パ
ケットがブロードキャストに紐付けられません。
– 使用するヘルパーモジュールは、「/etc/sysconfig/iptables-config」の
「IPTABLES_MODULES=」に指定します。
Open Cloud Campus
17
Linux女子部 iptables復習編
(参考)FTPのコントロールセッションとデータセッション
 FTPでは、「ls/cd」などのコマンド操作を行う「コントロールセッション」と「put/get」
などのデータ転送を行う「データセッション」について、別々のTCPセッションを使用しま
す。
– データセッションは宛先ポートがランダムに決定されるので、フィルタリングの設定が困難になり
ます。
– 「nf_conntrack_ftp」モジュールを使用すると、「RELATED」の条件でデータセッションのパケッ
トを許可することが可能になります。
コントロールセッション(宛先ポート21)
データセッション(宛先ポートランダム)
FTPクライアントFTPサーバ
コントロールセッション(宛先ポート21)
データセッション(宛先ポートランダム)
FTPクライアントFTPサーバ
アクティブモード
パッシブモード
Linux女子部 iptables復習編
補足資料
Open Cloud Campus
19
Linux女子部 iptables復習編
iptablesの全体像
 iptablesには、全体として図のチェーンとテーブルが存在します。
– 次は、あまり使用しない特殊なテーブルです。
• mangleテーブル:TOS/TTL/SECMARKなどのメタ情報でフィルタリングする際に使用します。
• rawテーブル:このテーブルで「NOTRACK」ターゲットが適用されたパケットは、コネクショ
ントラッキングの対象から外れます。
– 全てのチェーン/テーブルに対する設定内容をダンプ出力する際は、iptables-saveコマンドを使用
すると便利です。
(出典)プロのための Linuxシステム・ネットワーク管理技術 
    http://www.amazon.co.jp/dp/4774146757
Open Cloud Campus
20
Linux女子部 iptables復習編
リミットマッチオプションについて (1)
 リミットマッチオプションを使用すると、マッチング条件にパケットをマッチさせる回数
を制限することができます。
– LOGターゲットで情報を記録する際に、大量のログ出力が発生して問題になる場合があります。こ
のような時にログ出力を制限することができます。
– マッチした回数を記録するカウンタによってコントロールします。パケットがマッチすると、カウ
ンタが1づつ増加していき、指定した値に達すると、それ以上はマッチしなくなります。ただし、
一定時間ごとにカウンタの値が1づつ減少します。
– limitモジュールの拡張マッチング機能のため「-m limit」オプションを指定します。
  次の例で説明します。
• -m limit --limit 5/min --limit-burst 10
– カウンタの最大値が10「--limit-burst 10」で、1分間に5回(正確には12秒に1回)カウンタの値
が減少します「--limit 5/min」。その結果、条件にマッチするパケットが連続した場合、最初の10
個はすべてマッチして、その後は12秒に1個の割合でマッチします。
– 「--limit」オプションは、単位時間に何回カウンタを減少するかを指定します。「/sec」(秒)、
「/min」(分)、「/hour」(時間)、「/day」(日)が使用可能です。
Open Cloud Campus
21
Linux女子部 iptables復習編
リミットマッチオプションについて (2)
 LOGターゲット以外でもリミットマッチを使用することができます。
– 次の例では、10回以上連続するpingを受けると、その後は、1時間に6回だけ(正確には10分に1回
だけ)pingに応答します。
 各オプションのデフォルト値は「--limit 3/hour」および「--limit-burst 5」です。
– 「-m limit」のみを指定した場合は、それぞれのデフォルト値が適用されます。
# iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 6/hour --limit-burst 10 -j ACCEPT
# iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
Open Cloud Campus
22
Linux女子部 iptables復習編
SNAT/マスカレードの仕組み
 下図は、SNAT/マスカレードによる送信元IPアドレス変換の例です。
– プライベートネットワークのIPアドレス「192.168.100.10」のサーバからインターネットのIPアド
レス「YY.YY.YY.YY」のサーバにパケットが送信されます(①)。
– ルータ用Linuxは、送信元IPアドレスを自身のグローバルIP「XX.XX.XX.XX」に書き換えて、イン
ターネットにパケットを転送します(②)。
– インターネットから返送されたパケット(③)は、宛先IPアドレスを元の「192.168.100.10」に
逆変換して、プライベートネットワークのサーバに送り返します(④)。
YY.YY.YY.YY
インターネット
192.168.100.10
プライベートネットワーク
192.168.100.0/24
ルータ用
Linuxサーバ
192.168.100.10YY.YY.YY.YY
グローバルIPアドレス
XX.XX.XX.XX
①
XX.XX.XX.XXYY.YY.YY.YY②XX.XX.XX.XX YY.YY.YY.YY ③
192.168.100.10 YY.YY.YY.YY ④
宛先IPアドレス  送信元IPアドレス
宛先IPアドレス  送信元IPアドレス
変換逆変換
Open Cloud Campus
23
Linux女子部 iptables復習編
複数サーバのSNAT処理について
 複数サーバのプライベートIPアドレスを共通のグローバルIPに変換する際は、逆変換の際に
変換先のプライベートIPアドレスを正しく判別する必要があります。
 iptablesは、送信元IPアドレスと送信元ポート番号のペアを記憶しておき、返送パケットの
送信先ポート番号から、逆変換先のIPアドレスを決定します。
 SNAT対象のサーバごとに、個別のグローバルIPアドレスを割り当てて使用することも可能
です。
インターネット
192.168.100.10
プライベートネットワーク
192.168.100.0/24
192.168.100.1
グローバルIPアドレス
XX.XX.XX.XX ルータ用
Linuxサーバ
192.168.100.11 192.168.100.12
送信元IPアドレス 送信元ポート番号
変換後の
送信元ポート番号
192.168.100.10 3021 3021
192.168.100.11 4008 4008
192.168.100.12 3021 9000
SNAT記憶テーブルの例– 複数サーバが同じ送信元ポート番号を使った
場合、SNAT処理において、送信元ポート番号
も変換します。
– ただし、大量のサーバが同時にSNATを利用す
ると、変換先の送信元ポート番号が不足して、
SNAT処理ができなくなる場合があります。
Open Cloud Campus
24
Linux女子部 iptables復習編
DNATの仕組み
 下図は、DNATによる宛先IPアドレス変換の例です。
– インターネットのIPアドレス「YY.YY.YY.YY」のPCからルータ用LinuxサーバのグローバルIPアドレ
ス「XX.XX.XX.XX」にパケットが送信されます(①)。
– ルータ用Linuxは、宛先IPアドレスをプライベートネットワークのサーバのIPアドレス
「192.168.100.10」に書き換えて、パケットを転送します(②)。
– プライベートネットワークのサーバから返送されたパケット(③)は、送信元IPアドレスを
「XX.XX.XX.XX」に逆変換して、インターネットのPCに送り返します(④)。
インターネット
192.168.100.10
ルータ用
Linuxサーバ
192.168.100.10YY.YY.YY.YY
グローバルIPアドレス
XX.XX.XX.XX
③
XX.XX.XX.XXYY.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
Open Cloud Campus
25
Linux女子部 iptables復習編
参考資料
 「クラウド基盤構築」講義資料
– 第3回 IPネットワークと認証技術の基礎
– https://sites.google.com/site/cloudlecture/text
 iptablesの徹底理解には、下記の書籍が最適です。
Open Cloud Campus
26
Linux女子部 iptables復習編
QA
Linux女子部 iptables復習編
中井悦司
Twitter @enakai00
オープンクラウド・キャンパス
Linuxでネットワークの基礎を
学びましょう!

Contenu connexe

Tendances

ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりましたジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりましたYukiya Hayashi
 
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観Yamato Tanaka
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウトMasahiko Sawada
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線Motonori Shindo
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 VirtualTech Japan Inc.
 
OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27Kentaro Ebisawa
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーToru Makabe
 
OpenStack Neutronの機能概要 - OpenStack最新情報セミナー 2014年12月
OpenStack Neutronの機能概要 - OpenStack最新情報セミナー 2014年12月OpenStack Neutronの機能概要 - OpenStack最新情報セミナー 2014年12月
OpenStack Neutronの機能概要 - OpenStack最新情報セミナー 2014年12月VirtualTech Japan Inc.
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門Masahito Zembutsu
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門VirtualTech Japan Inc.
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動Takashi Takizawa
 
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会真乙 九龍
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理NTT DATA Technology & Innovation
 
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?takezoe
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門VirtualTech Japan Inc.
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能Kohei Tokunaga
 
AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較beyond Co., Ltd.
 
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~NTT Communications Technology Development
 
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Etsuji Nakai
 
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallZabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallAtsushi Tanaka
 

Tendances (20)

ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりましたジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
 
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
 
OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
OpenStack Neutronの機能概要 - OpenStack最新情報セミナー 2014年12月
OpenStack Neutronの機能概要 - OpenStack最新情報セミナー 2014年12月OpenStack Neutronの機能概要 - OpenStack最新情報セミナー 2014年12月
OpenStack Neutronの機能概要 - OpenStack最新情報セミナー 2014年12月
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動
 
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
 
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能
 
AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較
 
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
 
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
 
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallZabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
 

En vedette

Linux女子部 firewalld徹底入門!
Linux女子部 firewalld徹底入門!Linux女子部 firewalld徹底入門!
Linux女子部 firewalld徹底入門!Etsuji Nakai
 
RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門Etsuji Nakai
 
OpenStack: Inside Out
OpenStack: Inside OutOpenStack: Inside Out
OpenStack: Inside OutEtsuji Nakai
 
Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
DockerクイックツアーEtsuji Nakai
 
DevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかDevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかEtsuji Nakai
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineEtsuji Nakai
 
Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編Etsuji Nakai
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術Etsuji Nakai
 
Dive into .git 日本語版
Dive into .git 日本語版Dive into .git 日本語版
Dive into .git 日本語版nishio
 
2014.03.19 linux joshi_security_public
2014.03.19 linux joshi_security_public2014.03.19 linux joshi_security_public
2014.03.19 linux joshi_security_publicRyo Fujita
 
Try andstudy cloud
Try andstudy cloudTry andstudy cloud
Try andstudy cloudEtsuji Nakai
 
TUTLTを開催する真の理由
TUTLTを開催する真の理由TUTLTを開催する真の理由
TUTLTを開催する真の理由Kento Kawakami
 
CaitSith 新しいルールベースのカーネル内アクセス制御
CaitSith 新しいルールベースのカーネル内アクセス制御CaitSith 新しいルールベースのカーネル内アクセス制御
CaitSith 新しいルールベースのカーネル内アクセス制御Toshiharu Harada, Ph.D
 
AzureでopenSUSE Leap42.1が使えるよ!
AzureでopenSUSE Leap42.1が使えるよ!AzureでopenSUSE Leap42.1が使えるよ!
AzureでopenSUSE Leap42.1が使えるよ!Kento Kawakami
 
SDN界隈の用語・考え方をざっくりまとめます。
SDN界隈の用語・考え方をざっくりまとめます。SDN界隈の用語・考え方をざっくりまとめます。
SDN界隈の用語・考え方をざっくりまとめます。Etsuji Nakai
 
Your first dive into systemd!
Your first dive into systemd!Your first dive into systemd!
Your first dive into systemd!Etsuji Nakai
 
RDOで体験! OpenStackの基本機能
RDOで体験! OpenStackの基本機能RDOで体験! OpenStackの基本機能
RDOで体験! OpenStackの基本機能Etsuji Nakai
 
Haskell勉強会 14.1〜14.3 の説明資料
Haskell勉強会 14.1〜14.3 の説明資料Haskell勉強会 14.1〜14.3 の説明資料
Haskell勉強会 14.1〜14.3 の説明資料Etsuji Nakai
 

En vedette (20)

Linux女子部 firewalld徹底入門!
Linux女子部 firewalld徹底入門!Linux女子部 firewalld徹底入門!
Linux女子部 firewalld徹底入門!
 
RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門
 
OpenStack: Inside Out
OpenStack: Inside OutOpenStack: Inside Out
OpenStack: Inside Out
 
Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
Dockerクイックツアー
 
DevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかDevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきか
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container Engine
 
Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術
 
Dive into .git 日本語版
Dive into .git 日本語版Dive into .git 日本語版
Dive into .git 日本語版
 
2014.03.19 linux joshi_security_public
2014.03.19 linux joshi_security_public2014.03.19 linux joshi_security_public
2014.03.19 linux joshi_security_public
 
Try andstudy cloud
Try andstudy cloudTry andstudy cloud
Try andstudy cloud
 
TUTLTを開催する真の理由
TUTLTを開催する真の理由TUTLTを開催する真の理由
TUTLTを開催する真の理由
 
ケイゾク?
ケイゾク?ケイゾク?
ケイゾク?
 
CaitSith 新しいルールベースのカーネル内アクセス制御
CaitSith 新しいルールベースのカーネル内アクセス制御CaitSith 新しいルールベースのカーネル内アクセス制御
CaitSith 新しいルールベースのカーネル内アクセス制御
 
AzureでopenSUSE Leap42.1が使えるよ!
AzureでopenSUSE Leap42.1が使えるよ!AzureでopenSUSE Leap42.1が使えるよ!
AzureでopenSUSE Leap42.1が使えるよ!
 
SDN界隈の用語・考え方をざっくりまとめます。
SDN界隈の用語・考え方をざっくりまとめます。SDN界隈の用語・考え方をざっくりまとめます。
SDN界隈の用語・考え方をざっくりまとめます。
 
Install dev stack
Install dev stackInstall dev stack
Install dev stack
 
Your first dive into systemd!
Your first dive into systemd!Your first dive into systemd!
Your first dive into systemd!
 
RDOで体験! OpenStackの基本機能
RDOで体験! OpenStackの基本機能RDOで体験! OpenStackの基本機能
RDOで体験! OpenStackの基本機能
 
Haskell勉強会 14.1〜14.3 の説明資料
Haskell勉強会 14.1〜14.3 の説明資料Haskell勉強会 14.1〜14.3 の説明資料
Haskell勉強会 14.1〜14.3 の説明資料
 

Similaire à Linux女子部 iptables復習編

OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料Etsuji Nakai
 
クラウドオーケストレーション「OpenStack Heat」に迫る!
クラウドオーケストレーション「OpenStack Heat」に迫る!クラウドオーケストレーション「OpenStack Heat」に迫る!
クラウドオーケストレーション「OpenStack Heat」に迫る!Etsuji Nakai
 
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)Panda Yamaki
 
Lagopus performance
Lagopus performanceLagopus performance
Lagopus performanceMasaru Oki
 
OpenContrail Users Event at OpenStack Summit Paris 行ってきました
OpenContrail Users Event at OpenStack Summit Paris 行ってきましたOpenContrail Users Event at OpenStack Summit Paris 行ってきました
OpenContrail Users Event at OpenStack Summit Paris 行ってきましたTakashi Sogabe
 
コンテナのネットワークインターフェース その実装手法とその応用について
コンテナのネットワークインターフェース その実装手法とその応用についてコンテナのネットワークインターフェース その実装手法とその応用について
コンテナのネットワークインターフェース その実装手法とその応用についてTomofumi Hayashi
 
Docker on Mesos with OpenVNet
Docker on Mesos with OpenVNetDocker on Mesos with OpenVNet
Docker on Mesos with OpenVNetskipping classes
 
Scapyで作る・解析するパケット
Scapyで作る・解析するパケットScapyで作る・解析するパケット
Scapyで作る・解析するパケットTakaaki Hoyo
 
nftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linuxnftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in LinuxTomofumi Hayashi
 
DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発slankdev
 
Open flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitchOpen flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitchMasaru Oki
 
HTML5 技術を利用した授業や会議向けデスクトップ画面実時間配信システムとその管理システムの試作, 情報処理学会IOT研究会26
HTML5 技術を利用した授業や会議向けデスクトップ画面実時間配信システムとその管理システムの試作, 情報処理学会IOT研究会26HTML5 技術を利用した授業や会議向けデスクトップ画面実時間配信システムとその管理システムの試作, 情報処理学会IOT研究会26
HTML5 技術を利用した授業や会議向けデスクトップ画面実時間配信システムとその管理システムの試作, 情報処理学会IOT研究会26Takashi Yamanoue
 
Lagopus Router v19.07.1
Lagopus Router v19.07.1Lagopus Router v19.07.1
Lagopus Router v19.07.1Tomoya Hibi
 
NPStudy LT Lagopus Router v19.07
NPStudy LT Lagopus Router v19.07NPStudy LT Lagopus Router v19.07
NPStudy LT Lagopus Router v19.07Tomoya Hibi
 
ロードバランスへの長い道
ロードバランスへの長い道ロードバランスへの長い道
ロードバランスへの長い道Jun Kato
 
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~  - ...「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~  - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...VirtualTech Japan Inc.
 

Similaire à Linux女子部 iptables復習編 (20)

OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
OpenStackのQuantum(LinuxBridge Plugin)が実際どうやって仮想ネットワークを構成するのか説明する資料
 
クラウドオーケストレーション「OpenStack Heat」に迫る!
クラウドオーケストレーション「OpenStack Heat」に迫る!クラウドオーケストレーション「OpenStack Heat」に迫る!
クラウドオーケストレーション「OpenStack Heat」に迫る!
 
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
 
Lagopus performance
Lagopus performanceLagopus performance
Lagopus performance
 
OpenContrail Users Event at OpenStack Summit Paris 行ってきました
OpenContrail Users Event at OpenStack Summit Paris 行ってきましたOpenContrail Users Event at OpenStack Summit Paris 行ってきました
OpenContrail Users Event at OpenStack Summit Paris 行ってきました
 
計算機理論入門08
計算機理論入門08計算機理論入門08
計算機理論入門08
 
VIOPS06: OpenFlowによるネットワーク構築と実証事件
VIOPS06: OpenFlowによるネットワーク構築と実証事件VIOPS06: OpenFlowによるネットワーク構築と実証事件
VIOPS06: OpenFlowによるネットワーク構築と実証事件
 
コンテナのネットワークインターフェース その実装手法とその応用について
コンテナのネットワークインターフェース その実装手法とその応用についてコンテナのネットワークインターフェース その実装手法とその応用について
コンテナのネットワークインターフェース その実装手法とその応用について
 
Docker on Mesos with OpenVNet
Docker on Mesos with OpenVNetDocker on Mesos with OpenVNet
Docker on Mesos with OpenVNet
 
Reading NATS
Reading NATSReading NATS
Reading NATS
 
Scapyで作る・解析するパケット
Scapyで作る・解析するパケットScapyで作る・解析するパケット
Scapyで作る・解析するパケット
 
nftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linuxnftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linux
 
DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発
 
Open flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitchOpen flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitch
 
HTML5 技術を利用した授業や会議向けデスクトップ画面実時間配信システムとその管理システムの試作, 情報処理学会IOT研究会26
HTML5 技術を利用した授業や会議向けデスクトップ画面実時間配信システムとその管理システムの試作, 情報処理学会IOT研究会26HTML5 技術を利用した授業や会議向けデスクトップ画面実時間配信システムとその管理システムの試作, 情報処理学会IOT研究会26
HTML5 技術を利用した授業や会議向けデスクトップ画面実時間配信システムとその管理システムの試作, 情報処理学会IOT研究会26
 
20060520.tcp
20060520.tcp20060520.tcp
20060520.tcp
 
Lagopus Router v19.07.1
Lagopus Router v19.07.1Lagopus Router v19.07.1
Lagopus Router v19.07.1
 
NPStudy LT Lagopus Router v19.07
NPStudy LT Lagopus Router v19.07NPStudy LT Lagopus Router v19.07
NPStudy LT Lagopus Router v19.07
 
ロードバランスへの長い道
ロードバランスへの長い道ロードバランスへの長い道
ロードバランスへの長い道
 
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~  - ...「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~  - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
 

Plus de Etsuji Nakai

「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考えるEtsuji Nakai
 
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Etsuji Nakai
 
Introducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlowIntroducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlowEtsuji Nakai
 
Googleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービスGoogleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービスEtsuji Nakai
 
Spannerに関する技術メモ
Spannerに関する技術メモSpannerに関する技術メモ
Spannerに関する技術メモEtsuji Nakai
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsEtsuji Nakai
 
A Brief History of My English Learning
A Brief History of My English LearningA Brief History of My English Learning
A Brief History of My English LearningEtsuji Nakai
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎Etsuji Nakai
 
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門Etsuji Nakai
 
Lecture note on PRML 8.2
Lecture note on PRML 8.2Lecture note on PRML 8.2
Lecture note on PRML 8.2Etsuji Nakai
 
Machine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application DevelopersMachine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application DevelopersEtsuji Nakai
 
Your first TensorFlow programming with Jupyter
Your first TensorFlow programming with JupyterYour first TensorFlow programming with Jupyter
Your first TensorFlow programming with JupyterEtsuji Nakai
 
Deep Q-Network for beginners
Deep Q-Network for beginnersDeep Q-Network for beginners
Deep Q-Network for beginnersEtsuji Nakai
 
TensorFlowで学ぶDQN
TensorFlowで学ぶDQNTensorFlowで学ぶDQN
TensorFlowで学ぶDQNEtsuji Nakai
 
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜Etsuji Nakai
 
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShiftExploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShiftEtsuji Nakai
 
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)Etsuji Nakai
 

Plus de Etsuji Nakai (20)

PRML11.2-11.3
PRML11.2-11.3PRML11.2-11.3
PRML11.2-11.3
 
「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える
 
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
 
Introducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlowIntroducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlow
 
Googleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービスGoogleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービス
 
Spannerに関する技術メモ
Spannerに関する技術メモSpannerに関する技術メモ
Spannerに関する技術メモ
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
 
A Brief History of My English Learning
A Brief History of My English LearningA Brief History of My English Learning
A Brief History of My English Learning
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
 
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門
 
Lecture note on PRML 8.2
Lecture note on PRML 8.2Lecture note on PRML 8.2
Lecture note on PRML 8.2
 
Machine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application DevelopersMachine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application Developers
 
Your first TensorFlow programming with Jupyter
Your first TensorFlow programming with JupyterYour first TensorFlow programming with Jupyter
Your first TensorFlow programming with Jupyter
 
Deep Q-Network for beginners
Deep Q-Network for beginnersDeep Q-Network for beginners
Deep Q-Network for beginners
 
Life with jupyter
Life with jupyterLife with jupyter
Life with jupyter
 
TensorFlowで学ぶDQN
TensorFlowで学ぶDQNTensorFlowで学ぶDQN
TensorFlowで学ぶDQN
 
PRML7.2
PRML7.2PRML7.2
PRML7.2
 
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
 
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShiftExploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
 
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)
 

Dernier

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Dernier (8)

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

Linux女子部 iptables復習編

  • 1. Linux女子部 iptables復習編 ver1.1 中井悦司 Twitter @enakai00 オープンクラウド・キャンパス Linux女子部 iptables復習編
  • 2. Open Cloud Campus 2 Linux女子部 iptables復習編 自己紹介  中井悦司(なかいえつじ) – Twitter @enakai00  日々の仕事 – Senior Solution Architect and Cloud Evangelist at Red Hat K.K. 企業システムでオープンソースの活用を希望される お客様を全力でご支援させていただきます。  昔とった杵柄 – 素粒子論の研究(超弦理論とか) – 予備校講師(物理担当) – インフラエンジニア(Unix/Linux専門) 「Linux独習書の新定番」 書きました! 読者の声より ―― 「今はインターネット上に情報が溢れているけど、質の高い入門書が少なく   なっているのは不幸なことだと思う。そんな中、この本はすごくいい」 「平易な言葉でありながら、決して足りなくはない。慎重に選ばれています。  脳みそに染みこんで来ます」
  • 3. Open Cloud Campus 3 Linux女子部 iptables復習編 Contents  iptablesの基礎  コネクショントラッキング  補足資料
  • 5. Open Cloud Campus 5 Linux女子部 iptables復習編 iptablesの機能  iptablesの機能は、大きくは「パケットフィルタリング」と「NAT (Network Address Translation)」に分かれます。 – パケットフィルタリングは、Linuxにファイアウォール機能を提供するもので、IPパケットの送信、 受信、転送のそれぞれについて、許可条件を設定します。 – NATは、Linuxサーバをルータとして使用する際に利用する機能で、パケットの転送時に、パケット に含まれる送信元、もしくは宛先IPアドレスを変換します。 • 正確には、DNAT(宛先アドレス変換)、SNAT(送信元アドレス変換)、マスカレード(SNAT の特別版)の3種類があります。 インターネット 192.168.100.10 プライベートネットワーク 192.168.100.0/24 192.168.100.1 グローバル IPアドレス XX.XX.XX.XX インターネットからの 接続パケットをフィルタリング プライベートネットワークから インターネットにマスカレード接続 ルータ用 Linuxサーバ 192.168.100.11 外部からの接続パケットを フィルタリング iptablesの利用例
  • 6. Open Cloud Campus 6 Linux女子部 iptables復習編 iptablesの設定方法  iptablesの有効化/無効化は、iptablesサービスの起動・停止で行います。 – # service iptables start : 設定ファイル「/etc/sysconfig/iptables」をアクティブ化します。 – # service iptables stop : アクティブな設定をすべて無効化します。  iptablesの設定は、設定ファイルを編集して再アクティブ化する方法と、iptablesコマンド でアクティブな設定を直接変更する方法があります。 – アクティブな設定を直接変更した場合は、別途、設定ファイルに内容を書き出しておかないと、再 起動後に変更が失われます。 iptablesコマンドで設定 アクティブな設定 設定ファイルに書き出し # service iptables save 設定ファイルを再アクティブ化 # service iptables restart /etc/sysconfig/iptables 設定ファイルを編集 iptablesの2種類の設定方法
  • 7. Open Cloud Campus 7 Linux女子部 iptables復習編 iptablesにおける処理の流れ  Linuxサーバを通過するパケットは、いくつかの「チェーン」を通過します。 – INPUTチェーン : 受信パケットが通過します。 – OUTPUTチェーン : 送信パケットが通過します。 – PREROUTING、FORWARD、POSTROUTINGチェーン : 転送パケットが通過します。  通常の利用法では、下図のチェーンとテーブルを覚えておけば十分です。 – filterテーブル : パケットフィルタリングの処理を定義します。 – natテーブル : NATの処理を定義します。 ネットワーク アプリケーション プログラム filterテーブルfilterテーブル INPUTチェーンOUTPUTチェーン ネットワーク#2 natテーブルnatテーブル PREROUTINGチェーンPOSTROUTINGチェーン ネットワーク#1 filterテーブル FORWARDチェーン DNAT処理SNAT/ マスカレード処理 受信パケット 送信パケット 転送パケット
  • 8. Open Cloud Campus 8 Linux女子部 iptables復習編 パケットフィルタリングの設定例  パケットフィルタリング設定の基本コマンドは次の通りです。 – 指定条件にマッチするパケットに対するターゲットの定義 • iptables -A <チェーン> <パケット条件> -j <ターゲット> – デフォルトターゲットの定義 • iptables -P <チェーン> <ターゲット> – -Aオプションで設定した順にパケット条件の評価が行われて、最初にマッチした条件に対するター ゲットが実行されます。LOGアクション以外はそこで評価が終了します。 – どの条件にもマッチしなかった場合は、-Pオプションで指定したアクションが実行されます。 – 現在のアクティブな設定は次のコマンドで表示します。 • iptables [-t <テーブル>] [-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 受信パケットに対するフィルタリング設定手順の例 コネクショントラッキングの「パケットステータス」 によるフィルタリング(後述)
  • 9. Open Cloud Campus 9 Linux女子部 iptables復習編 REJECTとDROPの違い  REJECTの場合は、接続拒否を示す「ICMP unreachable」を返すのでクライアント側は即座 にエラーになります。DROPの場合、クライアント側は応答パケットを待ち続けて、最終的 にタイムアウトします。 – クライアントに対してサーバの存在そのものを隠したい場合は、DROPを使用します。 REJECT HTTP接続パケット ICMP unreachable サーバー内部 DROP HTTP接続パケット サーバー内部 返事が無い? 接続失敗
  • 10. Open Cloud Campus 10 Linux女子部 iptables復習編 NATの設定例 (1)  NATの設定は、「-t nat」オプションでnatテーブルを指定します。SNAT/マスカレードと DNATで使用するチェーンが異なります。 – 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/マスカレードの設定例 – 変換元と変換先のIPを1対1で指定して、SNAT変換を行います。 – プライベートネットワーク「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
  • 11. Open Cloud Campus 11 Linux女子部 iptables復習編 NATの設定例 (2)  DNATの設定例 – 前ページのSNAT変換表と同じ変換をDNATでも行います。 • SNATだけの場合、プライベートネットワークのサーバからインターネットへの接続はできます が、インターネットからプライベートネットワークのサーバへの接続はできません。前ページの SNATと合わせて、DNATを設定することで、プライベートネットワークとインターネットの双方 向通信が可能になります。 – インターネットからグローバルIPアドレス「XX.XX.XX.XX」にHTTPでアクセスすると、プライベー トネットワークのサーバ「192.168.100.10」に転送して応答を返します。 • 宛先ポートがTCP80番のパケットだけを選択して、「192.168.100.10」のWebサーバに転送し ています。 # 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 インターネット 192.168.100.10 プライベートネットワーク 192.168.100.0/24 192.168.100.1 グローバル IPアドレス XX.XX.XX.XX ルータ用 Linuxサーバ Webサーバ http://XX.XX.XX.XX HTTPアクセスのみ転送
  • 12. Open Cloud Campus 12 Linux女子部 iptables復習編 ユーザ定義チェーンの利用  デフォルトで用意されたチェーンの他に任意の名前のチェーンを追加で定義することがで きます。これを「ユーザ定義チェーン」と呼びます。 – -jオプションのターゲット名にユーザ定義チェーンを指定すると、そのパケットは該当のユーザ定 義チェーンに指定した処理が行われます。 • これは「サブルーチン」を呼び出すイメージになります。ユーザ定義チェーン内の評価にマッ チしなかったパケットは、呼び出し元のチェーンに戻って評価を継続します。 # iptables -N SSH_OK # iptables -A SSH_OK -p tcp -p tcp -m tcp --dport 22 -j ACCEPT # iptables -A FORWARD -j SSH_OK ネットワーク#2 natテーブルnatテーブル PREROUTINGチェーンPOSTROUTINGチェーン ネットワーク#1 filterテーブル FORWARDチェーン 転送パケット filterテーブル ユーザ定義チェーン – 次は、SSH接続を許可する条件を設定した 「SSH_OK」チェーンを定義して、FORWARD チェーンから呼び出す例です。
  • 14. Open Cloud Campus 14 Linux女子部 iptables復習編 コネクショントラッキングとは?  iptablesは、コネクショントラッキング機能により、それぞれのパケットが属する「スト リーム」を判別します。 – 「ストリーム」とは、クライアント・サーバ間の特定の通信に伴うパケットの流れを表します。 – 例: • SSH接続における1つのTCPセッション • DNSサーバによる名前解決時にやりとりする一連のUDPパケット • pingコマンドにおける一連のecho request/echo replyの繰り返し  認識されているストリームは、「/proc/net/nf_conntrack」から確認できます。 – 該当ストリームに属するパケットを受信しないと、タイムアウト値が減っていき、0になるとこの ストリームの情報は削除されます。 # cat /proc/net/nf_conntrack ipv4 2 icmp 1 23 src=192.168.122.1 dst=192.168.122.101 type=8 code=0 id=4652 src=192.168.122.101 dst=192.168.122.1 type=0 code=0 id=4652 mark=0 secctx=system_u:object_r:unlabeled_t:s0 zone=0 use=2 ipv4 2 tcp 6 431999 ESTABLISHED src=192.168.122.1 dst=192.168.122.101 sport=46866 dport=22 src=192.168.122.101 dst=192.168.122.1 sport=22 dport=46866 [ASSURED] mark=0 secctx=system_u:object_r:unlabeled_t:s0 zone=0 use=2 タイムアウト 送信(受信)側パケットの情報 受信(送信)側パケットの情報
  • 15. Open Cloud Campus 15 Linux女子部 iptables復習編 パケットステータスによるフィルタリング  コネクショントラッキングが各パケットが属するストリームを判別する際に、そのパケッ トのステータスを割り当てます。  iptablesの「--state」オプションでは、コネクショントラッキングで割り当てられたス テータスによって、パケットをマッチングすることができます。 – 次は、既存のストリームに属するか、関係するパケットの受信を許可します。 • # iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT – この場合、サーバ側から送信したパケットの応答パケットは「ESTABLISHED」と認識されるので、 必ず受信が許可されます。 ステータス 説明 NEW 新しいストリームを開始するパケット ESTABLISHED 既存のストリームに属するパケット RELATED 既存のストリームに「関係する」パケット INVALID 不正なパケット(存在しないストレージに対する応答パケットなど)
  • 16. Open Cloud Campus 16 Linux女子部 iptables復習編 ヘルパーモジュールの利用  「RELATED」に分類されるパケットは、コネクショントラッキングが独自のロジックで判 別します。 – 例えば、エラー通知用のICMPパケットは、エラー発生の原因となったストリームに「関係する」パ ケットと分類されます。  追加のヘルパーモジュール(カーネルモジュール)をロードすることで、「RELATED」に 分類するロジックを追加することができます。 – 例えば、「nf_conntrack_ftp」をロードすると、FTPにおけるデータセッションをコントロール セッションに関連するものと分類します。 • 詳細は次ページを参照 – 「nf_conntrack_netbios_ns」をロードすると、NETBIOSのネームサービスによる名前解決の応答 パケットを最初の問い合わせパケットに関連するものと分類します。 • NETBIOSのネームサービスはブロードキャストで問い合わせするので、これがないと、応答パ ケットがブロードキャストに紐付けられません。 – 使用するヘルパーモジュールは、「/etc/sysconfig/iptables-config」の 「IPTABLES_MODULES=」に指定します。
  • 17. Open Cloud Campus 17 Linux女子部 iptables復習編 (参考)FTPのコントロールセッションとデータセッション  FTPでは、「ls/cd」などのコマンド操作を行う「コントロールセッション」と「put/get」 などのデータ転送を行う「データセッション」について、別々のTCPセッションを使用しま す。 – データセッションは宛先ポートがランダムに決定されるので、フィルタリングの設定が困難になり ます。 – 「nf_conntrack_ftp」モジュールを使用すると、「RELATED」の条件でデータセッションのパケッ トを許可することが可能になります。 コントロールセッション(宛先ポート21) データセッション(宛先ポートランダム) FTPクライアントFTPサーバ コントロールセッション(宛先ポート21) データセッション(宛先ポートランダム) FTPクライアントFTPサーバ アクティブモード パッシブモード
  • 19. Open Cloud Campus 19 Linux女子部 iptables復習編 iptablesの全体像  iptablesには、全体として図のチェーンとテーブルが存在します。 – 次は、あまり使用しない特殊なテーブルです。 • mangleテーブル:TOS/TTL/SECMARKなどのメタ情報でフィルタリングする際に使用します。 • rawテーブル:このテーブルで「NOTRACK」ターゲットが適用されたパケットは、コネクショ ントラッキングの対象から外れます。 – 全てのチェーン/テーブルに対する設定内容をダンプ出力する際は、iptables-saveコマンドを使用 すると便利です。 (出典)プロのための Linuxシステム・ネットワーク管理技術      http://www.amazon.co.jp/dp/4774146757
  • 20. Open Cloud Campus 20 Linux女子部 iptables復習編 リミットマッチオプションについて (1)  リミットマッチオプションを使用すると、マッチング条件にパケットをマッチさせる回数 を制限することができます。 – LOGターゲットで情報を記録する際に、大量のログ出力が発生して問題になる場合があります。こ のような時にログ出力を制限することができます。 – マッチした回数を記録するカウンタによってコントロールします。パケットがマッチすると、カウ ンタが1づつ増加していき、指定した値に達すると、それ以上はマッチしなくなります。ただし、 一定時間ごとにカウンタの値が1づつ減少します。 – limitモジュールの拡張マッチング機能のため「-m limit」オプションを指定します。   次の例で説明します。 • -m limit --limit 5/min --limit-burst 10 – カウンタの最大値が10「--limit-burst 10」で、1分間に5回(正確には12秒に1回)カウンタの値 が減少します「--limit 5/min」。その結果、条件にマッチするパケットが連続した場合、最初の10 個はすべてマッチして、その後は12秒に1個の割合でマッチします。 – 「--limit」オプションは、単位時間に何回カウンタを減少するかを指定します。「/sec」(秒)、 「/min」(分)、「/hour」(時間)、「/day」(日)が使用可能です。
  • 21. Open Cloud Campus 21 Linux女子部 iptables復習編 リミットマッチオプションについて (2)  LOGターゲット以外でもリミットマッチを使用することができます。 – 次の例では、10回以上連続するpingを受けると、その後は、1時間に6回だけ(正確には10分に1回 だけ)pingに応答します。  各オプションのデフォルト値は「--limit 3/hour」および「--limit-burst 5」です。 – 「-m limit」のみを指定した場合は、それぞれのデフォルト値が適用されます。 # iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 6/hour --limit-burst 10 -j ACCEPT # iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
  • 22. Open Cloud Campus 22 Linux女子部 iptables復習編 SNAT/マスカレードの仕組み  下図は、SNAT/マスカレードによる送信元IPアドレス変換の例です。 – プライベートネットワークのIPアドレス「192.168.100.10」のサーバからインターネットのIPアド レス「YY.YY.YY.YY」のサーバにパケットが送信されます(①)。 – ルータ用Linuxは、送信元IPアドレスを自身のグローバルIP「XX.XX.XX.XX」に書き換えて、イン ターネットにパケットを転送します(②)。 – インターネットから返送されたパケット(③)は、宛先IPアドレスを元の「192.168.100.10」に 逆変換して、プライベートネットワークのサーバに送り返します(④)。 YY.YY.YY.YY インターネット 192.168.100.10 プライベートネットワーク 192.168.100.0/24 ルータ用 Linuxサーバ 192.168.100.10YY.YY.YY.YY グローバルIPアドレス XX.XX.XX.XX ① XX.XX.XX.XXYY.YY.YY.YY②XX.XX.XX.XX YY.YY.YY.YY ③ 192.168.100.10 YY.YY.YY.YY ④ 宛先IPアドレス  送信元IPアドレス 宛先IPアドレス  送信元IPアドレス 変換逆変換
  • 23. Open Cloud Campus 23 Linux女子部 iptables復習編 複数サーバのSNAT処理について  複数サーバのプライベートIPアドレスを共通のグローバルIPに変換する際は、逆変換の際に 変換先のプライベートIPアドレスを正しく判別する必要があります。  iptablesは、送信元IPアドレスと送信元ポート番号のペアを記憶しておき、返送パケットの 送信先ポート番号から、逆変換先のIPアドレスを決定します。  SNAT対象のサーバごとに、個別のグローバルIPアドレスを割り当てて使用することも可能 です。 インターネット 192.168.100.10 プライベートネットワーク 192.168.100.0/24 192.168.100.1 グローバルIPアドレス XX.XX.XX.XX ルータ用 Linuxサーバ 192.168.100.11 192.168.100.12 送信元IPアドレス 送信元ポート番号 変換後の 送信元ポート番号 192.168.100.10 3021 3021 192.168.100.11 4008 4008 192.168.100.12 3021 9000 SNAT記憶テーブルの例– 複数サーバが同じ送信元ポート番号を使った 場合、SNAT処理において、送信元ポート番号 も変換します。 – ただし、大量のサーバが同時にSNATを利用す ると、変換先の送信元ポート番号が不足して、 SNAT処理ができなくなる場合があります。
  • 24. Open Cloud Campus 24 Linux女子部 iptables復習編 DNATの仕組み  下図は、DNATによる宛先IPアドレス変換の例です。 – インターネットのIPアドレス「YY.YY.YY.YY」のPCからルータ用LinuxサーバのグローバルIPアドレ ス「XX.XX.XX.XX」にパケットが送信されます(①)。 – ルータ用Linuxは、宛先IPアドレスをプライベートネットワークのサーバのIPアドレス 「192.168.100.10」に書き換えて、パケットを転送します(②)。 – プライベートネットワークのサーバから返送されたパケット(③)は、送信元IPアドレスを 「XX.XX.XX.XX」に逆変換して、インターネットのPCに送り返します(④)。 インターネット 192.168.100.10 ルータ用 Linuxサーバ 192.168.100.10YY.YY.YY.YY グローバルIPアドレス XX.XX.XX.XX ③ XX.XX.XX.XXYY.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
  • 25. Open Cloud Campus 25 Linux女子部 iptables復習編 参考資料  「クラウド基盤構築」講義資料 – 第3回 IPネットワークと認証技術の基礎 – https://sites.google.com/site/cloudlecture/text  iptablesの徹底理解には、下記の書籍が最適です。
  • 26. Open Cloud Campus 26 Linux女子部 iptables復習編 QA