Sincronizando seu hosts.deny com blacklist online

Publicado por Fernando (última atualização em 25/11/2013)

[ Hits: 5.552 ]

Homepage: https://github.com/phoemur/

Download synchosts.sh

Download synchosts.py (versão 2)




Este script atualiza o seu /etc/hosts e /etc/hosts.deny baseado na blacklist localizada em: http://someonewhocares.org/hosts/
Desta forma você irá bloquear diversos sites maliciosos, inclusive aqueles da oix.net.

  



Versões atualizadas deste script

Versão 2 - Enviado por Fernando em 23/11/2013

Changelog: Implementação do mesmo script em Python 3.

Download synchosts.py


Esconder código-fonte

#!/bin/sh
#
# This script was made to update your /etc/hosts and /etc/hosts.deny with a blacklist located in http://someonewhocares.org/hosts/
# Written by phoemur - apr/2013

#############
# Variables #
#############

TMP_DIR=/tmp
ROOT_UID=0 #Only users with $UID 0 have root privileges.
E_NOTROOT=87 #Non-root exit error.
E_INVALID=88 #Invalid file exit
E_ARGUMENTS=89 # Invalid arguments exit
WGET=`which wget`
SED=`which sed`

HOSTS_URL=http://someonewhocares.org/hosts/hosts #File already in txt format

# If possible, log events in /var/log/messages:
if [ -f /var/run/syslogd.pid -a -x `which logger` ]; then
  LOGGER=`which logger`
else # output to stdout/stderr:
  LOGGER=/bin/cat
fi

######################
# To be or not to be #
######################

if [ "$UID" -ne "$ROOT_UID" ]; then
  echo "Must be root to run this script."
  exit $E_NOTROOT
fi

#############
# Functions #
#############

get_hosts() {
if [ -f "$TMP_DIR/hosts" ]; then
  mv $TMP_DIR/hosts $TMP_DIR/hosts.oldtmp
fi

$WGET -c $HOSTS_URL -O $TMP_DIR/hosts
}

update_etc() {
  diff -q $TMP_DIR/hosts /etc/hosts
  if [ "$?" -eq 0 ]; then
    echo "It is not necessary to update your hosts file" | $LOGGER
    echo "Your hosts are already up-to-date!!!"
  else
    grep -q ^127.0.0.1 $TMP_DIR/hosts > /dev/null # Validating the downloaded file
    if [ ! $? ]; then
      echo "The hosts file downloaded is invalid"
      exit $E_INVALID
    else # Upgrading
      cp /etc/hosts /etc/hosts.old
      cp $TMP_DIR/hosts /etc/hosts
      cp /etc/hosts.deny /etc/hosts.deny.old
      $SED 's/^127\.0\.0\.1/ALL:/g;/localhost/d' $TMP_DIR/hosts > /etc/hosts.deny
      echo "There is new version of hosts avaiable which was already upgraded" | $LOGGER
      $SED -n '/Last.updated/{s/^#.*updated: \(.*$\)/\1/p}' $TMP_DIR/hosts | $LOGGER
      echo "Hosts Upgraded Successfully!!!"
    fi
  fi
}

usage() {
cat << EOF

This script updates your /etc/hosts and your
/etc/hosts.deny based in the blacklist located
here: http://someonewhocares.org/hosts/hosts

Options: --upgrade (Updates your hosts)
    --update  (Only downloads the new file for inspection.
          Location: /tmp/hosts)
    --help    (Displays this help)

EOF
}

############
### MAIN ###
############

case "$1" in
'--upgrade')
  get_hosts
  update_etc
  exit 0
  ;;
  'upgrade')
  get_hosts
  update_etc
  exit 0
  ;;
'--update')
  get_hosts
  echo "Your hosts file is located at /tmp for inspection"
  exit 0
  ;;
  'update')
  get_hosts
  echo "Your hosts file is located at /tmp for inspection"
  exit 0
  ;;
'--help')
  usage
  exit 0
  ;;
  'help')
  usage
  exit 0
  ;;
*)
  usage
  exit $E_ARGUMENTS
esac

# End of script

Scripts recomendados

Make ISO OpenBSD

Backup Simples de tabela MYSQL

Browser - use rofi para acessar páginas na web

Script para gravar CD

Script para Gerenciamento de Pacotes no Slackware


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts