iptables geoipは私がリストした国を除くすべての国をブロックしますが、適切な更新もブロックしますか?

iptables geoipは私がリストした国を除くすべての国をブロックしますが、適切な更新もブロックしますか?

IDがすべての接続(米国とオーストラリアの接続を除く)をブロックすると考え、その部分は機能しましたが、もはや適切な更新を実行できず、端末からGoogleにpingすることができませんでした。

私がここで何を見逃しているのでしょうか? geoipラインを削除すると、すべてがうまくいきます...しかし、aptミラーはアメリカにあり、私が運営するdigitaloceanサーバーでホストされています...

助けてくれてありがとう。

iptables -N LOGGING
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -I INPUT -m geoip ! --src-cc AU,US -j LOGGING
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "iptables-dropped: " --log-level 4
iptables -A LOGGING -j DROP

Googleにpingを送信してapt-getをインストールした結果は次のとおりです。

Jan  3 12:18:33 wifi kernel: [ 6083.707903] iptables-dropped: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.53 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=35873 DF PROTO=UDP SPT=51564 DPT=53 LEN=64
Jan  3 12:19:13 wifi kernel: [ 6123.745110] iptables-dropped: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.53 LEN=67 TOS=0x00 PREC=0x00 TTL=64 ID=38624 DF PROTO=UDP SPT=36189 DPT=53 LEN=47
Jan  3 12:19:33 wifi kernel: [ 6144.125699] iptables-dropped: IN=eth0 OUT= MAC=42:40:27:b3:46:91:fe:00:00:00:01:01:08:00 SRC=117.50.110.5 DST=198.199.71.101 LEN=60 TOS=0x00 PREC=0x00 TTL=42 ID=59012 DF PROTO=TCP SPT=47926 DPT=80 WINDOW=28280 RES=0x00 SYN URGP=0
Jan  3 12:20:04 wifi kernel: [ 6175.132445] iptables-dropped: IN=eth0 OUT= MAC=42:40:27:b3:46:91:fe:00:00:00:01:01:08:00 SRC=117.50.110.5 DST=198.199.71.101 LEN=60 TOS=0x00 PREC=0x00 TTL=44 ID=734 DF PROTO=TCP SPT=33934 DPT=80 WINDOW=28280 RES=0x00 SYN URGP=0

要求に応じて iptables-save -c 出力を使用して、次の操作を行います。

:INPUT ACCEPT [33:1936]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5:260]
:LOGGING - [0:0]
[27:2919] -A INPUT -m geoip ! --source-country AU,US  -j LOGGING
[269:136906] -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j     ACCEPT
[0:0] -A INPUT -i lo -j ACCEPT
[0:0] -A INPUT -p tcp -m tcp --dport 2010 -j ACCEPT
[0:0] -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
[0:0] -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
[261:18115] -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
[22:2420] -A OUTPUT -o lo -j ACCEPT
[5:550] -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "iptables-dropped: "
[27:2919] -A LOGGING -j DROP

ベストアンサー1

現在のスクリプト入れる最初のルールとして、このルールはオーストラリアとアメリカのパケットのみを許可します。これには、ループバックインターフェイスで使用される127.0.0.0/8のパケットは含まれません。したがって、後で出る他のすべてのルールは使用されません。必要なパケットが廃棄されました。

たとえば、ローカルDNSサーバー127.0.0.53のクライアント127.0.0.1に関連するDNS解決は失敗し、ホスト名を解決する必要があるクエリでは正しく機能しません。


変える:

iptables -I INPUT -m geoip ! --src-cc AU,US -j LOGGING

そして:

iptables -A INPUT -m geoip ! --src-cc AU,US -j LOGGING

それでもスクリプトの同じ場所に留めてください。これにより、以前に確立された接続からのパケットのみを許可するステートフルルールをバイパスしません。地域的に始まったものを含む出るオーストラリアと米国以外の地域接続ローカル DNS サーバーを含むさまざまなローカルサービスに必要なループバックインターフェイスルール。サービス固有のルールが許可されるまで、オーストラリア/米国で発生していないコンテンツはブロックされ続けます。

また、簡単に言えば、OUTPUTチェーンのデフォルトポリシーはACCEPTであり、DROPターゲットを持つルールがないため、OUTPUTチェーンの2つのルールは現在役に立ちません。

おすすめ記事