Seguridad: Proxys para http, smtp, ftp, etc...

Horst von Brand vonbrand en inf.utfsm.cl
Mie Mayo 4 10:44:17 CLT 2005


Enrique Place <masterplace en gmail.com> dijo:
> [Y la atribucion?] dijo:
> > La idea por ejemplo en el caso de colocar un proxy inverso antes de un
> > servidor Web, es que sirve para:
> > 1 - Hacer balanceo de carga entre varios servidores Web.

Hay sistemas ad hoc para eso, que basicamente simplemente redistribuyen
conexiones. O puedes simplemente poner el nombre bajo diversas IPs, DNS se
encargara de que las conexiones (mas o menos) se balanceen entre ellas.

> > 2 -pseudo IPS, pues permitiria filtrar las peticiones http antes que
> > pasen al servidor, asumiendo que peticiones malformadas que
> > potencialmente podrian actuar sobre el servidor Web, no lo harian
> > sobre el proxy y este contendria reglas que no dejarian pasar este
> > tipo de ataques... por ejemplo SQL Injection o Cross Site Scripting
> > por decir algunos.

Feh... el "filtro" debera ser /aun/ mas astuto que tu sitio web para poder
hacer eso en forma confiable, y esa no te la compro.

> > En otros casos en su mayoria es para filtrar cosas que el servicio en
> > si no hace, y validar la formacion de las peticiones.

> Exactamente eso!!! ;-)

Si dudas de tus servidores, mejor cambialos por alguna cosa confiable
ASAP. Poner un "filtro de seguridad" delante de un programa con problemas
no sirve de nada, dado que seguro mas temprano que tarde encuentran como
craquearlo con medios "legales". O te comprometen el "filtro", y estas en
problemas aun peores. Y hay que recordar siempre que entre 75 y 95% (segun
quien de la cifra) de los incidentes tienen "componente interna", con lo
que el filtro te protege contra un 5 a 25% de lo ataques, cuando mucho.

> Bueno, y como hago para hacerlo en Linux? ;-)

Eliges con cuidado la distribucion (<http://www.lwn.net/Distributions>
tiene sugerencias...) a usar para dar los servicios (u optas por OpenBSD,
tropa de paranoicos mas grandes que esos no hay), eliges con cuidado entre
las opciones para programas servidores (de traerlas tu distribucion), te
das una vueltita por <http://www.bastille-linux.org> para sugerencias de
endurecimiento, decides como aplicar SELinux (<http://www.nsa.gov/selinux>,
los Fedora Core y Red Hat Enterprise Linux ultimos lo traen, los FAQ del
caso son utiles). Obviamente aplicas reglas fascistas de iptables en la
maquina donde corre el servicio, e instalas lo justo y necesario. En lo
posible la ubicas en la DMZ del caso, opcionalmente con chiches como IDS
<http://www.snort.org> , antivirus y demas para sazonar a gusto. Obviamente
tanto (o mas) protegido del "calido y hogaren~o ambiente interno" como
contra el "frio e impersonal mundo de Internet".

Yep, estamos hablando de 3 maquinas a lo menos (filtros externo e interno
(no, un "cortafuegos" con 3 tarjetas de red /no/ da el nivel de seguridad
que andas buscando), maquina que ofrece el servicio). Pueden ser mas (cache
de web para filtrar trafico (P2P tunelado sobre HTTP, etc) entre el jardin
de verduras y el mundo externo, maquina aparte para logs, IDS, etc). Vale
la pena? Solo tu situacion particular puede responder a eso.
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513


Más información sobre la lista de distribución Linux