習うより慣れろ! iptablesテンプレート集

第2回 natテーブルを利用したLinuxルータの作成

iptablesのNAT機能を利用すれば、Linuxをルータにできる。さらに、NATの応用例として透過型プロキシを構築してみる。(編集部)

鶴長 鎮一
2005/5/17

 PCはネットワークインターフェイスの増設が容易なため、市販のブロードバンドルータの代わりにPC+Linuxをルータにするケースもあります。そこで、Linuxホストをルータとして使用する際に必要な設定を紹介します。ブロードバンドルータの重要な機能であるNATをLinuxで実現するのもiptablesの機能の1つです。

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

 NAT(Network Address Translation)は、パケット中のIPアドレスを書き換える技術です。ソース側を書き換える場合を「SNAT」、ディスティネーション側を書き換える場合を「DNAT」と呼びます。「1つのグローバルアドレスを複数のプライベートアドレスで同時に共有する」こともNATと呼ぶことがありますが、これはIPマスカレードまたはNAPT(Network Address Port Translation)のことです。これらの技術では、単なるIPアドレスの書き換えだけでなく、TCPやUDPのポート番号も変換してプライベートアドレスを同時に使えるようにしています。

 iptablesでNATを操作するには、「natテーブル」を使用します。「テーブル」はiptablesの重要な概念です。前回紹介したチェインは、フィルタルールを集めてモジュール化したものです。このチェインをさらにグループ化したのがテーブルです。テーブルの種類によって、使えるチェインも異なります。

 前回紹介したテンプレートでは、テーブルを指定していません。この場合(テーブル指定省略時)は「filterテーブル」が使用されています。このfilterテーブルで使用できるチェインがINPUT、OUTPUT、FORWARDです。natテーブルでは、POSTROUTING、PREROUTING、OUTPUTの3つのチェインが使えます。

図 filter+natテーブルの構造
  PREROUTINGチェイン
  ディスティネーションアドレスの書き換え/DNAT
  POSTROUTINGチェイン
  ソースアドレスの書き換え/SNAT
  OUTPUTチェイン
  ローカルで生成されたパケットのディスティネーションアドレスの書き換え/DNAT

 「Linuxで作るファイアウォール[NAT設定編]」も参照することで、ここで用いた「ディスティネーション/ソース」と、「内部ネットワーク(プライベートアドレス側)/外部ネットワーク(グローバルアドレス側)」の関係をより理解できるでしょう。

 テーブルには、filterやnatのほかにmangleがあります。これについては別の機会に説明します。

1/6

Index
習うより慣れろ! iptablesテンプレート集
 第2回 natテーブルを利用したLinuxルータの作成
Page 1
natテーブルによるNATの実現
  Page2 テンプレート6
IPマスカレードによるLinuxルータ
 テンプレート6の想定環境
 改造のヒント:メンテナンスホストが外部ネット側にある場合
  Page 3 テンプレート7
Windowsファイル/プリンタ共有パケットのブロック
 テンプレート7の想定環境
  Page 4 テンプレート8
透過型プロキシの実現(ルータと同一サーバ)
 テンプレート8の想定環境
 改造のヒント:REDIRECTを使う方法
  Page 5 テンプレート9
透過型プロキシの実現(ルータとサーバを分離)
 テンプレート9の想定環境
  Page 6 テンプレート10
外部から特定の内部サーバへのアクセスを許可
 テンプレート10の想定環境

連載 習うより慣れろ! iptablesテンプレート集


 Linux Squareフォーラム セキュリティ関連記事
連載:習うより慣れろ! iptablesテンプレート集(全4回)
初心者にとって、iptablesは難しい。そこで、学習の第1歩としてテンプレートを自分の環境に適応させることから始めよう
連載:ゼロから始めるLinuxセキュリティ(全11回)
奥が深いセキュリティ対策の世界をゼロから解説。ホストレベルのセキュリティからファイアウォール、IDSの構築、ログ管理方法まで、システム管理者必見
特集:WebDAV時代のセキュリティ対策[前編]
WebDAVのメソッドは便利な反面、セキュリティホールとなり得る。しかし、適切な対策を講じることでメソッドの危険性は取り除くことができる
特集:FreeS/WANによるIPSecの導入と運用[前編]
LinuxでIPSecを利用するには、「FreeS/WAN」というIPSecスタックを用いることになる。まず、これをインストールすることから始めよう
特集:Linux以外のIPSecスタックとの相互接続[前編]
別のOSや異なるIPSecスタックとの相互接続が可能なら、その用途は大幅に広がる。前編では、FreeBSDのKAMEと相互接続を試みる
特集:sshでセキュアネットワーク
サーバにリモートログインする場合は、暗号化して転送するsshを使おう。sshをサーバとクライアントにインストールすれば、インターネット上でも安全な通信が可能になる

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します

TechTargetジャパン

Linux Square フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ



- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH