Aquí va una serie de no sé cuantas partes que resumen lo que me tomó implementar un firewall proxy.
El primer paso lógicamente fue elegir la maquina que iba a convertirse en este servidor. Ya tenía en la mira el IBM que cumplía a medias esta función (firewall/proxy) ya que el SQUID se colgaba cada dos días, seguramente mal configurado. No me miren, así me lo dejaron unos expertos, que seguramente por el apuro no consideraron todos los detalles.
Ahora a elegir la distribución, y recordé que hacia meses, casi un año que me habían enviado un CD de Ubuntu 6.0.6, relegado entre los cachivaches de mi casa, solamente probado unos días como LiveCD y pues le había llegado la hora de ser utilizado para el bien. Eso sonó cursi :D.
Y se procedió a la instalación, esto es sencillo en Ubuntu. Excepto que la lectora del servidor había pasado a mejor vida. Tuve que sacar la grabadora de mí maquina y colocarla en el servidor para la instalación que tomo poco tiempo, no lo medí. En este enlace están los pasos para la instalación limpia, es de una versión anterior pero sirve, Los pasos para instalar el Ubuntu junto con Windows lo pueden ver en arturogoga.com. Es un artículo para pasarse completamente desde Windows a Ubuntu, según quien sea le conviene, personalmente no, porque desarrollo en Windows y no hay como hacer funcionar el SQL Server en Linux. O al menos no sé.
Yo solo instalé Ubuntu en ese servidor, y lo particioné de la siguiente manera: 15Gb para la raíz, 17Gb para home y 3Gb para intercambio. Ah y por consejo de un sitio web, que no recuerdo, colocar la partición de intercambio de manera no contigua a la raíz mejora la performance. Bueno así lo hice. Si una vez instalado quieren ver las particiones se ven con el siguiente comando:
fdisk -l
Es una ele (L) por si acaso.
Bueno terminada la instalación, donde bauticé como Naylamp a mi servidor. Empecé la dura tarea de configurar el proxy. Buscando en Google encontré este sitio: Deambulando por la red, que fue mi primera guía para configurar el proxy. En ese artículo relata como configurar un proxy transparente para evitar que otros usen emule. Comentarios aparte uso el nano para editar archivos de texto, me parece mas fácil.
Ah, otra cosa cualquier comando que afecte al sistema operativo debe ser ejecutado colocando antes sudo para tomar poderes de root (el super usuario, el que puede todo) ya que Ubuntu siempre va a iniciar como usuario normal, y esto debería ser una regla, así evitas el “oh borré el kernel”.
Los pasos los seguí religiosamente y casi funcionaron a la perfección. Digo casi porque tenía un problema para instalar algunos servicios que ahí indica el autor. Resumiendo:
1. Añadi a la listas de descargas la página http://www.ubuntu-es.org/node/9043 (en /etc/apt/sources.list) y actualicé el sistema con el siguiente comando:
aptitude update
2. Luego viene configurar las interfaces de red. Algo así como ir a Conexiones de Red en Windows XP y ponerle las IP a tus tarjetas de red. Debes editar el archivo ubicado en /etc/network/interfaces.
sudo nano /etc/network/interfaces
3. Debe quedar asi:
| LAN | INTERNET |
| eth0 | eth1 |
address | 192.168.8.200 | 192.168.9.200 |
netmask | 255.255.255.0 | 255.255.255.0 |
Gateway | 192.168.9.200 | 192.168.1.1 (dirección del router de salida a internet) |
Estas son IPs imaginarias :D.
4. Hay que fijarse que este activo el loopback en ese mismo archivo.
auto lo
iface lo inet loopback
5. Luego hay que configurar los DNS de resolución, es decir los DNS de tu salida a internet. En mi caso los archiconocidos de telefónica.
sudo nano /etc/resolv.conf
6. Y dentro del archivo:
nameserver 200.48.225.130
nameserver 200.48.225.146
7. Ya luego configurado, se procede a reiniciar la red (imagina que es un desactivar y activar una conexión de red en Windows, solo que es mas efectiva)
/etc/init.d/networking restart
8. Luego se va a instalar el xinetd que sirve para manejar lo que es redes dentro de Linux.
aptitude install xinetd
9. Instalamos el ssh, squid e iptables.
aptitude install ssh squid iptables
10. La configuración del squid viene aquí.
nano /etc/squid/squid.conf
12. La ruta del cache
cache_dir ufs /var/spool/squid 100 16 256
13. Permitir acceso a la red local
acl redlocal src 192.168.8.0/255.255.255.0
14. Lista de las IPs que tienen acceso libre, excepto webs peligrosas.
acl iplibres src “/etc/squid/iplibres”
Páginas permitidas a las demás IPs.
acl per_iprest url_regex “/etc/squid/permitidos”
16. Páginas prohibidas a todos
acl prohibidos url_regex “/etc/squid/sitiosprohibidos”
17. Lista de IPs que tienen acceso a todo.
acl superip src “/etc/squid/superip”
18. Ahora los permisos
http_access allow per_iprest
http_access allow superip
http_access allow iplibres !prohibidos
19. Bloquear mensajeria instantanea
acl ICQ url_regex –i .icq.com
acl MSN req_mime_type ^application/x-msn-messenger$
acl YAHOO url_regex .msg.yahoo.com
acl CHAT url_regex –i webmessenger .webmessenger .messenger.* messenger.yahoo
acl WEBMSN url_regex –i .webmessenger.msn.com
acl EMESS url_regex –i .e-messenger.net .webmessenger.msn.com/* iloveim.com
acl TALK url_regex –i .google.com/talk talk.google.com .google.com/talk*
20. Reglas para mensajería
http_access deny MSN
http_access deny ICQ
http_access deny YAHOO
http_access deny CHAT
http_access deny WEBMSN
http_access deny EMESS
http_access deny TALK
21. Le digo que si hay algun problema me envie un correo
cache_mgr micorreo@midominio.com
22. Le doy un nombre
visible_hostname naylamp
23. Le indico que cada siete días se rotarán los logs.
logifle_rotate 7
24. Que me muestre los errores en español.
error_directory /usr/share/squid/errors/Spanish
Y ya luego guardamos el archivo y iniciamos el squid. Bueno es la primera parte, luego en el siguiente post, continuare con lo del proxy.
1 comentarios:
loko, buena idea d eponer un tutorial de proxy, pero habla enos y ensenia mas. no explicas como es eso de las listas de ips permitidas, por la manera ke la pones imagino ke haces referencia a un archivo en el mizmo directorio que el squid.conf, pero podrias ser un poco mas tecnico?? gracias.
Publicar un comentario