rurihabachi
Last update: 2013/11/25  
    仮 想 マ シ ン で Fedora サ ー バ       ◇◇◇  お金をかけずに簡単簡潔  ◇◇◇  サーバ構築公開手順 覚書き  ◇◇◇
 
 
サーバ構築メニュー  
     1. はじめに
     2. 構築前の準備
     3. サーバの役割り
  » 4. サーバの計画
  » 5. 仮想マシンの準備
  » 6. Fedoraの準備
  » 7. サーバの基本設定
  « 8. ファイアウォール
       iptablesとは
       事前準備とルータ
       iptablesの設定例
  » 9. ウェブサーバ
  » 10. Apache Wicket
  » 11. メールサーバ
  » 12. セキュリティ
     13. サーバの公開


  サーバ構築Top  > 8.ファイアウォールサーバの構築  > (1)iptablesとは
    8. ファイアウォールサーバの構築
本章では、iptables(ファイアウォール機能)の基本構文や具体的な設定方法についてまとめています。


    (1) iptablesとは

Linuxでは、ファイアウォール用のツールとしてiptablesというソフトウェアを使用します。

iptablesはデフォルトで各Linuxマシンにインストールされていて、特に設定をしなくても自動で起動していますが、適切な設定を行わないかぎり十分なファイアウォール機能を動作させることはできません。 この章で行う設定はサーバを安全に公開するためには欠かせないものとなります。

本章では主にファイアウォールサーバ上で行う設定について順を追って見ていきますが、実際にはファイアウォールサーバだけでなく、他のサーバ上でも同様にiptablesを設定する必要があります。 各サーバごとの具体的なiptables設定例は (3) iptablesの設定例 にあります。

 ◇     ◇     ◇

iptablesは、マシンに出入りする通信(パケット)をチェックして、入出を制御したり、必要に応じて宛先を書き換えたりするツールです。 この機能を使用することによって、次のようなことが可能になります。

  -  許可されていないアクセスを拒否する
  -  アクセスのログをとっておく
  -  他のマシンあての通信を適切な宛先に転送する

iptablesは、どのようなアクセスを許可してどのようなアクセスを拒否するか、またはどのような通信内容をどのマシンに転送するか、といった判断を、あらかじめ登録されたルールに従って処理します。

iptablesはルールを登録するためのテーブルを3つ持っていて、下記のように用途を使い分けています。

  テーブル     保存されるルールの内容
  filter   どのようなパケットの入出・転送を許可または拒否するか(フィルタリングルール)
  nat   パケットを転送する際のルール(アドレス変換)
  mangle   パケットの内容の書き換えに関するルール

上の3つのテーブルのうち、本章の設定で使用するのはfilterテーブル、natテーブルの2つです。 mangleテーブルは使用しません。

また、それぞれのテーブルは、どのタイミングでルールを適用するか、という観点から、いくつかの種類(チェイン)に分けてルールを保存しています。 デフォルトで作成されているチェインは以下のようなものになります。

filterテーブルの場合:
  チェイン     ルールが摘要されるタイミング
  INPUT   自マシン宛のパケットを受信するタイミング
  OUTPUT   自マシンからパケットが送信されるタイミング
  FORWARD   パケットが転送されるタイミング

natテーブルの場合:
  チェイン     ルールが摘要されるタイミング
  PREROUTING   パケットが自マシンに入ってきたタイミング(受信・転送処理前)
  OUTPUT   自マシンからパケットが送信されるタイミング
  POSTROUTING   パケットが自マシンから出ていくタイミング(送信・転送処理後)

なお、チェインは自分で定義することも可能です。

上記のテーブル・チェインごとにルールを登録していく際の手順は、大まかに次の流れになります。

[1] 既存のルールを削除します。

[2] filterテーブルに関して、各チェインごとにデフォルトのポリシーを設定します。
    ・・・例えば、基本的に受信(INPUT)は拒否、送信(OUTPUT)は許可する、など。

[3] 必要があればユーザ定義のチェインを作成します。
    ・・・例えば、何かしらのパケットが拒否されるタイミングでログを残す、など。

[4] filterテーブルへ、デフォルトのポリシーに当てはまらないルールを登録していきます。
    ・・・チェインごとに複数登録できます。複数のルールがある場合は登録順に摘要されます。

[5] natテーブルへ、転送時のルールを登録します。
    ・・・例えば、あて先ポート番号が80番宛のパケットはウェブサーバへ転送する、など。

実際には、上記の手順で登録するルール等ををひとつのスクリプトファイルにあらかじめ書き込んでおいて、一気に登録することになります。

具体的なルールの書き方については (3) iptablesの設定例 に詳しく載せていますが、その前にここでルールの構文や基本的なコマンドについて確認しておきましょう。

まず、iptables自体の起動・停止に関わるコマンドですが、以下のようになります。

  サービスの開始   [root@testserver ~]# service iptables start
  サービスの再起動   [root@testserver ~]# service iptables restart
  サービスの停止   [root@testserver ~]# service iptables stop
  登録したルール等の保存   [root@testserver ~]# service iptables save
  登録したルール等の確認   [root@testserver ~]# service iptables status

特に重要なのは、ルールを登録したあとに必ず保存 "service iptables save" をして、その後サービスを再起動 "service iptables restart" することです。 これを忘れるとファイアウォールが正しく機能しません。

次に、iptablesの設定に関わるコマンドです。 このコマンドは基本的に"iptables"から始まり、その後に様々なコマンドやオプションを付加します。 基本構文は下のようになります。

[root@testserver ~]# iptables [-t テーブル] -A [チェイン] [条件] [-j ターゲット]

ここで、各オプションは、

[-t テーブル]のセクション:
オプション  内容  指定例
 -t  設定を適用するテーブルを指定します。
 省略した場合はfilterテーブルが対象になります。
 -t nat

-A [チェイン]のセクション:
 コマンド  内容  指定例
 -P  チェインのデフォルトポリシーを指定します。
 チェイン、ポリシーの順で設定します。
 ポリシーには、ACCEPT(許可)またはDROP(拒否)を指定
 します。
 -P INPUT DROP
 -A  設定を摘要するチェインを指定します。
 ここで指定したチェインにルールが追加されます。
 -A OUTPUT
 -I  設定を摘要するチェインとルールの挿入位置を指定します。
 指定した行番号の位置にルールが追加されます。
 -I INPUT 1
 -N  ユーザ定義のチェインを作成します。
 任意のチェイン名を指定します。
 -N XXXXX
 -L  指定したチェインの設定を表示します。
 チェインを省略した場合は全ての設定を表示します。
 -L FORWARD
 -F  指定したチェインに対する設定を削除します。
 チェインを省略した場合はテーブル内の設定を全て削除します。
 -F OUTPUT
 -X  指定したユーザ定義チェインを削除します。
 ユーザ定義チェインを省略した場合は全て削除します。
 -X

[条件]のセクション: 条件は複数指定できます。
オプション  内容  指定例
 -p  プロトコル(tcpなど)を指定します。
 サブオプションとして
   --sport で送信元のポート番号を指定します。
   --dport であて先のポート番号を指定します。
 -p tcp --dport 80
 -s  送信元IPアドレスを指定します。  -s 10.10.10.10
 -d  あて先IPアドレスを指定します。  -d 10.20.30.40
 -i  パケットが入ってくるインターフェース(NIC)を指定します。  -i eth0
 -o  パケットが出ていくインターフェース(NIC)を指定します。  -o eth1
 -m  その他の様々な組み込み済み条件を指定することができます。
 具体的な使用例は (3) iptablesの設定例 を参照ください。

[-j ターゲット]のセクション: 
オプション  内容  指定例
 -j  ターゲットを指定します。ターゲットというのは、条件に合致したパケットをどう処理するかを規定したものです。
 デフォルトで準備されているターゲットとしては、ACCEPT(許可)、DROP(拒否)、DNAT(宛先アドレスの書き換え)などがあります。
 またそれ以外に、ユーザ定義のチェインを指定して登録済みのルールや処理を適用することもできます。
 具体的な使用例は (3) iptablesの設定例 を参照ください。
 -j ACCEPT

 ◇     ◇     ◇

iptablesの主な構文を確認したところで、次ページ以降では具体的な設定を行っていきます。



前のページへ <    メニューへ戻る    > 次のページへ

8.ファイアウォールサーバの構築 :
 
  ›(1)iptablesとは
   (2)事前準備とルータの設定
   (3)iptablesの設定例
 
Copyright (C) 2011-2019 rurihabachi. All rights reserved.