Antes de iniciar el tutorial debes saber que si usas Kali linux 2.0 la guía que te sirve es la del siguiente enlace:

VIRTUAL GUEST ADDITIONS KALI LINUX 2.0
En esta publicación se explica los pasos para solucionar el problema de  "E: No se ha podido localizar el paquete linux-headers" que afecta la instalacion de virtualbox Guest Additions. para verificar que tenemos el error ejecutamos el siguiente comando:


apt-get install -y linux-headers-$(uname -r)
Editaremos los repositorios para poder actualizar e instalar los paquetes necesarios

nano /etc/apt/sources.list



Comentamos los repositorios originales y agregamos los siguientes.

 deb http://http.kali.org/kali kali main non-free contrib

deb http://security.kali.org/kali-security kali/updates main contrib non-free

Nos debe quedar el archivo con en la imagen anterior para guardar y cerrar utilizamos la siguientes combinaciones de teclas.

CTRL+O  para guardar
CTRL+X  para salir
Actualizamos los paquetes del sistema.

 apt-get update
Ahora si Instalamos los header de kali. 
apt-get install -y linux-headers-$(uname -r)

Para realizar la instalacion del  virtualbox Guest Additions ejecutamos los siguientes comandos.

cp /media/cdrom/VBoxLinuxAdditions.run /root/
chmod 755 /root/VBoxLinuxAdditions.run
cd /root
./VBoxLinuxAdditions.run






Reinicia la maquina virtual y ya funcionara correctamente con el virtualbox Guest Additions


Fuente: http://www.iexplo1t.com/2014/05/SynapticSoftwareCenter.html

Fuente: http://es.docs.kali.org/general-use-es/kali-linux-en-virtual-box



Tablas de comandos para linux:



Tabla 1:
https://drive.google.com/file/d/0B-2FDrPc5Mapa185ckM1QVpLcjQ/view?usp=sharing


Tabla 2:
https://drive.google.com/file/d/0B-2FDrPc5MapQjA1ODVsb1dXc3M/view?usp=sharing


Tabla 3:
https://drive.google.com/file/d/0B-2FDrPc5MapRnROSmxjUlRqSDg/view?usp=sharing

Tabla 4:

https://drive.google.com/file/d/0B-2FDrPc5MapdkNkekdKUFctbU0/view?usp=sharing


Fuente: http://www.cucoinformatica.blogspot.com.es/2014/03/tablas-resumen-de-comandos-linux.html

 

 

 

Activar y desactivar los servicios.

Este procedimiento permite determinar si se desea que un servicio se inicie o no automáticamente después de iniciado (boot) el sistema operativo.

Los servicios basados en /etc/init.d se manipulan de la siguiente manera.

$ sudo update-rc.d NOMBRE_SERVICIO disable   # desactivar
$ sudo update-rc.d NOMBRE_SERVICIO enable    # activar

Para desactivar los servicios basados en Upstart se debe editar el archivo
/etc/init/NOMBRE_SERVICIO y comentar la linea que empieza con start on.  Por ejemplo, para activar el servicio cron se debe realizar el siguiente procedimiento.

$ sudo vi /etc/init/cron.conf
# cron – regular background program processing daemon
#
# cron is a standard UNIX program that runs user-specified programs at
# periodic scheduled times
description    “regular background program processing daemon”
# start on runlevel [2345]
stop on runlevel [!2345]
expect fork
respawn
exec cron
Para activar nuevamente el servicio será necesario remover el comentario al comienzo de la línea start on.

Determinar el estado de un servicio.

Para determinar si un servicio se encuentra o no ejecutándose en un momento dado se debe realizar el siguiente procedimiento si el servicio se encuentra basado en /etc/init.d.

$ sudo /etc/init.d/NOMBRE_SERVICIO status

Si el servicio se encuentra basado en Upstart se debe hacer lo siguiente.

$ sudo status NOMBRE_SERVICIO

Fuente: http://blog.jorgeivanmeza.com/2011/08/como-activardesactivar-los-servicios-en-gnulinux-ubuntu/




Probablemente a la larga este nuevo sistema de marcadores sea obligatorio para todos los usuarios y no se pueda desactivar, sin embargo, por el momento sí que es posible volver al sistema clásico desde el apartado “flags” del navegador, por lo que para recuperar el sistema clásico de marcadores simplemente debemos seguir los siguientes pasos:
  • Escribir en la barra de direcciones: chrome://flags/#enhanced-bookmarks-experiment
  • Cambiar el valor del apartado a “Inhabilitada”.
  • Reiniciar el navegador.
Google Chrome recuperar marcadores foto
Cuando el navegador arranque de nuevo podremos ver cómo los marcadores siguen teniendo la apariencia que tenían hasta ahora, con su icono sencillo, dirección URL y breve descripción del sitio. Si queremos volver a activar este nuevo sistema de marcadores de Google Chrome simplemente debemos volver a entrar en el apartado “flags” y cambiar el valor de la entrada por “Predeterminada” o “Habilitada”.












Fuente: http://www.redeszone.net/2015/04/22/marcadores-clasicos-google-chrome/




para realizar la instalacion ejecutamos:
sudo apt-get install geoip-binpara obtener la ubicación de alguna ip ejecutamos:
geoiplookup 23.66.166.151



y este es el resulado


GeoIP Country Edition: US, United States



para complementar de mejor manera el geoip ejecutamos los siguientes comandos









 wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
 wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
 wget http://download.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz
 find -iname "*.gz*" -exec gunzip {} \;
 sudo cp GeoIP.dat GeoIPASNum.dat GeoLiteCity.dat /usr/share/GeoIP/

 

Ejecutamos de nuevo para verificar si esta trabajando con los nuevo binarios:

geoiplookup 128.112.119.209

el resultado es:
GeoIP Country Edition: US, United States
GeoIP ASNum Edition: AS88 Princeton University
ahora si quieren forzar a utilizar un binario en especifico puede ejecutar:
 geoiplookup -f /usr/share/GeoIP/GeoLiteCity.dat 23.66.166.151

el resultado sera:
GeoIP City Edition, Rev 1: US, MA, Massachusetts, Cambridge,

 02142, 42.362598, -71.084297, 506, 617


tambien hay una opcion menos complicada en la instalación  y es curls

para instalarlo ejecutamos:

sudo apt-get install curl

y para implementarlo 

curl ipinfo.io/23.66.166.151

el resultado es:
{
  "ip": "23.66.166.151",
  "hostname": "a23-66-166-151.deploy.static.akamaitechnologies.com",
  "city": "Cambridge",
  "region": "Massachusetts",
  "country": "US",
  "loc": "42.3626,-71.0843",
  "org": "AS16625 Akamai Technologies, Inc.",
  "postal": "02142"
}



otro comando util es:

curl ipinfo.io/$(ping google.com -c1 | awk '{ printf "%s \n", $3 }' | cut -d "(" -f 2-5 | cut -d ")" -f 1 | head -1)


 de esta forma obtienes la ip del host a consultar.
















Para empezar con esto todos deben saber lo que es APT, algo que creo en este punto la mayoría sabe, ya que es una herramienta que mencionamos y usamos muy seguido. Apt-cache es un programa utilizado por APT para poder realizar ciertas operaciones sobre la cache de los paquetes de esta herramienta. Las aplicaciones que tiene apt-cache son muchas, yo solo voy a mencionar algunas que son las que me parecieron mas interesantes y útiles.






Search: este es uno de los parámetros que más uso en apt-cache ya que me es de enorme utilidad. Para que sirve? fácil, permite realizar búsquedas dentro del listado de paquetes disponibles en nuestros repositorios. Además las búsquedas las realiza no solo en el nombre del paquete sino también en su descripción y en toda la información disponible en el paquete. Su uso es muy sencillo, como root (o utilizando sudo) escribimos en una consola:

apt-cache search paquete
donde paquete es el nombre de la aplicación que estamos buscando, así por ejemplo yo podría buscar

apt-cache search fretsonfire
lo que, en mi caso, devolvería este resultado
fretsonfire – game of musical skill and fast fingers
fretsonfire-game – game of musical skill and fast fingers – Game files
fretsonfire-songs-sectoid – game of musical skill and fast fingers – Songs Package


Depends: otro parámetro de gran utilidad es depends, que lo que permite es saber rápidamente las dependencias de un paquete. Su uso es realmente simple, basta con escribir en una consola

apt-cache depends aplicación
y luego se nos presentara una lista con las dependencias de la aplicación o paquete buscado. Por ejemplo

apt-cache depends akregator
nos da como resultado:
akregator
Depende: kdelibs4c2a
Depende: libc6
Depende: libgcc1
Depende: libkdepim1a
Depende: libqt3-mt
Depende: libstdc++6


Show: esta opción lo que permite es obtener toda la información disponible sobre un determinado paquete. Su uso es de la siguiente manera:
apt-cache show paquete
y a continuación se nos mostrara mucha información sobre el paquete buscado, como arquitectura, versión, descripción, tamaño, y más. Un ejemplo seria:
apt-cache show akregator
y luego de esto nos mostrara en pantalla toda la información mencionada, que no coloco aquí porque es muchísima y no tiene sentido, lo mejor es que experimenten ustedes.

Pkgnames: por último esta opción tal vez no tan útil como las anteriores pero si un tanto curiosa. Si escribimos en una consola

apt-cache pkgnames
obtendremos un enorme listado con todos los paquetes que tenemos instalados en nuestro sistema, creanme que el listado es realmente enorme, yo les recomendaría que para leerlo lo guarden en un archivo de texto de esta manera:
apt-cache pkgnames > listado

Ahora en el directorio donde estaban ubicados se creo un archivo de texto llamado “listado” donde esta el resultado de apt-cache pkgnames. No lo explique pero igualmente vieron que útil el operador “>” para casos como estos? ;-)
Estos fueron solo algunas opciones de la aplicación apt-cache, para mayor información les recomiendo que lean el manual
man apt-cache
Por último les digo que esto es válido en Debian, donde se origina APT y obviamente también en Ubuntu.



Fuente: https://obux.wordpress.com/2008/02/20/apt-cache-aplicaciones-interesantes-de-esta-herramienta/






Inkscape es un ilustrador, diseñador, maquetador web o simplemente alguien que necesita crear trabajos vectoriales, Inkscape es para ti!
  • herramientas flexibles de dibujo
  • amplia compatibilidad de formatos de archivo
  • potente herramienta de texto
  • Curvas bezier y spiro

como te has dado cuenta Gimp no es capaz de guardar archivos Svg, pero para que no se sientas triste por no tener otra alternativa de software libre tienes Inkscape, que nos permite realizar  creaciones y ediciones sobre archivos svg a diferencia de gimp.

para la instalacion ejecutamos el comando

sudo apt-get install inkscape


https://inkscape.org/es/


    Filelight es un KDE gráfica analizador de uso de disco, parte del KDE Utilidades de paquete, que utiliza la tabla de sunburst técnica para mostrar el uso del disco. En lugar de mostrar una vista de árbol de los archivos dentro de una partición o directorio , o incluso una vista columnas-representar-directorios como xdiskusage, muestra una serie de concéntricas gráficos circulares que representan los diferentes directorios dentro de la partición o directorio solicitado y la cantidad de espacio que utilizan.

http://en.wikipedia.org/wiki/Filelight


   Lo mas interesante de esta aplicacion es la posibilida de ver cada parte del arbol e ir profundizando, para ver que es lo que te genera consumo de disco en esa area o sector.


para su instalacion utilizar el comando:

sudo apt-get install filelight

Deberemos desinstalar los kernel y los headers:


KERNEL


-> 1º Buscamos los kernel que tenemos instalados en nuestro sistema, para saber cuál eliminar, con el siguiente comando:
dpkg --get-selections | grep linux-image

Nos devolverá la lista de kernel instalados en el sistema:
linux-image-2.6.32-22-generic        install
linux-image-2.6.32-23-generic        install
linux-image-2.6.32-24-generic        install
linux-image-generic                  install

Nota: No eliminar el paquete "linux-image-generic"

Podemos encontrarnos en el nombre del kernel la terminación "-pae", que es el kernel que se instala cuando instalamos Ubuntu 32bits para reconocer toda la memoria RAM, cuando es mayor de 3Gb y hasta 64Gb

-> 2º Eliminamos los kernel más antiguos:
Por seguridad dejaremos los dos últimos (terminados en 23 y 24), por lo que eliminaremos el terminado en 22

Lo haremos con el comando: sudo aptitude remove --purge, seguido del paquete a eliminar:
sudo apt-get remove --purge linux-image-2.6.32-22-generic

Nota: Por supuesto, en futuras actualizaciones las versiones de kernel variarán por lo que deberemos de modificar el comando.


HEADERS


-> 3º Buscamos los headers de los kernel que hemos eliminado, con el siguiente comando:
dpkg --get-selections | grep linux-headers

Nos devolverá una lista con los headers instalados, en la debemos tener en cuenta que hay dos paquetes por cada headers:
linux-headers-2.6.32-22                        install
linux-headers-2.6.32-22-generic               install
linux-headers-2.6.32-23                        install
linux-headers-2.6.32-23-generic               install
linux-headers-2.6.32-24                        install
linux-headers-2.6.32-24-generic              install
linux-headers-generic                          install

Nota: No eliminar el paquete "linux-headers-generic".

-> 4º Eliminamos los headers de los kernels:
Sólo eliminaremos los headers de los kernel que hayamos eliminado anteriormente que "en este caso" serán los terminados en 22.

Como notaremos en la lista, cada kernel tiene 2 headers: uno el generic (linux-headers-2.6.31-22-generic) y otro que vamos a llamar normal (linux-headers-2.6.31-22)

Bién, vamos a desinstalar los 2 headers del kernel que hemos desinstalado anteriormente. El comando "en este caso" sería:
sudo apt-get remove --purge linux-headers-2.6.32-22 linux-headers-2.6.32-22-generic

Nota: Por supuesto, en futuras actualizaciones las versiones de kernel variarán por lo que deberemos de modificar el comando.

Y listo, podemos reiniciar y veremos que ya no nos salen los kernel 22, que hemos eliminado


ACTUALIZAR EL GRUB


Al eliminar los kernel se suele actualizar el Grub de forma automática, pero no está de más hacerlo manualmente para no llevarnos sorpresas después y dependiendo del gestor de arranque que tengamos: 

En el caso de tener Grub, actualizamos con:
sudo update-grub2
o también funciona:
sudo update-grub

En el caso de Burg-Grub actualizamos Burg con el comando:
sudo update-burg


Linux por defecto trae un cortafuegos llamado NetFilter. Según el sitio oficil de proyecto:

netfiltes es un conjunto de hooks (Ganchos) dentro del kernel de linux que permiten a los módulos del kernel registrar funciones callbacks con la pila de red. Una función callback registrada se llama entonces para cada paquete que atraviesa el hook correspondiente dentro de la pila de red.
Este firewall lo controla un programa llamado iptables que gestiona el filtrado para IPv4, y ip6tables para IPv6.

Ejemplos de reglas IPTABLES


  • Muchas de las acciones que se listan abajo requieren ejecutarse como usuario root.
  • Los siguientes comandos deberían funcionar en cualquier distro linux moderna.
  • Esto NO es un tutorial de como configurar iptables. Puedes ver un tutorial aquí. Es más bien una referencia rápida de los comandos más comunes de iptables.

#1: Mostrando el estado de nuestro firewall

Teclea el siguiente comando como root:
iptables -L -n -v O iptables -t nat -L -n
Ejemplos de salidas:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
El resultado de arriba indica que el firewall no está activo. La siguiente salida es la del firewall activado:
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID
  394 43586 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
   93 17292 ACCEPT     all  --  br0    *       0.0.0.0/0            0.0.0.0/0
    1   142 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  br0    br0     0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID
    0     0 TCPMSS     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:0x06/0x02 TCPMSS clamp to PMTU
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 wanin      all  --  vlan2  *       0.0.0.0/0            0.0.0.0/0
    0     0 wanout     all  --  *      vlan2   0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  br0    *       0.0.0.0/0            0.0.0.0/0
Chain OUTPUT (policy ACCEPT 425 packets, 113K bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain wanin (1 references)
 pkts bytes target     prot opt in     out     source               destination
Chain wanout (1 references)
 pkts bytes target     prot opt in     out     source               destination
Donde,
  • -L : Muestra las reglas.
  • -v : Muestra información detallada.
  • -n : Muestra la dirección ip y puerto en formato numérico. No usa DNS para resolver nombres. Esto acelera la lista.

#1.1:Para Inspeccionar el firewall con número de lineas:

iptables -n -L -v --line-numbers O iptables -t nat -v --line-numbers
Salida:
Chain INPUT (policy DROP)
num  target     prot opt source               destination
1    DROP       all  --  0.0.0.0/0            0.0.0.0/0           state INVALID
2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
4    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
Chain FORWARD (policy DROP)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
2    DROP       all  --  0.0.0.0/0            0.0.0.0/0           state INVALID
3    TCPMSS     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp flags:0x06/0x02 TCPMSS clamp to PMTU
4    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
5    wanin      all  --  0.0.0.0/0            0.0.0.0/0
6    wanout     all  --  0.0.0.0/0            0.0.0.0/0
7    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination
Chain wanin (1 references)
num  target     prot opt source               destination
Chain wanout (1 references)
num  target     prot opt source               destination
Podemos usar los números de línea para borrar o añadir nuevas reglas al firewall.

#1.2: Mostrar las reglas de cadena de entrada y salida:

iptables -L INPUT -n -v
iptables -L OUTPUT -n -v --line-numbers

#2: Parar / Iniciar / Reiniciar el firewall

Si usas CentOS / RHEL / Fedora linux:
service iptables stop
service iptables start
service iptables restart
También se puede usar propio comando iptables para detenerlo y borrar todas las reglas.
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
Donde:
  • -F : Borra todas las reglas.
  • -X : Borra cadenas
  • -t table_name : Selecciona una tabla y elimina reglas
  • -P : Establece la política por defecto (como DROP, REJECT o ACCEPT)

#3: Borrar reglas del firewall

Para mostrar los números de línea junto a otra información para reglas existentes:
iptables -L INPUT -n --line-numbers
iptables -L OUTPUT -n --line-numbers
iptables -L OUTPUT -n --line-numbers | less
iptables -L OUTPUT -n --line-numbers | grep 202.54.1.1
Obtendrendremos la lista de IPs. Miramos el número de la izquierda y lo usamos para borrarla. Por ejemplo para borrar la línea 4:
iptables -D INPUT 4
O para encontrar una ip de origen y borrarla de la regla
iptables -D INPUT -s 202.54.1.1 -j DROP
Donde:
  • -D : Elimina una o más reglas de la cadena seleccionada.

#4: Insertar reglas:

Para insertar una o más reglas en la cadena seleccionada como el número de cadena dada usamos la siguiente sintaxis. Primero encontramos el número de línea:
iptables -L INPUT -n --line-numbers
Salida:
Chain INPUT (policy DROP)
num  target     prot opt source               destination
1    DROP       all  --  202.54.1.1           0.0.0.0/0
2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state NEW,ESTABLISHED
Para insertar una regla entre 1 y 2;
iptables -I INPUT 2 -s 202.54.1.2 -j DROP
Para ver las reglas actualizadas
iptables -L INPUT -n --line-numbers
Salida:
Chain INPUT (policy DROP)
num  target     prot opt source               destination
1    DROP       all  --  202.54.1.1           0.0.0.0/0
2    DROP       all  --  202.54.1.2           0.0.0.0/0
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state NEW,ESTABLISHED

#5: Guardar reglas

Para guardar reglas en CentOS / RHEL / Fedora Linux:
service iptables save
En este ejemplo, eliminamos una ip y guardamos las reglas del firewall:
iptables -A INPUT -s 202.5.4.1 -j DROP
service iptables save
Para todas las dem��s distros usamos:
iptables-save > /root/my.active.firewall.rules
cat /root/my.active.firewall.rules

#6: Restaurar reglas

Para restaurar reglas desde un archivo llamado /root/my.active.firewall.rules:
iptables-restore < /root/my.active.firewall.rules
Bajo CentOS / RHEL / Fedora Linux:
service iptables restart

#7: Estableces políticas de firewall por defecto

Para borrar todo el tráfico:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -L -v -n
## you will not able to connect anywhere as all traffic is dropped ###
ping cyberciti.biz
wget http://www.kernel.org/pub/linux/kernel/v3.0/testing/linux-3.2-rc5.tar.bz2

#7.1: Solo tráfico entrante bloqueado

Para borrar todos los paquetes entrantes / enviados pero permitir el tráfico saliente:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -L -v -n
# *** now ping and wget should work *** ###
ping cyberciti.biz
wget http://www.kernel.org/pub/linux/kernel/v3.0/testing/linux-3.2-rc5.tar.bz2
 

#7.1: ACEPTAR CUALQUIER TRAFICO

iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT


#8: Borrar direcciones de red privadas en la interfaz pública

IP Spoofing es nada más que para detener los siguientes rangos de direcciones IPv4 para redes privadas en sus interfaces públicas. Los paquetes con direcciones de origen no enrutables deben rechazarse mediante la siguiente sintaxis:
iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j DROP
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

#9: Bloqueando una direción IP (BLOCK IP)

PAra bloquear una ip atacante llamada 1.2.3.4:
iptables -A INPUT -s 1.2.3.4 -j DROP
iptables -A INPUT -s 192.168.0.0/24 -j DROP

#10: Bloquear peticiones entrantes de un puerto (BLOCK PORT)

Para bloquear todas las solicitudes de servicio en el puerto 80:
iptables -A INPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -i eth1 -p tcp --dport 80 -j DROP
Para bloquear el puerto 80 para una ip:
iptables -A INPUT -p tcp -s 1.2.3.4 --dport 80 -j DROP
iptables -A INPUT -i eth1 -p tcp -s 192.168.1.0/24 --dport 80 -j DROP

#11: Bloquear ips de salida

Para bloquear el tráfico saliente a un host o dominio en concreto como por ejemplo cyberciti.biz:
host -t a cyberciti.biz
Salida:
cyberciti.biz has address 75.126.153.206
Una vez conocida la dirección ip, bloqueamos todo el tráfico saliente para dicha ip así:
iptables -A OUTPUT -d 75.126.153.206 -j DROP
Se puede usar una subred como la siguiente:
iptables -A OUTPUT -d 192.168.1.0/24 -j DROP
iptables -A OUTPUT -o eth1 -d 192.168.1.0/24 -j DROP

#11.1: Ejemplo - Bloquear el dominio facebook.com

Primero, encontrar la dirección ip de facebook.com
host -t a www.facebook.com
Salida:
www.facebook.com has address 69.171.228.40
Buscar el CIDR para 69.171.228.40:
whois 69.171.228.40 | grep CIDR
Salida:
CIDR:           69.171.224.0/19
Para prevenir el acceso externo a facebook.com:
iptables -A OUTPUT -p tcp -d 69.171.224.0/19 -j DROP
Podemos usar también nombres de dominio:
iptables -A OUTPUT -p tcp -d www.facebook.com -j DROP
iptables -A OUTPUT -p tcp -d facebook.com -j DROP
De la página del man de iptables:
… specifying any name to be resolved with a remote query such as DNS (e.g., facebook.com is a really bad idea), a network IP address (with /mask), or a plain IP address …

#12: Log y borrar paquetes

Escribe lo siguiente para añadir al log y bloquear IP spoofing en una interfaz pública llamada eth1
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j LOG --log-prefix "IP_SPOOF A: "
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
Por defecto el log está en el archivo /var/log/messages
tail -f /var/log/messages
grep --color 'IP SPOOF' /var/log/messages

#13: Log y borrar paquetes con un número limitado de entradas al log

El módulo -m limit puede limitar el número de entradas al log creadas por tiempo. Se usa para prevenir que el archivo de log se inunde. Para añadir al log y elminar spoofing cada 5 minutos, en ráfagas de 7 entradas:
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -m limit --limit 5/m --limit-burst 7 -j LOG --log-prefix "IP_SPOOF A: "
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

#14: Aceptar o denegar tráfico desde dirección MAC

iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j DROP
## *only accept traffic for TCP port # 8080 from mac 00:0F:EA:91:04:07 * ##
iptables -A INPUT -p tcp --destination-port 22 -m mac --mac-source 00:0F:EA:91:04:07 -j ACCEPT

#15: Bloquear o permitir peticiones ping ICMP

Para bloquear peticiones ping ICMP
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP
Las respuestas al ping también se puede limitar a ciertas redes o hosts.
iptables -A INPUT -s 192.168.1.0/24 -p icmp --icmp-type echo-request -j ACCEPT
Lo siguiente solo acepta limitados tipos de peticiones ICMP:
### ** assumed that default INPUT policy set to DROP ** #############
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
## ** all our server to respond to pings ** ##
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

#16: Abrir un rango de puertos

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7010 -j ACCEPT

#17: Abrir un rango de direcciones ip

## only accept connection to tcp port 80 (Apache) if ip is between 192.168.1.100 and 192.168.1.200 ##
iptables -A INPUT -p tcp --destination-port 80 -m iprange --src-range 192.168.1.100-192.168.1.200 -j ACCEPT
## nat example ##
iptables -t nat -A POSTROUTING -j SNAT --to-source 192.168.1.20-192.168.1.25

#19: Bloquear o abrir puertos comunes

Replace ACCEPT with DROP to block port:
## open port ssh tcp port 22 ##
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT
 
## open cups (printing service) udp/tcp port 631 for LAN users ##
iptables -A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 631 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 631 -j ACCEPT
 
## allow time sync via NTP for lan users (open udp port 123) ##
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 123 -j ACCEPT
 
## open tcp port 25 (smtp) for all ##
iptables -A INPUT -m state --state NEW -p tcp --dport 25 -j ACCEPT
 
# open dns server ports for all ##
iptables -A INPUT -m state --state NEW -p udp --dport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
 
## open http/https (Apache) server port to all ##
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
 
## open tcp port 110 (pop3) for all ##
iptables -A INPUT -m state --state NEW -p tcp --dport 110 -j ACCEPT
 
## open tcp port 143 (imap) for all ##
iptables -A INPUT -m state --state NEW -p tcp --dport 143 -j ACCEPT
 
## open access to Samba file server for lan users only ##
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 137 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 138 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT
 
## open access to proxy server for lan users only ##
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 3128 -j ACCEPT
 
## open access to mysql server for lan users only ##
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

#20: Restringir el número de conexiones paralelas a un servidor por direccion Ip del cliente.

Se puede usar connlimit para crear algunas restricciones. Para permitir 3 conexiones ssh por cliente:
iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT
Establecer las peticiones HTTP a 20:
iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 20 --connlimit-mask 24 -j DROP
donde:
  • –connlimit-above 3 : Coincide si el número de conexiones existentes está por encima de 3.
  • –connlimit-mask 24 : Grupos de hosts usando el prefijo de longitud. Para IPv4, debe ser un número entre 0 y 32 (incluyéndolos.)

#21: HowTO: Use iptables Like a Pro

Para más información sobre iptables, échale un vistazo al manual:
man iptables
Para ver la ayuda en general o de un comando específico:
iptables -h
iptables -j DROP -h

#21.1: Probando nuestro firewall

Conocer si hay puertos abiertos o no:
netstat -tulpn
Es recomendable instalarse un sniffer como tcpdupm y ngrep para probar la configuración de nuestro firewall.

Conclusión

Esta entrada solo lista las reglas básicas para los usuarios nuevos en linux. Se pueden crear reglas más complejas. Requiere una buena comprensión de TCP/IP, tunning del kernel linux via sysctl.conf y un buen conocimiento de nuestra configuración.
Fuente original: cyberciti

Más reglas cortesía de Jker

a)a. Reestablece las reglas por defecto.
sudo su
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
IPtables -nL para ver que estan vacias
b)b. Configura la máquina para que sólo se pueda acceder desde ella a las webs http://www.google.es y http://www.iesgoya.com y a ninguna otra.
iptables -A OUTPUT -d http://www.google.es -j ACCEPT
iptables -A OUTPUT -d http://www.iesgoya.com -j ACCEPT
iptables -A OUTPUT -p tcp –dport 80 -j DROP # Mas exigente –> iptables -A OUTPUT -p all -j DROP

como google tiene muchas IPs puede que tengamos un problema para ello realizamos lo siguiente antes de la regla EXIGENTE:

iptables -I OUTPUT 1 -d 212.106.221.0/24 -j ACCEPT
iptables -I OUTPUT 1 -d 173.194.0.0/16 -j ACCEPT

MOstrar las reglas que llevamos hasta el momento:

iptables -nL –line-numbers

Si queremos borrar reglas:

iptables -D OUTPUT 5
c)c. Cierra todos los puertos bien conocidos menos los necesarios para acceder a estas dos webs.
iptables -A OUTPUT -p TCP –dport 53 -j ACCEPT
iptables -A OUTPUT -p UDP –dport 53 -j ACCEPT
iptables -A OUTPUT -p TCP –dport 1:1024 -j DROP
iptables -A OUTPUT -p UDP –dport 1:1024 -j DROP
d)d. Investiga de qué forma podrías hacer que las peticiones entrantes a tu máquina virtual al puerto 81 por http vayan mediante NAT al puerto 80 de la máquina local (arranca WAMP para comprobar que funciona).
Arrancamos wamp en la maquina fisica y comprobamos que accedemos a wamp desde localhost.
Comprobamos que podemos acceder desde la maquina virtual y se encuentra cortado
Miramos la IP de la maquina virtual.
Ahora desde la maquina fisica intentamos acceder desde el puerto 81 con la IP esa.
Habilitamos el enrutamiento entre tarjetas de red de nuestro equipo:
echo 1 > /proc/sys/net/ipv4/ip_forward

Ejecutamos las siguientes reglas

iptables -t nat -A PREROUTING -p tcp –dport 81 -j DNAT –to- destination 192.168.203.200:80

iptables -t nat -A POSTROUTING -s 192.168.203.0/24 -j MASQUERADE

Para ver las reglas introducidas:

iptables -t nat -nL –line-numbers
e)e. Permite sólo los mensajes entrantes desde la IP del compañero de tu máquina física (prueba desde otro sitio para ver si funciona).
iptables -A INPUT -s 192.168.203.200 -j ACCEPT
iptables -A INPUT -j DROP

iptables -A FORWARD -s 192.168.203.200 -j ACCEPT
iptables -A FORWARD -s -j DROP
f) #Activa el log sobre todas las reglas y verifica que se anotan los mensajes.
Insertamos en IPTABLEs las reglas para activar el log:
iptables -I FORWARD 1 -j LOG –log-prefix ‘IPTABLESFORWARD: ‘
iptables -I INPUT 1 -j LOG –log-prefix ‘IPTABLESINPUT: ‘

iptables -t nat -I PREROUTING 1 -j LOG –log-prefix ‘IPTABLESPREROUTING: ‘
iptables -t nat -I POSTROUTING 1 -j LOG –log-prefix ‘IPTABLESPREROUTING: ‘

iptables -I OUTPUT 1 -j LOG –log-prefix ‘IPTABLESOUTPUT: ‘
NOTA: hay que ponerlas las primeras para que haga log antes de rechazarlo.

Ahora editamos el archivo:

gedit /etc/rsyslog.d/50-default.conf

E incluimos al final:

kern.warning /var/log/iptables.log
 
Fuente: http://elbauldelprogramador.com/20-ejemplos-de-iptables-para-sysadmins/