Peerguardian para Linux (Bloqueo de IPs Anti-P2P en Linux)

Webs, Foros, Blogs relacionados con el cine y sin relacionar. Proveedores de acceso a Internet, etc.
Avatar de Usuario
Liet
Mensajes: 254
Registrado: Mar 14 Sep, 2004 02:00
Ubicación: Arrakis

Peerguardian para Linux (Bloqueo de IPs Anti-P2P en Linux)

Mensaje por Liet » Vie 08 Jul, 2005 14:54

Como bloquear IPs Anti-P2P en Linux
(Instalación de Peerguardian en Linux y como configurarlo para que se ejecute al inicio del sistema)

Imagen</a>
De todos es sabido la importancia de proteger nuestros de PCs de los continuos intentos de espionaje a los que nos someten la SGAE, ACAM, RIAA, y las multinacionales de la industria del ocio en general.

Hay mucha información por hay sobre como proteger nuestros PCs usando programas como P2Phazard o Peerguardian, pero siempre bajo el SO Windows. Por eso he decidido escribir este post con las instrucciones para proteger un PC con SO Linux usando la versión de Peerguardian para este SO, que dado que aun se encuentra en fase beta no es muy intuitiva ni sencilla de configurar.

:arrow: Descarga del programa:

La pagina de Peerguardian la podéis encontrar aquí:http://phoenixlabs.org/, y aquí la sección de Peerguardian para el paquete Debian de Linux:: PeerGuardian Debian

Cada uno tendrá que descargar la que mas convenga a su distribución, yo como uso Ubuntu voy a comentaros todo el proceso para esta distribución (supongo que sera valido para cualquier Debian).

Descargamos el paquete deb y lo instalamos escribiendo como root:

dpkg -i peerguardnf-1.5beta.i386.deb

Ahora ya tenemos Peerguardian instalado en nuestro sistema.

:arrow: Hacer que se ejecute y que actualice la lista de IPs bloqueadas al inicio del sistema:

Es importante tener siempre el ordenador protegido, por eso lo mejor es hacer que Peerguardian se ejecute al arrancar el ordenador.

Para ello hacemos lo siguiente:

sudo mkdir /etc/peerguardian

sudo gedit /etc/init.d/peerguardian.sh

y dentro copiamos lo siguiente:

Código: Seleccionar todo

# version for bluetack.co.uk lists!
#!/bin/sh
# Update new blocklists and start/stop/restart PeerGuardian
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# testdescription
#
#CONFIGURATION
# Make sure PG_ETC points to the directory where
# you want to put your downloaded blocklists.
PG_ETC=/etc/peerguardian/
# Remove the lists you don't want to download and
# use from BLOCKLISTS.
BLOCKLISTS="level1"
PG_CONF=/etc/PG.conf
PG_LOG=/var/log/PG.log
PG_LIST=/etc/p2p.p2b.p2p
#The URL where the blocklists reside
URL=http://www.bluetack.co.uk/config
#The format of the lists to download
SUFFIX=gz
#The format after unpacking
SUFFIX2=txt

endscript () {
date +"------------ "%F" "%X" "%Z" End PeerGuardian Script"
exit $1
}
date +"------------ "%F" "%X" "%Z" Begin PeerGuardian $1"


case "$1" in
'start')
cd "$PG_ETC"
# check if blockfiles were updated:
UPDATED=""
for i in $BLOCKLISTS ; do
TIMESTAMP=0
if [ -e $i.$SUFFIX ] ; then
TIMESTAMP=`stat --format=%y $i.$SUFFIX`
echo "File $i.$SUFFIX last updated $TIMESTAMP"
TIMESTAMP=`stat --format=%Y $i.$SUFFIX`
fi
wget -N $URL/$i.$SUFFIX
if [ `stat --format=%Y $i.$SUFFIX` -gt $TIMESTAMP ] ; then
UPDATED=$i
fi
done

# if none of the blockfiles were updated:
if [ -z $UPDATED ] ; then
echo "No blocklists needed updating."
echo "Starting PeerGuardian"
mv $PG_LOG $PG_LOG.backup
peerguardnf -h -m -d -c "$PG_CONF" -l "$PG_LOG"
endscript 0
fi

# if any blockfiles were updated:
for i in $BLOCKLISTS ; do
gunzip -c $i.$SUFFIX > $i.$SUFFIX2
BLOCKLISTSCAT="$BLOCKLISTSCAT $i.$SUFFIX2"
done
cat $BLOCKLISTSCAT | peerguardnf -f merged.p2b.p2p
for i in $BLOCKLISTS ; do
rm $i.$SUFFIX2
done
# uncomment below to unblock Yahoo! Mail and whatever
# else needs unblocking here. Do this also in the
# restart section.
grep -v -i "yahoo\!" merged.p2b.p2p | grep -v -i "Microsoft" | grep -v "Google" > merged.p2b.p2p.tmp
mv merged.p2b.p2p.tmp merged.p2b.p2p
mv $PG_LIST $PG_LIST.backup
mv merged.p2b.p2p $PG_LIST
mv $PG_LOG $PG_LOG.backup
echo "Starting PeerGuardian"
peerguardnf -h -m -d -c "$PG_CONF" -l "$PG_LOG"
endscript 0
;;

'stop')
echo "Stopping PeerGuardian"
killall peerguardnf > /dev/null 2>&1
endscript 0
;;

'restart')
cd "$PG_ETC"
# check if blockfiles were updated:
UPDATED=""
for i in $BLOCKLISTS ; do
TIMESTAMP=0
if [ -e $i.$SUFFIX ] ; then
TIMESTAMP=`stat --format=%y $i.$SUFFIX`
echo "File $i.$SUFFIX last updated $TIMESTAMP"
TIMESTAMP=`stat --format=%Y $i.$SUFFIX`
fi
wget -N $URL/$i.$SUFFIX
if [ `stat --format=%Y $i.$SUFFIX` -gt $TIMESTAMP ] ; then
UPDATED=$i
fi
done

# if none of the blockfiles were updated:
if [ -z $UPDATED ] ; then
echo "No blocklists needed updating."
echo "Stopping PeerGuardian"
killall peerguardnf > /dev/null 2>&1
mv $PG_LOG $PG_LOG.backup
sleep 4
echo "Starting PeerGuardian"
peerguardnf -h -m -d -c "$PG_CONF" -l "$PG_LOG"
endscript 0
fi

# if any blockfiles were updated:
for i in $BLOCKLISTS ; do
gunzip -c $i.$SUFFIX > $i.$SUFFIX2
BLOCKLISTSCAT="$BLOCKLISTSCAT $i.$SUFFIX2"
done
cat $BLOCKLISTSCAT | peerguardnf -f merged.p2b.p2p
for i in $BLOCKLISTS ; do
rm $i.$SUFFIX2
done
# uncomment below to unblock Yahoo! Mail and whatever
# else needs unblocking here. Do this also in the
# restart section.
grep -v -i "yahoo\!" merged.p2b.p2p | grep -v -i "Microsoft" | grep -v "Google" > merged.p2b.p2p.tmp
mv merged.p2b.p2p.tmp merged.p2b.p2p
echo "Stopping PeerGuardian"
killall peerguardnf > /dev/null 2>&1
mv $PG_LIST $PG_LIST.backup
mv merged.p2b.p2p $PG_LIST
mv $PG_LOG $PG_LOG.backup
sleep 4
echo "Starting PeerGuardian"
peerguardnf -h -m -d -c "$PG_CONF" -l "$PG_LOG"
endscript 0
;;

*)
echo "Usage: $0 { start | stop | restart }"
;;
esac
exit 0
y le damos permisos de ejecución.

sudo chmod -c 755 /etc/init.d/peerguardian.sh

Ya esta, ahora lo unico que nos queda es añadirlo al inicio:

sudo update-rc.d peerguardian.sh defaults

Ahora ya se arranca al inicio, pero para pararlo, rearrancarlo,...

sudo peerguardian.sh start

sudo peerguardian.sh restart

sudo peerguardian.sh stop

:arrow: Controlar el programa:

Para ver las IPs que bloquea, pararlo, rearrancarlo,... ponemos el comando pgtext en una terminal. Nos aparecerá una ventana que yo creo que no necesita explicación.


Espero que este mini manual le sea de utilidad a alguien.

saludos
Última edición por Liet el Mié 15 Feb, 2006 23:44, editado 4 veces en total.

Avatar de Usuario
sosonok
Mensajes: 910
Registrado: Vie 18 Jun, 2004 02:00

Mensaje por sosonok » Vie 08 Jul, 2005 15:34

Gracias por la info, Liet ;)

Avatar de Usuario
Compartir_es_amar
Mensajes: 645
Registrado: Jue 13 May, 2004 02:00

Mensaje por Compartir_es_amar » Vie 08 Jul, 2005 15:48

Muchísimas gracias Liet por esta información.

Para complementar tu mensaje añadiré que yo uso el IPFilter del aMule. Instrucciones de uso (en inglés) aquí. Básicamente se maneja igual que el IPFilter del eMule.

Saludos y gracias de nuevo por la información.

P.d. Yo también uso Ubuntu y me parece una auténtica maravilla

Avatar de Usuario
yojimbo
Mensajes: 511
Registrado: Mar 06 Abr, 2004 02:00
Ubicación: Roma

Mensaje por yojimbo » Vie 08 Jul, 2005 16:42

Hmmm
tiene buena pinta el Peerguardian ese. Habrá que echarle un vistazo.
Gracias por el enlace.
Saludos

Un usuario de Slackware y Mldonkey (y a mucha honra 8) )

Avatar de Usuario
vespertilum
Mensajes: 1092
Registrado: Mar 16 Mar, 2004 01:00
Ubicación: Caesaraugusta

Mensaje por vespertilum » Vie 08 Jul, 2005 23:45

Muchas gracias, seguiremos pendientes.
Ahora estoy actualizando el filtro de IPs del amule, 5MB 8O 8O 8O

Para desentonar no uso ubuntu, sino guadalinex a la espera de masguadalinex :lol:

Un pingusaludo.
Salud2

Avatar de Usuario
Liet
Mensajes: 254
Registrado: Mar 14 Sep, 2004 02:00
Ubicación: Arrakis

Mensaje por Liet » Sab 09 Jul, 2005 16:54

He corregido una metedura de pata que puse ayer al escribir el post.

En el script no hay que poner el comando sudo, sino que hay que ponerlo antes de la ruta hacia el script en el inicio de sesion.

El post inicial ya esta editado, perdonar por el fallo.

saludos

Avatar de Usuario
Jacob
Exprópiese
Mensajes: 10207
Registrado: Jue 01 Jul, 2004 02:00
Ubicación: Where no one has gone before!

Mensaje por Jacob » Lun 15 Ago, 2005 11:00

Hola...

Otro incauto probando Ubuntu por aquí...

Una pregunta (supongo que tonta), el script ese (que más o menos sé que es una especie de orden de ejecución, ¿no?, como un pequeño programita) cómo hay que guardarlo?, quiero decir ¿en qué tipo de fichero, con qué extensión?

Se supone que yo debo copiar el script (lo que pone en el quote) pero ¿qué hago con él?

Lo de darle permisos de ejecución creo que lo recuerdo, o podría buscarlo de nuevo, aunque si a alguien le apetece explicarlo... :roll:

Un saludo y gracias.

Avatar de Usuario
sosonok
Mensajes: 910
Registrado: Vie 18 Jun, 2004 02:00

Mensaje por sosonok » Lun 15 Ago, 2005 13:42

Jacob escribió:el script ese (...) cómo hay que guardarlo?
lo más fácil es abrir un editor de texto, pegar lo q pone arriba y guardarlo. Linux reconoce los archivos por el contenido, no por la extensión, así que sabrá que se trata de un scritp (nota: puedo haber dicho alguna barbaridad, pero a mí me funciona así).

Avatar de Usuario
Jacob
Exprópiese
Mensajes: 10207
Registrado: Jue 01 Jul, 2004 02:00
Ubicación: Where no one has gone before!

Mensaje por Jacob » Lun 15 Ago, 2005 13:48

Gracias por responder, Sosonok. Lo probaré.

:wink:

Avatar de Usuario
Compartir_es_amar
Mensajes: 645
Registrado: Jue 13 May, 2004 02:00

Mensaje por Compartir_es_amar » Lun 15 Ago, 2005 22:49

Como bien dice sosonok, no hace falta asignar ninguna extensión al fichero para que te funcione, ahora bien, si quieres ser más o menos purista puedes ponerle ".sh", algo así como "mi_script.sh".

Para darle permisos de ejecución será "chmod +x mi_script.sh".

Saludos y suerte :wink:

Avatar de Usuario
Jacob
Exprópiese
Mensajes: 10207
Registrado: Jue 01 Jul, 2004 02:00
Ubicación: Where no one has gone before!

Mensaje por Jacob » Lun 15 Ago, 2005 22:57

Gracias, C_es_amar, sabía que no me fallarías. :mrgreen:

:wink:

Avatar de Usuario
Liet
Mensajes: 254
Registrado: Mar 14 Sep, 2004 02:00
Ubicación: Arrakis

Mensaje por Liet » Mié 15 Feb, 2006 23:46

He actualizado el manual con varias mejoras, ahora se arranca de una manera mas "elegante" y ademas actualiza el solito la lista de IPs :mrgreen:

saludos

Avatar de Usuario
Compartir_es_amar
Mensajes: 645
Registrado: Jue 13 May, 2004 02:00

Mensaje por Compartir_es_amar » Jue 16 Feb, 2006 15:35

Muy bien Liet, gran kurrada :plas:

Saludetes y qué viva GNU/Linux