natテーブルを利用したLinuxルータの作成iptablesテンプレート集 改訂版(3)(1/3 ページ)

この連載では、初心者にとってハードルの高いiptablesの設定を、テンプレートを用いながら紹介していきます。「習うより慣れよ!」の精神でまず試してみてはいかがでしょう。(編集部)

» 2010年02月09日 00時00分 公開
[鶴長鎮一@IT]

はじめに

 今回は、iptablesのnatテーブル関連記事)を使ったNATおよびNAPT機能を解説します。こうした機能を使えばパケットのIPアドレス情報を書き換えることができます。つまりiptablesを駆使すれば、市販されているブロードバンドルータと同等、またはそれ以上のルータを作り上げることができるのです。

関連リンク

→Linuxで作るファイアウォール[パケットフィルタリング設定編]
http://www.atmarkit.co.jp/flinux/rensai/security05/security05a.html

→連載記事 「習うより慣れろ! iptablesテンプレート集」
http://www.atmarkit.co.jp/flinux/index/indexfiles/iptablesindex.html

→連載記事 「習うより慣れろ! iptablesテンプレート集 改訂版」
http://www.atmarkit.co.jp/flinux/index/indexfiles/newiptablesindex.html


natテーブルによるNATの実現

 NAT(Network Address Translation)は、パケット中のIPアドレスを書き換える技術です。ソース側を書き換える場合を「SNAT」、ディスティネーション側を書き換える場合を「DNAT」と呼びます。

 なお「1つのグローバルアドレスを複数のプライベートアドレスで同時に共有する」こともNATと呼ぶことがありますが、これは正確には、IPマスカレードまたはNAPT(Network Address Port Translation)のことを指しています。これらの技術では、単なるIPアドレスの書き換えだけでなく、TCPやUDPのポート番号も変換してプライベートアドレスを同時に使えるようにしています。

 iptablesは、目的に応じてテーブルを切り替えるようになっています。前2回は「filterテーブル」を使ってパケットフィルタリングを実施しました。これに対しNATやNAPTを実施するには「natテーブル」を使用します。

 前回までに紹介したテンプレートでは、iptablesで取り立ててテーブルを指定することはしませんでした。テーブル指定を省略すると「filterテーブル」がデフォルトで使用されます。

 filterテーブルでは、どのタイミングで処理を施すかを指定するために、INPUT/OUTPUT/FORWARDといったチェインを使いました。natテーブルでは、POSTROUTING/PREROUTING/OUTPUTという3つのチェインを使います。

filter+natテーブルの構造 図1 filter+natテーブルの構造

POSTROUTINGチェイン
   ソースアドレスの書き換え/SNAT(今回のテンプレートで使用)

PREROUTINGチェイン
   ディスティネーションアドレスの書き換え/DNAT(次回のテンプレートで使用)

OUTPUTチェイン
   ローカルで生成されたパケットのディスティネーションアドレスの書き換え/DNAT

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。