パケットフィルターについて
パケットフィルターとは、ファイアウォールの一種
パケットフィルターは端末にきたパケットの制御をする
ネットワークからの通信は
まずパケットフィルターで処理する
すべての通信は
パケットフィルターで処理される
パケットフィルターの初期設定では
外部ネットワークからサービスを利用できないようになっている
多くのLinuxでは、
パケットフィルターにiptablesを使う
iptablesに設定されているルールは
iptables -L
で確認することができる
また、OS起動時は、設定ファイルの内容に基づいてiptablesが設定される
CentOSなら
/etc/sysconfig/iptables
が設定ファイルになる
/etc/sysconfig/iptables
へ設定する場合
すべての設定を iptablesコマンドで行うか
/etc/sysconfig/iptables
をvim などで編集する
ただし、iptablesコマンドの設定の場合
service iptables save
などで設定しないと
再起動すると無効になるので注意
楽なのは、設定ファイルの
/etc/sysconfig/iptables
の編集
パケットフィルターでは、
INPUT
OUTPUT
FORWARD
のチェインが使える
チェインとは
パケットの通信方向の指定のこと
INPUT
端末に入っているパケットに対するルール
OUTPUT
端末から出て行くパケットに対するルール
FORWARD
端末を経由するパケットに対するルール
そして、各チェインにはポリシーを設定する
ポリシーとは
チェインのルールにマッチしなかったパケットに対しての動作
これは
ACCEPT 受付
DROP 破棄
の設定ができる
チェインのポリシーに
ACCEPTが設定されているなら
ルールにマッチしなかったパケットは許可される
DROPが設定されているなら
ルールにマッチしなかったパケットは破棄される
INPUT
OUTPUT
FORWARD
の初期値では、
すべてのポリシーにACCEPTが設定されているが
外部からのパケットが許可されているのは一部のポートだけ
これは、設定ファイルが影響している
/etc/sysconfig/iptables
を確認すると
-A INPUT -j REJECT -reject-with icmp-host-prohibited
という設定があり
この設定文で評価されるまでのルールへマッチしなかった通信は、
すべて拒否を返す
つまり、この設定文のチェックが行われた時点で通信は拒否され
ポリシーが適用されない
なので、この
-A INPUT -j REJECT -reject-with icmp-host-prohibited
の文の前に許可するようにすることで
使えるポートの設定をする
また、ポリシーの記載を
DLOPというようにスペルミスすると
これはACCEPT扱いになる
ちなみに、ルールそのものが間違っていると
iptablesの再起動したときにエラーが起きる