Instalar la base de datos mysql (paquete mysql-server-5.0), y configurarlo para que escuche a) por puerto tcp b) por socket unix. Comprobar ambas configuraciones mediante el comando netstat.

Instalamos el paquete mysql-server-5.0
#aptitude install mysql-server-5.0
Esta versión viene con el puerto tcp y el socket unix configurado por defecto, por lo que lo configuraremos para que escuche por los dos y, además, para que se pueda acceder desde cualquier máquina y para que solo se acceda desde el socket unix.

Como hemos dicho, viene configurado el puerto tcp y el socket unix por defecto, pero por el momento solo se puede acceder al servidor desde localhost. Lo único que tendremos que configurar es que se pueda acceder desde cualquier máquina. Editamos el fichero /etc/mysql/my.cnf mediante el editor que más nos guste (nosotros hemos utilizado nano), buscamos dento del apartado [mysqld] la linea bind-address = 127.0.0.1 y la comentamos o la borramos.
Ahora solo faltará reiniciar el servidor y comprobar si funciona correctamente.
#/etc/init.d/mysql restart
pr1.1_netstat_tcp_cocket.pngSi queremos que solo ecuche por socket añadiremos skip-networking en una linea nueva debajo de la linea que hemos comentado anteriormente. Para comprobar que funciona correctamente, como antes, reiniciamos el servidor y comprobarmos.
pr1.1_netstat_socket.png


Con el comando watch presentar en pantalla completa de forma continua la salida del comando netstat, mirando los puertos tcp y udp, y comprobar cómo varía si desde otra terminal se navega a una página web externa mediante lynx.

Para ver solo los puertos tcp y udp del comando netstat hay que utilizar las opciones t y u. Tambien es interesante la opcion p para ver que programas tienen abiertos esos puertos.
#watch netstat -tup
Ahora navegamos con lynx a una página web cualquiera, en este caso www.youtube.com, y comprobamos los cambios en el netstat realizado anteriormente.
lynx www.youtube.com
pr1.2_netstat.png


Mediante el comando dig obtener las direcciones del servidor web www.gmail.com (registros DNS tipo A) y las de los distintos servidores smtp (registros DNS tipo MX) para correos con destinatario de la forma @gmail.com.

Para obtener todas las direcciones del servidor web www.gmail.com utilizaremos uno de los siguientes comandos.
$dig gmail.com
 
o
 
$dig -t A gmail.com
Da igual cual utilicemos ya que la opcion por defecto (sin opciones) muestras los registros DNS tipo A.
pr1.3_dns_A.png
Para ver los registros DNS tipo MX utilizaremos este otro comando.
$dig -t MX gmail.com
pr1.3_dns_MX.png

Encontrar algún teléfono de contacto de la persona o entidad responsable de gestionar la IP correspondiente a la web www.ehu.es

Lo primero que hay que hacer es obtener la dirección IP de la web www.ehu.es. Para ello se hace un ping a la url de la web.
pr1.4_ping.png
A continuación utilizamos el comando whois para obtener la información de la web.

$ whois 158.227.0.65
 
OrgName:    RIPE Network Coordination Centre
OrgID:      RIPE
Address:    P.O. Box 10096
City:       Amsterdam
StateProv:
PostalCode: 1001EB
Country:    NL
 
ReferralServer: whois://whois.ripe.net:43
 
NetRange:   158.225.0.0 - 158.227.255.255
CIDR:       158.225.0.0/16, 158.226.0.0/15
NetName:    RIPE-ERX-158-225-0-0
NetHandle:  NET-158-225-0-0-1
Parent:     NET-158-0-0-0-0
NetType:    Early Registrations, Transferred to RIPE NCC
Comment:    These addresses have been further assigned to users in
Comment:    the RIPE NCC region.  Contact information can be found in
Comment:    the RIPE database at http://www.ripe.net/whois
RegDate:    2003-10-15
Updated:    2003-10-15
 
# ARIN WHOIS database, last updated 2010-02-28 20:00
# Enter ? for additional hints on searching ARIN's WHOIS database.
#
# ARIN WHOIS data and services are subject to the Terms of Use
# available at https://www.arin.net/whois_tou.html
 
 
Se ha encontrado una referencia a whois.ripe.net:43
 
% This is the RIPE Database query service.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See http://www.ripe.net/db/support/db-terms-conditions.pdf
 
% Note: This output has been filtered.
%       To receive output for a database update, use the "-B" flag.
 
% Information related to '158.227.0.0 - 158.227.255.255'
 
inetnum:        158.227.0.0 - 158.227.255.255
netname:        SPRINET
descr:          Universidad del Pais Vasco
descr:          Sociedad para la Promocion y Reconversion
descr:          Industrial
descr:          Pais Vasco
country:        ES
admin-c:        NZL1-RIPE
tech-c:         IO218-RIPE
tech-c:         MAME1-RIPE
status:         ASSIGNED PI
remarks:        mail spam reports: abuse@rediris.es
remarks:        security incidents: cert@rediris.es
mnt-by:         NZL1-RIPE
mnt-by:         RIPE-NCC-HM-PI-MNT
mnt-lower:      RIPE-NCC-HM-PI-MNT
mnt-irt:        IRT-IRIS-CERT
source:         RIPE # Filtered
 
irt:            IRT-IRIS-CERT
address:        IRIS-CERT
address:        Dep. RedIRIS
address:        Entidad Publica Empresarial Red.es
address:        Edificio Bronce - 2a planta
address:        Plaza Manuel Gomez Moreno, s/n
address:        E-28020 Madrid
address:        Spain
phone:          +34 607 156313
fax-no:         +34 91 556 8864
e-mail:         cert@rediris.es
signature:      PGPKEY-88A17FF5
encryption:     PGPKEY-88A17FF5
admin-c:        TI123-RIPE
tech-c:         TI123-RIPE
auth:           PGPKEY-88A17FF5
remarks:        emergency phone number +34 607 156313
remarks:        timezone GMT+1 (GMT+2 with DST)
remarks:        https://www.trusted-introducer.org/teams/iris-cert.html
remarks:        This is a TI accredited CSIRT/CERT
irt-nfy:        cert@rediris.es
mnt-by:         TRUSTED-INTRODUCER-MNT
source:         RIPE # Filtered
 
person:         Nekane Zaldua Legorburu
address:        Campus Universitario de Leioa
address:        S.A.I.D. de Vizcaya Edificio Rectorado
address:        Barrio de Sarriena, s/n
address:        E-48940 Leioa, Vizcaya
address:        SPAIN
phone:          +34 944647700 ext. 2030
fax-no:         +34 944649550
e-mail:         nekane.zaldua@ehu.es
nic-hdl:        NZL1-RIPE
source:         RIPE # Filtered
 
person:         Miguel Angel Martinez Ezquerro
address:        CIDIR Gipuzkoa
address:        Edificio Facultad de Informatica
address:        Paseo Manuel de Lardizabal, 1
address:        E-20018 Donostia (San Sebastian), Guipuzcoa
address:        SPAIN
phone:          +34 943018005
fax-no:         +34 943015590
e-mail:         miguelangel.martinez@ehu.es
nic-hdl:        MAME1-RIPE
source:         RIPE # Filtered
 
person:         Inaki Ortega
address:        Campus Universitario de Leioa
                CIDIR Bizkaia Edificio Rectorado
                Barrio de Sarriena, s/n
                E-48940 Leioa, Bizkaia
                SPAIN
phone:          +34 946012093
fax-no:         +34 946012200
e-mail:         inaki.ortega@ehu.es
nic-hdl:        IO218-RIPE
source:         RIPE # Filtered
 
% Information related to '158.227.0.0/16AS15488'
 
route:        158.227.0.0/16
descr:        SPRINET
origin:       AS15488
mnt-by:       NZL1-RIPE
source:       RIPE # Filtered

Como se ve, la dirección IP la gestiona RedIris y el numero de teléfono es 607156313

Montar un servicio rsync para mirrors y comprobar la escucha por el puerto 873. Hacer una sincronización local, esto es, estando los ficheros de origen y la ubicación destino en el mismo equipo, lanzándose la copia mediante el comando:
rsync -t * localhost:/tmp/


Antes de comenzar hay que asegurarse de que ssh esta instalado.
Por defecto el servicio rsync no esta activado, por lo que habrá que configurarlo para que el demonio se quede escuchando. Para ello hay que editar el fichero /etc/default/rsync e indicarle que active el demonio.
RSYNC_ENABLE=true
El demonio rsync, por defecto, funciona en localhost y escucha por el puerto 873, por lo que no habrá que configurar nada mas.
Adiccionalmente, el servicio rsync necesita un fichero de configuración, que debe ir en la carpeta /etc/. En la documentación de rsync se encuentra un fichero de configuración de ejemplo, por lo que simplemente hay que copiar ese fichero en la carpeta /etc/.
#cp /usr/share/doc/rsync/examples/rsyncd.conf /etc/
 
A continuación se incia el servicio rsync.
#/etc/init.d/rsync start
Finalmente se comprueba que esté escuchando.
pr1.5_netstat.png

Se prueba el comando rsync.
pr1.5_rsync.png

pr1.5_ls.png

Se ha añadido la opción -v para ver los datos transferidos y la velocidad.

Hacer un servidor rudimentario de cálculo, concretamente de sumas, mediante netcat.
a) Emplear tres terminales. En la terminal 1 se tendrá un netcat escuchando por un puerto A para recibir los sumandos, y en la terminal 2 otro netcat escuchando por un puerto B para lanzar el cálculo de la suma.
La terminal 3 hará de cliente, de modo que primero se hará una conexión con netcat al puerto A para indicar los operandos separados por saltos de línea. Esta conversación se almacenará desde la terminal 1 en un fichero.
Finalizada esta comunicación, desde la terminal 3 se hará una conexión al puerto B de modo que se calcule la suma de los operandos almacenados en el fichero indicado, guardando el resultado en otro fichero.
Observar el tráfico mediante wireshark.
b) Preparar un script que compruebe cada 5 min si se están ejecutando las escuchas por A y B, y en caso negativo sean lanzadas de nuevo, en esta ocasión sin terminal asociada.


Para obtener una mayor facilidad al ejecutar los comandos vamos a meterlos en scripts. El primero de ellos será el que se ejecutará en el terminal 1.
  • receptor
#!/bin/bash
nc -l -p 18560 > /home/ivan/sum/sumandos
El siguiente será el que se ejecute en el terminal 2.
  • sumador
#!/bin/bash
nc -l -p 18561 -e /home/ivan/sum/sumar
Este script lo que hará será ejecutar el script sumar cuando reciba una conexión por el puerto 7501.
  • sumar
#!/bin/bash
cd /home/ivan/sum/
sed -s -e 's/ //g' -e '/^$/ d' ./sumandos > ./sumandos2
#se quitan los espacios y saltos de linea
exec < ./sumandos2
while read -r LINEA
do
        sum=`expr $sum + $LINEA`
done
 
echo $sum
echo $sum > ./suma
cd
Y por último el que se ejecutará en el terminal 3, que será el que haga de cliente.
  • cliente
#!/bin/bash
nc localhost 18560
nc localhost 18561
 
pr1.6_suma.png
Los tres primeros paquetes son para establecer la conexión. Los paquetes 4 y 6 envían los datos al receptor y el 5 y el 6 son confirmaciones a los mismos. 8, 9 y 10 son los paquetes intercambiados por el cliente y el receptor para finalizar la conexión. A continuación en los paquetes 11, 12 y 13 se establece la conexión entre el cliente y el sumador, en el 14 el sumador envía el resultado de la suma al cliente, en el 15 el cliente lo confirma y por último, los paquetes 16 a 18 se cierra la conexión.

Para comprobar cada 5 minutos si se están realizando las escuchas A y B, se debe comprobar que los puertos estén escuchando, y si no lo están lanzar los procesos requeridos. Es importante que estos procesos se lancen en segundo plano para que el script comprobador no se quede esperando a que finalicen los procesos para comprobar el siguiente puerto.

while true
do
 
rec=`netstat -ln | grep 18560 | wc -l`
if  test $rec -eq 0
then
echo "No esta escuchando por el puerto 18560"
/home/ivan/sum/receptor &
else
echo "Si esta escuchando por el puerto 18560"
fi
 
sum=`netstat -ln | grep 18561 | wc -l`
if test $sum -eq 0
then
echo "No esta escuchando por el puerto 18561"
/home/ivan/sum/sumador &
else
echo "Si esta escuchando por el puerto 18561"
fi
sleep 300
done