web-dev-qa-db-ja.com

iptablesスクリプトはDD-WRTファイルシステムのどこに保存されますか?

私はASUS RT-N16ルーターを持っています。これは、オープンソースのDD-WRTファームウェアでフラッシュしたものです。私のsshログインによると、私は実行しています:

DD-WRT v24-sp2 mega (c) 2010 NewMedia-NET GmbH
Release: 08/07/10 (SVN revision: 14896)

Iptablesルールをカスタマイズできるようにしたいのですが、その前に、ブラウザー/ GUIインターフェース設定を操作するときに構成される組み込みルールの出力を確認したいと思います。カスタムファイアウォールルールを入力するためのブラウザーインターフェイスのファイアウォールスクリプトタブは知っていますが、出力を表示する場所が見つかりません。

本格的なLinuxシステムでは、iptablesルールは/etc/sysconfig/iptablesのような場所に保存されます。DD-WRTファイルシステムのどこにこれらを見つけることができますか?できる

iptables -L -vn --line-numbers

seeそれらの出力ですが、私が探しているのは、iptables-saveコマンドが出力する可能性のあるものより多くです...適切なルールをカスタムスクリプトに組み込みます。

このビルドにはiptables-saveコマンドがないことを理解しています。私は必ずしもコマンド自体を必要とするのではなく、それが生成する出力を必要とします。 /etc/sysconfig/iptablesのようなものがあったとしても、iptables-saveがあってもかまいません。 DD-WRTのビルドがiptables-saveのようなものになる可能性があることを確認しましたが、準備が整っているか、ルーターを再度フラッシュする準備ができているわけではありません。多分最後の手段として。

編集:スタートアップスクリプトなどの通常Linuxの場所(例:/etc/init.d/etc/rc、...)(少なくとも私がインストールしたDD-WRTのビルドでは)何も役に立たないようです。たとえば、/etc/init.dを見てみましょう。

[/etc/init.d]# ll
-rwxr-xr-x    1 root     root           84 Aug  7  2010 rcS
-rwxr-xr-x    1 root     root           10 Aug  7  2010 S01dummy
[/etc/init.d]# cat rcS
#!/bin/sh
for i in /etc/init.d/S*; do
  $i start 2>&1
done | logger -s -p 6 -t '' &
[/etc/init.d]# cat S01dummy
#!/bin/sh
6
PattMauler

探しています

/tmp/.ipt
/tmp/.rc_firewall

私が探していたものを正確に提供します:/etc/sysconfig/iptablesのようなファイルに通常あるiptablesルール

以前に見つけた this

dd if=/dev/mem | strings | grep -i iptables

...そして幸いなことに、それは削減されたDD-WRTファイルシステムで動作します。それは私が探していたものを正確に与えませんでしたが、それは私が他の方法を特定することができなかった(または少なくとも単一のコマンドでは)かなりの情報を出力しました。

の出力と比較することにより、実際に有効なものを判断する必要があります

iptables -L -vn --line-numbers
iptables -L -vn -t nat --line-numbers
iptables -L -vn -t mangle --line-numbers

また、grepコマンドが実際に実行する動作することも発見しました私が最後に試したときはうまくいかなかったと誓った。 Mea maxima culpa。]grepを使用して、

/lib/services.so

また、その中には豊富なiptables構成があります。

5
PattMauler

* WRTディストリビューションには多くのバリエーションがあり、さまざまなデバイスがさまざまな方法でセットアップされているため、これが構成に適用されるかどうかはわかりませんが、おそらくそうです。

基本的な* WRT構成には読み取り専用のルートファイルシステムがあるため、カスタマイズをファイルシステムに保存できません。代わりに、 startup[〜#〜] nvram [〜#〜] からさまざまな(バリアントに依存する)設定をロードします。これは、Key-Valueの単純なリストとして構成されていますペア。ファイアウォールルールは、バリアントに依存する NVRAMエントリ に保存されます。名前にfirewallが含まれているもの、または値にiptablesが含まれているものなどを探します。

ssh ROUTER_HOSTNAME nvram export --dump >nvram.txtを実行して、ルーターのNVRAMコンテンツを自由に探索してください。

私は同じ問題を抱えており、iptablesからiptables-saveへのシンボリックリンクを作成しようとしましたが、wikiページ DD-WRT_V24_.26_iptables-save でアドバイスされましたが、実際には私のために働かない。

これを解決するために、/tmp/.iptの内容を示すシェルファイルを作成しました。

/ jffs/bin/iptables-save

#!/bin/sh
cat /tmp/.ipt

注:Wikiページ( DD-WRT_V24_.26_iptables-save )は「ファイアウォールビルダー」に関するものです-「ファイアウォールビルダー」でこのソリューションをテストしていません。

1
Diblo Dk