特定のポートで特定の国からの TCP トラフィックのみを許可し、残りのトラフィックを iptables を使用して別の IP/ポートにリダイレクトする方法はありますか?
答え1
動作させる前に、geoip データベースを設定して更新する必要があります。
iptables -I INPUT -m geoip -p tcp --dport ### --src-cc CN -j ACCEPT
iptables -A PREROUTING -m geoip -p tcp --dport ### --src-cc ! CN -j DNAT --to-destination 1.1.1.1:333
1.1.1.1 を自分の IP に置き換え、333 を任意のポートに置き換えます。
役に立つチュートリアルは次のとおりです: http://xmodulo.com/block-network-traffic-by-country-linux.html どうやらこのリンクは消えてしまったようですので、インターネット アーカイブ用にリンクを追加します。
IP アドレスの所有者や国が変更されることがあるため、データベースを定期的に更新する必要があります。
答え2
正しい構文は次のとおりです。
iptables -I INPUT -m geoip -p tcp --dport xxx --src-cc CN -j ACCEPT
iptables -A PREROUTING -p tcp --dport xxx --src-cc ! CZ,SK -j DNAT --to-destination 1.1.1.1:333
しかし、あなたの答えは正しかったです。