インターフェイス - みる会図書館


検索対象: UNIX MAGAZINE 2000年11月号
34件見つかりました。

1. UNIX MAGAZINE 2000年11月号

新・自敷芸術科学大学のネットワーク構築 ネットワーク技術者養成講座 Cisco ルータの基礎 ( 2 ) 小林和真 前回は、 Cisco IOS のコマンド体系と初期設定時に必 要な項目について説明しました。今月は、ルータの基本的 な設定ガ去をとりあげます。 インターフェイスの設定 ■ Cisc 。ルータには、さまざまな不頁のネットワーク・イ ンターフェイスが用意されています。そこで、インター フェイスを設疋する際の基本的なルールを、もっとも一殳 的と思われる Ethernet インターフェイスを例に解説し ます。 インターフェイスの指定 ます、 configure モードで設疋対象のインターフェイス を指定し、引き続き指定したインターフェイス階層のサプ コマンドで箚重の設定をおこないます ( 図 1 ) 。 設定したいインターフェイスを指定するときは、 in- terface コマンドの引数としてインターフェイスの名称 (Ethernet や Serial など ) やデバイス番号などをケえ ます。 デバイス番号の指定には、次のようなパターンがありま す。 ・ポート番号 (Cisco 2500 など ) 例 : Ethernet 0 ・スロット番号 / ポート番号 (Cisco 2600 など ) 例 : Ethernet 0 / 1 ・スロット番号 / アタブタ番号 / ホート番号 (Cisco 7500 など ) 例 : Ethernet 1 / 0 / 1 該当する機種では、適切なスロット番号 / ポート番号を 58 指定しないと、正常に設定イ乍業をおこなうことができませ ん。 そのルータに備えられているインターフェイスを石忍す るには、 EXEC モードで show interface コマンドを 実行します ( 図 2 ) 。 実行例からも分かるように ShOW interface コマンド では、各インターフェイスの田な清報も表示されてしま います。ただし、 IOS のバージョンによっては、実行結 果から指定した内容を含む行だけを抽出することもできま す。たとえば、インターフェイスの種別さえ分か川まいい のなら、 shOW interface ー include line p て 0t0C01 とすれば、インターフェイスの名称 ( 不頁 ) と状態か表示 されます ( 図 3 ) 。 インターフェイスに関する作業では、 configure モード て指定したインターフェイス階層のサプコマンドを用いて 各種の設定をおこないます。もっとも基本的な設定では、 次のように指定します。 interface FastEthernetO/0 description KUSA demark ip address 202 .244.160.1 255 .255.255.0 no ip directed—broadcast full—duplex IP アドレスの設定 IP アドレスは、 configure モードで指定したインター フェイス階層のサプコマンド ip address を用いて成疋 します。コマンドに続けて、 IP アドレスとサプネットマ スクを指定します ( 図 4 ) 。 初期の IOS では、サプネットマスクによるアドレス指 定に制限がありました。たとえば、 255.0.0.0 (Class A) 、 UNIX MAGAZINE 2000.11

2. UNIX MAGAZINE 2000年11月号

新・倉敷芸術科学大学のネットワーク構築 図 5 ip subnet-zero コマンドの実行 Hardware is AmdP2, address is 0050.80fb.1660 (bia 0050.80fb.1660 ) EthernetO/O is administratively down, line p て 0t0C01 is d0 Ⅱ Router#show interface Ethernet 0 / 0 ・ show interface コマンドの実行 図 6 shutdown のキ諚 Router(config—if)# Router(config—if)#ip address 192.168.1.1 255.255.255.192 Router (config) #interface Ethernet 0 / 1 Router (config) #ip subnet—zero ・ ip subnet-zero を実行 Router(config—if)# ↑ 192.168.1.64 は subnet - zero ではないので OK Router(config-if)#ip address 192.168.1.65 255 .255.255.192 Bad mask / 26 for address 192 .168.1.1 ← 192.168.1.0 は subnet - zero なのでエラー Router(config—if)#ip address 192.168.1.1 255 .255.255.192 Router(config)#interface Ethernet 0 / 1 ・ ip classless/ip subnet-zero を実行しない場合 192.168.0.192 / 26 ← subnet-zero で利用不可 192.168.0.128 / 26 ←◎ 192.168.0.64 / 26 ←◎ 192.168.0.0 / 26 ← subnet-zero て利用不可 ・ 192.168.0.0 を / 26 ( 255.255.255.192 ) てサプネット化する lnternet address is 202.244. 164.13 / 24 ・ shutdown のま諚 (show configuration から抜粋 ) interface EthernetO/O ip address 202 . 244.164.13 255 .255.255.0 shutdown これでは、サプネットを導入してもアドレス空間の有効 利用ができないので、 ip subnet-zero コマンドを用い てこの缶齣を取り払えるようになっています ( 図 5 ) 。 インターフェイスの shutdown インターフェイス階層てサプコマンド shutdown を 指定すると、そのインターフェイスは管理者が意 3 勺に利 用しない設定にしていると解釈されます。 図 6 では、 show interface コマンドの夫行結果に、 Ethernet0/0 is administratively down という文字列が見えます。この場合、インターフェイスの 設定に shutdown カ甘旨定されています。 インターフェイスを利用できるようにするには、明示的 に no shutdown を指定する必要があります ( 図 7 。イ ンターフェイスか川乍している状態では、 show configu- ration では no shutdown" の指定は表示されません ) 。 60 IOS では、インターフェイスが使える状態を、 up 、停 止している状態を、、 down" といいます。 description の指定 UNIX MAGAZIN E 2000.11 窈旨定があります。 ・ full-duplex ・ no ip directed-broadcast た FastEthernetO/O の成疋には、 さきはど、「インターフェイスの指定」の項て例に挙げ その他の設定 任意の説明文 ( 80 文字以内 ) カ甘旨定できます ( 図 8 ) 。 マンドを使います。 description サプコマンドに続けて、 クなど、詳細な情報を j 圧己するには description サプコ 設定したインターフェイスか接続されているネットワー

3. UNIX MAGAZINE 2000年11月号

ータの基礎 ( 2 ) 図 1 インターフェイスの指定 Router#conf igure terminal Enter configuration commands , 0 れ e Router (conf (g) #interface Ethernet Router(config—if)# Router(config—if)#exit Router(config)#exit Rout er# 図 2 show interface の実行 Router#show interface Cisco ル per line . End with CNTL/Z. 0 / 1 ←設定するインターフェイスを指定 ←インターフェイスの設定用サプコマンドを指定 ←設定階層を 1 つ抜ける ← configure モードを終了 BR 工 0 / 0 is administratively down, line protocol is down Hardware is PQUICC BRI EthernetO/0 is up, line protocol is up Hardware is AmdP2, address is 0050.80fb.1660 (bia 0050.80fb.1660 ) lnternet address is 202 . 244. 164.13 / 24 図 3 インターフェイスの名称肄の表示 Router#show interface ー include 1ine protocol FastEthernetO/O is up, line protocol is up FastEthernetO/I is administratively down, line protocol is down Fddi1/O is administratively down, line p て 0t0C01 is down Fddi4/0/0 is up, line protocol is up ATM5/0 is up, line protocol is up ATM5/O.1 is up, line protocol is up GigabitEthernet6/O/O is up, line protocol is up Router# 図 4 IP アドレスの設定 Router#configure terminal Enter configuration commands , one per line . End with CNTL/Z. Router(config)#interface Ethernet 0 / 0 Router(config—if)#ip address 202.244.164.13 255.255.255.0 Router (confåg—if) #exit Router(config)#exit Router# 255.255.0.0 (Class B) 、 255.255.255.0 (Class C) と いったように、 8 ピットすつの境界 ( オクテット境界 ) で なけれは指定できませんでした。 その後インターネットでの IP アドレス空間の橇曷が 懸念されたため、 IP アドレスのクラスをなくす、、クラス レス (Classless)" という考え方が導入されました。 IOS も、このクラスレスに対応しています。 ip class- less コマンドを実行すると、クラスなしのサプネット・ア UNIX MAGAZINE 2000.11 ドレスカ甘旨定できるようになります。 Router(config)#ip classless なるアドレスと、すべて、、 1 " になるアドレスは標準では使 を保っために、サプネット部分のアドレスかすべて 0 に 題がありました。 IOS では、過去のバージョンとのカ陸 IOS では、、、サプネットゼロ・アドレス " の扱いにも間 えないようになっています。 59

4. UNIX MAGAZINE 2000年11月号

いつでも使えるインターネット 特集 図 19 インターネットからルータか言したバケットのフィルタリンク ( 1 ) # # 始点 / 終点アドレスがプライベート工 P アドレスのバケットを拒否する # # プロバイダからプライベート工 P アドレスを割り当てられる場合は、該当するエントリを削除する $EXTERNAL_INTERFACE # # NTP と DNS の戻りバケットを許可する ( 必要なサーパーの数だけ設定 ) # # ルータの外側インターフェイス宛のバケット ipchains —A input —p icmp —j ACCEPT # # ただし、外側から内側への pi Ⅱ g は拒否する # # ICMP バケットを許可する ( 必要なら ) ipchains —A input —i $EXTERNAL—INTERFACE -p icmp -d $INTERNAL—BCAST ー 1 —j DENY # # 拒否したバケットのログも記録する # # smurf 攻撃への対処 ipchains —A input —i $EXTERNAL-INTERFACE -s $IPADDR ー 1 —j DENY # # 拒否したバケットのログも記録する # # 自分が送った ( ようにみえる ) バケットを外部インターフェイスから受信するはずはない ipchains —A input -i $EXTERNAL-INTERFACE -s $INTERNAL—LAN ー 1 —j DENY # # 拒否したバケットのログも記録する # # 内部ネットワークから送った ( ようにみえる ) バケットを外部インターフェイスから受信するはすはない ipchains —A input —i $EXTERNAL—INTERFACE ¯d 192.168.0.0 / 16 —j DENY ipchains —A input —i $EXTERNAL—INTERFACE -d 172.16.0.0 / 12 ipchains -A input -i $EXTERNAL-INTERFACE -d 10.0.0.0 / 8 ipchains —A input -i $EXTERNAL-INTERFACE -s 192.168.0.0 / 16 —j DENY ipchains —A input -i $EXTERNAL—INTERFACE —s 172.16.0.0 / 12 ipchains —A input —i $EXTERNAL—INTERFACE —s 10.0.0.0 / 8 ipchains —A input —i $EXTERNAL—INTERFACE -s $ANYWHERE 8 -d $INTERNAL—LAN ¯p icmp ¯j DENY —j DENY —j DENY —j DENY —j DENY # # TCP による DNS query もありうるが、 ほとんどないのでここには書かない ipchains —A input —i —d $IPADDR $PORT_UNPRIV —j ipchains —A input —i —d $IPADDR $PORT_UNPRIV —j ipchains —A input —i —d $IPADDR $PORT_UNPRIV —j ipchains ¯A input ¯i —d $IPADDR $PORT_UNPRIV —j # # その他は拒否 ipchains —A input ¯i $EXTERNAL_INTERFACE —p udp ACCEPT ACCEPT ACCEPT ACCEPT —s $NTP_SVR_1 123 \ $EXTERNAL_INTERFACE —p udp —s $NTP_SVR_2 123 \ $EXTERNAL—INTERFACE -p udp —s $DNS_SVR—1 53 \ $EXTERNAL—INTERFACE -p udp —s $DNS_SVR—2 53 \ —d $IPADDR —j DENY ( 図 20 へ続く ) 設定例を図 19 ~ 20 に示します。 40 とです。 り、 smurf 攻撃の踏み台に利用される心配はないというこ バケットを転送しないことになっているようです。つま ワークのプロードキャスト・アドレスだった場合、その ーフェイスから受信したバケットの宛先が他方のネット 近の Linux カーネルでは、一方のネットワーク・インタ いつごろからそうなったのか定かではありませんが、最 ちらを参照してください。 smurf 攻撃については 9 月号で簡単に説明したので、そ これだけでは何がなんだか分からないかもしれないの で、具ー勺な例を使って説明します。 たとえは、 eth0 と ethl というインターフェイスをも つ Linux マシンがあり、それぞれについて次のようにア ドレスが設定されているとします。 IP アドレスプロードキャスト・アドレス eth0 192.168.0.1 192.168.0.255 ethl 192.168.1.1 192.168.1.255 このとき、 192.168.1.255 宛の / ヾケットを ethO が受信 すると、普通であれば ethl 側ネットワークに転送すると UNIX MAGAZINE 2000.11

5. UNIX MAGAZINE 2000年11月号

いつでも使えるインターネット 図 11 初期イ里 ( 2 ) ( 図 10 から続く ) # # すでに設定されているルールを消去する ipchains —F # # ポリシーの初期設定 ipchains ¯P input DENY ipchains —P output ACCEPT ipchains —P forward REJECT # # ループパック・インターフェイスの入出力を許可する ipchains —A input —i 100 —j ACCEPT ipchains —A output —i 100 ¯j ACCEPT # # IP masquerade の変換テープルのタイムアウト時間を設定する ipchains —M ¯S 36000 0 0 # # SYN F100d 攻撃を防ぐために SYN Cookies を有効にする echo 1 > /proc/sys/net/ipv4/tcp—syncookies # # Broadcast pi Ⅱ g に応えないようにする echo 1 > /proc/sys/net/ipv4/icmp—ignore—bogus-error-responses # # Source Routed/< ケットを拒否する for i in /proc/sys/net/ipv4/conf/*/accept—source—route; d0 echo 0 >$i done # # 工 CMP Redirect'€ケットを拒否する for i in /proc/sys/net/ipv4/conf/*/accept-redirects; d0 echo 0 >$i # # 外側インターフェイスの IP アドレスが取得できなかった場合は、フィルタを設定しない if [ —z "$IPADDR" ] ; then ipchain ーエ input —i $INTERNAL-INTERFACE ¯j ACCEPT exit 0 f i くとも 10 時間以 E が必要になります。 よい人に親切にするのはいいとしても、悪者にまで親切 にする必要はありません。だからこそ、入力側のポリシー を DENY にしておくのです。 次は、ルーフ。バック・インターフェイスからの入力と 出力を許可するルールです。 続いて、 IP masquerade の変換テープルからエントリ が消去されるまでのタイムアウト時間を設定しています。 も匠の Linux カーネルには、前述した TCP クッキー による SYN FIood 攻撃への対策が組み込まれています。 これは、もちろん LAMB ルータのカーネルにも組み込ま れています。ところが、このモジュールはデフォルトでは 34 機能しないように作られているため、モジュールを有効に するには設定が必要になります。 proc ファイルシステム 1 を書き込んでいるのは、その の tcp-syncookies に ためです。 同様に、 Source Routed ノヾケットと ICMP Redirect ノヾケットを拒否するために、 proc ファイルシステムに設 定を書き込みます。 端末型接続 端末型接続の場合は外部にアクセスできる IP アドレス が 1 つしかないので、 IP masquerade を利用します。 IP masquerade は、内部から外部へのアクセスのため UNIX MAGAZINE 2000.11

6. UNIX MAGAZINE 2000年11月号

い。でぇ・一、ト ・ロ・ 0 特集 る 考 を 白崎 なお、前号で、 「 Web インターフェイスでは、最低限の設定しかできま せん。 ( 中略 ) ファイアウォールとして利用する場合には コマンドラインでの操作か不可欠です」 と書きましたが、これは LAMB ルータ独自のファイア ウォール機能が不十分だという意味ではありません。 の特集の主眼は、各サイトの事情に合わせてポリシーを決 め、それに沿ってファイアウォールを作るガ去を紹介する ことにあります。そのため、上のように書いたのですが、 、 LAMB ルータの Web インターフェイスは役立たない " と卍早されかねないので、 言お断わりしておきます。 IP アドレスの割当て方法 Linux ルータでファイアウォール ( 2 ) 前回は、ヤマハの RTA52i と NTT-ME の MN128- SOHO SLII にフィルタを設定するガ去を説明し、 Linux ルータでファイアウォールを作るためのべースとして使う 「子羊ルータ LAMB-RT-OI 」 ( 以下、 &SLAMB ルータ " と表記します ) を紹介しました。 今月は LAMB ルータでフィルタを設定するところまで 説明する予定でしたが、前半でちょっと寄り道をしたせい か、途中で時間切れになってしまいました。申し訳ありま せん。ただし、言例の紹介まではなんとかたどり着けた ので、自分で関連ファイルの編集ができる人や、 LAMB ルータ以外の Linux ルータを使っている人は、今回の内 容を読めばファイアウォールを作れるはずです。 今回は、前半で常日喆妾続における IP アドレスの割当て ガ去、いくつかの攻撃手法とそれに対する防征険を簡単に 紹介します。後半では、 LAMB ルータのカーネル再構築 の手順、そしてフィルタの設定例をとりあげます。 ルータの殞則 (ISP 側 ) のネットワーク・インターフェ イスに割り当てる IP アドレスについて説明します。 インターネットへの接続に CATV や xDSL を利用し ている場合、その接続サービスの形態によって、 21 UNIX MAGAZINE 2000.11

7. UNIX MAGAZINE 2000年11月号

図 7 no shutdown の指定 Router#configure terminal configuration , . Router (config) #interface Ethernet 0 / 0 Router (config—if) #no shutdown Router(config-if)# End with CNTL/Z . ータの基礎 ( 2 ) changed state t0 up Cisco ル 4wId : %LINEPROTO—5—UPDOWN : Line protocol on lnterface Ethernet0/0 , 4w1d : %LINK—3-UPDOWN : lnterface Ethernet0/0 , changed state to up Router(config—if)#exit Router(config)#exit Router# 図 8 description による説明文 ・ description コマンドの実彳ラ Router#configure terminal Enter configuration commands , one per line. End with CNTL/Z. Router (config) #interface Ethernet 0 / 0 Router(config-if)#description UNIX MAGAZINE 10Mbps link ←説明文を指定 ・ configuration からのキ友 * 卆 interface Ethernet0/0 description UNIX MAGAZINE IOMbps link ip address 202.244.164.13 255 .255.255.0 Router#show IP route 図 9 インターフェイス言聢終了時蚤路情報 Ⅱ 0 ip directed—broadcast ←ここに追記される Codes : C D NI EI 1 connected, S static, 工 EIGRP, EX ー EIGRP external, OSPF NSSA external type 1 , OSPF external type 1 , E2 IS—工 S, LI IS-IS level-l , per—user static route, 0 IGRP, R ー RIP, M ー mobile, B ー BGP 0 OSPF, 工 A ー OSPF inter area N2 OSPF NSSA external type 2 OSPF external type 2 , E ー EGP L2 IS—IS 1eve1—2, * candidate default ー ODR Gateway Of last resort is not set C 202 .244.164.0 / 24 is directly connected, Ethernet0/0 前者は、 directed broadcast の中継を防ぐための成正 です。 directed broadcast を悪用した攻撃 1 への対策と して利用されます。同様に、、、 n 。 ip redirects" という設 定もあります。これも、 ICMP redirect を悪用した攻撃 を防ぐ目的で設定される場合があります。 もう 1 つの、、 full-duplex" は、 Ethernet を全二重て利 用するための設定です。これは、ルータに接続する相手の 装置も全二重通信に対応している場合に指定できます。 1 directed broadcast アドレス ()P アドレスのホスト部がすべて 1 の アドレス ) を宛先 IP アドレスとした DoS (DeniaI-of-Service : サー ピス利用不育攻 7 ) ー - 一種。 UNIX MAGAZINE 2000.11 最低限の経路設定 ルータとして IP データを中継するには、ルータか正し ルータに必要な経路を静的 (static) に設定するには、 かもっていません ( 図 9 ) 。 身のインターフェイスの IP アドレスに関する経路情報し インターフェイスの設定を終えた時点では、ルータは自 する去を説明します。 ん。 こでは、ルータとして必要最低限の経路だけを設定 い経路表 (routing table) をもっていなくてはなりませ 61

8. UNIX MAGAZINE 2000年11月号

—p tcp ¯s $ANYWHERE 137 : 139 —p udp —s $ANYWHERE 137 : 139 —p tcp —d $ANYWHERE 137 : 139 —j ACCEPT 図 18 内部ネットワークから外部ネットワークへの IP masquerade ( 公開サーパーなし ) 個人の常時接続環境を考える ( 5 ) ipchains —A input —i $INTERNAL—INTERFACE —s $server-ip-addr —d $IPADDR ー 1 —j REJECT 図 17 内部ネットワークからルータが受信したバケットのフィルタリング ipchains —A input —i $INTERNAL—INTERFACE # # その他は許可する ipchains —A input -i $INTERNAL-INTERFACE -s ! $INTERNAL—LAN ー 1 —j REJECT # # 拒否したバケットのログも記録する # # lngress フィルタリング ( RFC2827 ) # # 公開しない場合は、コメントアウトする # # サーパーを外部に公開する場合は、サーパーからルータの設定を変更できないようにする ipchains -A input -i $INTERNAL-INTERFACE —p udp —d $ANYWHERE 137 : 139 ipchains —A input —i $INTERNAL—INTERFACE ipchains —A input —i $INTERNAL—INTERFACE ipchains —A input —i $INTERNAL—INTERFACE # # NetBIOS を拒否する —j REJECT —j REJECT —j REJECT -j REJECT # # 内から外への IP masquerade ipchains —A forward —s $INTERNAL—LAN —j MASQ でフィルタリングします。 サーバーを公開する場合は、サーバーに侵入されたとき にルータの設定か変更されるのを防ぐために、 ・拒否 : サーノヾーからルータへの Telnet と HTTP というルールを追加します。 ipchains —A forward —i $INTERNAL—INTERFACE インターフェイスから受信した " と同しだと考えると、 こで、、、、内部ネットワークから受信した " は、、、内部 きです。そこで、図 18 のように設定します。 部ネットワークから受信したバケットを外部に転送すると ルータが IP masquerade の処理をおこなうのは、内 最彳変に IP masquerade を設疋します。 内部ネットワークから外部ネットワークへの車医バケット —j MASQ UNIX MAGAZINE 2000.11 スを指定します。一方、 forward 処理は、、受信して送信 フェイスを、 output ルールのときは送信インターフェイ -i オプションは、 input ルールのときは受信インター —j MASQ ipchains —A forward ¯i $EXTERNAL—INTERFACE ません。正しくは、次のように記します。 と書きたくなりますが、このルールは意図どおりには動き する " ので、一 i オプションはどちらを指定するのだろうと 考え始めると頭が昆乱してしまいます。私か調べた範囲で は、 ipchains のマニュアルにも説明はみあたりません。 んなことで悩むくらいならは、図 18 のように書いてしまっ たほうが簡単で、あとで ( 忘れたころに ) 見たときにふた たび悩むこともないでしよう。 なお、—i オフションについての答は、、、 forward ルー ルでは送信インターフェイスを指定する " だと思われます ( どうやら、カーネルのソースを調べなけれは分からない ようです ) 。 LAN 型接続 初ヒ 琪月化の部分は端末型と同しです ( 図 10 ~ 11 ) 。 インターネットからルータへの ( 内向き ) バケット LAN 型接続では、プロバイダから連続した複数の IP アドレスが静的に割り当てられます。フィルタの書き方 は、端末型の場合 ( 図 14 ~ 15 ) と基本的に同しですが、 LAN 型のフィルタではとくに次の 2 つの点に注意が必 ・ smurf 攻撃の踏み台に利用されないようにする。 ・ルータへの不要なアクセスを拒否する。 39

9. UNIX MAGAZINE 2000年11月号

図 10 初期イ里 ( 1 ) # ! /bin/sh PATH=/sbin : /bin : /usr/bin : /usr/sbin # 外側インターフェイスの IP アドレス DNS_SVR_2="dns . server. ip. address' DNS_SVR—1="dns . server. ip. address" NTP_SVR_2="ntp . server. ip. address" NTP_SVR_1="ntp. server. 1P. address' 工 NTERNAL_ 工 NTERFACE= " et h0 " EXTERNAL_INTERFACE="eth1" # # 変数の定義 個人の常時接続環境を考える ( 5 ) # 複数参照する場合は、その数だけ設定する # 参照する DNS サーバーの IP アドレス (/etc/resolv. conf より ) # 複数参照する場合は、その数だけ設定する # 参照する NTP サーパーの IP アドレス (/etc/ntp. conf より ) # 内側インターフェイスの名前 # 外側インターフェイスの名前 IPADDR= ' ifconfig $EXTERNAL—INTERFACE INTERNAL_LAN—X= ' netstat —rn ー grep $INTERNAL—INTERFACE ー grep $INTERNAL-MASK ー cut —fl # 内部ネットワーク・アドレス MASK='/sbin/ifconfig $INTERNAL—INTERFACE ー sed —e ) s/A.*Mask:\( い # 内部ネットワーク・アドレスのマスク長 _BCAST=' ifconfig $INTERNAL—INTERFACE ー sed —e . *Bcast : \ ( [ # 内部ネットワークのプロードキャスト・アドレス 工 NTERNAL I NTERNAL INTERNAL_LAN=$INTERNAL_LAN_X/$INTERNAL_MASK ANYWHERE="O . 0 . 0 . 0 / 0 " PORT_UNPRIV=" 1024 : 65535 " PORT_MASQ="61000 : 65096 " # /usr/include/net/ip—masq. h より —e d ( —e d ' ( 図 11 へ続く ) シーは、デフォルト拒否 " の REJECT です。 こで、 DENY と REJECT という異なる拒否ルール を設疋しましたが、この 2 つはどちらもンヾケットを破棄 する " ルールです。ただし、破棄したあとの動作か次のよ うに異なります。 ・ DENY 何もしない。バケットの送信者に何も送り返さないの で、送信者側からみると、バケットが醪幻全中で失われ たか、どこかに吸い込まれたかのようにみえる。 TCP コネクションの場合、 TCP がタイムアウトするまでパ ケットを再送し続ける。 ・ REJECT バケットを破棄したあと、バケットの送信者に ICMP によるエラーを送り返す。 TCP コネクションの場合、 すぐにコネクションが切れる。 バケットを破棄した場合、 ICMP を返すほうカ襯切だ UNIX MAGAZINE 2000.11 といえなくもありませんが、ポートスキャンをかける悪者 にとっても都合がよいのです。なぜなら、開いているポー トを去可間で調べられるからです。 あるポートか開いているか否かは、ターゲットとなる計 算機のポートにバケットを送り、そこから送り返されてく るバケットの内容によって判断します。したがって、「こ のポートは開いてへんで」という ICMP が送られてきた 場合には、その場で、、このポートは開いていない " と判断 できるので、すぐに次のポートの調査にとりかかれます。 1 から 65 , 535 までのすべてのポートを調べるとしても、 ( もちろんネットワークの丘にも左右されますが ) 数分 あれば終ります。 一方、しはらく待ってもバケットが返送されてこない ようであれば、再度バケットを送信して待っことを数回繰 り返します。このため、返事力唳ってこないポートを調べ るにはかなりの日判 ( コスト ) がかかります。この場合、 1 から 65 , 535 までのすべてのポートを調べるには、すくな 33

10. UNIX MAGAZINE 2000年11月号

BSD をハックする 齊藤己 TCP の謎 前々号で、 NTT の IP 接続サービス ( 現在はフレツツ・ 入れるサーバー側と接続をおこなうクライアント側に彳齬リ が分かれる、、サーバー・クライアント型 " であるとよくい ISDN サービス ) に触れました。そのとき、 NTT は IP 接 続をサーピスしないのに「 IP 接続サービス」と名乗ってい われます。 るのはどういうことかと書いたのですが、それについて読 TCP 接続のオープン ( 開始 ) も、アクテイプ (active : 育加勺 ) オープンとパッシプ (passive : 受重加勺 ) オープン 者の方からメールをいただきました。フレツツ・ ISDN サ ービスでは、 ISDN の回線が着信する装置 ( 集合型の TA の 2 不鶤頁に分かれています。 なのか、 PRI インターフェイスをもつルータなのかは分 バークレイ・ソケットでの TCP 通イ かりませんか ) は NTT の局舎内にあり、 NTT からプロ バイダまでは地域 IP 蛩由なのだそうです。したがって、 BSD ソケット・ライプラリの名前でいうと、 listen お 「 NTT は IP サービスを提供していないというのは不適切 よび accept システムコールを利用してノ、ツシブオーフン な言明であろう」と窈商でした。 をおこなうのがサー 、 connect システムコーノレを利用 読者の皆さんはどうお考えでしようか ? してアクテイプ・オープンをおこなうのがクライアントと なります。 TCP の疑問 簡単にまとめてみます。 どちらの場合も、ソケットタイプのファイル・ディス NTT の話題が出たので電話について考えてみました。 クリプタを使う点では同しです。ただし、 こで説明して 電話をかけたときに、話し中の音がしてつながらないこと いる各システムコールの働きは、あくまでも TCP に対応 があります。もちろん本当に話し中の場合もありますが、 するソケットに対するものです。別のプロトコルに対して 途中の回勦ミ混雑してふさがっているときも話し中と同じ は、異なる働きをします。 信号音がします。 話し中のときでも、かけなおすとちゃんと通じることは アクテイプ・オープンの手順 よくあります。ごく稀にですが、相手に「たったいま君に 1. socket システムコールでファイル・ディスクリプタを 電話したところなんだが、話し中だった」と言われること 得る。 があります。話し中だったのはそちらだろうと言いたくな socket (PF—INET , SOCK-STREAM , IPPROTO_TCP) りますが、どうやら電話は双方が同時に呼び出すと話し中 になってしまうようです。 2. b ⅲ d で、ローカルポートの IP アドレスとポート番号 それでは、 IP ネットワークではどうなのでしようか。 を指定する。ポート番号の指定を省略した場合は、空き 同様に、 TCP での接続を試みたときにうまくつながるか ポートを探して自重加勺に割り当てる。 IP アドレス指定 どうかを調べてみましよう。 を省略すると、この通信のバケットが出てゆくインター フェイスの IP アドレスカ硬われる。 TCP を用いるネットワーク・サーピスは、接続を受け ニ = ロ 51 UNIX MAGAZINE 2000.11