2012-01-31 8 views
0

イム私のネットワークサーバにトラフィックを考慮するためのbashスクリプトを書く:iptablesのまたはゲートウェイでIPをリダイレクトするために何か(GNU/Linuxの)

WAN:eth1の - > GNU/Linuxサーバ:eth0の - >ユーザー GNU/Linuxサーバは、squid、bind、QoS、mysql、lighttpdを使用します。

IPが確立されたクォータを超えた後、そのIP(ユーザ)に新しいQoSルールが適用され、IPカウンタがいつゼロに復元されるかを決定する1つの "フラグ"が存在します。

いくつかのIPとサブネットはクォータなしで動作しますが、クォータを超過した後はips /サブネットの新しいクループが新しいQoSで動作し、クォータを超えた後にリダイレクションを使用して3番目のグループと作業したいと考えています。

IPが確立されたクォータを超えると、すべてのhttpトラフィックをホスト(GNU/Linux上でのlighttpd実行)にリダイレクトし、そのIP用に生成された他のすべてのトラフィックをDROPする必要があります。 Webサーバーには、次のようなWebページがあります。「あなたは毎日の交通量の見積もりを上回り、「x時間」を待つか、プロバイダに電話して余分なナビゲーションパッケージを購入してください。

チェーンを使用することは可能ですか、それをどうすればできますか。 私がインターネットで見つけたほとんどの話題は、すべてをブロックし、インターネットに発信するための新しい連鎖を作り出しています。他のリダイレクトはIPだけでIPをリダイレクトしますが、どうすれば "チェーン"というものを作成してIPを添付することができますか?

私の貧しい人のために助けてくれてありがとう。

+0

ご回答ありがとうございます。リダイレクションを適用した後、IPをリストアする(squidにリダイレクトする)必要があります。どのようにリダイレクトを復元し、Webサーバのリダイレクトを "削除"できますか? –

答えて

0

このようなものをお探しですか?

iptables -t nat -A PREROUTING -s 192.168.100.66 -p tcp --dport 80 -j REDIRECT --to-ports 80 
iptables -I INPUT 1 -i lo -s 192.168.100.66 -j ACCEPT 
iptables -I INPUT 2 -i eth1 -d 192.168.100.66 -j DROP 

これは、WANインターフェイス上192.168.100.66にルーティングされている他のすべてのパケットを拒否し、その会話を許可し、ループバックインターフェイス上のローカルWebサーバにポート80上の192.168.100.66からのパケットをリダイレクトします。すでにクォータを行うことができ、それ自体(だけでなく、xtables-アドオンの拡張子がquota2をセット提供する)iptablesの

iptables -t nat -D PREROUTING -s 192.168.100.66 -p tcp --dport 80 -j REDIRECT --to-ports 80 
iptables -D INPUT -i lo -s 192.168.100.66 -j ACCEPT 
iptables -D INPUT -i eth1 -d 192.168.100.66 -j DROP 
+0

3番目のルール(OUPTUT -s 192.168.100.66 -j REJECT)は、dst = 100.66というシナリオを考慮して、fwがsrc = 100.66のパケットを出力しないため、無意味です(効果なし)。 –

+0

WANインターフェイス上で100.66宛てのパケットをドロップするように編集しました。お返事ありがとうございます。 – resmon6

+0

ありがとうございます。そのクライアントにiptablesを復元するには、そのIPに関連するすべてのiptablesを削除し、iptablesのルールを1つずつ追加して再作成する必要があると考えました。しかし、今はすべて私のためにはっきりしている;) –

0

注:

は、あなたがそれらのファイアウォールエントリを削除したいと思うでしょう正常に戻るの接続を復元するには魔法を照合し、あなたが(再)@ resmon6としてREDIRECTと組み合わせるのprocfsを通じて値を設定することができます言う:

-t nat -s user1addr -m quota2 --name user1 ! --quota 0 -j REDIRECT... 
-t nat -s user2addr -m quota2 --name user2 ! --quota 0 -j REDIRECT... 

構文は今、間違いなく少し奇妙である(0は初期VALUですeのみと実行時の割り当てとは独立していますテスト否定!を含む。今すぐこれに気付くと、パッチは将来この混乱する構文を展開するかもしれません)。

関連する問題