最終更新:2019-05-10 (金) 12:17:30 (1806d)  

iptables
Top / iptables

IPv4パケットフィルタNAT を管理するツール

http://www.netfilter.org/projects/iptables/index.html

Main Features

  • listing the contents of the packet filter ruleset
  • adding/removing/modifying rules in the packet filter ruleset
  • listing/zeroing per-rule counters of the packet filter ruleset

基本

起動

  • service iptables start

現在の設定を保存

  • service iptables save
  • /etc/sysconfig/iptables」 がすでに存在する状態でさらに save すると、「/etc/sysconfig/iptables」 に現在の設定が保存され、
  • 「/etc/sysconfig/iptables.save」 に 1 世代前の設定が保存される。

テーブル

  • filter - パケットフィルタリングで参照するテーブル。パケットフィルタリング?
  • nat - 新しい接続を開くパケットが参照するテーブル。アドレス変換
  • mangle - 特別なパケットが参照するテーブル

チェイン

組み込みチェイン

  • チェイン意味テーブル
    INPUTパケットが入ってくるときにチェックfilter,mangle
    OUTPUTパケットが出ていくときにチェックfilter,nat,mangle
    FORWARDパケットをフォワードする時にチェックfilter
    PREROUTINGパケットが入ってきた時に変換nat,mangle
    POSTROUTINGパケットが出ていく時に変換nat

処理される順番

  • PREROUTING
  • ROUTING
  • FORWARD
  • INPUT
  • OUTPUT
  • POSTROUTING

ターゲット

  • 行う処理のこと
    ターゲット
    ACCEPT通過
    DROP破棄
    RETURNチェイン内のルール評価を終了
    REDIRECT <port>パケットを<port>にリダイレクト
    REJECTハケットを破棄し、その旨をICMPで通知。
    SNATパケットの送信元アドレスを修正
    MASQUERADEパケットの送信元アドレスを修正

ルール

  • パケットの内容との比較条件
    オプション意味
    -p対象のプロトコルを指定
    -sパケットの始点アドレス
    -dパケットの終点アドレス
    -sportTCP,UDPでの送信元ポート
    -dportTCP,UDPでの送信先ポート
    --tcpflags <mask><comp>TCPで<mask>指定されているフラグを確認し、<comp>と一致するパケットを指定 iptables/tcpflags
    -i入力するネットワークインターフェイス
    -o出力するネットワークインターフェイス
    -j <target>パケットの処理方法。<targer>は別のチェインかルール
    --cmp-typeICMPでタイプ名を指定
    -m <module>モジュールで処理 iptables/モジュール

設定

コマンド

  • iptables-restore?
    iptables-restore < filename

設定ファイル

ウィザード

設定確認

  • # /sbin/iptables -nL -t filter
  • -L 設定内容を表示
  • -n ホスト名検索を行わない
  • -t テーブル名を指定、省略するとfilter
  • --line-number - ルール番号を表示する

チェインの操作

  • iptables -N <chain> #チェインの作成
  • iptables -X <chain> #チェインの削除
  • iptables -E <old> <new> #名前の変更

ルールの操作

  • iptables -A <chain> <rule> #ルールの作成
  • iptables -D <chain> <rule> #ルールの削除
  • iptables -F <chain> #ルールの削除
  • iptables -I <chain> [number] <rule>#<number>番目にルールの追加

メモ

  • iptables -P FORWARD DROPFORWARDは使用しない
    iptables -P INPUT ACCEPT一度、全て許可にする
    iptables -Fチェインを全て削除
    iptables -A INPUT -i lo -j ACCEPT自らのパケットは全て許可
    iptables -A INPUT -p tcp –dport 22 -j ACCEPTSSH許可
    iptables -A INPUT -p icmp -j ACCEPTPING許可
    iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPTTCP接続開始と応答、FTPデータ等許可
    iptables -P INPUT DROP設定以外のパケット拒否

参考

関連