Documente Academic
Documente Profesional
Documente Cultură
Explicacin de los parmetros: -A POSTROUTING: Aade (Add) una regla a la cadena POSTROUTING -s 172.16.1.0/16: Se aplica a los paquetes que tengan como direccin origen (source) la 172.16.1.0/16 -o eth0: Se aplica a los paquetes que salgan (out-interface) por eth0 -j SNAT to 192.168.1.105 (--to aqu es equivalente a --to-source): Cambia la direccin de origen por la 192.168.1.105, mi direccin ip que va a internet
Paso 4. Instalamos el DNS bind9 # apt-get install bind9 Con esto ya hay internet pero aun no esta el DNScache
Configuracin como cach DNS Por defecto, al instalar el paquete bind est preconfigurado como servidor cach DNS. Tan solo ser necesario editar el archivo /etc/bind/named.conf.options y en la seccin forwarders aadir las IPs de dos servidores DNS donde redirigir las peticiones DNS: // Configuracin como cach DNS // Aadir IPs de los DNS de nuestro proveedor en /etc/bind/named.conf.options options { forwarders { 80.58.0.33; 80.58.32.97; }; }; Dspues reiniciamos el servicio: #
/etc/init.d/bind9 restart
Configuracion para modo cahce. Squid utiliza el fichero de configuracin localizado en /etc/squid/squid.conf, las configuraciones de memoria cache empiezan en la lnea 1719 Parmetro cache_mem en la lnea 1751 El parmetro cache_mem establece la cantidad ideal de memoria para:
Los datos de estos objetos se almacenan en bloques de 4 Kb. El parmetro cache_mem especifica un lmite mximo en el tamao total de bloques acomodados, donde los objetos en trnsito tienen mayor prioridad. Sin embargo los objetos Hot y aquellos negativamente almacenados en el cach podrn utilizar la memoria no utilizada hasta que esta sea requerida. De ser necesario, si un objeto en trnsito es mayor a la cantidad de memoria especificada, Squid exceder lo que sea necesario para satisfacer la peticin. Por defecto se establecen 8 MB. Puede especificarse una cantidad mayor si as se considera necesario. Si se posee un servidor con al menos 128 MB de RAM, establezca 16 MB como valor para este parmetro: cache_mem 16 MB Parmetro cache_dir: Cuanto desea almacenar de Internet en el disco duro? 1813 Es cuanto tamao se desea que tenga el cache en el disco duro para Squid, es decir Cuanto desea almacenar de Internet en el disco duro? Por defecto Squid utilizar un cache de 100 MB, de modo tal que encontrar la siguiente lnea: cache_dir ufs /var/spool/squid 100 16 256 Se puede incrementar el tamao del cache hasta donde lo desee el administrador. Mientras ms grande el cache, ms objetos de almacenarn en ste. y por lo tanto se utilizar menos el ancho de banda. La siguiente lnea establece un cache de 700 MB: cache_dir ufs /var/spool/squid 700 16 256 Los nmeros 16 y 256 significan que el directorio del cache contendr 16 subdirectorios con 256 niveles cada uno. No modifique esto nmeros, no hay necesidad de hacerlo. Es muy importante considerar que si se especifica un determinado tamao de cache y este excede al espacio real disponible en el disco duro, Squid se bloquear inevitablemente. Sea cauteloso con el tamao de cache especificado. Iniciando, reiniciando y aadiendo el servicio al arranque del sistema. Una vez terminada la configuracin, ejecute el siguiente comando para iniciar por primera vez Squid: /etc/rc.d/init.d/squid start Si necesita reiniciar para probar cambios hechos en la configuracin, ejecute lo siguiente: /etc/rc.d/init.d/squid restart
ContinuaN LOS PASOS Para comprobar el squid se cuenta con el fichero: /var/log/squid/Access_log, el cual puede ser revisado con: #tail f /var/log/squid/access_log Si ejecuta pero se niega todo Agregamos las siguientes lneas: Lnea 612 aprox, agregamos una nueva red interna, tomando la que creamos anteriormente, por lo que se agrega la lnea: acl localnet src 172.16.0.0/16 Y despus en la lnea 677 aproximadamente, se agrega http_access allow localnet Con la cual se permiten las peticiones de las maquinas de nuestras localnet dadas de alta atreves del puerto 80 (http), con esto tenemos internet. Para configurar Mozila abrimos Edit->Preferencias->Avanzado->Red->ajustes->Configuracin manual de proxy-> Colocamos la ip de nuestro proxy, que seria 172.16.1.1 y el puerto 3128 Paso 6 instalar y configurar dansguardian Instalamos con el comando: #apt-get install dansguardian Una vez instalado, pasamos a configurarlo. Para ello abrimos el fichero /etc/dansguardian/dansguardian.conf. #vi /etc/dansguardian/dansguardian.conf En primer lugar vamos a ponerlo en castellano, buscamos la directiva language, y la dejamos as: language = 'spanish' Ahora vamos a comentar una lnea del archivo, en la que indicamos a Dansguardian que ya est configurado por nosotros, el hecho de no comentar esta lnea supone un modesto recordatorio cuando reiniciamos Dansguardian. La lnea en concreto es la siguiente: # UNCONFIGURED - Please remove this line after configuration Otras directivas a tener en cuenta filterport = 8080: Esta directiva define el puerto que usar Dansguardian para filtrar. proxyip = 172.16.1.1: Esta directiva define la direccin IP de nuestro proxy.
proxyport = 3128: Esta directiva define el puerto que usa nuestro proxy. Restringiendo contenidos Prohibir la pgina web, en primer lugar abrimos el fichero /etc/dansguardian/lists/bannedsitelist, desde un terminal escribimos: vi /etc/dansguardian/lists/bannedsitelist Cuando tenemos el archivo abierto, nos vamos a la zona #List other sites to block: y aadimos la pgina web que queremos bloquear, en nuestro caso, www.facebook.com. Agregamos: Facebook.com Ahora vamos a prohibir la descarga de archivos .exe. Las extensiones prohibidas estn en el fichero /etc/dansguardian/lists/bannedextensionlist, para editarlo nos vamos a un terminal y tecleamos: vi /etc/dansguardian/lists/bannedextensionlist En ese archivo tenemos todas las extensiones para los archivos que Dansguardian no permite descargar. Por defecto vienen la gran mayora prohibidos, lo que vamos a hacer es comentarlos todos menos el que queremos prohibir, la extensin .exe. Prohibir la entrada a pginas que contengan la expresin porno. Abrimos el archivo /etc/dansguardian/lists/bannedphraselist #vi /etc/dansguardian/lists/bannedphraselist Ahora nos vamos al final del fichero, y aadimos la palabra que queremos prohibir, guardamos los cambios y listo. Ahora toca reiniciar Dansguardian para que los cambios surtan efecto, desde un terminal tecleamos: sudo /etc/init.d/dansguardian restart NOTA. Para aplicar la configuracin se debe configurar nuevamente el navegador del cliente cambiando el puerto de 3128(squid) a 8080(dansguardian). NOTA. Para que el mensaje de alerta se presente debe estar ejecutndose apache: # /etc/init.d/apache2 start Ficheros ms importantes: Vamos a comentar ahora los ficheros ms importantes que usa Dansguardian, tanto en su versin permisiva como en su versin restrictiva. Estos son los principales: bannedextensionlist: Extensiones de archivo prohibidas.
bannedphraselist: Frases o palabras prohibidas. exceptionphraselist: Frases o palabras que no se prohibirn. exceptionsitelist: Dominions que no se prohibirn. bannedregexurllist: Expresiones que se prohibirn en las URL. exceptionurllist: Parte de un dominio que no se prohibir. exceptioniplist: Direcciones IP que no sern filtradas. bannedmimetypelist: Contenidos que se prohibirn. weightedphraselist: Lista de palabras prohibidas con su correspondiente peso. <palabra><peso>
TEORIA DE APOYO..
Direcciones IP tipo A, B y C.
En una red de clase A, se asigna el primer octeto para identificar la red, reservando los tres ltimos octetos (24 bits) para que sean asignados a los hosts, de modo que la cantidad 24 mxima de hosts es 2 - 2 (se excluyen la direccin reservada para broadcast (ltimos octetos en 255) y de red (ltimos octetos en 0)), es decir, 16 777 214 hosts. En una red de clase B, se asignan los dos primeros octetos para identificar la red, reservando los dos octetos finales (16 bits) para que sean asignados a los hosts, de modo que la cantidad 16 mxima de hosts es 2 - 2, o 65 534 hosts. En una red de clase C, se asignan los tres primeros octetos para identificar la red, reservando el octeto final (8 bits) para que sea asignado a los hosts, de modo que la cantidad mxima de 8 hosts es 2 - 2, 254 hosts. N de Redes N de Host Por Red Mscara de Red
Clase
Rango
Broadcast ID
1.0.0.0 127.255.255.255
128
16.777.214
255.0.0.0
x.255.255.255
128.0.0.0 191.255.255.255
16.384
65.534
255.255.0.0
x.x.255.255
192.0.0.0 223.255.255.255
2.097.152
254
255.255.255.0
x.x.x.255
(D)
224.0.0.0 239.255.255.255
histrico
(E)
240.0.0.0 255.255.255.255
histrico
La direccin 0.0.0.0 es reservada por la IANA para identificacin local. La direccin que tiene los bits de host iguales a cero sirve para definir la red en la que se ubica. Se denomina direccin de red. La direccin que tiene los bits correspondientes a host iguales a uno, sirve para enviar paquetes a todos los hosts de la red en la que se ubica. Se denomina direccin de broadcast. Las direcciones 127.x.x.x se reservan para designar la propia mquina. Se denomina direccin de bucle local o loopback.
TEORIA NAT.
PREROUTING: Permite modificar paquetes entrantes antes de que se tome una decisin de enrutamiento. OUTPUT: Permite modificar paquetes generados por el propio equipo despus de enrutarlos POSTROUTING: Permite modificar paquetes justo antes de que salgan del equipo.
Parmetros generales
Listar reglas
Utilizamos el parmetro -L (normalmente se acompaa de -n para que los resultados se muestren de forma numrica y evitar consultas DNS)
# iptables -t nat -L -n Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
Que nos muestra las tres cadenas de la tabla nat y que en este momento no hay ninguna regla aplicada.
Verbose
Para una salida ms completa de iptables utilizamos el parmetro -v:
# iptables -t nat -L PREROUTING -n -v Chain PREROUTING (policy ACCEPT 21 packets, 4133 bytes) pkts bytes target prot opt in out source destination
que nos informa de los paquetes y bytes que atraviesan una cadena y en caso de que hubiese reglas, se contaran los paquetes y bytes a los que se ha aplicado cada una.
Borrar contadores
Si queremos poner a cero los contadores de paquete que se aplican en las cadenas de una tabla:
iptables -t nat -Z
iptables -t nat -F
Antes de empezar a utilizar iptables, una norma elemental es escribir:
Ejemplo
Supongamos que tenemos una situacin como la de la imagen:
Esquema de NAT
Vamos a ver los pasos que habra que dar para que todos los equipos de la red local tuviesen acceso a Internet y se pudiesen alojar servicios en cualquiera de ellos.
net.ipv4.ip_forward=1
POSTROUTING
Todos los equipos de la red 192.168.3.0/24 estn interconectados entre s, pero en principio no tienen acceso a Internet puesto que sus direcciones IP son privadas y por tanto no son accesibles desde Internet (ningn equipo contestara a sus peticiones). El equipo que tiene dos interfeces de red s tiene acceso a Internet ya que la interfaz de red eth0 tiene una direccin IP pblica, adems pertenece a la red 192.168.3.0/24 ya que est conectado a travs de la interfaz de red eth1 con direccin IP 192.168.3.254. El equipo con dos interfaces de red puede funcionar como dispositivo de NAT (source NAT), aceptando paquetes provenientes del resto de equipos de la red 192.168.3.0/24 que entren por eth1 con destino a cualquier equipo de Internet. Tal como se describe en el ejemplo inicial de SNAT, el dispositivo de NAT debe cambiar la direccin IP origen, pero esto se hace justo antes de enviar el paquete a Internet y por tanto habr que definirlo en la cadena POSTROUTING.
-A -s -o -j
POSTROUTING: Aade (Add) una regla a la cadena POSTROUTING 192.168.3.0/24: Se aplica a los paquetes que tengan como direccin origen (source) la 192.168.3.0/24 eth0: Se aplica a los paquetes que salgan (out-interface) por eth0 SNAT --to 80.58.1.14 (--to aqu es equivalente a --to-source): Cambia la direccin de origen por
la 80.58.1.14
PREROUTING
(Todo lo que se explica en este punto no se hace con la seguridad en mente, sino simplemente para explicar algunas cosas que se pueden hacer con PREROUTING. En una implementacin real, esto tendra que ir combinado con un cortafuegos y un esquema de red diferente). Para realizar una conexin cliente-servidor entre dos equipos de Internet hay que especificar completamente lo que se denomina socket de Internet, que queda definido con lo siguiente:
Protocolo (normalmente TCP o UDP) Direccin IP equipo cliente Puerto equipo cliente Direccin IP equipo servidor Puerto equipo servidor
Si volvemos a nuestro problema, el nico equipo de la red local que es accesible desde Internet es el dispositivo de NAT a travs de su direccin IP pblica 80.58.1.14, ya que sera el nico con el que un equipo de Internet podra establecer un socket y por tanto sera el nico equipo de la red que podra alojar servicios. Todo esto cambia si utilizamos NAT, ya que en el equipo que tiene las dos interfaces de red podemos cambiar la direccin IP destino (DNAT) de una peticin que llegue de Internet y mandarla a un equipo de la red local. Supongamos que instalamos un servidor web en un equipo de la red local con direccin IP 192.168.3.2 y queremos que sea accesible desde Internet, tendremos que modificar las peticiones que lleguen al puerto 80/tcp des equipo que tiene la direccin IP pblica y que cambie la direccin IP destino 80.58.1.14 por 192.168.3.2, esto se hace con la siguiente regla:
-A PREROUTING: Aade (Add) una regla a la cadena PREROUTING -p tcp: Especifica el (p)rotocolo de transporte (tcp en este caso) --dport 80 (equivalente a --destination-port 80): Puerto destino 80 (ligada al parmentro anterior) -i eth0: Especifica eth0 como interfaz de entrada (in-interface) -j DNAT --to 192.168.3.2 (--to aqu es equivalente a --to-destination): Cambia la direccin IP
destino (inicialmente 80.58.1.14) a 192.168.3.2
Es lgico que haya que hacerlo en la cadena PREROUTING, porque las reglas de esta cadena se aplican antes de tomar la decisin de enrutamiento, as se tomar la decisin de encaminamiento con la nueva direccin IP destino. Para otros servicios bastara con poner el protocolo y puerto adecuados, aunque el caso del servicio ftp es ms complicado y necesitara una discusin mas detallada. La principal limitacin de utilizar DNAT con una sola direccin pblica es que no es posible poner ms de un servicio en el mismo puerto, ya que slo se puede hacer DNAT a un equipo de la red local (el socket debe estar totalmente determinado). Hay algunos servicios que permiten utilizar puertos diferentes a los estndar, como por ejemplo http, ya que podemos acceder a un servidor web que est en un puerto diferente al 80/tcp, simplemente especificndolo en el navegador. Como iptables nos permite no slo modificar la direccin IP destino sino tambin el puerto destino, podramos poner un segundo servidor web en el equipo 192.168.3.3 y aadir la siguiente regla:
192.168.3.3:80
Donde hemos especificado el puerto destino 880 (que no es un puerto estndar para ningn servicio) y cambiamos tanto la IP destino como el puerto destino con --to
192.168.3.3:80.
Para acceder a ese servicio desde Internet tendremos que escribir en el navegador: http://80.58.1.14:880
Fuente: http://albertomolina.wordpress.com/2009/01/09/nat-con-iptables/