GNU/Linux >> Belajar Linux >  >> Panels >> Webmin

Memblokir Berdasarkan Negara

Ada kalanya Anda ingin membatasi akses dan memblokir seluruh negara. Mengapa? Karena ada saatnya diperlukan.

Berikut skrip yang membuat skrip….

Ini mengunduh rentang IP dari www.ipdeny.com, bekerja melalui daftar dua kode negara huruf untuk membuat skrip bash yang akan:

Hapus rantai iptables yang ada.
Membuat rantai baru “BadCountry”.
Menambahkan ini ke atas rantai INPUT untuk meneruskan apa pun pada port 80 ke rantai BadCountry.
Menambahkan semua IP memblokir di negara yang relevan ke rantai BadCountry dengan penolakan/tidak dapat dijangkau.

Jangan ragu untuk menyesuaikannya dengan kebutuhan Anda.

(Oh, dan Anda juga dapat memanggil skrip dengan parameter undo dan itu akan menghapus rantai.)

#!/bin/bash

PARAM=${1}

if [ "${PARAM}" == "undo" ] ; then

  iptables -D INPUT -p tcp -m tcp --dport 80 -j BadCountry
  iptables --flush BadCountry
  iptables -X BadCountry

else

  echo $(date) IP Blocking GLOBAL START
  
  #First call ourselves to undo (delete the chain)
  ${0} undo

  #This is where the executable script that does the table update will live.
  TABLESCRIPT=/root/scripts/countrytables.sh

  #Change this to a folder you can write to
  cd /root/ipblocks
  
  #and delete any zone file tar/zip files  
  rm -f all-zones.tar.*

  echo $(date) Download Countries START

  wget "http://www.ipdeny.com/ipblocks/data/countries/all-zones.tar.gz"

  tar -zxvf all-zones.tar.gz > /dev/null

  echo $(date) Download Countries FINISH

  echo $(date) Build Countries START

  echo "#!/bin/bash" > ${TABLESCRIPT}

  echo "iptables -N BadCountry" >> ${TABLESCRIPT}

  echo "iptables -I INPUT -p tcp -m tcp --dport 80 -j BadCountry" >> ${TABLESCRIPT}

  echo "iptables -A BadCountry -j RETURN" >> ${TABLESCRIPT}

  for COUNTRY in hk cn in id kr my ph tw th vn pk ; do
    awk {'print "iptables -I BadCountry -s "$1" -j REJECT --reject-with icmp-port-unreachable"'} ${COUNTRY}.zone >> ${TABLESCRIPT}
  done

  echo $(date) Build Countries FINISH

  echo $(date) Updating iptables START

  #Make our script executable
  chmod 700 ${TABLESCRIPT}

  #And now execute it
  ${TABLESCRIPT}

  echo $(date) Updating iptables FINISH

fi
# Elvis Has Left The Server.

Webmin
  1. Wildcard Di Dalam Kutipan?

  2. ${!foo} Dan Zsh?

  3. Centos – Memblokir Koneksi Keluar Dengan Iptables?

  1. Apa yang Digema $? Mengerjakan??

  2. Gmail Memblokir Mutt?

  3. Pembaruan Otomatis?

  1. Tidak bisakah Echo $catalina_home?

  2. Pengenalan iptables

  3. Variabel "Bersarang" di bash