2. ¿ Que es un proxy?
• Un proxy, o servidor proxy, en una red informatica, es un servidor —programa o dispositivo—, que hace de intermediario en las
peticiones de recursos que realiza un cliente a otro servidor.
• • Comúnmente un servidor proxy es un equipo informático que intercepta conexiones de red hechas desde un cliente a un servidor de destino.
• El más popular es el servidor proxy de web. Interviene en la navegación por la web, con distintos fines: seguridad, rendimiento, anonimato, etc.
• Existen proxys específicos para otros protocolos, como el proxy de FTP.
• El proxy ARP puede hacer de enrutador en una red, ya que hace de intermediario entre ordenadores.
• Proxy (patrón de diseño) también es un patrón de diseño (programación) con el mismo esquema que el proxy de red.
• Un componente hardware también puede actuar como intermediario para otros.
Como se ve, proxy tiene un significado muy general, aunque siempre es sinónimo de intermediario. Cuando un equipo de la red desea acceder a una
información o recurso, es realmente el proxy quien realiza la comunicación y a continuación traslada el resultado al equipo que la solicitó.
Hay dos tipos de proxys atendiendo a quién es el que quiere implementar la política del proxy:
• proxy local: En este caso el que quiere implementar la política es el mismo que hace la petición. Por eso se le llama local. Suelen estar en la misma
máquina que el cliente que hace las peticiones. Son muy usados para que el cliente pueda controlar el tráfico y pueda establecer reglas de filtrado
que por ejemplo pueden asegurar que no se revela información privada (Proxys de filtrado para mejora de la privacidad).
• proxy de red o proxy externo: El que quiere implementar la política del proxy es una entidad externa. Por eso se le llama externo. Se suelen usar
para implementar cacheos, bloquear contenidos, control del tráfico, compartir IP, etc.
3. Ventajas
• En general, no solamente en informática, los proxys hacen posible:
• Control: solamente el intermediario hace el trabajo real, por tanto se pueden limitar y
restringir los derechos de los usuarios, y dar permisos únicamente al servidor proxy.
• Ahorro: solamente uno de los usuarios (el proxy) ha de estar preparado para hacer el
trabajo real. Con estar preparado se entiende que es el único que necesita los recursos
necesarios para hacer esa funcionalidad. Ejemplos de recursos necesarios para hacer la
función pueden ser la capacidad y lógica de la dirección de red externa (IP).
• Velocidad: si varios clientes van a pedir el mismo recurso, el proxy puede hacer caché
guardar la respuesta de una petición para darla directamente cuando otro usuario la pida.
Así no tiene que volver a contactar con el destino, y acaba más rápido.
• Filtrado: el proxy puede negarse a responder algunas peticiones si detecta que están
prohibidas.
• Modificación: como intermediario que es, un proxy puede falsificar información, o
modificarla siguiendo un algoritmo.
• Anonimato: Conectarse de forma anónima a un recurso externo sin revelar nuestra IP,
pues es la IP pública del Proxy la que es usada para la obtención del recurso.
4. Desventajas
• En general, el uso de un intermediario puede provocar:
• Anonimato: si todos los usuarios se identifican como uno solo, es difícil que el recurso accedido pueda diferenciarlos. Pero esto
puede ser malo, por ejemplo cuando hay que hacer necesariamente la identificación.
• Abuso: al estar dispuesto a recibir peticiones de muchos usuarios y responderlas, es posible que haga algún trabajo que no
toque. Por tanto, ha de controlar quién tiene acceso y quién no a sus servicios, cosa que normalmente es muy difícil.
• Carga: un proxy tiene que hacer el trabajo de muchos usuarios.
• Intromisión: es un paso más entre origen y destino, y algunos usuarios pueden no querer pasar por el proxy. Y menos si hace
de caché y guarda copias de los datos.
• Incoherencia: si hace de caché, es posible que se equivoque y dé una respuesta antigua cuando hay una más reciente en el
recurso de destino. En realidad este problema no existe con los servidores proxy actuales, ya que se conectan con el servidor
remoto para comprobar que la versión que tiene en caché sigue siendo la misma que la existente en el servidor remoto.
• Irregularidad: el hecho de que el proxy represente a más de un usuario da problemas en muchos escenarios, en concreto los que
presuponen una comunicación directa entre 1 emisor y 1 receptor (como TCP/IP).
5. Como configurar un servidor proxy en una PC
con Windows
• Un servidor proxy se interpone entre su equipo e Internet. Actúa
como puente entre el navegador y servicios de Internet tales como
sitios web o plataformas de software como servicio (SaaS), y puede
llegar a hacer la conexión un poco más rápida, además de más
privada y segura. Aquí le explicamos cómo se debe configurar un PC
con Windows, para poder aprovechar las ventajas de los servidores
proxy.
6. • Un servidor proxy es una puerta de enlace entre usted e Internet. Cuando visita un sitio web, el servidor proxy se comunica con él
en nombre de su navegador. Una vez que el sitio responde, el proxy le transmite a usted los datos.
Cómo se configura un servidor proxy en Windows
Aquí se explica cómo configurar su PC con Windows para que utilice un servidor proxy en Windows 8 o Windows 10:
• Pulse simultáneamente las teclas Windows + I para acceder al menú Configuración de Windows.
• En Windows 10, haga clic en Configuración > Red e Internet > Proxy. En Windows 8, haga clic en Configuración > Proxy de red.
• En la sección Configuración manual, establezca el control “Utilizar un servidor proxy” en Activado. Compruebe que también esté
activado el control “Detectar la configuración automáticamente”.
• De forma predeterminada, Windows comprueba automáticamente si su empresa, institución educativa o red local ya tiene
configurado y listo para usar un servidor proxy automático. Si es así, Windows le indica su nombre y le indica que siga sus
instrucciones.
• Suponiendo que Windows encuentre un archivo PAC, en Configuración automática del proxy establezca el control Usar script de
configuración en Activado.
• Introduzca la dirección del
servidor y haga clic en Guardar.
¡Felicidades! Ha terminado y
está listo para utilizar el proxy.
7. Configuracion de un firewall ipchains
iptables
• Los cortafuegos, unos mecanismos bastante extendidos para proteger un equipo o una
red de estos. También conocidos como "firewalls", los podemos encontrar como
dispositivos externos al PC (conectados entre la máquina a proteger y la red), o bien
como un software implementado sobre un sistema operativo. Los primeros son
denominados "Hardware Firewall" (cortafuegos por hardware) y los segundos, más
comunes entre los usuarios 'de a pie' se conocen como "software firewall" (cortafuegos
por software). La cantidad de marcas que fabrican estos dispositivos (Hardware Firewall)
sería incontable y casi tendríamos que dedicar un post sólo para enumerarlas; pero para
nombrar alguna de las más conocidas tenemos a Cisco o Linksys. Además de las
funciones propias de un cortafuegos, estos dispositivos suelen implementar otras
características, como pueden ser soportar VPN, QoS, proxis, entre otros.
Los cortafuegos por software, destaca un nombre, IPtables, el cortafuegos que por
defecto viene integrado con la mayoría de las distribuciones Linux, y es en el que nos
centraremos, no sin mencionar antes los distintos tipos de software firewall que
podemos encontrar.
8. • Cortafuegos de Estado: Este firewall comprobará el estado
del paquete en la transmisión diferenciando entre una nueva
conexión y otra ya existente.
• Cortafuegos de capa de aplicación: Tiene en cuenta el
contenido del paquete a nivel de aplicación, pudiendo hacer así
un filtrado más específico.
• Cortafuegos de filtrado de paquetes: Con este tipo
analizamos y filtramos los paquetes transmitidos o recibidos,
según alguno parámetros designados previamente como por
ejemplo direcciones IP, puertos a usar, origen, destino.
9. • Existen cuatro tablas a aplicar dentro de IPtables: filter, mangle, nat y raw;
que a su vez contienen tres cadenas: INPUT, OUTPUT y FORWARD. Vamos a
utilizar la tabla "filter", y lo podremos hacer de dos formas. Una sería
aceptar todos los paquetes entrantes al equipo e ir restringiendo uno a uno
los paquetes que nos interesen; esta sería la política conocida como
ACCEPT. La otra forma de filtrar paquetes sería el opuesto, denegar el
acceso a todos los paquetes y se van permitiendo los paquetes que
queramos; esta segunda política de filtrado se conoce como DROP.
Para especificar qué tipos de paquetes acceden o salen de nuestro equipo,
tenemos que describirlos de una forma determinada para que IPtables nos
comprenda. Para esto necesitamos órdenes y parámetros con los que
formular la regla debidamente.
10. Ordenes:
IPtables –F: flush (borrado, vaciado) de todas las reglas IPtables –L: listado de reglas que se están
aplicandoIPtables –A: añadir regla IPtables –D: borrar una regla
Etc...
Estos son varios de los parámetros que usaremos para configurar las reglas de IPtables.
-p [protocolo]: Protocolo al que pertenece el paquete. -s [origen]: dirección de origen del paquete, puede ser
un nombre de host, una dirección IP normal, o una dirección de red (con máscara, de forma
dirección/máscara). -d [destino]: Al igual que el anterior, puede ser un nombre de host, dirección de red o
dirección IP singular. -i [interfaz-entrada]: Especificación del interfaz por el que se recibe el paquete. -o
[interfaz-salida]: Interfaz por el que se va a enviar el paquete. [!] -f: Especifica que la regla se refiere al segundo
y siguientes fragmentos de un paquete fragmentado. Si se antepone !, se refiere sólo al primer paquete, o a los
paquetes no fragmentados. -j [target]: Nos permite elegir el target al que se debe enviar ese paquete, esto es,
la acción a llevar a cabo con él.
Ahora vamos con un ejemplo de una regla que acepta conexiones al puerto 80 del sistema.
11. • iptables -A INPUT -i eth0 -s 0.0.0.0/0 -p TCP --dport www -j ACCEPT
Y aquí la descripción de cada componente del anterior comando:
iptables: comando para IPtables (no hay que olvidar que las reglas son un Shell script) -A: append, opción para
añadir la regla INPUT: estado del paquete (al entrar es INPUT) -i eth0: interfaz de red eth0 -s 0.0.0.0/0:dirección
de acceso (cualquiera en este caso) -p TCP: tipo de puerto --dport: puerto de destino -j ACCEPT:destino del
paquete (se acepta aunque aquí podría ser DROP, LOG, REJECT,..)
Pues ya tenemos y conocemos todo lo básico para crear un firewall por software en Linux a nuestra medida.
Así que ahora pongámonos manos a la obra y lo primero será cortar todas las comunicaciones con esta línea:
12. • sudo iptables -P INPUT DROP
Así lo que decimos a IPtables es que no permita el paso de ningún
paquete de datos, y esto incluye incluso los salientes, por lo que si
hacemos la comprobación, comprobaremos que no tenemos conexión
a Internet. Esto lo podemos arreglar fácilmente si usamos la
siguiente línea.
13. • sudo iptables -A INPUT -i lo -j ACCEPT
Muy bien, ahora ya podemos navegar, pero indaguemos en algunas web
y comprobemos que la carga de contenido está restringida, es decir, sí
podemos navegar, pero no vemos imágenes, contenido flash y cualquier
otro componente de una web de hoy día. Esto se debe a que con la
línea anterior hemos permitido el acceso de nuestro equipo (con 'lo'
que IPtables traduce como localhost, es decir, nuestro ordenador)
a Internet, pero no al contrario. Fijemos entonces una norma que nos
permita una navegación adecuada y segura a la par con la siguiente
línea de comandos:
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
14. • Así decimos a IPtables que permita la entrada de datos al
equipo, pero únicamente aquellos paquetes que estén
relacionados directamente con las solicitudes que nuestro
equipo ha emitido.
• Pues ya tenemos configurado nuestro cortafuegos por software
con IPtables, sólo comentar una última cosa, y es que estas
reglas desaparecen al apagar la máquina, por lo que al
iniciarlas tendremos que volver a introducirlas. A no ser que
programemos un script que se ejecute durante el inicio del
sistema.
15. Restricción de acceso a servicios (TCP wrappers)
• TCP Wrapper es un sistema que nos permite permitir, denegar o filtrar el acceso a los servicios de un servidor con sistema operativo UNIX
(como por ejemplo Linux o BSD).
Los ficheros principales implicados en TCP Wrappers son “/etc/host.allow” y “/etc/host.deny”. En el fichero /etc/host.allow se indican las
políticas permisivas y en el fichero /etc/host.deny las políticas restrictivas.
Las políticas o reglas para filtrar el acceso al servidor desde la red se definen de la siguiente forma:
Demonios o lista de demonios del sistema : Lista de equipos : Acción a realizar
A continuación detallamos cada campo:
– Demonios: Son servicios que existen en sistemas operativos Unix como por ejemplo sshd (servicio SSH), slapd (servicio LDAP) o proftpd
(servicio FTP). Para crear una regla común para varios demonios debemos indicar su nombre separados por comas. Existe también el
comodín “ALL” que hace que dicha política afecte a todos los demonios del sistema.
– Lista de equipos: En este campo indicamos a que equipos aplicamos esta política. Podemos indicar una dirección IP, un rango de
direcciones IP, o un nombre de dominio. También podremos usar el comodín “ALL” para que esta política afecte a todos los equipos que
intenten acceder. También existe el operador “EXCEPT” que nos permite eliminar de la regla uno o varios equipos.
– Acción a realizar: Aquí debemos indicar si la política permite el acceso o deniega el acceso a los demonios indicados anteriormente. Las
palabras que se usa denegar el acceso es “deny”. En caso de dejar este campo vacío, significa que permitimos el acceso a los demonios y
equipos indicados. Opcionalmente, podemos enviar comandos con la directiva “spawn”. Esta directiva suele ser utilizada para la creación de
registros de conexión al propio equipo. Existe también la directiva “twist” quesustituye el servicio o demonio solicitado por el comando que
le hemos especificado. Esto significa que por defecto se deniega el acceso. Esto es muy útil para la creación de honeypost.
16. Configuracion de servidor keberos y VPN´s con
IPsec
• Kerberos es un protocolo de autenticación de redes de ordenador creado por el MIT que
permite a dos ordenadores en una red insegura demostrar su identidad mutuamente de
manera segura. Sus diseñadores se concentraron primeramente en un modelo
de cliente-servidor, y brinda autenticación mutua: tanto cliente como servidor verifican la
identidad uno del otro. Los mensajes de autenticación están protegidos para
evitar eavesdropping y ataques de Replay.
Kerberos se basa en criptografía de clave simétrica y requiere un tercero de confianza.
Además, existen extensiones del protocolo para poder utilizar criptografía de clave
asimétrica.
• Una Virtual Private Network (VPN) se podría decir que es una extensión de una
red local, de esta manera podemos conectar a una red a miles
de kilómetros como si estuviéramos físicamente en ella. Hay que tener en
cuenta, que la información que estamos tratando va encriptada y solamente es
funcional para los que estén dentro de esta. El costo es mínimo, y hoy en día es
una de las maneras más factibles a la hora de conectar.