web-dev-qa-db-ja.com

iptables内のipスプーフィングを防ぐ方法は?

Linux上の私のApacheウェブサーバーは、存在しないファイルへの大量のリクエストで溢れています。直接的な影響は、アクセスおよびエラーログの急速な増加です。私はすでにこれらの要求をログに記録しないことでこれを処理しました(特定の文字列と一致した場合)。 1秒あたり40〜50リクエストについて話している複数のIPアドレスから(同じファイルに対して)。

最初はボットネットであると考えていましたが、それはソースipをスプーフィングするスクリプトキディだと思います。私はサーバーでiptablesを実行していますが、これらのパケットがTCP/IPの初期ハンドシェイクをバイパスしてアプリケーション層(HTTPサーバー)に到達する方法を知りましたか?私が持っている場合:

--Default Policy for INPUT chain is to DROP
<snip>
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
<...>
<snip>
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

...私のサーバーが応答するSYN/ACKは-最初の接続要求の後で-スプーフィングされたIPに送信されませんか?そしてそれで失われたのですか?パケットが巧妙に作成されている場合、確立された接続からのように見えますが、netfilterの状態追跡メカニズムがこれを処理し(上記のRELATED、ESTABLISHED行を介して)、確立されたセッションの一部ではないことを認識し、それによりそれらを破棄します。 (デフォルトのポリシー:DROP経由)?

事前に感謝、クラコニア

p.d.リクエストは有効なインターネットアドレスから送信されています。

7
user59555

ソースIPをスプーフィングした場合でも、Apacheに接続する前にSYN/ACK TCPハンドシェイクが必要です。これにより、スプーフィングされたTCP接続が効率的に防止されます。したがって、すべての接続がログで確認できるIPアドレスから行われていることを確認できます。

ボットネットまたはオープンプロキシが潜在的な可能性が高いです。それかどこかのウェブページの脆弱性。典型的なエクスプロイトは、Webサーバー上の大きなオブジェクトへのリンクをWebサイトのHTMLに埋め込んで、すべてのクライアントがサーバーからオブジェクトを取得しようとするWebサーバーにアクセスするようにします...

あなたのIPTABLESルールは今では意味があります;)

8
pehrs

iptablesルールは問題ありません。ファイアウォールのコンテキストで実際にできることは何もありませんが、ソースルーティングを使用しているユーザーに捕まらないようにする必要があります。 Linuxカーネルにはrp_filter(逆パスフィルター)と呼ばれる設定があり、これをオンにすると、ソースルートを指定するパケットをブロックできます。ソースルーティングは診断コンテキスト外ではほとんど使用されないため、このようなパケットをブロックしても安全です。

ほとんどのLinuxシステムには、カーネル設定を含む/etc/sysctl.confがあります。そのファイルに次の行を追加します。

net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1

次に再起動して、これらの変数が設定されていることを確認します。または、通常の方法で、実行時に個々のネットワークインターフェイスでそれらを設定できます。

echo 1 > /proc/sys/net/ipv4/conf/eth0/rp_filter
echo 1 > /proc/sys/net/ipv4/conf/eth1/rp_filter
...

または

sysctl -w net.ipv4.conf.eth0.rp_filter=1
sysctl -w net.ipv4.conf.eth1.rp_filter=1
...
4
Steven Monday

ボットネットの可能性をどのようにして排除しましたか?

攻撃者は IPソースルーティング を使用できますか?


上記URLより

残念ながら、ソースルーティングは、インターネット(およびその他の場所)の悪意のあるユーザーによって悪用されることが多く、実際には3番目のマシン(実際には3番目のマシンと通信している場合)(A)、別のマシンと通信している(B)と考えられます。 C)。これは、Cが何らかの目的でBのIPアドレスを制御できることを意味します。

によると Microsoftの記事

リモートの攻撃者は、TCP=ラッパー、またはソースアドレスに基づくアクセスリストで保護されたWindows NTインターネットインフォメーションサーバー(IIS)で保護されたUNIXシステムにアクセスしようとする可能性があります。許可された送信元アドレスのうち、攻撃者が応答を受け取ることはありませんが、攻撃者がアドレスを偽装し、loose-source-routingオプションを設定した場合攻撃者のネットワークに応答を強制的に戻すために、攻撃は成功する可能性があります。

(私の強調)

1
RedGrittyBrick