2009年8月7日金曜日

[Clustcom News] iptablesのDROPとREJECTはどう違う? 【前編】

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━…☆
Clustcomニュースレター No.13  2009.8.7発行
             クラスターコンピューティング株式会社
☆…━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
# このメールは、WEBページから配信登録いただいたお客様、
# 過去に弊社に資料請求いただいたお客様、弊社スタッフと名刺交換を
# させていただいたお客様に配信しています。
# 配信停止手続きにつきましては、文末に記載させていただいております。


こんにちは。
Clustcomメルマガ担当の國生和栄です。


 梅雨も去って、蒸し暑い夜が続くようになってきましたね。
 そして、花火大会の季節到来です。


 外出先で偶然に遠花火を見かけると、心が弾みます。でも、いつもと
変わらないつもりで乗った電車で、うっかり観客の帰宅ラッシュに
巻き込まれたりなんかすると、憂鬱ですよね。


 日本国内と海外では、花火にも違いがあります。
 日本の花火は「菊」「牡丹」と称されるように、パッと丸く開く
ものが主流です。どの角度から見ても丸く見えます。


 ですが、海外では必ずしも丸く開くものが主流ではないようです。
 最近では、まるく開く花火も作られていますので、一概には断言でき
ないかも知れませんが、色の変化や尾を引かせるなどの技術は、
アジア圏独特のものと言えそうです。



 今回の後記は、話題のアニメ「エヴァンゲリオン:破」の楽しみ方を
紹介したいと思います。



さて、本日のトピックです。


┌──Newsletter_Topic ─────────────────────┐


■【Topics】iptablesのDROPとREJECTはどう違う? 【前編】
■提供サービスのご案内


└──────────────────────Newsletter_Topic ─┘


┏┓
┗■ 【Topics】
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━★


━ iptablesのDROPとREJECTはどう違う? 【前編】 ━━━━━━ 


Linuxカーネル(2.4、2.6以降)には、iptablesというソフトウェアが
入っています。

これを使ってパケットフィルターを実現し、ホスト、ネットワークの
セキュリティーを向上させることができます。


iptablesには、他にもNAT/NAPT機能、コネクション追跡による動的な
パケットフィルター機能もあります。


今回は、フィルタールールとしてDROP/REJECTの設定を行い、
パケットを破棄させたとき何が起きているのかを tcpdump を使って
観測してみました。



実験環境として、
同一LAN上に、WebサーバーとWebクライアントを用意しました。


Webクライアント役: 172.16.20.1
Webサーバー役: 172.16.20.239



Webクライアント用のアプリケーションとして telnet コマンドを
使用しました。
TCPの通信テストを行なうには便利なツールです。


サーバーアプリケーションとして 一応 Apache を用意しました。
飛び交うパケットを観測するため、サーバー上で tcpdump も使用
しました。
プロンプトはどちらのホスト側で該当コマンドを実行したのかを示して
います。


実験は4パターン。以下のようなものです。


★実験1
 そもそも Apache が動いていない(該当ポート番号が開いていない)場合
ptablesの設定はデフォルト(ACCEPT)のまま


★実験2
 Apacheが動いているが、該当ポート番号を iptablesにより
DROP(黙って破棄)する場合


★実験3
 Apacheが動いているが、該当ポート番号を iptablesにより
REJECT する場合


★実験4
 Apacheが動いているが、該当ポート番号を iptablesにより REJECT し、
--reject-with icmp-host-unreachable を指定


今回は、以上のうち、実験1・2を行います。



■■□【実験1】 そもそも Apache が動いていない(該当ポート番号が
開いていない)場合 iptablesの設定はデフォルト(ACCEPT)のまま


クライアント側からHTTPによる通信を開始します。


client$ telnet 172.16.20.239 80
Trying 172.16.20.239...
telnet: Unable to connect to remote host: Connection refused


直ちにtelnteはエラー終了しました。
その通信過程は以下のようになっていました。


server# tcpdump -i eth1 -p -n port 80 or icmp


11:32:16.496194 IP 172.16.20.1.47670 > 172.16.20.239.80:
S 1808538857:1808538857(0) win 5840
<mss 1320,sackOK,timestamp 2461234683 0,nop,wscale 5>

11:32:16.496331 IP 172.16.20.239.80 > 172.16.20.1.47670:
R 0:0(0) ack 1808538858 win 0



TCPコネクション開設要求(Syn パケット)がクライアントから
サーバーへ送信されています。

その応答(SEQ番号1808538857+1=1808538858がACK番号)として
Reset
が返送されています。


そのためクライアント側のアプリケーションは直ちに終了させられて
います。



■■□【実験2】 Apacheが動いているが、該当ポート番号を
iptablesにより DROP(黙って破棄)する場合



サーバー上で以下の設定を行ないました。


server# iptables -F INPUT # 設定を初期状態に戻します。
server# iptables -i eth1 -A INPUT -p tcp --dport 80 -j DROP
server# iptables -L -n -v | 一部抜粋


Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DROP tcp -- eth1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80


準備ができたら、
クライアント側からHTTPによる通信を開始します。


client$ telnet 172.16.20.239 80
Trying 172.16.20.239...



3分間ほど待たされて。。。



telnet: Unable to connect to remote host: Connection timed out


とtelnetがタイムアウトしました。



その通信過程は以下のようになっていました。


server# tcpdump -i eth1 -p -n port 80 or icmp


11:51:22.835468 IP 172.16.20.1.60098 > 172.16.20.239.80:
S 2607676146:2607676146(0) win 5840
<mss 1320,sackOK,timestamp 2461521270 0,nop,wscale 5>


11:51:25.835288 IP 172.16.20.1.60098 > 172.16.20.239.80:
S 2607676146:2607676146(0) win 5840
<mss 1320,sackOK,timestamp 2461522020 0,nop,wscale 5>


11:51:31.835230 IP 172.16.20.1.60098 > 172.16.20.239.80:
S 2607676146:2607676146(0) win 5840
<mss 1320,sackOK,timestamp 2461523520 0,nop,wscale 5>


11:51:43.835209 IP 172.16.20.1.60098 > 172.16.20.235.80:
S 2607676146:2607676146(0) win 5840
<mss 1320,sackOK,timestamp 2461526520 0,nop,wscale 5>


11:52:07.835072 IP 172.16.20.1.60098 > 172.16.20.239.80:
S 2607676146:2607676146(0) win 5840
<mss 1320,sackOK,timestamp 2461532520 0,nop,wscale 5>


11:52:55.834795 IP 172.16.20.1.60098 > 172.16.20.239.80:
S 2607676146:2607676146(0) win 5840
<mss 1320,sackOK,timestamp 2461544520 0,nop,wscale 5>



同じSEQ番号 2607676146 でTCPコネクション開設要求(Synパケット)を
何度も送信(つまり再送)していることがわかります。


その間隔は、3秒後、6秒後、12秒後、24秒後、48秒後と2倍づつ増えて
います。


5回再送(一番最初のものを含めるとと合計6回送信)を行ない、
約3分後にtelnetコマンドがタイムアウトしました。



man tcpすると、、、


tcp_syn_retries (integer; default: 5)

→アクティブな TCP 接続に初期 SYN の再送を試みる最大回数。この数値
は 255 よりも大きくすべきではない。デフォルトの値は 5 で、およそ
180 秒に対応する。


とありますので、これが効いているようです。



 今回は、ここまで。
 次回、実験3と4を行います。



参考文献:


man tcp
TCP http://tools.ietf.org/html/rfc793

man icmp
ICMP http://tools.ietf.org/html/rfc792

man iptables
http://www.netfilter.org/
http://www.linux.or.jp/JF/JFdocs/packet-filtering-HOWTO.html
http://www.asahi-net.or.jp/~AA4T-NNGK/ipttut/index.html


 


┏┓
┗■ 【提供サービスのご案内】
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━★


1)サーバの販売


  使用方法に応じたサーバを提案、販売しています。


  http://www.clustcom.com/melma0131



2)LVS負荷分散システムの設計/構築


  複数サーバの快適な応答速度のため、ロードバランサーの
  システムを設計し、構築します。


  http://www.clustcom.com/melma0132



3)完全冗長ソリューションの設計/構築 


  ネットワークを冗長化し、障害発生を避けるためのシステムを
  設計し、構築します。


  http://www.clustcom.com/melma0133



「携帯電話を含むインターネット事業へ業務を拡大しようかな」
「すでに持っているサーバの調子が悪いみたい」
「サーバの反応が悪いと利用者に言われるけれど」


 そんなときに思い出していただけたら・・・。


 クラスターコンピューティング(株)は、サーバ販売と、サーバを
快適に動かすシステムを作っている会社です。  


 
━=━=━=━=━=━=━=━=━=━=━=━=━=━=━=━=━=━


【お便り募集】


読者の皆様からのお便りを募集しています。
 ご感想、ご質問などをお寄せください。


日ごろ疑問に感じていること、専門的な疑問、なんでもかまいません。
 もちろん、基本的なことも大歓迎です! 


紙面掲載させていただいた場合には、ささやかなプレゼントを差し
上げます。

┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏


 ■クラスターコンピューティング(株)ホームページ
http://www.clustcom.com/


 ■clustcom かわらばん (ブログ)
http://kawaraban.clustcom.com/


 ■社長の独り言日記 (社長ブログ)
http://ktaka.blog.clustcom.com/


 ■メルマガアーカイブ (メルマガバックナンバー)
http://marc.clustcom.com/



┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏
 
いかがでしたでしょうか?
お役に立つ情報はありましたでしょうか?



 さて、後記です。


新劇場版の「エヴァンゲリオン:破」はご覧になりましたでしょうか?


 ご存じない方にご説明いたしますと、エヴァンゲリオンというのは、
1995年に放送されていたテレビアニメ作品です。
 放送当時、思春期の精神的な成長や閉塞感を描いたことで注目され、
アニメファンでなかった視聴者も引き込まれて、大ブームになりました。


 今回の【エヴァンゲリオン:破】は新劇場版の第二作目。
 ますますタイアップが派手になり、話題騒然のエヴァですが、
この作品には大きく分けて、二通りの楽しみ方がある!と私は思っています。


 詳しい方にはいまさらなお話ですが、ご存じない方はちょっとした
小ネタとして頭のポケットへ収納してくださいませ。


  
<その1>
◎ごくごく普通に、思春期少年の成長モノとして楽しむ。
  
 →この作品はロボットアニメの皮をかぶった【萌えアニメ】です。
  女の子の魅力にドキドキして、派手な戦闘にわくわくして、
  そして張り巡らされた伏線のことなど忘れて楽しんでください。
 (テレビ版・旧劇場版では伏線が回収されず、放置されることが
多々あります。)



<その2>
◎特撮マニアたちの集大成を楽しむ。


 →オタクとしては、このうがった楽しみ方が大プッシュです。


  エヴァンゲリオンはケーブルがはずれると、数分しか戦えません。
  エヴァンゲリオンはちょっと猫背気味に戦います。


  なにかを思い出しませんか?


  エヴァには、70年代前後のSFブームが大きく影響しています。
  その時代に少年や青年だった人たちが作り手になって、自分たちの
  愛したものを詰め込んだ作品という見方ができます。



 数分しか戦えない、ちょっと猫背気味に戦うのはウルトラマンですね。
 作中では、エヴァがライダーキックを決めたりもしています。


 今回の新作でも、かつてのSF作品や70年代頃のオマージュが
全編に散りばめられていました。
  
劇場版は全4作の予定。前作から今作まで、2年。
 次回作の公開はいつでしょうか・・・。


 そういうわけですので、まだまだ完結までは時間がかかります。
 今から、テレビ版を見はじめても間に合います。
 お暇があれば、是非どうぞ!!



次回は8月20日頃に配信予定です。お楽しみに!

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ このメールの送信者
クラスターコンピューティング株式会社
〒194-0014 東京都町田市高ヶ坂803番地
TEL:042-722-7702 FAX: 042-851-5716


クラスターコンピューティング株式会社は
Linuxで、ネットワーク・サーバインフラを作っている会社です。


■ 配信停止
配信停止は、お手数ですが以下のページからお願いいたします 
http://www.clustcom.com/melma/unsub/


Copyright(C) 2008 Cluster Computing ,Inc. All Rights Reserved.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# このメルマガの本文は著作権により保護されていますが、もし、
あなたのお役に立てるのであれば、ご自由に転載していただいて
構いません。その際には「Clustcomニュースレターによると。。。」と、
出典を明らかにするようお願いいたします。


■ どうぞ、ご友人にもご自由に転送してください。
■ 配信登録はこちらから
http://www.clustcom.com/melma/sub/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━