したがって、http(80)およびhttps(443)ポートを除くすべてのポートへのすべてのトラフィックをドロップし、国xからの他のすべてのポートでのトラフィックのみを許可するスクリプトをネットで探していました(国xは米国です)。
すべての国のすべてのIPを追加するのではなく、自分の国のIPを許可して、外の世界からのほとんどすべての他のトラフィックをブロックします。国外の誰もssh、ftp、smtpなどにアクセスするべきではありません。私以外に。これが変わる場合は、近づいたときに特別なケースを追加します。
サイドノート
IPテーブルを使用して国ごとにIPを禁止するスクリプトが含まれている質問を見つけたのに注意する必要がありますが、それは私がしなければならない追加の挿入の多くです。
ベストアンサーとしてマークされたスクリプトは、それらのIPからのすべてのトラフィックをブロックします。80と443以外のすべてのポートへのアクセスをブロックしたいだけです。
更新
次のルールで、
iptables -A OUTPUT -m geoip --dst-cc CN -j DROP
それを変更して次のようなことができるでしょうか
iptables -A OUTPUT -m geoip --dst-cc CN --dport 80 -j ACCEPT
iptables -A OUTPUT -m geoip --dst-cc CN --dport 443 -j ACCEPT
iptables -A OUTPUT -m geoip --dst-cc CN -j DROP
これにより、中国からのIPがポート80とポート443にアクセスできるようになり、残りは破棄されると思います。この仮定は正しいでしょうか?そうでない場合、なぜでしょうか?
アップデート2
いじくり回した後、Ubuntuの私のバージョンは--dport
属性が好きではないことがわかりました。したがって、Ubuntu 14+を実行しているものを使用する代わりに(少なくとも、一部のマシンにUbuntu 14.04、14.10、および15.04のみがインストールされています)を使用する必要があります。-p PORT_NUMBER_OR_NAME
だからそれは次のようになります
iptables -A OUTPUT -m geoip --dst-cc CN -p 443 -j ACCEPT
または着信トラフィックの場合、
iptables -A INPUT -m geoip --src-cc CN -p 443 -j ACCEPT