GNU/Linux >> Belajar Linux >  >> Linux

Blokir rentang IP dari negara-negara dengan GeoIP dan iptables

Artikel ini menjelaskan cara memblokir lalu lintas yang berasal dari IP negara tertentu, seperti menggunakan database GeoIP dan iptables Linux®. Anda juga dapat menggunakannya untuk mencegah serangan DOS dan DDoS yang berasal dari negara tertentu.

Prasyarat

Pastikan modul GeoIP diinstal dengan iptables-addons.

GeoIP adalah kumpulan alamat IP yang sesuai dengan lokasi geografis yang dipetakan dengan alamat IP yang dialokasikan untuk organisasi, kota, negara bagian, dan negara tertentu.

iptables adalah utilitas firewall baris perintah yang menggunakan rantai kebijakan untuk mengizinkan atau memblokir lalu lintas. Ketika koneksi mencoba membangun dirinya sendiri di sistem Anda, iptables mencari aturan yang cocok dalam daftarnya. Jika tidak menemukannya, ia menggunakan tindakan default.

Juga, dengan bantuan modul bernama xt_geoip , yang terdiri dari iptables ekstensi (xtables-addon ) dan GeoIP database, kami dapat melakukan pemfilteran lalu lintas berbasis negara untuk membantu memblokir atau mengizinkan lalu lintas dari negara tertentu.

Tingkatkan dan instal dependensi

Anda perlu memutakhirkan sistem Linux Anda dan menginstal dependensi xtables-addons yang diperlukan. Jalankan perintah berikut yang sesuai dengan distribusi yang Anda jalankan di mesin Anda.

Sistem berbasis Debian (Debian®, sistem operasi Ubuntu®)

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

Sistem berbasis 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

Instal xtables-addons

Selanjutnya, instal xtables-addons pada mesin Anda. Unduh tarball terbaru dari situs proyek xtables-addons resmi menggunakan wget .

Setelah Anda down file, ekstrak tarball. Kemudian kompilasi dan instal di mesin Anda.

# 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

Izinkan SeLinux dari memuat modul (Sistem berbasis RedHat)

Distribusi Linux berbasis RedHat® (seperti CentOS, RHEL, Fedora) memiliki selinux diaktifkan secara default, tetapi Anda harus menyesuaikan selinux aturan. Jika Anda tidak menjalankan perintah berikut, seLinux mencegah iptables dari memuat xt_geoip modul.

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

Instal database GeoIP

Modul bernama xt_geoip dilengkapi dengan xtables-addons ekstensi, yang mengunduh GeoIP database dari MaxMind® dan mengubahnya menjadi susunan biner yang dikenali oleh xt_geoip . Anda harus membangun dan pindah ke jalur yang diperlukan. Dalam contoh ini, jalurnya adalah /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/

Blokir lalu lintas ke dan dari suatu negara

Sekarang Anda dapat menggunakan geoip modul dengan salah satu program utilitas firewall Anda, iptables , atau firewalld .

Menggunakan Iptables

Bagian ini menyediakan sintaks dasar untuk menggunakan iptables dan geoip modul untuk memblokir lalu lintas yang berasal dari atau ditujukan ke suatu negara. Anda harus menggunakan kode ISO3166 dua huruf sebagai ganti negara. Misalnya, gunakan RU untuk Federasi Rusia, US untuk Amerika Serikat, IN untuk India,BR untuk Brasil, dan seterusnya.

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

Untuk memblokir lalu lintas masuk dari Kanada (CA) dan Amerika Serikat (AS), gunakan iptables berikut perintah:

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

Untuk memblokir semua lalu lintas non-AS yang masuk di server Anda, jalankan perintah berikut:

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

Untuk memblokir lalu lintas keluar yang ditujukan ke China (CN), jalankan perintah berikut:

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

Menggunakan firewalld

Jika Anda menjalankan systemd -sistem berbasis dan memiliki firewalld sebagai pengontrol frontend untuk iptables , Anda dapat menggunakan firewalld berikut ini perintah untuk memblokir lalu lintas:

# 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. Memblokir semua lalu lintas dari masing-masing negara menggunakan IPSet dan IPTables

  2. Memblokir daftar hitam host dan iptables

  3. Skrip firewall iptables sederhana untuk memblokir semua port kecuali port 80 dan memberikan port 22 ke ip tertentu

  1. Pangkas Dengan Lvm Dan Dm-crypt?

  2. Menjalankan Script Dengan “. ” Dan Dengan “sumber”?

  3. Bash Auto_completion Dengan Xubuntu Dan Xrdp Dari Windows?

  1. Blokir Alamat IP dan Negara menggunakan .htaccess

  2. Gunakan iptables dengan CentOS 7

  3. Cara Mengirim Email Dengan Lampiran dan Isi dari Linux