You are on page 1of 23

Bloquear paquetes mal formados con

iptables
Hola comunidad, ac les dejo este breve manual para bloquear paquetes mal formados
usando iptables con destino al puerto web 80.
Para iniciar se crea un archivo vaco, en este ejemplo lo nombre PaquetesMalFormados.sh;
touch PaquetesMalFormados.sh
Se asigna el permiso correspondiente a ejecucin;
chmod +x PaquetesMalFormados.sh
Se inserta el siguiente contenido;
D
o
n
d
e
;
$IPTABLES -N PAQ_FALSO; Es la creacin de la cadena.
I
- -dport 80; Bloqueo de las banderas mal formadas con destino al puerto web 80.
I
Se ejecuta el script;
sh PaquetesMalFormados.sh
Ac el cdigo del script;
#!/bin/sh
## Fecha: 30/10/2013
## Licencia: GPL v2
## Autor: lsilva
## Version: 0.1
IPTABLES=/sbin/iptables
#Bloquear los paquetes mal formados con destino al Puerto 80
$IPTABLES -N PAQ_FALSO
$IPTABLES -A PAQ_FALSO -m state state INVALID -j DROP
$IPTABLES -A PAQ_FALSO -p tcp dport 80 tcp-flags ALL ACK,RST,SYN,FIN -j DROP
$IPTABLES -A PAQ_FALSO -p tcp dport 80 tcp-flags SYN,FIN SYN,FIN -j DROP
$IPTABLES -A PAQ_FALSO -p tcp dport 80 tcp-flags SYN,RST SYN,RST -j DROP
$IPTABLES -A PAQ_FALSO -p tcp dport 80 ! syn -m state state NEW -j DROP
$IPTABLES -A PAQ_FALSO -f -j DROP
$IPTABLES -A PAQ_FALSO -j RETURN
exit 0
Si desea visualizar la cadena ejecute la siguiente sintaxis;
iptables -nL
Espero haya sido de utilidad.
Saludos.

Conocer informacin bsica de PHP por
medio de google hacking database (GHDB)
Hola comunidad, ac les dejo este breve manual para conocer informacin bsica de
servidores con el lenguaje de programacin PHP. Para ello se necesita conocer del
proyecto Exploit Database.
El proyecto incorpora el mecanismo de bsqueda conocido como Google Hacking Database
(GHDB) el cual por medio de cadenas de bsquedas determinadas permite encontrar y mostrar
servidores vulnerables expuestos en la red.
En este ejemplo, la bsqueda ser centrada en aquellos servidores que tienen el archivo phpinfo()
expuestos pblicamente. Para ello, se ingresa al buscador web de google y se inserta la siguiente
cadena;
filetype:php -site:php.net intitle:phpinfo published
by the PHP Group
La bsqueda mostrar como se dijo anteriormente aquellos servidores vulnerables de mostrar el
archivo .php;
As mi smo
se detal l a
informacin
d e l a
versin del
lenguaje de
programaci
n PHP e
informacin
del sistema
o p e r a t i v o
q u e l o
conti ene;
P
a
r
a
e
v
i
t
a
r
e
s
t
e
t
i
p
o de descuidos es necesario asegurarse que dicho archivo no este expuesto a la red pblica
configurando adecuadamente en el archivo php.ini cuales opciones permitir y cuales no.
De igual manera si desea conocer ms cadenas de bsquedas con Google Hacking Dabase (GHDB),
visite la web del proyecto ac.
Por ejemplo a fecha de hoy, se pueden visualizar las ltimas entradas de cadenas de bsquedas que
vulneran servidores;
A
s

m
i
s
m
o
p
u
e
d
e
navegar por las categoras de Google Hacking Database (GHDB);

Nota: Este manual se creo con fines didcticos y de aprendizaje.
Espero haya sido de utilidad.
Saludos.
Permitir poltica FORWARD del iptables en
el protocolo https
Hola comunidad, ac les dejo este breve manual para permitir la poltica FORWARD del
iptables en el protocolo https.
Se desea permitir FORWARD en el protocolo https de la red interna 192.168.1.0/24 con tarjeta de
red eth1. Para insertar esta nueva regla basta con ejecutar la siguiente sintaxis en el terminal;
iptables -A FORWARD -s 192.168.1.0/24 -i eth1 -p tcp -dport 443 -j ACCEPT
Nota: Los guiones son continuos.
Donde;
-s; Origen.
I
-i eth1; Tarjeta de red interna.
I
-p; Protocolo, en este caso TCP.
I
- -dport; Puerto destino.
I
443; Puerto.
I
ACCEPT; Poltica de aceptacin.
I
Se verifican las reglas por medio de la siguiente sintaxis;
iptables -v -L -n -line-numbers
Nota: Los guiones son continuos.
Espero haya sido de utilidad.
Saludos.
Permitir NAT y delimitar como poltica
FORWARD DROP en interfaz privada con
iptables en GNU/Linux
Hola comunidad, ac les dejo este breve manual para permitir NAT y a la vez delimitar
como poltica FORWARD DROP usando iptables en GNU/Linux. Un poco de teora, La
poltica FORWARD permite al administrador controlar donde se enviaran los paquetes
dentro de una LAN (redhat docs).
Bin se supone el siguiente escenario;
Se necesita bloquear las conexiones externas que intentan simular intervalos de direcciones IP
I
privadas para infiltrar su LAN.
Se necesita que ciertas direciones IP puedan navegar por medio de NAT.
I
eth0; es la interfaz de red externa.
I
Direccin de red interna; 192.168.1.0/24
I
Bien, para dejar por defecto la poltica FORWARD en DROP (Bloqueo) y se bloquean las conexiones
externas que intentan simular intervalos de direcciones IP privadas se ejectua la siguiente sintaxis;
iptables -P FORWARD -s 192.168.1.0/24 -i eth0 -j DROP 1.
Donde;
La lnea bloquea el origen de red 192.168.1.0/24 que entra
I
Ahora bien, para permitir que ciertas direcciones IP puedan navegar por medio de NAT . Primero se
activa el bit de forward;
sysctl -w net.ipv4.ip_forward=1
Posteriormente se inserta la siguiente regla, para cada direcciones IP;
ipatables -A FORWARD -s 192.168.1.20 -o eth0 -j ACCEPT 1.
iptables -t nat -A POSTROUTING -s 192.168.20 -o eth0 -d 0.0.0.0/0 -j MASQUERADE 2.
Donde;
La primer lnea permite la politica FORWARD aceptada para esa direccin IP 192.168.1.20.
I
La segunda lnea permite el NAT a la direccin IP 192.168.1.20, hacia la interfaz de red eth0 y a
I
cualquier destino.
Aclaracin final;
Hay una diferencia entre REJECT y DROP cuando se trata con reglas aadidas. El objetivo REJECT
rechaza el acceso y devuelve un error de conexin rechazada a los usuarios que intentan
conectarse al servicio. El objetivo DROP, como su nombre lo implica, descarta el paquete sin ningn
tipo de advertencia a los usuario (redhatdocs).
Espero haya sido de utilidad.
Saludos.

Actualizar exploits de forma automtica
con Backtrack 5 R2
Hola comunidad, ac les dejo este breve manual para actualizar exploits de
forma automtica con Backtrack 5 R2. un poco de teora, el termino exploit se refiere a
la pieza de software, o una secuencia de comandos con el fin de causar un error o un
fallo en alguna aplicacin, a fin de causar un comportamiento no deseado o imprevisto
en los programas informticos, hardware, o componente electrnico (por lo general computarizado)
(wikipedia).
Escenario;
Backtrack 5 R2.
I
Conexin a Internet.
I
Manejo de comandos GNU/Linux.
I
Bien, se inicia el sistema de Backtrack y se abre una terminal y se ingresa al directorio exploitdb
ubicado en /pentes/exploits;
Con el comando wget se descarga el archivo de actualizacin de nombre archive.tar.bz2 del sitio
http://www.exploit-db.com;
Descargado el archivo se actualiza de forma automtica;
Se descomprime el archivo de nombre archive.tar.bz2;
tar -jxvf archive.tar.bz2
De manera opcional se borra el archivo de nombre archive.tar.bz2;
Listo, exploits actualizados. Ahora bien, si desea buscar vulnerabilidades especficas de un servicio,
se utiliza el script searchsploit, ejemplo:
./searchsploit servicio
As;
./searchsploit oracle
La buscada arrojar las posibles vulnerabilidades del servicio en cuestin;
N
o
t
a
:
E
s
t
e
m
a
n
ual se creo con fines de didcticos y de aprendizaje, no me responsabilizo por su mal uso.
Espero haya sido de utilidad.
Saludos.
Activar de forma permamente la directiva
ip_forward en GNU/Linux CentOS 5
Hola comunidad, ac les dejo este breve manual para activar el parmetro ip_forward en
GNU/Linux CentOS 5. Por defecto esta directiva viene desactivada en el kernel linux de
GNU/Linux CentOS y se encuentra en el archivo de configuracin sysctl.conf.
Para activarla es necesario ejecutar la siguiente sintaxis;
sysctl -w net.ipv4.ip_forward=1
Reinicie el servidor o bien el servicio de red;
service network restart
Puede verificar la directiva ingresando en el archivo de configuracin;
vim /etc/sysctl.conf
El parmetro del forward debe estar en 1;
net.ipv4.ip_forward=1
Para aplicar los cambios ejecute la siguiente sintaxis;
sysctl -p /etc/sysctl.conf
Espero haya sido de utilidad.
Saludos.
Instalar FileZilla en GNU/Linux CentOS 6
en plataformas de 64 bits
Hola comunidad, ac les dejo este breve manual para instalar FileZilla en
GNU/Linux CentOS 6 en plataformas de 64 bits. Un poco de teora, FileZilla es
un cliente FTP multiplataforma de cdigo abierto y software libre, licenciado bajo
la Licencia Pblica General de GNU. Soporta los protocolos FTP, SFTP y FTP
sobre SSL/TLS (FTPS), (wikipedia).
Para instalar FileZilla es necesario tener instalado el repositorio rpmforge, sino conoce como
descargarlo visite este enlace y ejecute la siguiente sintaxis;
rpm -Uvh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
Una vez instalado el paquete solo resta instalar va YUM el paquete de FileZilla;
yum install filezilla
Listo, ya puedes acceder al contenido de tus archivos va FTP.
E
s
p
e
r
o
h
a
y
a
s
i
do de utilidad.
Saludos.
Actualizar GNU/Linux CentOS 6.0 en
plataformas de 64 bits
Hola comunidad, ac les dejo este breve manual para actualizar el sistema
GNU/Linux CentOS 6.0 en plataforma de 64 bits.
Bien, se asume que se tiene instado el sistema GNU/Linux CentOS 6 a 64 bits , sino conoce como
hacerlo, visite este enlace.
Y para actualizar el sistema operativo a su ms reciente versin se ejecuta como usuario root la
siguiente sintaxis;
yum update
Nota: Este proceso lleva tiempo en terminar, ms an si cuenta con poca velocidad de acceso a
Internet.
Si se presentan conflictos entre paquetes, generalmente por duplicacin de los mismos, verifquelo
ejecutando la siguiente sintaxis;
rpm -qa nombre_paquete
O bien, si as lo desea puede enviar a un archivo de texto de todos los paquetes instalados en el
sistema ejecutando la siguiente sintaxis;
rpm -qa|sort >> paquetes_instalados.txt
Si encuentra paquetes duplicados, por ejemplo;
glibc-2.12-1.7.el6_0.5.i686
glibc-2.12-1.7.el6_0.5.x86_64
Se recomienda desinstalar el paquete glibc-2.12-1.7.el6_0.5.i686, ya que no es propio de la
plataforma de 64 bits de GNU/Linux CentOS 6. Para desinstalarlo se ejecuta la siguiente sintaxis;
rpm -e glibc-2.12-1.7.el6_0.5.i686
Nota: La desinstalacin de paquetes puede enviar errores en dependencias hacia otros paquetes, si
este es el caso, ejecute con mucho cuidado la opcin - -nodeps, el cual forzara la desinstalacin del
paquete.
Nota: Los guiones sin continuos, se escriben separados por efectos de visualizacion en wordpress.
Y recuerde la actualizacin de un servidor es imprescindible, recuerde mantener siempre
actualizado su sistema operativo de produccin.
Espero haya sido de utilidad.
Saludos.
Instalar la plataforma moodle en
GNU/Linux CentOS 5.6
Hola, comunidad ac les dejo este manual para instalar la plataforma moodle
en GNU/Linux CentOS 5.6
Un poco de teora, Moodle es un Ambiente Educativo Virtual, sistema de gestin de cursos, de
distribucin libre, que ayuda a los educadores a crear comunidades de aprendizaje en lnea. Este
tipo de plataformas tecnolgicas tambin se conoce como LMS (Learning Management System).
Antes de empezar la descarga e instalacin, es necesario conocer los requisitos de Software que se
necesitan para la instalacin del paquete moodle;
1) PHP 5.3.2
2) MySQL 5.0.25 or Postgres 8.3 or MSSQL 2005 or Oracle 10.2
En cuanto al requisito de hardware no hay un estndar definido, por la experiencia, se puede tomar
como una base las siguientes caractersticas;
1. Basndose de entre 400 a 600 usuarios registrados activos en el servidor GNU/Linux CentOS 5.6
en arquitectura a 64 bits;
a. Disco Duro del Servidor; 1 2 Tera Byte, para un aproximado de 4 a 4 1/2 aos de uso de ciclo
de vida de hardware, con respaldos de 500 a 800 GB mensuales en la particin /var del servidor.
b. Microprocesador del servidor; Intel XEON Core duo, icore 3 , icore 5, o bien icore 7.
c. RAM del Servidor; 8 GB DDR 3, el consumo de memoria que presenta con cerca de 400 usuarios
simultneamente conectados es de entre 4 a 6 GB.
Adems recordar que se debe dejar en memoria de intercambio swap, la misma cantidad que la
memoria fsica si es servidor cuenta con 2 GB de RAM o superior, si bien es cierto el servidor no
llegar a consumir esa cantidad de swap, en mi caso particular respetar este estndar.
Se descarga la ltima versin del sitio oficial el paquete moodle para el formato .tgz de
GNU/Linux. La versin oficial para la fecha de hoy es la 2.1.3 ,as como tambin el paquete de
idioma de la plataforma moodle desde ac.
Nota: Es necesario tener instalado el servidor Web, sino conoce como instalarlo visite este enlace.
Se procede a mover el archivo descargado al directorio /var/www/html y a descomprimir el archivo
.tgz;
mv /home/lsilva/Descargas/moodle-2.1.3.tgz /var/www/html/
cd /var/www/html
tar -zxvf moodle-2.1.3.tgz
Se mueve el paquete del idioma al directorio de nombre lang del moodle;
mv /home/lsilva/Descargas/es.zip /var/www/html/moodle/lang
Se descomprime el archivo de nombre es.zip
cd /var/www/html/moodle/lang
unzip -e es.zip
Dentro del directorio /var/www se crea el directorio de nombre moodledata y se le asignan los
permisos de dueo correspondiente al usuario apache del sistema;
cd /var/www
mkdir moodledata
chown -R apache:apache moodledata
Se ingresa al navegador y se escribe el nombre del archivo install.php para dar inicio a la
instalacin del paquete;
http://localhost/moodle/install.php
Se inicia con el cambio del idioma;
S
e
c
o
n
f
i
g
uran las rutas donde se alojar la direccin Web de moodle, el directorio Web de moodle y el
directorio de datos, si desea especificar otras rutas, solo cambelas segn considere necesario, de lo
contrario se dejan por defecto;
S
e
r
e
p
i
t
e
e
l
p
rocedimiento para confirmar los directorios. Se selecciona el servidor de base de datos, en este caso
ser MySQL;
L
l
e
g
a
d
o
s
a
e
ste punto, se tiene que contar con una base de datos en el servidor MySQL, as como tener el
servicio levantado y en funcionamiento, si no lo tiene instalado visite este enlace. Bien, ahora se
accede al servidor de base de datos.
mysql -u root -p
Se crea la base de datos, la cual llamare moodle;
mysql> create database moodle;
Se crea un usuario que tendr privilegios sobre la base de datos de nombre moodle;
mysql> create user muser;
Se asignan los permisos al usuario recin creado;
mysql> GRANT ALL ON moodle.* TO muser@localhost IDENTIFIED BY m00dle_prueb#;
Se continua con la instalacin va Web;
A
l
d
a
r
c
l
i
c
e
n
e
l
b
o
t

n
siguiente, se observar un mensaje que dice que no esta creado el archivo de nombre config.php,
as que se procede a su creacin en el directorio de nombre /var/www/html/moodle y se pega
dentro del archivo el contenido del script;
cd /var/www/html/moodle
touch config.php
S
e
a
c
e
p
t
a
e
l
a
c
u
e
r
d
o
d
e
licencia;
N
o
t
a
:
S
i
a
p
a
r
e
c
e
n
e
r
r
ores al revisar las extensiones de PHP, instale los siguientes paquetes;
yum install php-soap
yum install php-xml
yum install php-xmlrpc
yum install php-intl
En cambio si tienes un error de unicode lo resuelves ingresando al servidor Mysql;
mysql -u root -p
Activas la base de datos a realizar el cambio;
mysql> use moodle;
Cambias el unicode a utf-8;
mysql> ALTER DATABASE moodle DEFAULT CHARACTER SET utf8 COLLATE
utf8_spanish_ci;
Ahora editas al archivo de configuracin de PHP;
vim /etc/php.ini
Cambias el unicode correspondiente a UTF-8, ya que por defecto se encuentra en iso-8859-1;
default_charset = utf-8
Se reinician el servicio Web y de base de datos;
service httpd restart
service mysqld restart
De tal manera que las extensiones PHP deben quedar configuradas de la siguiente manera;
U
n
a
v
e
z
v
e
r
i
f
i
cadas las extensiones de PHP se da clic en continuar para volcar las tablas a la base de datos de
nombre moodle. Terminado el proceso se debe tener un mensaje de xito y se procede con la
creacin de la cuenta del usuario administrador;
Por
ltim
o se
edita
n los
par
metr
os
gene
rales
del
sitio;
L
i
s
t
o
,
a
d
i
s
f
r
u
t
a
r
d
e
l
a
p
lataforma moodle.
Espero haya sido de utilidad.
Saludos.
Bloquear redes P2P con iptables en
GNU/Linux Debian / Ubuntu Server
Hola amigos de la comunidad, ac les dejo este breve manual para bloquear redes P2P
usando iptables en GNU/Linux Debian / Ubuntu Server.
Primeramente se instala el paquete de nombre xtables-addons-commons;
sudo apt-get install xtables-addons-commons
Se inicia el
proceso de
instalacin;
U
n
a
v
e
z
i
n
s
t
alado se comprueba por medio de la siguiente sintaxis;
sudo iptables -m ipp2p help
P
a
r
a
e
v
i
t
a
r
n
o
s
e
s
t
a
r
ingresando regla por regla se crea un script que nos haga todo el trabajo;
touch blockipp2p.sh
El contenido del script debe verse ms o
menos como la siguiente imagen;
Bsicamente el script bloquea (DROP) todo tipo de trfico P2P. Ac el script completo;
#!/bin/bash
# Autor: lsilva
# Fecha: 19/06/2014
# Licencia: GPL v2
echo Inicio del script..
sudo iptables -A FORWARD -p tcp -m ipp2p edk -j DROP
sudo iptables -A FORWARD -p udp -m ipp2p edk -j DROP
sudo iptables -A FORWARD -p tcp -m ipp2p dc -j DROP
sudo iptables -A FORWARD -p tcp -m ipp2p kazaa -j DROP
sudo iptables -A FORWARD -p udp -m ipp2p kazaa -j DROP
sudo iptables -A FORWARD -p tcp -m ipp2p gnu -j DROP
sudo iptables -A FORWARD -p udp -m ipp2p gnu -j DROP
sudo iptables -A FORWARD -p tcp -m ipp2p bit -j DROP
sudo iptables -A FORWARD -p udp -m ipp2p bit -j DROP
sudo iptables -A FORWARD -p tcp -m ipp2p apple -j DROP
sudo iptables -A FORWARD -p tcp -m ipp2p winmx -j DROP
sudo iptables -A FORWARD -p tcp -m ipp2p soul -j DROP
sudo iptables -A FORWARD -p tcp -m ipp2p ares -j DROP
echo Fin del script
Se asigna el permiso de ejecucin;
chmod +x blockipp2p.sh
Se ejecuta el script por medio de la
siguiente sintaxis;
sh blockipp2p.sh
Y por ltimo se comprueba que el cortafuego
(iptables) incorpor las reglas;
iptables -nL
D
e
e
s
t
a
m
a
n
e
r
a
r
e
s
u
l
t
a
m
u
c
ho ms cmodo el bloqueo de las redes P2P en el servidor GNU/Linux Debian / Ubuntu Server.
Espero haya sido de utilidad.
Saludos.

You might also like