Ubuntu IPTablesは1か国のみを許可します


10

したがって、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

回答:


7

地理位置情報のiptablesサポートを追加する必要があります。そのためには、次の手順を実行する必要があります。

# apt-get install xtables-addons-common
# mkdir /usr/share/xt_geoip
# apt-get install libtext-csv-xs-perl unzip
# /usr/lib/xtables-addons/xt_geoip_dl
# /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv

これにより、次のようなことが可能になります。

iptables -A OUTPUT -m geoip --dst-cc CN -j DROP

これにより、中国(CN)への発信トラフィックがブロックされます。ルールの複雑さはあなた次第です。基本的にスクリプトは必要ありません。適用するルールを書き留めてから、iptables-save再起動するたびにロードされるようにしてください。


ありがとうございました!別の質問があります。上記の質問を更新して反映させました。たまたまその答えを知っていますか?
オースティンクレーゲル2015年

ルールは機能しますが、方向を変更するOUTPUT必要がありますが、今はそうであり、それをに設定し、代わりにINPUT使用する必要があります。しかし、質問が他の既存のルールと組み合わせて機能するかどうかである場合、答えは「はい」です。--dst-cc--src-cciptables
nKn 2015年

xt_geoip_dlコマンドもはや作品、それはdoesntのはもう存在していることのzipが必要です
マルタイン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.