私はプロジェクトを進めています。ネットワークトラフィックを制御するためにiptablesルールを作成しようとしています。
いくつかのルールを書きました。作業中のボックスに適用しようとすると、ロックまたはエラーが発生します。
一部のルールは適用されますが、順序はランダムに見えます。
私はiptablesバージョン1.3.5を使ってcentos 5を使っています。
以下は私が使用するルールです。
私が受け取ったエラーのいくつかは次のとおりです。
Starting firewall:
Dropped all existing rules
Set Policy to drop all traffic
Added SSH rules
./firewall.sh: line 64: -A: command not found
./firewall.sh: line 65: -A: command not found
Added HTTP traffic
allow bidirectional sql traffic
iptables v1.3.5: host/network `eth3' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.3.5: host/network `eth3' not found
Try `iptables -h' or 'iptables --help' for more information.
allow ICMP in and out
./firewall.sh: line 84: -A: command not found
./firewall.sh: line 85: $,iptables: command not found
完璧。
これはifconfigの出力です:
eth0 Link encap:Ethernet HWaddr 00:15:17:57:C1:30
inet addr:10.1.3.2 Bcast:10.1.3.255 Mask:255.255.255.0
inet6 addr: fe80::215:17ff:fe57:c130/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:21 errors:0 dropped:0 overruns:0 frame:0
TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5290 (5.1 KiB) TX bytes:5348 (5.2 KiB)
Interrupt:169 Memory:fe9e0000-fea00000
eth2 Link encap:Ethernet HWaddr 00:04:23:9F:0C:C6
inet addr:192.168.1.34 Bcast:192.168.3.255 Mask:255.255.252.0
inet6 addr: fe80::204:23ff:fe9f:cc6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1285 errors:0 dropped:0 overruns:0 frame:0
TX packets:1079 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:166472 (162.5 KiB) TX bytes:141002 (137.6 KiB)
eth3 Link encap:Ethernet HWaddr 00:15:17:57:C1:32
inet addr:10.1.2.3 Bcast:10.1.2.255 Mask:255.255.255.0
inet6 addr: fe80::215:17ff:fe57:c132/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:19 errors:0 dropped:0 overruns:0 frame:0
TX packets:29 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5203 (5.0 KiB) TX bytes:5962 (5.8 KiB)
Interrupt:90 Memory:fe7e0000-fe800000
eth4 Link encap:Ethernet HWaddr 00:15:17:57:C1:33
inet addr:10.1.1.2 Bcast:10.1.1.255 Mask:255.255.255.0
inet6 addr: fe80::215:17ff:fe57:c133/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:20 errors:0 dropped:0 overruns:0 frame:0
TX packets:26 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5250 (5.1 KiB) TX bytes:5747 (5.6 KiB)
Interrupt:122 Memory:fe7a0000-fe7c0000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:55 errors:0 dropped:0 overruns:0 frame:0
TX packets:55 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4902 (4.7 KiB) TX bytes:4902 (4.7 KiB)
ETH2を台無しにすることはできません。常に上昇する必要があります。接続をブロックすると、SSHセッションは終了します。私はdeterlabというシステムを使用しています。私は大学生で、このシステムを使用してプロジェクトをテストできます。 ETH2はシステム制御ネットワークです。
助けてくれてありがとう。気になる点はコメントで残していただければ答えていただきます。
ベストアンサー1
これは単純なスクリプトのデバッグです。スクリプトを実行すると、-x
変数が拡張されていることがわかります。
bash -x testcode.sh
(filename)を実行するtestcode.sh
と、以下のように64行目が表示されます。
-A INPUT -i eth3 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
その理由は、この行が大文字と小文字を区別するために.(Unix / Linux CLIのほとんどの項目のように)$iptables
代わりに.variablesを操作として使用するためです。$IPTABLES
引き続き、iptables
79行のパラメータは構文上正しくありません。
$IPTABLES -A INPUT -s $ETH -p tcp --dport 3306 -j ACCEPT
この-s
表示は予想されます。ソースアドレス/サブネット$ETH3
あなたはそれを与えたインターフェース名。おそらく-i $ETH
?
これで85行目です。行の先頭が完全に破損しています(初期文字、変数の大文字の使用が間違っています)。
$,iptables -A OUTPUT -p icmp --icmp-type 0 -s $ETH -d 10.1.2.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT