miércoles, 30 de marzo de 2011

Como transformar tu PC en un Firewall con Iptables.

En ciertas ocasiones, alguien, dispone de un PC antiguo y no sabemos que hacer con el. Con Linux podemos transformarlo en un firewall bastante potente para tu Pc.
El mapa sería el siguiente:
Para este procedimiento debemos disponer de dos tarjetas de red, un cable de red cruzado y un PC.

lunes, 28 de marzo de 2011

Descubrir que puertos tenemos abiertos.

Si queremos saber que puertos tenemos abiertos y que servicios tenemos corriendo por ellos podemos hacerlo de una forma fácil y sencilla.

Primero debemos instalar nmap, un scanner de puerto muy potente.

sudo apt-get install nmap

Si tenemos configurado iptables debemos eliminar todas las reglas y permitir todo el trafico entrante.

viernes, 25 de marzo de 2011

Ocultar informacion, facil y sencillo.

En muchas ocasiones necesitamos ocultar ficheros para evitar que familia o amigos o hermanos puedan ver. Normalmente buscamos manuales mas o menos complicados de como podemos cifrar ficheros y directorios.

Aquí presento una forma alternativa de ocultar datos que no queremos que terceras personas vean, no es tan seguro como cifrar la información pero es sencillo, fácil y multiplataforma.
Lo único que debemos tener disponible es rar.

El sistema se trata de ocultar la información en un fichero .rar protegido con contraseña y esconderlo tras una foto.

IPTABLES, usando diferentes cadenas.

#!/bin/sh
# Establecemos politicas por defecto
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT ACCEPT
#
/sbin/iptables -N input_wlan0
/sbin/iptables -N input_eth0
#
# Empezamos a introducir reglas para el trafico entrante.
# Evitamos scanners de puertos limitando los paquetes icmp y flags.
#
/sbin/iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP
/sbin/iptables -A INPUT -m pkttype --pkt-type multicast -j DROP
/sbin/iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,ACK SYN -m limit --limit 1/sec -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,ACK SYN -j DROP
/sbin/iptables -A INPUT -p icmp -m limit --limit 2/sec -j ACCEPT
/sbin/iptables -A INPUT -p icmp -j REJECT --reject-with icmp-proto-unreachable
/sbin/iptables -I INPUT -d localhost -j ACCEPT
#
# Reglas que impiden el spoofing.
#
/sbin/iptables -A INPUT -s 172.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 169.254.0.0/16 -j DROP
/sbin/iptables -A INPUT -s 10.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 224.0.0.0/3 -j DROP
/sbin/iptables -A INPUT -s 240.0.0.0/5 -j DROP
/sbin/iptables -A INPUT -s 0.0.0.0/8 -j DROP

jueves, 24 de marzo de 2011

Evitar Buffer Overflows

En seguridad informática y programación, un desbordamiento de buffer (del inglés buffer overflow o buffer overrun) es un error de software que se produce cuando un programa no controla adecuadamente la cantidad de datos que se copian sobre un área de memoria reservada a tal efecto (buffer), de forma que si dicha cantidad es superior a la capacidad preasignada los bytes sobrantes se almacenan en zonas de memoria adyacentes, sobrescribiendo su contenido original. Esto constituye un fallo de programación.

Buffer Overflows son una fuente muy fertil de bugs y ataques maliciosos (xploits).
Protegernos de este tipo de ataques no es facil pero podemos hacer difícil a un atacante.

Un ejemplo de un Buffer Overflow podemos encontrarlo aqui , en el enlace nos explica que un atacante podría producir una denegacion de servicio mediante un fallo en el programa wireshark.


miércoles, 23 de marzo de 2011

[Script y Notify-send] Creando directorios.

Ubuntu Script

Anteriormente hemos hablado de notify-send y como integrarlo en nuestros script.
Aqui muestro un ejemplo, de un script que nos va a preguntar que directorio deseamos crear, si existe nos lo dirá y sino lo creará.

#!/bin/bash
clear
echo -n "¿Que directorio desea crear? "; read DIREC;
existe=`ls | grep $DIREC`
if [ "$existe" = "" ]; then
mkdir $DIREC &
notify-send -i start-here "Aviso " "Se ha creado el directorio $DIREC"
else
notify-send -i start-here "Aviso " "el directorio $DIREC ya existe"
fi

lunes, 21 de marzo de 2011

iptables, Crear cadenas

Con la opción "-N" de iptables un usuario puede definir una cadena propia a la cual asociarle posteriormente un conjunto de reglas de la misma forma que se hace con las cadenas predefinidas.

En este caso voy a crear dos cadenas, una con reglas para el trafico entrante con por la tarjeta ethernet del PC y otra para el trafico entrante por el wifi (wlan0 en este caso). Vosotros podéis crear cadenas para lo que queráis, cadena por origen , por destino, por tipo de trafico, son muchas las opciones.

Lo primero creamos la cadena, para ello le damos el nombre que queramos, yo he escogido input_wlan0  e input_eth0.

/sbin/iptables -N input_wlan0
/sbin/iptables -N input_eth0

domingo, 20 de marzo de 2011

Linux Modulos Pam

PAM ofrece las ventajas siguientes:

Un esquema de autenticación común que se puede usar con una gran variedad de aplicaciones.

Gran flexibilidad y control de la autentificación tanto para los administradores de sistemas como para los desarrolladores de la aplicación.
Una biblioteca bien documentada que permite a los desarrolladores de aplicaciones desarrollar programas sin tener que crear sus propios esquemas de autenticación.

Archivos de configuración y servicios PAM

El directorio /etc/pam.d/ contiene los archivos de configuración de PAM para cada aplicación tipo PAM. En versiones antiguas de PAM se utilizaba /etc/pam.conf, pero este archivo ya no se utiliza y solamente es usado si el directorio /etc/pam.d/ no existe.

Cada aplicación tipo PAM o servicios tiene un archivo dentro del directorio /etc/pam.d/. Cada uno de estos archivos llevan el nombre del servicio para el cual controla el acceso. Depende del programa tipo PAM definir el nombre de su servicio e instalar su archivo de configuración en el directorio /etc/pam.d/. Por ejemplo, el programa login define su nombre de servicio como login e instala el archivo de configuración PAM /etc/pam.d/login

Formato de archivo de configuración PAM

Cada archivo de configuración PAM contiene un grupo de directivas formateadas como sigue:

Cada aplicación tipo PAM o servicios tiene un archivo dentro del directorio /etc/pam.d/. Cada uno de estos archivos llevan el nombre del servicio para el cual controla el acceso. Depende del programa tipo PAM definir el nombre de su servicio e instalar su archivo de configuración en el directorio /etc/pam.d/. Por ejemplo, el programa login define su nombre de servicio como login e instala el archivo de configuración PAM /etc/pam.d/login

<module interface>
<control flag>
<module name>
<module arguments>

Iptables, reglas de utilidad

1.0 String patch
Permite o descarta el trafico que contenga una cadena, en  este caso cualquier paquete que contenga  "|90 90 90 90 90 90|" y tenga como puerto destino el 80. (en este caso nos protegemos de un tipo de "buffer overflow exploits")

/sbin/iptables -A INPUT -p tcp --dport 80 -m string --algo bm --hex-string "|90 90 90 90 90 90|" -j DROP

2.0 Time patch 
Permite el acceso a un puerto determinado durante ciertas horas del dia. Ideal para controlar el acceso a internet a tus hijos/as.

/sbin/iptables -A INPUT -p tcp --dport 80 -m time --timestart 8:00 --timestop 18:00 --weekdays Mon,Tue,Wed,Thu,Fri -j ACCEPT

sábado, 19 de marzo de 2011

[kubuntu 10.10] Problemas con knetworkmanager (WIFI)

Como en todas las distribuciones kubuntu, nada mas instalar kubuntu no he podido conectarme al wifi porque me ha dado problemas knetworkmanager. Si ese es nuestro caso, es decir lo configuramos y por mas que "pinchemos" sobre nuestro wifi no hace nada podemos hacer lo siguiente:

Abrimos una consola y ponemos:

sudo NetworkManager

El cual nos dará una salida:

laptop:~$ sudo NetworkManager
NetworkManager is already running (pid 998)

El número 998 que podemos ver en este ejemplo es el PID y debemos "matarlo", ¿como?:

laptop:~$ sudo kill 998

Y ya está, ahora lo volvemos a ejecutar pero esta vez como root:

laptop:~$ sudo NetworkManager

Ahora deberíamos poder conectarnos a nuestro WIFI, solo nos queda actualizar nuestro linux:

laptop:~$ sudo apt-get update
laptop:~$ sudo apt-get upgrade

Reiniciamos y no deberiamos tener mas problemas con el mismo.Si aun continuais con el problema recordar que habeis cambiado despues de instalar kubuntu y tratar de deshacer los cambios, sino reinstalar kubuntu y hacer este proceso, en primer lugar.

[Opensuse 11.4] Iptables by Default

# Generated by iptables-save v1.4.10 on Sat Mar 19 03:39:59 2011
*raw
:PREROUTING ACCEPT [552117:803124203]
:OUTPUT ACCEPT [261452:16766778]
-A PREROUTING -i lo -j NOTRACK
-A OUTPUT -o lo -j NOTRACK
COMMIT
# Completed on Sat Mar 19 03:39:59 2011
# Generated by iptables-save v1.4.10 on Sat Mar 19 03:39:59 2011
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [260759:16743145]
:forward_ext - [0:0]
:input_ext - [0:0]
:reject_func - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
-A INPUT -p icmp -m conntrack --ctstate RELATED -j ACCEPT
-A INPUT -i wlan0 -j input_ext
-A INPUT -i eth0 -j input_ext
-A INPUT -j input_ext
-A INPUT -m limit --limit 3/min -j LOG --log-prefix "SFW2-IN-ILL-TARGET " --log-tcp-options --log-ip-options
-A INPUT -j DROP
-A FORWARD -m limit --limit 3/min -j LOG --log-prefix "SFW2-FWD-ILL-ROUTING " --log-tcp-options --log-ip-options
-A OUTPUT -o lo -j ACCEPT
-A input_ext -m pkttype --pkt-type broadcast -j DROP
-A input_ext -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A input_ext -m pkttype --pkt-type multicast -j DROP
-A input_ext -m pkttype --pkt-type broadcast -j DROP
-A input_ext -p tcp -m limit --limit 3/min -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j LOG --log-prefix "SFW2-INext-DROP-DEFLT " --log-tcp-options --log-ip-options
-A input_ext -p icmp -m limit --limit 3/min -j LOG --log-prefix "SFW2-INext-DROP-DEFLT " --log-tcp-options --log-ip-options
-A input_ext -p udp -m limit --limit 3/min -m conntrack --ctstate NEW -j LOG --log-prefix "SFW2-INext-DROP-DEFLT " --log-tcp-options --log-ip-options
-A input_ext -j DROP
-A reject_func -p tcp -j REJECT --reject-with tcp-reset
-A reject_func -p udp -j REJECT --reject-with icmp-port-unreachable
-A reject_func -j REJECT --reject-with icmp-proto-unreachable
COMMIT

[Opensuse 11.4] Permisos de ficheros, modo paranoico

/var/lib/xemacs/lock/ root:trusted 1775# for screen's session sockets:
/var/run/uscreens/ root:trusted 1775
#
# /etc
#
/etc/crontab root:root 600
/etc/exports root:root 600
/etc/fstab root:root 600
/etc/ftpaccess root:root 600
/etc/ftpusers root:root 600
/etc/rmtab root:root 600
/var/lib/nfs/rmtab root:root 600
/etc/syslog.conf root:root 600
#
# suid system programs that need the suid bit to work:
#
/bin/su root:root 0755
# disable at and cron for non-root users
/usr/bin/at root:trusted 0755
/usr/bin/crontab root:trusted 0755
/usr/bin/gpasswd root:shadow 0755
/usr/bin/newgrp root:root 0755
/usr/bin/passwd root:shadow 0755
/usr/bin/chfn root:shadow 0755
/usr/bin/chage root:shadow 0755
/usr/bin/chsh root:shadow 0755
/usr/bin/expiry root:shadow 0755

miércoles, 16 de marzo de 2011

PROBANDO OpenSUSE 11.4

Hace dos dias de-instale Ubuntu en mi laptop (toshiba satellite A200) para usar openSUSE 11.4 (x64) y por si alguien tiene dudas o quiere saber que tal funciona esta distro puedo decir (sobre esta Distro en mi Laptop, ignoro si ocurre lo mismo en otros PC):

  • La instalación es sencilla, excepto si queremos particionar el disco duro, esta parte es un poco mas compleja que en ubuntu.
  •  Una nota curiosa, SUSE reconoce todas las teclas "Funcion" de mi laptop, al contrario que Ubuntu la cual solo reconoce algunas teclas de funcion.

jueves, 10 de marzo de 2011

[GIP] Aplicacion Gip para calculo de IPv4

Si necesitamos una calculadora IP para realizar nuestros calculos de Ipv4, podemos usar gip. Una aplicacion facil de usar:


Install Gip in Ubuntu
sudo apt-get install gip




martes, 8 de marzo de 2011

[notify-osd] Personalizar las ventanas emergentes en UBUNTU

En ubuntu de notify-osd el cual nos informará de cuando se realizan ciertas tareas como musica o cuando se conecta algun usuario:


lunes, 7 de marzo de 2011

[SMARTMONTOOLS] Testeo de tu disco duro en Ubuntu/Debian

Para analizar el estado de tu disco duro en debian o Ubuntu podemos usar una herramienta conocida como smartmontools.

sudo apt-get install smartmontools

Smartmontools consta de dos aplicaciones, smartctl que realiza testeos manualmente y el demonio smartd que controla automáticamente los discos que hayamos marcado y envia los resultados al syslog o a un usuario.

Primero, listar los discos duros que disponemos para testearlos posteriormente:

laptop:~$ df -l
S.archivos Bloques de 1K Usado Dispon Uso% Montado en
/dev/sda5 4804736 1061908 3498760 24% /
none 1014244 280 1013964 1% /dev
none 1023888 212 1023676 1% /dev/shm
none 1023888 208 1023680 1% /var/run
none 1023888 0 1023888 0% /var/lock
/dev/sda9 85580216 21658064 59574864 27% /home
/dev/sda1 9611492 3473944 5649308 39% /usr
/dev/sda6 5766260 798912 4674436 15% /var
/dev/sda7 5766260 142588 5330760 3% /tmp


sábado, 5 de marzo de 2011

Android: Se encuentra el primer virus a gran escala en más de 50 aplicaciones


viernes, 4 de marzo de 2011

Script, Como bloquear ip de forma masiva y sin esfuerzo usando IPTABLES

En ciertas ocasiones necesitamos impedir que ciertas IP puedan acceder a nuestro servidor, pero hacerlo suele ser complicado. Por este motivo vamos a hacerlo mediante un script:
Para esto vamos a necesitar crear dos ficheros, uno donde iran las ip's en este formato:

192.168.2.1/24

Y otro fichero donde guardaremos nuestra configuracion de iptables + script.


martes, 1 de marzo de 2011

Redes Botnet

Definición de Red Botnet (Wikipedia): "Botnet es un término que hace referencia a un conjunto de robots informáticos o bots, que se ejecutan de manera autónoma y automática. El artífice de la botnet (llamado pastor) puede controlar todos los ordenadores/servidores infectados de forma remota y normalmente lo hace a través del IRC: Las nuevas versiones de estas botnets se están enfocando hacia entornos de control mediante HTTP, con lo que el control de estas máquinas será mucho más simple. Sus fines normalmente son poco éticos."