Como liberar memoria Cached en Linux


Tan sencillo como para borrar toda la memoria virtual no utilizada que se encuentra en la caché

Antes de correr el comando deberíamos ver como esta el nuestra ram:

 

free -m
        total  used   free        shared buffers cached
Mem:     7936  4538   3398            0      84   3363

Ahora ejecutamos el comando para liberar:

 echo 3 > /proc/sys/vm/drop_caches 

Comprobemos:

free -m
        total  used   free        shared buffers cached
Mem:     7936  1175   6761            0      1   200

Mola! Se eliminaron 3363 de RAM de 83 buffers que estaban divagando en el espacio…

Auditando nuestros sistemas con LYNIS


automated-software-bug-fix@2x

Lynis es una herramienta de auditoria de código abierto. Es usado por administradores, profesionales y auditores para evaluar la seguridad en los sistemas basados en Linux/Unix. Lynis escanea las posibles vulnerabilidades de sus sistema y da un reporte de los posibles fallos. Cabe destacar que Lynis no corrige los fallos solo te dice que esta mal configurado.

Sistemas operativos soportados

Lynis corre al menos en los sistemas basados en unix y sus versiones, incluyendo literalmente a:

  • AIX
  • FreeBSD
  • HP-UX
  • Linux
  • Mac OS
  • NetBSD
  • OpenBSD
  • Solaris
  • and others

Incluso se ejecuta en sistemas como el Raspberry Pi, QNAPs y otros dispositivos de almacenamiento.

No requiere instalación

Lynis es flexible y fácil de usar. Es una de las pocas herramientas, en los que la instalación es opcional. Sólo copiarlo en el sistema y darle un comando como “sistema de auditoría” para ejecutar el análisis de seguridad. Está escrito en shell script y liberado como software de código abierto (GPL).P

Para instalarlo tenemos dos opciones:  

Para buscar el paquete
# aptitude search lynis
Para instalar
#aptitude install lynis

También podemos descargarlo directamente en 

https://cisofy.com/download/lynis/

Actualmente esta la versión 2.1.1

Al descargarlo Ejecutamos el siguiente comando:

$ sudo tar xvfz lynis-2.1.1.tar.gz -C /opt/

Entramos en la carpeta

$ cd /opt/lynis

Encontraremos en la carpeta un ejecutable y procedemos haber la cantidad de comandos disponbiles 

$ sudo ./lynis --help

Si ejectuamos -c -Q podemos hacer un escaneo completo sin que el usuario tenga que teclear nada:

$ sudo ./lynis -c -Q

Esto comenzara darnos información de nuestro sistema operativo:

Lynis

 

Para ver los warnings (problemas a resolver urgentemente), introducimos el siguiente comando:

$ sudo grep Warning /var/log/lynis.log

Para ver las sugerencias:

$ sudo grep Suggestion /var/log/lynis.log

Definitivamente, Lynis se útil cuando queremos ver como esta  la seguridad de nuestro sistema. 

Si quieres ver un poco mas sobre esto te invito a visitar el siguiente links: https://cisofy.com/lynis/

Saludos

Bonding con xen en Debian “Wheezy – Jessie”


ip_kicsi_0El ‘bonding’ de tarjetas de red nos permite utilizar múltiples tarjetas como si tuviéramos una sola. Se puede utilizar para hacer balanceo de carga, enlaces y ancho de banda, tolerancia a fallos, etc …

Hay diferentes tipos por ejemplo:

 

  • modo 0 o balance-rr :  Utiliza el método Round-Robin entre las tarjetas de red que forman el enlace.  Es decir, transmite los paquetes en orden secuencial desde la primera tarjeta esclava hasta la última, y entonces vuelve a empezar por la primera de nuevo. Esta opción ofrece balanceo de carga* y tolerancia a fallos.
  • modo 1 o active-backup :  Sólo una de las tarjetas esclavas está activa. Si la tarjeta activa falla, otra tarjeta se vuelve activa y recibe el tráfico. Esta opción ofrece tolerancia a fallos.
  • modo 2 o balance-xor :  Se aplica una política XOR basada en  dirección MAC origen  XOR  dirección MAC destino. De esta forma se selecciona la misma tarjeta esclava para cada MAC destino. Esta opción ofrece balanceo de carga* y tolerancia a fallos.
  • modo 3 o broadcast  : Se retransmiten todos los paquetes a todas las tarjetas esclavas. Esta opción ofrece tolerancia a fallos.
  • modo 4 o 802.3ad :  802.3ad nos permite agregar varios enlaces para conseguir un mayor ancho de banda.  Todos los enlaces deben tener la misma velocidad y ancho de banda.  Es necesario equipamiento de red que soporte 802.3ad. En redes esto se conoce como Port Trunking y en Cisco como LACP.
  • modo 5 o balance-tlb :  El tráfico saliente se distribuye según la carga de trabajo en cada tarjeta esclava
  • modo 6 o balance-alb :  Incluye el balanceo del tráfico saliente ( modo 5 ) más el balanceo del tráfico entrante

 

Por defecto la configuración más usada cuando instalamos xen son los usos puente dentro del dominio backend.

 

En esta configuración se crea un puente de software en el dominio backend. Los dispositivos de red de backend virtuales (vifDOMID.DEVID)) se añaden a este puente junto con un (opcional dispositivo Ethernet físico) para proporcionar conectividad fuera del huésped. Al omitir el dispositivo Ethernet física de una red aislada que contiene sólo los dominios huésped puede ser creado.

Es decir, si una interfaz web llega a fallar usted puede seguir tranquilo la otra interfaz respondera con la misma itinerancia que la otra.

#apt-get install ifenslave

Bajamos las interfaces:

# ifdown eth0 (Repeat for all interfaces included in the bond)
#systemctl stop networking
or
# /etc/init.d/networking stop

La configuración normal del xen sería:

vim /etc/networking/interfaces

auto bond0
iface bond0 inet static
address x.x.x.x
netmask x.x.x.x
gateway x.x.x.x
slaves eth0 eth1
bond_mode active-backup
bond_miimon 100
bond_downdelay 200
bond_updelay 200

auto eth0
iface eth0 inet manual
bond-master bond0
bond-primary eth0
bond-mode active-backup

auto eth1
iface eth1 inet manual
bond-master bond0
bond-primary eth1
bond-mode active-backup

Reiniciamos la interfaz

#ifup bond0
#/etc/init.d/networking start

Ahora bien la parte que nos interesa ¿Cómo lo hacemos con xen?

auto lo eth0 eth1 bond0 xenbr0

iface lo inet loopback

iface bond0 inet manual
slaves eth0 eth1
bond-mode active-backup
bond-miimon 100
bond-downdelay 200
bond-updelay 200

iface xenbr0 inet static
address x.x.x.x
netmask x.x.x.x
network x.x.x.x
broadcast x.x.x.x
gateway x.x.x.x
bridge_ports bond0

Lo que se hace es que se define el bonding tal cual como está ahi pero quien va a llevar la ip será xenbr que será la interfaz para xen. Automaticamente con el pareametro bridge_ports al definirle que pertenece a bond0 son aliado.

Esto funciona en debían wheezy y Jessie que recien fue liberada el pasado 25 de marzo de este año.

Debería ser la misma teoria para centos, fedora, redhat, arch.
Ejemplo del bonding en centos

DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=x.x.x.x
NETMASK=x.x.x.x
NETWORK=x.x.x.x
GATEWAY=x.x.x.x
BROADCAST=x.x.x.x
PREFIX=24
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS=”mode=1 miimon=100″

configuración par el eth0

HWADDR=”00:00:00:00:00″
TYPE=”Ethernet”
BOOTPROTO=”none”
DEFROUTE=”yes”
PEERDNS=”yes”
PEERROUTES=”yes”
IPV4_FAILURE_FATAL=”no”
IPV6INIT=”yes”
IPV6_AUTOCONF=”yes”
IPV6_DEFROUTE=”yes”
IPV6_PEERDNS=”yes”
IPV6_PEERROUTES=”yes”
IPV6_FAILURE_FATAL=”no”
NAME=”em1″
ONBOOT=”yes”
MASTER=bond0
SLAVE=yes

Configuración para el eth1

HWADDR=”00:00:00:00:00″
TYPE=”Ethernet”
BOOTPROTO=”none”
DEFROUTE=”yes”
PEERDNS=”yes”
PEERROUTES=”yes”
IPV4_FAILURE_FATAL=”no”
IPV6INIT=”yes”
IPV6_AUTOCONF=”yes”
IPV6_DEFROUTE=”yes”
IPV6_PEERDNS=”yes”
IPV6_PEERROUTES=”yes”
IPV6_FAILURE_FATAL=”no”
NAME=”em2″
ONBOOT=”yes”
MASTER=bond0
SLAVE=yes

ifup ifcfg-enp0s8

ifup ifcfg-enp0s9
Ahora, ingrese el siguiente comando para hacer Network Manager conscientes de los cambios.
nmcli con reload
Reiniciar Servicio de red para tomar efecto los cambios.
systemctl restart network

cat /proc/net/bonding/bond0

Así es como se hace el bonding generalmente en centos. Ahora al ligarlo con el xen debería ser la misma teoría que aplicamos como lo hicimos con debían…

Sín mas, Muchas gracias.

Gracias a Miguel Tovar por la colaboración migueltovarve@gmail.com

 

Como hacer Jaulas CHROOT


chroot_small

chroot en los sistemas operativos derivados de Unix, es una operación que invoca un proceso, cambiando para este y sus hijos el directorio raíz del sistema. “chroot” puede referirse a la llamada de sistema chroot(2) o al programa ejecutable chroot(8). Comúnmente, el entorno virtual creado por chroot a partir de la nueva raíz del sistema se conoce como “jaula chroot”.

Fuente: http://es.wikipedia.org/wiki/Chroot

Las jaulas chroot se usan para crear y mantener una copia virtual separada del sistema operativo en un directorio del mismo. Esto puede ser útil para:

  • Pruebas y desarrollo: Se puede crear un área de prueba para un programa cuando es arriesgado usar un sistema en producción directamente.
  • Control de dependencia: Los programas pueden ser desarrollados, construidos y puestos a prueba solo con las dependencias esperadas. Esto puede prevenir algunas formas de ligado corrupto que surgen cuando los desarrolladores construyen proyectos con diferentes bibliotecas instaladas.
  • Compatibilidad: El software heredado o que usa una diferente interfaz binaria de aplicación, algunas veces debe de ejecutarse por separado, ya que las bibliotecas que lo soportan o los archivos de datos podrían, de otra forma, entrar en conflicto de nombres o enlaces con los del sistema contenedor de la jaula.

Veamos como seria su estructura

 

enjaulado12

 

Ahora bien comenzamos con el proceso de instalación y configuración:

# aptitude install debootstrap coreutils

Preparando el entorno

Podemos crear n cantidad de jaulas por lo general en cualquier directorio, en este ejemplo utilizaremos /media/ (en esta guía crearemos una jaula debian arquitectura i386):

# cd /media
# mkdir jaulas
#cd jaulas
#mkdir nombreJaula

Muy bien podemos asignar la ruta a una variable de la siguiente manera

# export nombrevariable =/media/jaulas/nombreJaula

Si quieres comprobar que esto es cierto:

# echo $nombrevarible

el resultado es:  /media/jaulas/nombrejaula

Descargando el sistema base

Debootstrap es utilizado para crear un sistema base Debian. Este paquete es capaz de hacer esto bajando todos los archivos *.deb desde un mirror.

El uso de debootstrap es el siguiente, en líneas generales

# debootstrap  –arch  i386  wheezy  $nombrevariable  http://ftp.us.debian.org/debian

Donde debootstrap invoca dicho programa, el argumento –arch escoge el tipo de arquitectura, wheezy es la rama de Debian a utilizar, $nombrevariable es la variable que contiene la ubicación de dónde va ser instalada la jaula.

debootstrap  deberia mostrar algo como:
: Retrieving Release
I: Retrieving Packages
I: Validating Packages
I: Resolving dependencies of required packages…
.
.
I: Base system installed successfully.

OJO: “Este proceso Puede duran un buen rato”

Configurando la jaula (chroot)
Antes de poder acceder a la jaula, es necesario montar el sistema de archivo del procesador y el peuso terminal esclavo. Para ello ejecutamos:

mount -o bind /dev $nombrevariable/dev
mount -o bind /dev/pts $nombrevariable/dev/pts
mount -o bind /proc $nombrevariable/proc
mount -o bind /sys $nombrevariable/sys

En mario bross diriamos: “Wiiiiiiiiiiiiiiiii”

Ya podemos entrar a nuestra jaula virtual como súper usuario ejecutando lo siguiente:

# chroot $nombrevariable

 

Es importante señalar que el usuario root no tiene contraseñas cuando se instala una jaula.

Para asignar un password se debe ejecutar passwd. Puedes crear usuarios utilizando para ello debes ejecutar el comando adduser con este comando se crea el usuario.

Huntingbears dice así en su escrito:

Al estar dentro, el sistema anfitrión ya no existe, estamos dentro de la jaula y podemos hacer desastres.

Puedes ver mas en: http://es.wikipedia.org/wiki/Chroot

http://huntingbears.com.ve/usando-jaulas-interoperables-como-alternativa-a-la-virtualizacion-por-hardware.html

Como instalar PyQt4 en un entorno Virtualenv.


Excelente articulo! Les invito a leerlo by @4KRodrigoxD

Desarrollo & Software libre, blog d' Rodrigo.

En este post quiero explicar como compilar y instalar PyQt4 y SIP en un entorno de desarrollo utilizando Virtualenv, en este caso utilizando Python 2.7.

Lo primero que debemos tener en cuenta es instalar las dependencias necesarias.

En Archlinux:

# pacman -Sy python2-pip python2 libxext python2-pyqt4 base-devel 

En Debian:

# apt-get install python-pip python2.7-dev libxext-dev python-qt4 qt4-dev-tools build-essential

Ya con eso debería bastar a la hora de compilar. En mi caso estoy utilizando ArchLinux y con esas dependencias fue suficiente.

En caso de no tener Virtualenv instalado ejecutamos:

# pacman -Sy python2-virtualenv

ó

# apt-get install python-virtualenv

Iniciamos el entorno de desarrollo en la ruta que deseamos.

$ virtualenv /home/usuario/virtualenv/nombre

Descargamos el código fuente de PyQt4 y SIP:

### Entramos a la carpeta y creamos el directorio build $ cd /home/usuario/virtualenv/nombre && mkdir build $ cd build ### Descargamos el código fuente. $ wget http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.11/PyQt-x11-gpl-4.11.tar.gz $ wget http://sourceforge.net/projects/pyqt/files/sip/sip-4.16/sip-4.16.tar.gz ###…

Ver la entrada original 257 palabras más

Restaurar un respaldo “.img” en postgresql


Buenas noches amigos para restaurar una data a postgresql siempre se usa pg_restore o psql pero en este caso para un respaldo .img usamos este comando sencillo:

Ver mas en: http://www.postgresql.org/docs/9.2/static/app-pgrestore.html

pg_restore –no-owner -F c -d <bd> archivo.img

 

Fácil no? bueno pongamos manos a la obra 😀

Instalar y configurar un servidor SSH


SSH_Dock_Icon_by_eternicode

 

Hoy nos tocara hablar sobre SSH (Security Shell ) Según Wikipedia es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X (en sistemas Unix y Windows).


 

Instalación de ssh:

# aptitude install ssh
# yum install ssh
#pacman -S ssh

Uso Básico: 

Acceso a la shell en un servidor remoto:

usuario@desktop:~$ ssh usuario@servidor.com
usuario@servidor.com’s password:
Linux host.servidor.com 2.6.18.8-srv #1 SMP Tue Nov 10 16:12:12 UTC
2009 i686
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

Last login: Fri Feb 19 22:27:15 2014 servidor.com
usuario@host:~$

Copiar archivos a / desde un servidor remoto:

usuario@desktop:~$ scp -r carpeta1 usuario2@otro.servidor.com:/ruta
usuario@desktop:~$ scp -r otro.servidor.com:carpeta1 .

SSH nos permiten muchas cosas entre ellas: 

Administrar servidores remotamente por la línea de comandos

  • Ejecutar comandos individuales
  • Iniciar una sesión interactiva

Trasferir Archivo

  • scp (secure copy)
  • sft (secure file transfer protocol)

Abrir tuneles

  • Puerto remoto disponible en un puerto local
  • Puerto local disponible localmente en servidor remoto

Detalles por corregir

  • Utilizar solo la versión más segura del protocolo
  • Deshabilitar el acceso como root
  • Utilizar sudo para convertirse en root
  • Limitar el acceso solo a cuentas autorizadas
  • Deshabilitar por completo el uso de contraseñas
  • Utilizar llaves criptográficas (DSA / RSA)
  • Utilizar un puerto distinto
  • Despistar a muchos atacantes no muy sofisticados
  • Advertir adecuadamente a potenciales usuarios no autorizados
  • Colocar un banner que mencione las leyes locales
  • Abrir el puento solo a IPs autorizadas
  • TCP wrappers
  • Port knocking
  • Single Packet Authorization

Comenzemos  con la fiesta:

Como usuario Root:

# vim /etc/ssh/sshd_config

Si no los tienes por favor debes cambiarlo de inmediato:

# Solo el protocolo en su versión 2
Protocol 2
# Separación de privilegios en el demonio ssh
UsePrivilegeSeparation yes
# Venta de tiempo para intentar iniciar sesión
LoginGraceTime 120
# No permitir acceso a carpetas $HOME en las que terceros usuarios tiene permiso de escritura
StrictModes yes

Comenzaremos con unas mejoras:

# Deshabilitar el acceso como root es sumamente importante:
PermitRootLogin no
# Limitar acceso a solo una lista de cuentas de usuario o grupos
AllowUsers usuario1 usuario2
AllowGroups admin

Deshabilitar contraseñas:

# Autenticación usando contraseñas
PasswordAuthentication no
# Uso de llaves criptográficas
RSAAuthentication yes
PubkeyAuthentication yes
# Ruta del archivo con llaves autorizadas por usuario
AuthorizedKeysFile
%h/.ssh/authorized_keys

Generando una llave ssh:

ssh-keygen

Generating public/private dsa key pair.
Enter file in which to save the key (/home/usuario/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/usuario/.ssh/id_dsa.
Your public key has been saved in /home/usuario/.ssh/id_dsa.pub.
The key fingerprint is:~
3d:43:8e:52:ac:e1:8c:97:da:16:d4:9b:37:4d:ba:80 usuario@desktop

IMPORTANTE: Guarda tu llave privada en un lugar seguro

Vamos a observar algunos archivos importantes:

Llave privada

$ cat .ssh/id_dsa
—–BEGIN DSA PRIVATE KEY—–
MIIBuwIBAAKBgQDp8z4vPh5em02JIoCETf2/HaP7+bfYb315Dl49rcCjH7KTvIin
zOub3R1mnJx7E+f+e2hMFX6EVZRSvNLAYN8SnB0NF1SNGj1JirYDiPhFsHfoq+bm
2C0KXvExIttkYDwQVTb9gFEGyGAVoaA/2DblQgerJbRUZQpcykCrC2C/FwIVALHR
vgAOs7AbwfbLNAnaMp/uhAAxAoGBAKcDS1GmlM8s2qt7vC1/mNHnVAAeh7idI7wv
KVsQ/jPkOa/P3mcqYt2HbK62cbTkJDbtc+Vtkun89f+QeBmPdiZ0g7C4E8vnV6RR
UXA4lz/NTRXYWwLPJ5dvLnMaL8hmtSx4HhTu1GYtIs1KMJmHd5I+ZHjMiKItuX/o
OsK98wRxAoGAUE6qf6rQk5DGJada9jof1Ddpq5GRuDAB4mAbfApp1MRwHeylbIle
wvdo8bUNrUIGPdGwXoyzCZogzH5CLgwGtGOE8O816PdE+D6GmthZT+8Wgw9OOV8b
nqWMyhN4JQbsiNmtyr6nfYeQegIaoIcP1dAoyT7kM11taoKhSwTQxS0CFBjc2TCc
Y+vRyigR3p5DKJibmFWA
—–END DSA PRIVATE KEY—–

Llave publica

$ cat .ssh/id_dsa.pub
ssh-dss
AAAAB3NzaC1kc3MAAACBAOnzPi8+Hl6bTYkigIRN/b8do/v5t9hvfXkOXj2twKMfspO8iKfM
65vdHWacnHsT5/57aEwVfoRVlFK80sBg3xKcHQ0XVI0aPUmKtgOI+EWwd+ir5ubYLQpe8TEi
22RgPBBVNv2AUQbIYBWhoD/YNuVCB6sltFRlClzKQKsLYL8XAAAAFQCx0b4ADrOwG8H2yzQJ
2jKf7oQAMQAAAIEApwNLUaaUzyzaq3u8LX+Y0edUAB6HuJ0jvC8pWxD+M+Q5r8/eZypi3Yds
rrZxtOQkNu1z5W2S6fz1/5B4GY92JnSDsLgTy+dXpFFRcDiXP81NFdhbAs8nl28ucxovyGa1
LHgeFO7UZi0izUowmYd3kj5keMyIoi25f+g6wr3zBHEAAACAUE6qf6rQk5DGJada9jof1Ddp
q5GRuDAB4mAbfApp1MRwHeylbIlewvdo8bUNrUIGPdGwXoyzCZogzH5CLgwGtGOE8O816PdE
+D6GmthZT+8Wgw9OOV8bnqWMyhN4JQbsiNmtyr6nfYeQegIaoIcP1dAoyT7kM11taoKhSwTQ
xS0= usuario@desktop

Copiando llave publica al servidor

$ ssh-copy-id -i .ssh/id_dsa.pub usuario@servidor.com:
Password:
Now try logging into the machine, with “ssh ‘usuario@servidor.com'”,
and check in:
.ssh/authorized_keys
to make sure we haven’t added extra keys that you weren’t expecting.

Iniciamos sesión  en el servidor  remoto y verificamos el archivo donde alojo el nuestra llave ssh.

$ cat .ssh/authorized_keys
ssh-dss
AAAAB3NzaC1kc3MAAACBAOnzPi8+Hl6bTYkigIRN/b8do/v5t9hvfXkOXj2twKMfspO8iKfM
65vdHWacnHsT5/57aEwVfoRVlFK80sBg3xKcHQ0XVI0aPUmKtgOI+EWwd+ir5ubYLQpe8TEi
22RgPBBVNv2AUQbIYBWhoD/YNuVCB6sltFRlClzKQKsLYL8XAAAAFQCx0b4ADrOwG8H2yzQJ
2jKf7oQAMQAAAIEApwNLUaaUzyzaq3u8LX+Y0edUAB6HuJ0jvC8pWxD+M+Q5r8/eZypi3Yds
rrZxtOQkNu1z5W2S6fz1/5B4GY92JnSDsLgTy+dXpFFRcDiXP81NFdhbAs8nl28ucxovyGa1
LHgeFO7UZi0izUowmYd3kj5keMyIoi25f+g6wr3zBHEAAACAUE6qf6rQk5DGJada9jof1Ddp
q5GRuDAB4mAbfApp1MRwHeylbIlewvdo8bUNrUIGPdGwXoyzCZogzH5CLgwGtGOE8O816PdE
+D6GmthZT+8Wgw9OOV8bnqWMyhN4JQbsiNmtyr6nfYeQegIaoIcP1dAoyT7kM11taoKhSwTQ
xS0= usuario@desktop

Dejaremos esto hasta aquí por hoy. Si necesitas una ayuda no dudes en preguntar.

 

 

Ocultar Directorios vía IPTABLES y dejarlo disponible para una IP


iptables

En esta oportunidad hablare un poco sobre iptable, siempre uno se topa de como ocultar un directorio de nuestro sistema y querer dejarlo visible para una IP en especifico o mejor aún solo dejarlo disponible a un rango de IPS. 

Pero ¿que es IPTABLE ?

iptables es el nombre de la herramienta de espacio de usuario mediante la cual el administrador puede definir políticas de filtrado del tráfico que circula por la red. El nombre iptables se utiliza frecuentemente de forma errónea para referirse a toda la infraestructura ofrecida por el proyecto Netfilter. Sin embargo, el proyecto ofrece otros subsistemas independientes de iptables tales como el connection tracking system o sistema de seguimiento de conexiones, que permite encolar paquetes para que sean tratados desde espacio de usuario. iptables es un software disponible en prácticamente todas las distribuciones de Linux actuales.

Ahora a lo que vinimos:

iptables -A INPUT -p tcp –dport 80 -m string –string “tudirectorio” –algo kmp -j DROP
iptables -A INPUT -p tcp –dport 80 -m string –string “?edit” –algo kmp -j DROP
iptables -A OUTPUT -s 0.0.0.0/26 -j ACCEPT

Fácil no? pero saca canas cuando no las tiene 😀

Fíjate que cuando le pasamos el puerto, el string de tu directorio. Solo aceptara disponibilidad a 0.0.0.0/26 el “26” es un rango especifico. Quiere decir muestra esos directorios a este rango de IP. Si quisieras mostrarlo solo a una ip le quitamos el /26 o el /turango.

Bueno espero que este post te sirva para algo…

Saludos