-
iptablesのテーブル概念
iptablesは下記3つのテーブルを持つ。filter:パケットフィルタリング nat:IPアドレスの変換 mangle:IPヘッダの書き換え
filterはssh、http、https等のポートを通したり。
natはRaspberry PiのOpenVPNでも設定しましたが、
「10.8.0.0」を「192.168.XXX.XXX」に変換したり。
mangleは利用したことありませんので、説明省略。
-
iptableの設定確認
各々の設定内容は下記コマンドで確認する。iptables -t テーブル -L
「-t テーブル」を省略すると自動的に「-t filter」と同義になる。
または下記コマンドで確認する。
対象テーブルはfilterのみとなる。/etc/init.d/iptables status
-
iptableの起動
/etc/init.d/iptables start
または
service iptables start
-
iptableの停止
/etc/init.d/iptables stop
または
service iptables stop
-
iptablesの設定追加
現状のままだと外からWordPressにアクセスできないため、
ルーターのポート80、443をNUCのIPに向け、
さらにiptablesのfilterテーブルに設定を追加します。iptables -I INPUT 5 -p tcp -m tcp --dport 80 -j ACCEPT iptables -I INPUT 6 -p tcp -m tcp --dport 443 -j ACCEPT service iptables save
-I:チェインの任意の行番号に挿入 -p:プロトコルを指定(icmp、 tcp、udp、all) -m:マッチング条件拡張(今回の例でいうと「tcp --dport」でパケットの送信先ポートを指定) -j:マッチングした際のターゲット(ACCEPT、 DROP、QUEUE、RETURN、LOG、REJECT等)
チェインはテーブルごとに利用できる範囲があります。
filter:FORWARD、INPUT、OUTPUT nat:PREROUTING、POSTROUTING、OUTPUT
5行目と6行目に設定を追加した理由は、今回の設定を追加前の最終行目(5行目)に
全ての通信を拒否する設定があるからです。
iptablesは上から順に設定内容を評価するため、
全ての通信を拒否する設定より前に許可したいポートの設定をしておく必要があります。