GNU/Linux >> Linux Esercitazione >  >> Panels >> Webmin

Blocco per Paese

Ci sono momenti in cui vorrai limitare l'accesso e bloccare interi paesi. Come mai? Perché ci sono momenti in cui è necessario.

Ecco uno script che crea uno script….

Scarica gli intervalli IP da www.ipdeny.com, utilizza un elenco di codici paese di due lettere per creare uno script bash che:

Elimina una catena iptables esistente.
Crea una nuova catena "BadCountry".
Aggiunge questo nella parte superiore della catena INPUT per passare qualsiasi cosa sulla porta 80 alla catena BadCountry.
Aggiunge tutto l'IP blocchi nei paesi rilevanti per la catena BadCountry con un rifiuto/irraggiungibile.

Sentiti libero di adattarlo alle tue esigenze.

(Oh, e puoi anche chiamare lo script con il parametro annulla ed eliminerà la catena.)

#!/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. Cheat sheet dei comandi di IPtables

  2. Blocco di tutto il traffico dai singoli paesi utilizzando IPSet e IPTables

  3. Centos – Bloccare i collegamenti in uscita con Iptables?

  4. Cosa fa Eco $? Fare??

  5. Mutt blocco di Gmail?

Come installare Iptables su CentOS 7

Come svuotare le regole di iptables

Come svuotare le regole di iptables

16 Esempi di comandi Echo in Linux

Comando Echo in Linux

Variabili di "nidificazione" in bash