着信ACCEPTすべてのiptablesルールがまだ表示されている


8

私はこのガイドに従っています:http : //isalazyadmin.net/2009/07/02/configuring-a-basic-firewall-for-debian-linux/

リストにiptablesが表示されていますが、サーバーはすべての着信接続を受け入れているようです(つまり、これらのポートを許可していなくても、ビットトレントピアはまだ接続しています)。

/etc/iptables.rules

*filter

# This will allow all loopback (lo0) traffic and drop all traffic to 127/8
# that does not use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

#  This accepts all already established connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# This allows all outbound traffic
-A OUTPUT -j ACCEPT

# This will allow HTTP and HTTPS connections from anywhere, this are the normal
# ports used for a web server
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

# Allow SSH connections
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

# Allow bittorrent/rtorrent ports, from ~/.rtorrent.rc
## -A INPUT -p tcp --dport 8071:8079 -j ACCEPT


# Allow ICMP ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# Reject all other inbound traffic
-A INPUT -j REJECT
-A FORWARD -j REJECT

COMMIT

再起動後にiptables -Lを実行しても、最初のルールとしてこれが表示されます。

iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere  

これがどこから来ているのかわかりません。

完全なリストは次のとおりです。

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
REJECT     all  --  anywhere             loopback/8          reject-with icmp-port-unreachable 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:https 
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request 
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere

iptables-saveの出力は次のとおりです。

# Generated by iptables-save v1.4.8 on Fri Jan 11 09:54:19 2013
*raw
:PREROUTING ACCEPT [6701:942626]
:OUTPUT ACCEPT [8927:989420]
COMMIT
# Completed on Fri Jan 11 09:54:19 2013
# Generated by iptables-save v1.4.8 on Fri Jan 11 09:54:19 2013
*nat
:PREROUTING ACCEPT [3281:284415]
:INPUT ACCEPT [9:720]
:OUTPUT ACCEPT [1758:148908]
:POSTROUTING ACCEPT [1758:148908]
COMMIT
# Completed on Fri Jan 11 09:54:19 2013
# Generated by iptables-save v1.4.8 on Fri Jan 11 09:54:19 2013
*mangle
:PREROUTING ACCEPT [6701:942626]
:INPUT ACCEPT [6701:942626]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [8928:989684]
:POSTROUTING ACCEPT [8928:989684]
COMMIT
# Completed on Fri Jan 11 09:54:19 2013
# Generated by iptables-save v1.4.8 on Fri Jan 11 09:54:19 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT 
-A INPUT -d 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT 
-A INPUT -j REJECT --reject-with icmp-port-unreachable 
-A FORWARD -j REJECT --reject-with icmp-port-unreachable 
-A OUTPUT -j ACCEPT 
COMMIT
# Completed on Fri Jan 11 09:54:19 2013

iptables -vLの出力は次のとおりです。

$ sudo iptables -vL
[sudo] password for ettinger: 
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 8303 1206K ACCEPT     all  --  lo     any     anywhere             anywhere            
    0     0 REJECT     all  --  !lo    any     anywhere             loopback/8          reject-with icmp-port-unreachable 
  12M 7191M ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
   18   980 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:www 
    7   344 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:https 
  379 22728 ACCEPT     tcp  --  any    any     anywhere             anywhere            state NEW tcp dpt:ssh 
18316 1110K ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpts:8071:8079 
 120K   15M ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:6881 
24809 1489K ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:9001 
  688 35244 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:9030 
  874 73072 ACCEPT     icmp --  any    any     anywhere             anywhere            icmp echo-request 
12705  871K REJECT     all  --  any    any     anywhere             anywhere            reject-with icmp-port-unreachable 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 REJECT     all  --  any    any     anywhere             anywhere            reject-with icmp-port-unreachable 

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  14M   12G ACCEPT     all  --  any    any     anywhere             anywhere      

最初のINPUTルールに気づきませんACCEPT all -- anywhere anywhereか?
ott-- 2013年

1
起動時にルールが読み込まれていないようです。あなたは(チュートリアルの著者が示すように)あなたの/ etc / network / interfacesファイルに行「プリアップ</etc/iptables.rulesをiptablesが復元」を追加していることを確認します
mzet

1
@ott:インターフェースのみに関係するので問題ありません
mzet 2013年

2
でリスティングをやり直すことはできますiptables -vLか?
ott-- 2013年

あなたのルールとあなたのポストブート状態は実際には一致していますが、それは問題ではありません-私の答えを見てください;)
goldilocks

回答:


17

あなたが心配している行:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere       

これはあなたのルールで実際にこれが原因です:

-A INPUT -i lo -j ACCEPT

インターフェースはルールでは明示的ですが、-L出力では明示的でないことに注意してください。そのルールをリストの中央に移動しiptables-restore、「すべてを受け入れる-どこでも」が下に移動したことを確認してください。ルールを少し変更してみてください:

-A INPUT -i lo -s 127.0.0.1 -j ACCEPT

そして-L出力はなります:

target     prot opt source                 destination  
ACCEPT     all  --  localhost.localdomain  anywhere

「localhost.localdomain」は、からの127.0.0.1のホスト名になります/etc/hosts。これにより、少なくともそのルールがどこから来たのかが明確になります。

また、とのインターフェースを含む、より詳細な情報を見ることができますiptables -vL

ところで、あなたはあなたのルールを始めることを望むかもしれません:

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]

安全のためのフォールスルーとして、デフォルトですべてをドロップします。ただし、これはマナーが悪いと見なされているため(下記のGillesのコメントにあるリンクを参照)、を使用する各テーブルの最終的なキャッチをすべて作成することをお勧めします-j REJECT --reject-with icmp-net-prohibited


4
参考までにiptables -vL、インターフェースを含む完全なルールを表示します。したがって、このような混乱を解消します。
derobert 2013年

ありがとう@derobert-その表示を忘れていた。これを回答に編集します!
goldilocks 2013年


-vスイッチの@derobert +1 。私のファイアウォールルールは思ったほど悪くはありません:)
Matt Borja

1

完全性の問題と同様に、今後この問題を回避-vするには、テーブルを表示するときに詳細なコマンドラインオプションを使用します。このように:

iptables -Lv

出力には、影響を受けるインターフェイスが「in」および「out」列に含まれるはずです。

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
  151 13073 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
  126 33414 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

-1

問題はINPUTチェーンのこの部分にあります:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere

特に最後の行で。この行はすべてのことを受け入れるので、この行の後のすべては不要です。

次のコマンドを使用して、ルールからこの行を削除する必要があります。

iptables -D INPUT 1

ファイアウォールルールを検査する必要があります。ルールは、この行を追加するルールです。


7
「すべてを受け入れる-どこでも」は、「-A INPUT -i lo -j ACCEPT」というルールに由来するため、loインターフェースのみに関係するため、問題ではありません。
mzet 2013年

私はすべてを削除しましたが、それでもiptables -Lで表示されます
チョービー

わかりました、それは他の誰かが言及したことです。ありがとう。無視しても問題ありません。
2013年

1
@chovy:ルールは大丈夫です。問題は、再起動後に復元することです。この手順に従ってください:debian-administration.org/articles/445
mzet
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.