akualung
15/06/2007, 11:51
Hola, apañeros. El Miércoles hice un exámen para recuperar una asignatura que no conseguí aprobar en régimen ordinario (me presenté a la convocatoria extraordinaria, la ultima oportunidad que dan antes de tener que volver a repetir).
Concretamente es la asginatura DFSI (Desarrollo de Funciones en el Sistema Informático) del ciclo formativo ASI (Administración de Sistemas Informáticos).
Yo solo tenía que recuperar la tercera evaluación. Se habia rumoreado que podría ser un examen teórico, pero tampoco era seguro. La tercera evaluación consistía solo en cuatro ejercicios relativamente cortos y sencillos, además bastaba con hacer solo uno de ellos para aprobar. De dos de ellos no tenía directamente ni idea (no pude estudiar mucho para ese exámen, la verdad sea dicha).
Los cuatro ejercicios a escojer eran estos (Todos los ejercicios se hacian sobre linux (Fedora Core 4)):
- Configurar un tunel ipsec entre dos máquinas y mostrar un ejemplo de tráfico cifrado y otro sin cifrar (con el ethereal, por ejemplo).
- Desde una máquina, atacar un postgres de otra utilizando un tunel ssh (del paquete Openssh, que ya teníamos instalado). Mostrar un ejemplo de tráfico cifrado y otro sin cifrar.
- Establecer un firewall en un pc (a) que haga de router a otro (b) impidiendo el acceso a él (a) por ssh pero dejando pasar el tráfico (de a y b) al exterior. También ha de permitir el acceso web al exterior pero no hacia el interior (solo de las conexiones establecidas). Por último, se ha de impedir cualquier telnet al exterior pero permitirlo al router (a).
- Configurar el PC para que arranque en modo 4. En este modo, en F1 habrá una sesión X con un entorno gráfico y una ventana del Mozilla. En F2, otro entorno gráfico con una ventana de Openoffice, y en F3 y F4 dos terminales en modo texto (o sea, dos tty, supongo).
Si suena un poco raro, es que lo he traducido "on the fly" del catalán.
Al pincipio decido hacer el cuarto ejercicio, el de las terminales gráficas, pero me quedo atascado en lo de jugar con las cuatro ventanas a la vez (del F1 al F4) ya que en clase solo hicimos una práctica con una sola ventana, y por internet no vi nada. Después de perder dos horas con ese ejercicio, decido pasar al del túnel ssh (el del firewall lo veia muy lioso, y el del ipsec no me pude mirar los apuntes y tuve miedo de no acabar a tiempo).
Pues bien, la primera en la frente: la mitad de los ordenadores estaban jodidos, porque los habian tocado y retocado mil veces para hacer y presentar los proyectos finales, otros exámenes, etc. Algunos no estaban en red, otros no arrancaban y me daban kernel panics, otros no tenian instalados el Postgres (y cuando lo instalabas resulta que faltaban otros paquetes que, si me pongo a mirar dependencias, me paso todo el tiempo del exámen).
Al final encontré un par de pcs donde sí funcionaba el Postgres.
Con los apuntes de clase sobre ssh (que por suerte eran cortitos), me pongo a hacer el ejercicio. La orden para crear el tunel ssh era esta:
ssh -2 -N -f -L 5023:nombre_host_remoto:5432 mi_user@mi_pc
Con eso creaba en mi máquina un tunel ssh hacia un host remoto, autentificando con mi nombre de usuario.
Después, para conectar con el postgres de la otra máquina:
psql -h localhost -P 5023 -U mi_user nombre_bd (yo antes hacía un telnet, pero el profe me dijo que no quería eso, sino que conectase al postgres directamente).
Pues bien, reinicio y le digo a mi profe "bueno, voy a enseñarte ya el exámen".
Primero le enseño un ejemplo de tráfico normal, sin cifrar, reiniciando el linux para que no quede nada de lo que he heho antres y conectando directamente sin tunel ssh:
psql -h pc_remoto -p 5432 -U mi_user nombre_bd
Se abre el terminal interactivo de postgres, abro el ethereal y capturo el tráfico mientras hago consultas aleatorias a la base de datos. Miramos el tráfico en el etheral y vemos los paquetes bajo el protocolo pgsql, que efectivamente no estaban cifrados (se veía el contenido de la consulta y la consulta misma).
Ahora la segunda parte. Creo el tunel tal como he indicado antes, y vuelvo a hacer la orden del psql pero a mi propia máquina (para que el puerto 5023 me haga un forwarding). Abrimos el ethereal, capturamos paquetes y... sorpresa! Sigue estando sin cifrar!. Qué raro.
Me tiré todo el resto de la mañana intentando saber por qué no funcionaba el cifrado. Probé mirando todas las opciones que tiene la orden ssh, probé retocando los archivos de configuración (ssh_config, sshd_config), me patée medio internet, etc, etc.
Otro alumno que se presentó, haciendo exactamente lo mismo, le funcionó (probé desde su pc y seguía sin tirarme). A él no le funcionaba porue se olvidaba el parámetro -f (para que el tunel quedase funcionando en segundo plano), pero en cuanto se dió cuenta de eso, puso ese parámetro y ya el cifrado le funcionó automáticamente.
Probé desde un montón de ordenadores, con todos los pcs a los que les funcionaba el postgres, ejecutando al orden de mil maneras diferentes, reiniciando como 15 veces en toda la mañana, probando todos los puertos posibles... Nada de nada. Hacia el final de exámen yo ya estaba totalmente fuera de mí, tirándome de los pelos, echando espumarajos de rabia por la boca y a punto de coger el monitor y reventarlo contra el suelo.
Incluso cuando acabó el exámen el profe se lo estuvo mirando y no entendía nada. La orden estaba bien hecha, pero sencillamente el tráfico relacionado con el postgres entre mi pc y el remoto, no estaba cifrado. Si ni él mismo sabía qué fallaba, ¿cómo lo iba a saber yo? Pues nada, cateo al canto por no haber conseguido hacer el ejercicio. Y ni siquiera sé por qué.
Solo me queda el consuelo de que, como solo me queda esa asignatura, el profe se apiade de mí y quizá me ponga un 5 justito. Pero prefiero no darme muchas esperanzas. Si cateo esa asignatura, tendré que repetir el curso solo por una asignatura (todo lo demás lo tengo ya aprobado). Menuda putada.
Si por lo menos no hubiera tenido ni idea de hacer el exámen, pues aceptaría mejor el cate, pero hacerlo bien (bajo mi punto de vista) y que un problema "esotérico" del que quizá no tenga yo la culpa (vete a saber qué podia ser), me cueste la asignatura, es como frustrante.
En esta web hablan de hacer un tunel ssh y ponen como ejemplo precisamente el postgres, y parece la mar de sencillo, ni tan siquiera hace falta haber creado primero llaves ni nada de eso:
http://www.bsdes.net/numero3/articulo02.php#AEN56 (también probé a hacrlo tal como dice el último apartado de esa web, y tampoco funcionó)
En fin, a tomárselo con resignación. Después de haber ido más o menos bien durante el curso (sólo pinché en el último exámen) y que me pase esto justo al final...
Bueno, perdonad el tocho, pero es que quería desahogarme.
Concretamente es la asginatura DFSI (Desarrollo de Funciones en el Sistema Informático) del ciclo formativo ASI (Administración de Sistemas Informáticos).
Yo solo tenía que recuperar la tercera evaluación. Se habia rumoreado que podría ser un examen teórico, pero tampoco era seguro. La tercera evaluación consistía solo en cuatro ejercicios relativamente cortos y sencillos, además bastaba con hacer solo uno de ellos para aprobar. De dos de ellos no tenía directamente ni idea (no pude estudiar mucho para ese exámen, la verdad sea dicha).
Los cuatro ejercicios a escojer eran estos (Todos los ejercicios se hacian sobre linux (Fedora Core 4)):
- Configurar un tunel ipsec entre dos máquinas y mostrar un ejemplo de tráfico cifrado y otro sin cifrar (con el ethereal, por ejemplo).
- Desde una máquina, atacar un postgres de otra utilizando un tunel ssh (del paquete Openssh, que ya teníamos instalado). Mostrar un ejemplo de tráfico cifrado y otro sin cifrar.
- Establecer un firewall en un pc (a) que haga de router a otro (b) impidiendo el acceso a él (a) por ssh pero dejando pasar el tráfico (de a y b) al exterior. También ha de permitir el acceso web al exterior pero no hacia el interior (solo de las conexiones establecidas). Por último, se ha de impedir cualquier telnet al exterior pero permitirlo al router (a).
- Configurar el PC para que arranque en modo 4. En este modo, en F1 habrá una sesión X con un entorno gráfico y una ventana del Mozilla. En F2, otro entorno gráfico con una ventana de Openoffice, y en F3 y F4 dos terminales en modo texto (o sea, dos tty, supongo).
Si suena un poco raro, es que lo he traducido "on the fly" del catalán.
Al pincipio decido hacer el cuarto ejercicio, el de las terminales gráficas, pero me quedo atascado en lo de jugar con las cuatro ventanas a la vez (del F1 al F4) ya que en clase solo hicimos una práctica con una sola ventana, y por internet no vi nada. Después de perder dos horas con ese ejercicio, decido pasar al del túnel ssh (el del firewall lo veia muy lioso, y el del ipsec no me pude mirar los apuntes y tuve miedo de no acabar a tiempo).
Pues bien, la primera en la frente: la mitad de los ordenadores estaban jodidos, porque los habian tocado y retocado mil veces para hacer y presentar los proyectos finales, otros exámenes, etc. Algunos no estaban en red, otros no arrancaban y me daban kernel panics, otros no tenian instalados el Postgres (y cuando lo instalabas resulta que faltaban otros paquetes que, si me pongo a mirar dependencias, me paso todo el tiempo del exámen).
Al final encontré un par de pcs donde sí funcionaba el Postgres.
Con los apuntes de clase sobre ssh (que por suerte eran cortitos), me pongo a hacer el ejercicio. La orden para crear el tunel ssh era esta:
ssh -2 -N -f -L 5023:nombre_host_remoto:5432 mi_user@mi_pc
Con eso creaba en mi máquina un tunel ssh hacia un host remoto, autentificando con mi nombre de usuario.
Después, para conectar con el postgres de la otra máquina:
psql -h localhost -P 5023 -U mi_user nombre_bd (yo antes hacía un telnet, pero el profe me dijo que no quería eso, sino que conectase al postgres directamente).
Pues bien, reinicio y le digo a mi profe "bueno, voy a enseñarte ya el exámen".
Primero le enseño un ejemplo de tráfico normal, sin cifrar, reiniciando el linux para que no quede nada de lo que he heho antres y conectando directamente sin tunel ssh:
psql -h pc_remoto -p 5432 -U mi_user nombre_bd
Se abre el terminal interactivo de postgres, abro el ethereal y capturo el tráfico mientras hago consultas aleatorias a la base de datos. Miramos el tráfico en el etheral y vemos los paquetes bajo el protocolo pgsql, que efectivamente no estaban cifrados (se veía el contenido de la consulta y la consulta misma).
Ahora la segunda parte. Creo el tunel tal como he indicado antes, y vuelvo a hacer la orden del psql pero a mi propia máquina (para que el puerto 5023 me haga un forwarding). Abrimos el ethereal, capturamos paquetes y... sorpresa! Sigue estando sin cifrar!. Qué raro.
Me tiré todo el resto de la mañana intentando saber por qué no funcionaba el cifrado. Probé mirando todas las opciones que tiene la orden ssh, probé retocando los archivos de configuración (ssh_config, sshd_config), me patée medio internet, etc, etc.
Otro alumno que se presentó, haciendo exactamente lo mismo, le funcionó (probé desde su pc y seguía sin tirarme). A él no le funcionaba porue se olvidaba el parámetro -f (para que el tunel quedase funcionando en segundo plano), pero en cuanto se dió cuenta de eso, puso ese parámetro y ya el cifrado le funcionó automáticamente.
Probé desde un montón de ordenadores, con todos los pcs a los que les funcionaba el postgres, ejecutando al orden de mil maneras diferentes, reiniciando como 15 veces en toda la mañana, probando todos los puertos posibles... Nada de nada. Hacia el final de exámen yo ya estaba totalmente fuera de mí, tirándome de los pelos, echando espumarajos de rabia por la boca y a punto de coger el monitor y reventarlo contra el suelo.
Incluso cuando acabó el exámen el profe se lo estuvo mirando y no entendía nada. La orden estaba bien hecha, pero sencillamente el tráfico relacionado con el postgres entre mi pc y el remoto, no estaba cifrado. Si ni él mismo sabía qué fallaba, ¿cómo lo iba a saber yo? Pues nada, cateo al canto por no haber conseguido hacer el ejercicio. Y ni siquiera sé por qué.
Solo me queda el consuelo de que, como solo me queda esa asignatura, el profe se apiade de mí y quizá me ponga un 5 justito. Pero prefiero no darme muchas esperanzas. Si cateo esa asignatura, tendré que repetir el curso solo por una asignatura (todo lo demás lo tengo ya aprobado). Menuda putada.
Si por lo menos no hubiera tenido ni idea de hacer el exámen, pues aceptaría mejor el cate, pero hacerlo bien (bajo mi punto de vista) y que un problema "esotérico" del que quizá no tenga yo la culpa (vete a saber qué podia ser), me cueste la asignatura, es como frustrante.
En esta web hablan de hacer un tunel ssh y ponen como ejemplo precisamente el postgres, y parece la mar de sencillo, ni tan siquiera hace falta haber creado primero llaves ni nada de eso:
http://www.bsdes.net/numero3/articulo02.php#AEN56 (también probé a hacrlo tal como dice el último apartado de esa web, y tampoco funcionó)
En fin, a tomárselo con resignación. Después de haber ido más o menos bien durante el curso (sólo pinché en el último exámen) y que me pase esto justo al final...
Bueno, perdonad el tocho, pero es que quería desahogarme.