サーバとして
・受信パケットは破棄。ただしステートフル性を確認しサーバから送信されたパケットに関連するものは許可
・送信パケットは基本的にすべて許可
・ループバックアドレスに関してはすべて許可
・メンテナンスホスト(内部)からのping、メンテナンスホストへのpingを許可
・メンテナンスホスト(内部)からのssh(TCP 22)を許可
ルータとして
・転送パケットで、内部ネット→外部ネットのものは許可。外部ネット→内部ネットへの転送パケットはステートフル性を確認できたものだけ許可
・Linuxサーバを経由して外部へ出ていくパケットのソースアドレスを変換
・内部アドレスやプライベートアドレスが外部に漏れないようにブロック
QoSのため
・サーバへのssh(TCP 22)パケットの遅延(daley)を最小限にするようTOSを設定する
・サーバへのHTTP(TCP 80)パケットについては、できる限り高スループットの経路を探すようTOSを設定する
テンプレート5をベースに、QoSのための設定を加えます。繰り返しになりますが、ここでTOSフィールドの値を変更しても、それに連携したルータや内部ルーティングの仕組みがなければQoSは実行されません。
53 #Sample for TOS 54 /sbin/iptables -A PREROUTING -t mangle -p tcp --dport 22 -j TOS --set-tos Minimize-Delay 55 /sbin/iptables -A PREROUTING -t mangle -p tcp --dport 80 -j TOS --set-tos Maximize-Throughput
TOSベースのQoSに対応させるには、54・55行目のようにTOSフィールドを書き換えます。54行目ではサーバへのssh(TCPポート22番)について、パケットの遅延(daley)を最小限(Minimize-Delay)にするようTOSを設定し、続く55行目でサーバへのHTTP(TCPポート80番)のパケットに対し、高いスループット(Maximize-Throughput)の経路を探すようTOSを設定します。
56 #Sample for DSCP,ECN,MARK 57 /sbin/iptables -A PREROUTING -t mangle -p tcp --dport 80 -j DSCP --set-dscp-class EF 58 /sbin/iptables -A PREROUTING -t mangle -p tcp --dport 80 -j ECN --ecn-tcp-remove 59 /sbin/iptables -A PREROUTING -t mangle -p tcp --dport 80 -j MARK --set-mark 15
DiffServベースのQoSに対応させるには、DSCPを書き換えます。57行目では「--set-dscp-class」でDSCPのDiffServクラスを「EF」に設定しています。58行目がECNビットの削除、59行目がMARK値の設定例です。
次回はiptablesでできるDoS・DDoS対策を解説します。リクエスト応答回数に制限を設けるといった方法を紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.