- ベストアンサー
ルータでのフィルタリング設定
Ciscoのルータの設定をしていますが、うまくいかないのでおしえてください。 ネットワーク構成は、host1-ルータ-host2ですべてLANです。 やりたいことはtelnetだけ通過させるということです。 access-list 100 permit tcp any any eq telnet をポートに適用すればよいと思っていましたが、うまくいきません。 ほかに何かpermitしなければいけないのでしょうか? ちなみにhost1からルータにtelnetし、そこからhost2にtelnetはできます。 しかし、host1からhost2に直接telnetしようとするとできません。 なぜでしょうか? おしえてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
アクセスリストを適用したいインターフェイスにかけます。 router(config-if)#access-group 100 in ← この場合 Inbaound router(config-if)#access-group 100 out ← この場合 outbaound あと、多分返しの1024以上のポートが閉ざされているため、以下のようにかけたインターフェイスにアクセスリストを追加します。 router(config)#access-list 100 permit tcp any any established router(config)#access-list 100 permit tcp any any gt 1023 でも、あんまし、any - any でかけるより、特定のホストで access-list はかけたほうがいいですよ。
その他の回答 (3)
#1の補足から >例えば、アプリケーションで40001のポートを使うため、これだけ通過させたいというときも >access-list 100 permit tcp any any established > が必要なんでしょうか。 > 応答パケットを許可するためのaccess-list(...gt 1023等)を記述していないのであれば必要です。 ただ、確立されたコネクションということで、TCP接続ということになると思います。 ということで、40001がTCPであれば大丈夫ですが、UDPならダメでしょう。 といってもこれまた自信なしです。 ごめんなさい もしテスト環境があるのであれば、やってみるのが一番早いかな ^ ^;) #専門家+経験者のgold8さんの回答を参考にしてください。 #というのも、なんといっても実経験で養った知識というのが一番重要です。 #「本にはこう書いてあるのに動かないっ!」なんてことよくありますよね。
- gold8
- ベストアンサー率31% (60/191)
>router(config)#access-list 100 permit tcp any any established >router(config)#access-list 100 permit tcp any any gt 1023 少し補足をしますと、ルータのアクセスリストというのは、パケットの方向を厳密に解釈します(最近のPC 用の FireWall も同じみたいですが)。 HOST1 ⇒ HOST2 の場合、HOST2 にいくパケットは、TCP の場合、返しの 1024 以上のポートが必要となるので、HOST2 ⇒ HOST1 の方向に、gt1023 とかければ通信できます。ただし、この設定だと、HOST2 からの発信の場合も許可されるので、セキュリティの観点から、HOST1 から HOST2 へ発信されたパケットだけ返信する ESTABLISHED(確立された)コマンドを使えば、HOST2 ⇒ HOST1 への送信については拒否されます。 また、GT1023 を ESATBLISHED の下の行に追加する場合は、アクセスリストを特定のホスト間ではなく、ネットワーク単位(ANY でも同じ)でかける場合、GT1023 をかけないとアプリケーションによっては接続できないケースを経験してます。(FTP など、私も全体を把握してるわけではないですが)また、ESTABLISHED を先に記述しておけば、GT1023 は、アクセスリストのマッチカウントが ESTABLISHED と比較して少なくなければならず、逆のカウント数になれば、不正アクセスを起こした可能性があるということで、トラブルの切り分けにも役立ちます。返しのポート番号も 5000 以上の番号を使うことはあまりないので、範囲で区切ってもいいでしょう(RANGE コマンド) あとは、ポート番号の仕様にもよりますが、双方向発信でないと接続できないものもありますので、その場合は、 EQ XXXXX を記述しなければなりません。このケースはほとんど存在しなく、サーバ間同士の分散アプリケーション(RPC)くらいしか使いませんので、大半のポートについてはほとんど ESTABLISHED で間違いないと思います。
ちょっと自信ないですが... gold8さんの回答から、 access-list 100 permit tcp any any established があることで、認証されたtelnet接続の応答パケットは許可されるはずだったような。 ということで、 access-list 100 permit tcp any any gt 1023 は特に必要ないのでは? ただ、gold8さんが言われているとおりanyではなく特定ホストでaccess-listをかけるのがいいので、 access-list 100 permit tcp any any established access-list 100 permit tcp <host1> <host2> eq telnet access-list 100 permit tcp <host1> eq telnet <host2> access-list 100 deny any any みたいな感じではどうですか? ※3行目はhost2からもhost1にtelnet許可する場合です 試してみてないので、ちょっと自信なしです。
補足
回答ありがとうございます。 追加の質問です。 例えば、アプリケーションで40001のポートを使うため、これだけ通過させたいというときも ccess-list 100 permit tcp any any established が必要なんでしょうか。 それともtelnetとかftpなどを通過させるときだけ必要なんでしょうか。