Thinking on hiring me?

Please read

Fernando Guillén

a Freelance Web Developer

cabecera decorativa

software development as an artistic expression

Archive for the ‘sistemas’ Category

Jueves, Septiembre 18th, 2008

Port Forwarding: accediendo a las máquinas de una intranet desde una sóla máquina pública.

Las redes de los clientes son celosas y normalmente sólo se puede acceder a las máquinas de su red desde dentro de la red misma. Lo que viene a llamarse una intranet.

Pero muchas de mis tareas de mantenimiento requieren acceso a varias máquinas de una intranet y desplazarme al cliente no lo veo una opción factible ni acorde con nuestros tiempos.

Una de las soluciones que más me ha gustado es pedirle al cliente un sólo acceso, una sola máquina con IP pública.

Para dar seguridad se puede configurar para que sólo se pueda acceder desde la IP estática de tu oficina, y, para ofrecer flexibilidad, que también se pueda acceder desde la IP estática de tu servidor en un datacenter. Pero bueno todo este párrafo te lo puedes saltar si no hay mucho inconveniente con la seguridad.

La máquina con la IP pública mola que sea linux, más que nada porque si no lo es ya no hace falta que sigas leyendo pues el resto del artículo sobreentiende esta premisa.

Lo que vamos a hacer es lo que se ve en la ilustración.

port forwarding

Aquí me ves a mí con más pelo y sin barba deseando acceder a todos los servicios de las máquinas de la intranet 10.10.10.* y sin embargo sólo pudiendo acceder a la máquina con la IP pública 205.205.205.205.

Lo que necesito tiene un nombre y este es Port Forwarding, y la implementación de esto más sencilla que he visto se hace mediante IP Tables.

Va a ser más rápido escribir los comandos que hay que ejecutar para que esto funcione que toda la charla previa que te he contado.

Mi máquina con acceso público tiene la distribución de linux Gentoo así que los ejemplos son para esta distro pero no deberían variar mucho para otras distros.

Instalamos iptables (si no está ya)

# emerge iptables

Le decimos al kernel que permita ip-forwarding

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

Flasheamos toda la configuración de iptables que haya por defecto

# iptables -F
# iptables -t nat -F

Permitimos el forward desde iptables (eth0 es la interface pública)

# iptables -A FORWARD -i eth0 -j ACCEPT
# iptables -A FORWARD -o eth0 -j ACCEPT

Esto hace que las ips se enmascaren para no liar a los routes y saltarse posibles filtros de seguridad por IP

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Y aquí por fín las reglas del Port Forwarding

# iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 213306 -j DNAT --to-destination 10.10.10.21:3306
# iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 2180 -j DNAT --to-destination 10.10.10.21:80
# iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 2280 -j DNAT --to-destination 10.10.10.22:80
# iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 2221 -j DNAT --to-destination 10.10.10.22:21
# iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 2322 -j DNAT --to-destination 10.10.10.23:22

Guardamos la configuración de iptables actual para que no haya que reescribirla al reiniciar

# /etc/init.d/iptables save

Ponemos el servicio de iptables para que arranque al inicio

# rc-update add iptables default

Creo que esto también hay que hacerlo

# vim /etc/sysctl.conf

Añadir/descomentar las siguientes líneas:

net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1

Y ya debería funcionar. Si me voy a mi máquina en mi oficina y accedo a:

$ mysql -h205.205.205.205 -P 213306

Me encontraré con la mysql de la máquina 10.10.10.21.

Si accedo con un navegador a:

http://205.205.205.205:2280

Me encuentro con el Apache de la máquina 10.10.10.22.

Si no te funciona revisa la linkografía:

Viernes, Mayo 23rd, 2008

FireFox comiendo memoria

Y aquí tenemos esta simpática criatureja en su hábitat salvaje dispuesta a saquear todos los recursos del entorno, sin prestar atención a las necesidades de los individuos de las demás especies.

Observémosla detenidamente, esperemos que no se percate de nuestra presencia.

firefox 900 megas de ram

¿Puede querer más?… Sí, sí que puede:

firefox 1,2 gigas de ram

Viernes, Mayo 23rd, 2008

¡Dios mio qué he hecho!

Me alejo un poco de la caja de cartón marrón para tomar aire e intentar salir del embobamiento hipnótico.

Ya son más de 5 años de relación amor odio con escritorios Linux, una relación que me ha endurecido enormemente y de la que tengo un recuerdo entre el orgullo de guerrero y cabreo de caprichoso. Quizás sea esa parte mía caprichosa y mal criada la que se ha hecho fuerte últimamente, esos deseos impulsivos de ¡lo quiero y lo quiero ahora! que hacen que me entren cabreos y rabietas al verme marginado una y otra vez por el propio hardware de mi ordenador.

Hoy es ‘un antes y un después’, hoy abandono ligeramente una comunidad que tanto me ha dado… o de la que tanto he cogido (como dijo alguien).

No sé que será lo que más eche de menos, seguramente sea el pertenecer, de una manera consecuente, a una comunidad tan revolucionaria y hermosa como es la del open source, aunque sé que no me estoy separando del todo pues sus tentáculos llegan también al mundo Mac y en mis servidores seguiré administrando distribuciones Linux.

Lo que tengo claro es lo que no añoraré: las peleas continuas con el hardware y la experiencia de usuario con los sistemas de escritorio. La resignación de que la impresora no imprima a dos caras, las tardes perdidas intentando activar el micro, la lucha a muerta con el X11 y el dualhead, la tosquedad de la wifi, en definitiva el uso agotador de energía que requiere dirigir esta gran orquesta de poderosos y cabezotas componentes.

Esta declaración no la debes tener en cuenta a la hora de decidirte a instalar Linux en tu escritorio, distribuciones como Ubuntu son perfectamente válidas en la mayoría de los casos y sin ninguna duda una alternativa mucho menos problemática que Windows. Sólo te diría que te abstuvieras de instalar Linux si el uso de tu ordenador va a ser para jugar o para diseño gráfico profesional, aunque estos casos se puedan satisfacer con una buena combinación de Linux+Wine ya empiezan a requerir de configuraciones medianamente tediosas.

En definitiva, mi querido confidente, me he pasado a Mac.

Algo curioso está ocurriendo en mi todavía querido Ubuntu sobre el que escribo estas líneas, creo que se ha cabreado, según escribía este post se me ha bloqueado varias veces el Firefox, lo cual no es raro pues es la versión Beta de la 3.0, pero había algo raro, como demasiado empeño en no volver a arrancar, temiendo una pérdida de todo lo escrito he continuado en el gedit y, ahora sí que sorprendiéndome, también se me ha colgado al intentar grabar. Aún no estoy seguro si el Ubuntu del servidor sobre el que corre el WordPress de este blog admitirá la publicación de este texto. ¿Tendrá mi nuevo Mac tanta personalidad?.

Buci, parece que estamos sincronizados :)

Actualizado un rato después:  ¿Esto es?… ¿ya está?, ¿esto es todo?, me siento como una quinceañera desvirgada por el guapo de clase.

Martes, Abril 29th, 2008

Conjuros de teclado.

En un rincón de los Mac modernos y más a la vista en los Linux de toda la vida existe un lugar donde se pueden realizar los llamados “conjuros de teclado”, este lugar es la consola, una estancia normalmente negra apta sólo para hechiceros.

En la consola nuestro ordenador es altamente vulnerable y también muy obediente, si somos conocedores de las claves podremos convencerle de hacer cosas que sería complicadísimo explicárselo con el ratón.

Por eso cuando veas a uno de estos hechiceros delante de una pantalla negra llena de letras ten por seguro que está preparando un “conjuro de teclado“.

Un buen libro de hechizos es el que está preparando la gente de shell-fu de los que ya te hablé no hace mucho.

Viernes, Marzo 14th, 2008

Crear otro repositorio subversion.

Esto no es un How-To, es una nota mental.

Creando el repositorio

$ sudo svnadmin create  /home/svn/mirepositorio
$ sudo chown www-data.svn -R /home/svn/mirepositorio

Configuración del apache para el nuevo repositorio:

$ sudo vim /etc/apache2/mods-available/dav_svn.conf
<Location /svn/mirepositorio>
  DAV svn
  SVNPath /home/svn/mirepositorio
  AuthType Basic
  AuthName "mirepositorio's Subversion Repository"
  AuthUserFile /etc/apache2/htpasswd
  Require valid-user
</Location>

Añadimos un usuario:

$ sudo htpasswd -b /etc/apache2/htpasswd usuario clave

Recargamos apache:

$ sudo /etc/init.d/apache2 reload

Comprobamos:

navegador: http://fernandoguillen.info/svn/mirepositorio/
consola:  $ svn checkout http://fernandoguillen.info/svn/mirepositorio

Crear las carpetas iniciales:

$ svn mkdir http://fernandoguillen.info/svn/mirepositorio/trunk
$ svn mkdir http://fernandoguillen.info/svn/mirepositorio/branches
$ svn mkdir http://fernandoguillen.info/svn/mirepositorio/tags

Primer import:

$ svn import http://fernandoguillen.info/svn/mirepositorio/trunk

Mi sistema:

Ubuntu Gutsy Gibon 7.10
Subversion version 1.4.4
Apache 2
Jueves, Marzo 13th, 2008

Munin la bestia parda del monitoreo de servicios

Asistí a una de las aulas The Cocktail sobre Munin.

Me quedé impresionado, ahora mismo acabo de terminar de instalar y me ha costado 15 minuntos.

Es la gran bestia parda:

1) Apenas requiere configuración.

2) Permite sistema de nodos y master.

3) Monitorea cosas que nisiquiera entiendo como es capaz de monitorear.

4) Te autodetecta todo lo que tiene el servidor y se pone a monitorearlo todo sin que le tengas que explicar nada.

Increible, una joya.

a Freelance Web Developer is proudly powered by WordPress
Entries (RSS) and Comments (RSS).

Creative Commons License
Fernando Guillen's blog by Fernando Guillen is licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License.