Descargar

Manual de instalación de Linux para montar servidores (página 2)


Partes: 1, 2

SERVIDOR PROXY

Al servidor Proxy también se le llama servidor de cache o de aceleración, porque a parte de ser un medio de protección de la intranet, también permite acelerar el ingreso a la Internet de las estaciones de trabajo.

Para funcionar como un medio de aceleración basta que este servidor tenga una sola tarjeta de red, pero ya con dos tarjetas de red este servidor a parte de brindar aceleración también se vuelve en un muy buen mecanismo de seguridad.

Para poder montar un servidor PROXY en LINUX

Tenemos que verificar que en el sistema operativo este instalado el SQUID. Los comandos para realizar esta función serian:

# rpm -q squid à sirve para ver si esta instalado.

# rpm -ql squid à sirve para ver los paquetes de squid.

# mcedit /etc/squid/squid.conf à sirve para configurar el squid

Como configurar un servidor PROXY en LINUX

Entramos al edit de esta forma: # mcedit /etc/squid/squid.conf

Descomentar. Eso significa quitar el espacio en blanco y el signo numeral.

Aproximadamente en la línea 54 se encuentra un bloque de texto que dice http_port 3128, lo descomentamos.

Aproximadamente en la línea 481 se encuentra un bloque de texto que dice cache men 8MB, lo descomentamos.

Aproximadamente en la línea 696 se encuentra un bloque de texto que dice cache dir, lo descomentamos. En el cache dir existen 100MB repartidos en 16 carpetas y dentro de estas 16 existen 256 carpetas más.

Aproximadamente en la línea 703 se encuentra un bloque de texto que dice cache_access_log, lo descomentamos. Esto define la ruta donde estará el archivo de la bitácora.

Aproximadamente en la línea 711 se encuentra un bloque de texto que dice cache_log, lo descomentamos. Esta será la bitácora del cache.

Aproximadamente en la línea 721 se encuentra un bloque de texto que dice cache_store_log, lo descomentamos. Bitácora de almacenamiento, en caso se este llenando el squid.

Aproximadamente en la línea 858 se encuentra un bloque de texto que dice ftp_user, lo descomentamos. Sirve para loguear usuarios.

Aproximadamente en la línea 873 se encuentra un bloque de texto que dice ftp_passive on, lo descomentamos. Para la transparencia de ficheros que están detrás de un firewall.

Aproximadamente en la línea 1802 se encuentra un bloque de texto que dice acl localhost y la línea siguiente dice acl to_localhost. Damos un enter entre estas dos líneas y procedemos a la declaración de variables para permitir o denegar accesos a ciertas páginas. Se declaran las variables del siguiente modo:

acl mired src 192.168.200.0/24

acl denegados dstAdmin.microsoft.com www.hi5.com

acl horaDia time MTWTF 8:00 – 13:00

acl horaTarde time MTWTF 16:00 – 20:00

acl videos urlpath_regex .avi$ .mp3$

Aproximadamente en la línea 1865 se encuentra un bloque de texto que dice and finally deny damos un enter y digitamos:

http_access deny denegados

http_access deny videos

http_access allow mired! HoraDia! horaTarde!

http_access deny all

Se guardan cambios con la tecla f2 y se sale del editor con la tecla f10.

En la pagina de comandos se ejecuta:

# service squid reload

# service squid status

# service squid start

A lo cual aparece un mensaje que dice lo siguiente:

Inite_cache_dir /var/spool/squid.inicial… [OK]

Ahora en las estaciones de trabajo con sistema operativo XP entramos a las herramientas de Internet, a la pestaña de conexión, Proxy, puerto colocamos esto: 3128.

Y se puede cambiar a 65334 puertos para ser usados.

Luego para visualizar a las páginas a las que entran los usuarios, ejecutamos en la consola de comandos del servidor en LINUX:

# tail –f /var/log/squid/access.log

Esto nos mostrará las páginas a las que entran las estaciones de trabajo.

Para programar un Proxy transparente: FIREWALL host virtual

Lo primero que debemos de tener en cuenta para montar un FIREWALL es que necesitamos el squid + iptables, y además que a la PC que tomaremos como servidor FIREWALL se le debe de montar una segunda tarjeta de red. ETH0 la primera tarjeta instalada junto con el sistema operativo y ETH1 la nueva tarjeta de red, las cuales tendrán que ser configuradas de esta forma:

ETH0 à IP publico

ETH1 à IP privado

Además de estar instalado el squid, también necesitamos que este instalado el IPTABLES. Este se maneja en tablas, las cuales son:

Filter por defecto.

Nat paquetes que pasan.

Mangle aquellos que se quieren modificar.

Las tablas son:

| IP origen | Puerto Origen | TCP URP | IP destino | Puerto Destino |

IPtables manipula la funcionabilidad de seguridad en línea, su funcionamiento es en la capa de red

Para poder configurar el IPTABLES necesitamos descargar un script desde Internet o saber cual es la codificación, la cual se tendrá que guardar en el directorio OPT, el script se llama firewall.txt o firewall1.txt.

Al establecer políticas por defecto

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -t nat -P PREROUTING ACCEPT

iptables -t nat -P POSTROUTING ACCEPT

iptables –L à lista el contenido de la tabla filter.

Input à entra al firewall.

Forward à aqui se genera o procesa.

Output à ya es el nivel de salida.

Iptables –L –T nat

Prerouting à aquí se tratan los paquetes antes de entrar.

Postrouting à se tratan los paquetes después de su ingreso.

Ahora procedemos a la configuración de los IPs dentro del archivo firewall.txt a traves de editor de consola:

# cd /opt

# mcedit firewall

# ls -la à sirve para visualizar lo que hay dentro de la carpeta.

# chmod u+x firewall à sirve para volver ejecutable el script.

La configuración de los IPs es en relación a nuestra ETH0 y ETH1 ya que debemos de verificar muy bien hacia donde se deben de mandar las restricciones y hacia donde se debe de filtrar datos.

Una vez echa la configuración de IPs procedemos a agregar las variables:

# cd /etc/squid

# mcedit squid.conf

Y aproximadamente en la línea 2206 y 2226 descomentamos y ponemos ON y colocamos:

#rpm -q iptables

Httpd_accel_host virtual

Httpd_accel_port 80

Httpd_accel_with_proxy on

Httpd_accel_user_host_header on

Ejemplo de script para firewall entre red-local e Internet con servicios abiertos de puerto 25, 110, y 1723. Aplicando Reglas de Firewall

FLUSH de reglas

iptables -F

iptables -X

iptables -Z

iptables -t nat -F

iptables -t nat -X

iptables -t nat –Z

Establecemos política por defecto

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -t nat -P PREROUTING ACCEPT

iptables -t nat -P POSTROUTING ACCEPT

Empezamos a filtrar

REDIRECCIONES

Todo lo que venga por el exterior y vaya al puerto 80 lo redirigimos a una maquina interna

#iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j DNAT –to 192.168.10.12:80 à le configuramos el IP público de la red.

Los accesos de un ip determinada a Terminal server se redirigen e esa maquina

#iptables -t nat -A PREROUTING -s 221.23.124.181 -i eth0 -p tcp –dport 3389 -j DNAT –to 192.168.10.12:3389 à le configuramos el IP público de la red.

El localhost se deja (por ejemplo conexiones locales a mysql)

iptables -A INPUT -i lo -j ACCEPT

Al firewall tenemos acceso desde la red local

iptables -A INPUT -s 192.168.100.0/23 -i eth1 -j ACCEPT à le configuramos el IP privado de la red.

Abrimos el acceso a puertos de correo

Abrimos el puerto 25, hay que configurar bien el relay del servidor SMTP

#iptables -A INPUT -s 0.0.0.0/0 -p tcp –dport 25 -j ACCEPT

El protocolo SMTP nos sirve para nomtar un servidor mail, vale decir que se cree el más usado para este tipo de aplicaciones.

Abrimos el pop3

#iptables -A INPUT -s 0.0.0.0/0 -p tcp –dport 110 -j ACCEPT

El protocolo pop3 nos sirve para nomtar un servidor mail, o hasta para el funcionamiento de un FTP

Y abrimos el puerto pptpd para la ip del adsl de casa del jefe

#iptables -A INPUT -s 211.45.176.24 -p tcp –dport 1723 -j ACCEPT

Los protocolos PPTP sirven para montaje de VPNs, las cuales permiten la transferencia de datos de forma segura y en ciertos casos es mucho más económico para una empresa.

Ahora con regla FORWARD filtramos el acceso de la red local al exterior. Como se explica antes, a los paquetes que no van dirigidos al propio firewall se les aplican reglas de FORWARD

Aceptamos que vayan a puertos 80

iptables -A FORWARD -s 192.168.100.0/23 -i eth1 -p tcp –dport 80 -j ACCEPT

iptables -A FORWARD -s 192.168.100.0/23 -i eth1 -p tcp –dport 8080 -j ACCEPT

à le configuramos el IP privados de la red.

Aceptamos que vayan a puertos https

iptables -A FORWARD -s 192.168.100.0/23 -i eth1 -p tcp –dport 443 -j ACCEPT

Los puertos HTTPS permiten montar un servidor WEB

Aceptamos que consulten los DNS

iptables -A FORWARD -s 192.168.100.0/23 -i eth1 -p tcp –dport 53 -j ACCEPT

iptables -A FORWARD -s 192.168.100.0/23 -i eth1 -p udp –dport 53 -j ACCEPT

Esto permite traducir el nombre de dominio a dirección IP y viceversa.

Y denegamos el resto. Si se necesita alguno, ya avisaran

iptables -A FORWARD -s 192.168.100.0/23 -i eth1 -j DROP

Ahora hacemos enmascaramiento de la red local y activamos el BIT DE FORWARDING (imprescindible!!!!!)

iptables -t nat -A PREROUTING -p tcp -s 192.168.100.0/23 –dport 1863 -j DNAT –to-destination 192.168.5.254

iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-ports 3128

iptables -t nat -A POSTROUTING -s 192.168.100.0/23 -o eth0 -j MASQUERADE

Con esto permitimos hacer forward de paquetes en el firewall, o sea que otras maquinas puedan salir a traves del firewall.

echo 1 > /proc/sys/net/ipv4/ip_forward

Y ahora cerramos los accesos indeseados del exterior:

Nota: 0.0.0.0/0 significa: cualquier red

Cerramos el rango de puerto bien conocido

iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp –dport 1:1024 -j DROP

iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p udp –dport 1:1024 -j DROP

Cerramos un puerto de gestion: webmin

iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp –dport 10000 -j DROP

Y cerramos el puerto del servicio PPTPD, solo abierto para el jefe.

iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp –dport 1723 -j DROP

echo " OK . Verifique que lo que se aplica con: iptables -L -n"

Roberto Carlos Suing Olivari.

SCRIPT FIREWALL

#!/bin/sh

## SCRIPT de IPTABLES – ejemplo del manual de iptables

## Ejemplo de script para firewall entre red-local e internet con servicios abiertos de puerto 25, 110, y 1723

## Pello Xabier Altadill Izura

## www.pello.info – pello[arroba]pello.info

echo -n Aplicando Reglas de Firewall…

## FLUSH de reglas

iptables -F

iptables -X

iptables -Z

iptables -t nat -F

iptables -t nat -X

iptables -t nat -Z

## Establecemos politica por defecto

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -t nat -P PREROUTING ACCEPT

iptables -t nat -P POSTROUTING ACCEPT

## Empezamos a filtrar

## REDIRECCIONES

# Todo lo que venga por el exterior y vaya al puerto 80 lo redirigimos a una maquina interna

#iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j DNAT –to 192.168.10.12:80

# Los accesos de un ip determinada a Terminal server se redirigen e esa maquina

#iptables -t nat -A PREROUTING -s 221.23.124.181 -i eth0 -p tcp –dport 3389 -j DNAT –to 192.168.10.12:3389

## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN

# El localhost se deja (por ejemplo conexiones locales a mysql)

iptables -A INPUT -i lo -j ACCEPT

# Al firewall tenemos acceso desde la red local

iptables -A INPUT -s 192.168.100.0/23 -i eth1 -j ACCEPT

## Abrimos el acceso a puertos de correo

# Abrimos el puerto 25, hay que configurar bien el relay del servidor SMTP

#iptables -A INPUT -s 0.0.0.0/0 -p tcp –dport 25 -j ACCEPT

# Abrimos el pop3

#iptables -A INPUT -s 0.0.0.0/0 -p tcp –dport 110 -j ACCEPT

# Y abrimos el puerto pptpd para la ip del adsl de casa del jefe

#iptables -A INPUT -s 211.45.176.24 -p tcp –dport 1723 -j ACCEPT

## Ahora con regla FORWARD filtramos el acceso de la red local

## al exterior. Como se explica antes, a los paquetes que no van dirigidos al

## propio firewall se les aplican reglas de FORWARD

# Aceptamos que vayan a puertos 80

iptables -A FORWARD -s 192.168.100.0/23 -i eth1 -p tcp –dport 80 -j ACCEPT

iptables -A FORWARD -s 192.168.100.0/23 -i eth1 -p tcp –dport 8080 -j ACCEPT

# Aceptamos que vayan a puertos https

iptables -A FORWARD -s 192.168.100.0/23 -i eth1 -p tcp –dport 443 -j ACCEPT

# Aceptamos que consulten los DNS

iptables -A FORWARD -s 192.168.100.0/23 -i eth1 -p tcp –dport 53 -j ACCEPT

iptables -A FORWARD -s 192.168.100.0/23 -i eth1 -p udp –dport 53 -j ACCEPT

# Y denegamos el resto. Si se necesita alguno, ya avisaran

iptables -A FORWARD -s 192.168.100.0/23 -i eth1 -j DROP

# Ahora hacemos enmascaramiento de la red local y activamos el BIT DE FORWARDING (imprescindible!!!!!)

iptables -t nat -A PREROUTING -p tcp -s 192.168.100.0/23 –dport 1863 -j DNAT –to-destination 192.168.5.254

iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-ports 3128

iptables -t nat -A POSTROUTING -s 192.168.100.0/23 -o eth0 -j MASQUERADE

# Con esto permitimos hacer forward de paquetes en el firewall, o sea que otras m?quinas puedan salir a traves del firewall.

echo 1 > /proc/sys/net/ipv4/ip_forward

## Y ahora cerramos los accesos indeseados del exterior:

# Nota: 0.0.0.0/0 significa: cualquier red

# Cerramos el rango de puerto bien conocido

iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp –dport 1:1024 -j DROP

iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p udp –dport 1:1024 -j DROP

# Cerramos un puerto de gesti?n: webmin

iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp –dport 10000 -j DROP

# Y cerramos el puerto del servicio PPTPD, solo abierto para el jefe.

iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp –dport 1723 -j DROP

Echo "OK. Verifique que lo que se aplica con: iptables -L -n"

# Fin del script

 

 

 

Autor:

Roberto Carlos Suing Olivar

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente