GNU/Linux >> Linux の 問題 >  >> Linux

GeoIPとiptablesがある国からのIP範囲をブロックする

この記事では、GeoIPデータベースやLinux®iptablesを使用するなど、特定の国のIPから発信されるトラフィックをブロックする方法について説明します。また、特定の国から発信されたDOSおよびDDoS攻撃を防ぐためにも使用できます。

前提条件

GeoIPモジュールがiptables-addonsとともにインストールされていることを確認してください。

GeoIPは、特定の組織、都市、州、国に割り当てられたIPアドレスでマッピングされた地理的な場所に対応するIPアドレスのコレクションです。

iptables は、ポリシーチェーンを使用してトラフィックを許可またはブロックするコマンドラインファイアウォールユーティリティです。接続がシステム上でそれ自体を確立しようとすると、iptablesはそのリストで一致するルールを探します。見つからない場合は、デフォルトのアクションに頼ります。

また、 xt_geoipと呼ばれるモジュールの助けを借りて 、iptablesで構成されます 拡張機能(xtables-アドオン )および GeoIP データベースでは、国ベースのトラフィックフィルタリングを実行して、特定の国からのトラフィックをブロックまたは許可することができます。

依存関係をアップグレードしてインストールする

Linuxシステムをアップグレードし、必要なxtables-addons依存関係をインストールする必要があります。マシンで実行しているディストリビューションに対応する次のコマンドを実行します。

Debianベースのシステム(Debian®、Ubuntu®オペレーティングシステム)

apt-get update && apt-get upgrade # apt-get install iptables-dev xtables-addons-common libtext-csv-xs-perl pkg-config# ./configure

RedHatベースのシステム(CentOS®、RHEL®、Fedora®)

yum update # yum install gcc-c++ make automake kernel-devel-`uname -r` wget unzip iptables-devel perl-Text-CSV_XS# make

xtables-addonsをインストールします

次に、 xtables-addonsをインストールします あなたのマシンで。 wgetを使用して、公式のxtables-addonsプロジェクトサイトから最新のtarballをダウンロードします。 。

ファイルをダウンさせたら、tarballを抽出します。次に、コンパイルしてマシンにインストールします。

# wget http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons/xtables-addons-2.13.tar.xz
# tar xf xtables-addons-2.13.tar.xz
# cd xtables-addons-2.13
# ./configure
# make
# make install

SeLinuxによるモジュールのロードを許可する(RedHatベースのシステム)

RedHat®ベースのLinuxディストリビューション(CentOS、RHEL、Fedoraなど)にはselinuxがあります デフォルトで有効になっていますが、selinuxを調整する必要があります ポリシー。次のコマンドを実行しない場合は、seLinux iptablesを防ぎます xt_geoipの読み込みから モジュール。

# chcon -vR --user=system_u /lib/modules/$(uname -r)/extra/*.ko
# chcon -vR --type=lib_t /lib64/xtables/*.so

GeoIPデータベースをインストールします

xt_geoipというモジュール xtables-アドオンが付属しています GeoIPをダウンロードする拡張機能 MaxMind®からデータベースを作成し、 xt_geoipによって認識されるバイナリ配置に変換します 。ビルドして、必要なパスに移動する必要があります。この例では、パスは / usr / share / xt_geoip /です。

# cd geoip
# ./xt_geoip_dl
# ./xt_geoip_build GeoIPCountryWhois.csv
# mkdir -p /usr/share/xt_geoip/
# cp -r {BE,LE} /usr/share/xt_geoip/
国との間のトラフィックをブロックする

これで、geoipを使用できます ファイアウォールユーティリティプログラム、iptablesのいずれかを含むモジュール 、またはfirewalld

Iptablesの使用

このセクションでは、iptablesを使用するための基本的な構文について説明します。 とgeoip 国から発信または国に向かうトラフィックをブロックするモジュール。国の代わりに2文字のISO3166コードを使用する必要があります。たとえば、RUを使用します ロシア連邦の場合、US 米国の場合、IN インドの場合、BR ブラジルなど。

# iptables -m geoip --src-cc country[,country...] --dst-cc country[,country...]

カナダ(CA)および米国(US)からの着信トラフィックをブロックするには、次のiptablesを使用します コマンド:

# iptables -I INPUT -m geoip --src-cc CA,US -j DROP

サーバー上の米国以外のすべての着信トラフィックをブロックするには、次のコマンドを実行します。

# iptables -I INPUT -m geoip ! --src-cc US -j DROP

中国(CN)宛ての発信トラフィックをブロックするには、次のコマンドを実行します。

# iptables -A OUTPUT -m geoip --dst-cc CN -j DROP
firewalldの使用

systemdを実行している場合 ベースのシステムであり、firewalldがあります iptablesのフロントエンドコントローラーとして 、次のfirewalldを使用できます トラフィックをブロックするコマンド:

# firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -m geoip --src-cc CA,US -j DROP
# firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -m geoip ! --src-cc US -j DROP
# firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -m geoip --dst-cc CN -j DROP

Linux
  1. ポート80を除くすべてのポートをブロックし、特定のIPにポート22を与える単純なiptablesファイアウォールスクリプト

  2. LvmとDm-cryptでトリミングしますか?

  3. ブロックサイズとクラスターサイズの違いは?

  1. CentOS7でiptablesを使用する

  2. Linux から添付ファイルと本文を含むメールを送信する方法

  3. CentOS / RHEL :iptables を使用して受信ポートと送信ポートをブロックする方法

  1. Linuxターミナルでリダイレクトを使用して、どこからでもデータを読み書きできます

  2. IPTables と DHCP に関する質問ですか?

  3. IPTables を使用した FTP の許可