Manual de instalación de Linux para montar servidores (página 2)
Enviado por Roberto Carlos Suing Olivari
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
Página anterior | Volver al principio del trabajo | Página siguiente |