# Metas

- Configuración inicial de su VM
- Podríamos hacer esto por Ud., pero es importante entender como algo de este software funciona con las herramientas que van a instalar durante esta semena.

## Notas

- Los comandos precedidos por el signo de pesos “$”, deben ser ejecutados como un usuario general - y no como superusuario (root).
- Los comandos precedidos por el signo de número “#”, deben ser ejecutados por el superusuario (root).
- Los comandos precedidos por lineas de comando más específicas (e.g. “rtrX>” or “mysql>”) deben ser ejecutados en equipos remotos, dentro de otras aplicaciones.
- Si la línea de comandos termina con una barra invertida “", quiere decir que el comando continua en la próxima línea y todas líneas deben ser tratadas como un comando de sola línea.
- Referencias a “N”, representan su número de grupo.

# Ejercicios

## Actualizar la base de datos de sus paquetes de software

Conectarse a su maquina virtual (oob-hostX-campusY.ws.nsrc.org) con el usuario sysadm y después haz lo siguiente:

    $ sudo apt update

Esto puede tardar un poco si todos en la sala estan haciendo lo mismo en el mismo momento.

## Instalar el software de editor “nano”

NOTA: Algunas paquetes pueden estar ya instalados… y, esto esta bien. Solo continua al proximo paso en los ejercicios.

    $ sudo apt install nano

El sistema de editor nano es mas fácil de usar que vi. Intenta usar el editor para crear un archivo nuevo en el directorio principal de su cuenta sysadm:

    $ cd
    $ nano newfile.txt

Escriba algún texto para practicar. Puede apretar “ctrl-g” para ver una lista de comandos para el editor nano. Para ser mas exacto, presione la tecla “ctrl” y, despues, la letra “g”.

Puede grabar y salir del archivo tecleando “ctrl-x, y” y para aceptar el nombre del archivo ….

## Ajuste de hora a UTC, verificando la sincronización del tiempo

Para administrar y monitorear su red, es crítico que todos los dispositivos y servidores mantienen la misma hora constante. Para lograr esto, debe seleccionar la misma zona horaria de visualización en todas las máquinas (para que puede comparar zonas de tiempos en una manera fácil), y asegúrese de que los relojes estén sincronizados usando el Protocolo de tiempo de red (NTP).

Primero, configuremos el reloj de la hora de su servidor para que muestre la hora UTC (Tiempo Universal Coordinado), que es una buena opción si está administrando una red que tiene varias zonas horarias. En la línea de comando escriba:

    $ sudo dpkg-reconfigure tzdata

- Desplácese hasta el final de la lista y seleccione “None of the above”
- Desplâcess hacia abajo en la lista y seleccione “UTC”
- Utilice la tecla de tabulación para seleccionar “<Ok>” y apreta <ENTER>

Ahora su servidor muestra la hora UTC. Verifica corriendo el comando `date`:

    $ date
    Mon Nov  7 07:57:59 UTC 2022
                        ^^^

Ahora desea verificar que el reloj de su máquina esté sincronizado. Hay un par de maneras de hacer esto. Las distribuciones recientes de Linux con systemd tienen sincronización de tiempo built in.

Verifica el estatus:

    $ timedatectl status
                   Local time: Mon 2022-11-07 08:07:01 UTC
               Universal time: Mon 2022-11-07 08:07:01 UTC
                     RTC time: n/a
                    Time zone: Etc/UTC (UTC, +0000)
    System clock synchronized: yes   <<< HERE
                  NTP service: inactive
              RTC in local TZ: no

> Dado que host1-host6 son contenedores, de hecho todos comparten el mismo reloj que la máquina virtual (VM) en la que se están ejecutando (srv1-campusX.ws.nsrc.org). para saber cual Servidor(es) NTP con los que está sincronizado, normalmente podría hacer `timedatectl timesync-status`, pero esto solo funciona en la máquina virtual (VM) externa.

Nota: en su red de producción, es muy recomendable que ejecute un daemon `ntp` completo en al menos dos servidores, y haga que todos sus otros servidores funcionen sincronizar contra esos (por ejemplo, en `/etc/systemd/timesyncd.conf`). Esto minimiza la cantidad de tráfico ntp que pasa por su enlace de Internet y la cantidad de fluctuación que ven sus máquinas locales.

## Instalar el servidor de correo postfix y algunas utilidades

En la linea de comandos:

    $ sudo apt install postfix mutt mailutils

Esto puede demorar un momento en completarse.

Si la instalacion pregunta por el nombre de “System mail name” la respuesta es `hostX-campusY.ws.nsrc.org`.

Varias de las herramientas que instalamos durante la semana usan postfix. Mas encíma, vamos a usar varios de las utilidades (como mail) y el lector de correo mutt que instalamos ahora.

Para practicar puede reinicilizar su servidor de correo postfix. Nota que el servicio ya fue inicializado como parte de la instalación de paquete de software postfix.

    $ sudo systemctl restart postfix

Esto es algo que uno haría, por ejemplo, si cambia un archivo de configración de postfix.

Para ver el estado del servicio postfix en ejecución, haga lo siguiente:

    $ sudo systemctl status postfix

Debería ver algo como:

    * postfix.service - Postfix Mail Transport Agent
         Loaded: loaded (/lib/systemd/system/postfix.service; enabled; vendor preset: enabled)
         Active: active (exited) since Mon 2022-11-07 08:08:49 UTC; 11s ago
           Docs: man:postfix(1)
        Process: 29320 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
       Main PID: 29320 (code=exited, status=0/SUCCESS)
            CPU: 938us

    Nov 07 08:08:49 host6 systemd[1]: Starting Postfix Mail Transport Agent...
    Nov 07 08:08:49 host6 systemd[1]: Finished Postfix Mail Transport Agent.

Con las últimas líneas que son avisos de archivos de registro para el servicio de correo postfix.

Presione ‘q’ para salir de la pantalla de estado.

## Entregue un correo electrónico a usted mismo

Para verificar que su servidor de correo esté funcionando (al menos localmente), puede hacer lo siguiente:

Primero necesitamos ajustar la configuración de Postfix un poco.

NOTA!: cambia el “X” y “Y” en hostX-campusY a su host y su campus que esta usando!

    $ sudo sed -i 's/host-master.lxd/hostX-campusY.ws.nsrc.org/' /etc/postfix/main.cf

Para que Postfix vea los cambios a su archivo de configuración:

    $ sudo systemctl restart postfix

Ahora, para estar seguro que Postfix puede entregar un correo a su cuenta:

    $ sudo touch /var/mail/sysadm
    $ sudo chown sysadm:mail /var/mail/sysadm

Y, ahora mandamos un correo de prueba:

    $ echo "Mi primer correo" | mail -s "Primer correo" sysadm@hostX-campusY.ws.nsrc.org

Y, luego, para ver su correo electrónico:

    $ mutt

Puede ver lo siguiente:

    /home/sysadm/Mail does not exist. Create it? ([yes]/no):

Presione “yes” y presione <ENTER> para continuar.

Si todo esta bien va a ver algo asi en Mutt:

    q:Quit  d:Del  u:Undel  s:Save  m:Mail  r:Reply  g:Group  ?:Help
       1   F Nov 16 To sysadm@host6 (   1) Primer correo

Presione para ver el correo electrónico. Para salir, escriba “q” dos veces.

Es importante que el correo esté funcionando en su sistema, ya que será utilizado durante toda la semana por el software de administración y monitoreo de la red que instale.

## Revisando los archivos de registro en tiempo real

Los archivos de registros son criticos para resolver problemas. En general la mayoria de los registros estan en el directorio /var/log.

Algunos archivos de registros populares incluyen:

- /var/log/syslog
- /var/log/apache2/access.log
- /var/log/mail.log

Y, mucho más.

Para ver la ultíma entrada en un archivo de registro, como el registro del sistema, tipea:

    $ tail /var/log/syslog

Algunos archivos requieren usar “sudo tail logfilename” para ver sus contenidos.

NOTA: Lo que es más efectivo es mirar un archivo de registro mientras realiza alguna acción en su sistema. Para hacer esto abra otra conexión de ssh a su servidor ahora, entrar como su usuario sysadm y en esa ventana tipea:

    $ tail -f /var/log/syslog

Ahora en su otra venta intente re-inicializar el servicio que recien Ud. instalo:

    $ sudo systemctl restart postfix

Ud. debería ver varios mensajes de registro aparecer en su otra ventana de ssh. Estos son mensajes en tiempo real que vienen de su servidor postfix.

Se vean algo asi:

    Nov  7 08:14:41 host6 systemd[1]: Stopped Postfix Mail Transport Agent.
    Nov  7 08:14:41 host6 systemd[1]: Stopping Postfix Mail Transport Agent...
    Nov  7 08:14:41 host6 systemd[1]: Stopping Postfix Mail Transport Agent (instance -)...
    Nov  7 08:14:41 host6 postfix/postfix-script[30003]: stopping the Postfix mail system
    Nov  7 08:14:41 host6 postfix/master[29944]: terminating on signal 15
    Nov  7 08:14:41 host6 systemd[1]: postfix@-.service: Deactivated successfully.
    Nov  7 08:14:41 host6 systemd[1]: Stopped Postfix Mail Transport Agent (instance -).
    Nov  7 08:14:41 host6 systemd[1]: postfix@-.service: Consumed 1.035s CPU time.
    Nov  7 08:14:41 host6 systemd[1]: Starting Postfix Mail Transport Agent (instance -)...
    Nov  7 08:14:42 host6 postfix/postfix-script[30540]: starting the Postfix mail system
    Nov  7 08:14:42 host6 postfix/master[30542]: daemon started -- version 3.6.4, configuration /etc/postfix
    Nov  7 08:14:42 host6 systemd[1]: Started Postfix Mail Transport Agent (instance -).
    Nov  7 08:14:42 host6 systemd[1]: Starting Postfix Mail Transport Agent...

Hablaremos más sobre registros mas tarde en la semana, pero revisar sus archivos de registros, muchas veces, es la unica manera de encontrar o detectar el problema.

En la ventana donde escribio “sudo tail -f /var/log/syslog” puede apretar “ctrl-c” para salir del comando tail.

## Verificando el estatus de un servicio

Recuerda que escribimos:

    $ sudo systemctl status postfix

Que va a indicar su un servicio esta corriendo o se esta parado. Si tiene problems con un servicio puede ver las ultimas lineas de los archivos de registro de sistema asociados con el servicio escribiendo:

    $ sudo journalctl -eu postfix

## Practica usar el comando man

Para recibir ayuda sobre los comandos comunes uno simplemente puede escribir (no haz esto ahora):

Para obtener ayuda sobre los comandos, puede usar el comando man (“man” es corto por “man”ual). Por ejemplo, para obtener más información sobre el comando ssh tipea:

    $ man ssh

Ahora puede mover por la pantalla rapidamente usando algunos trucos de editar. Nota, estes trucos, también, funcionan si Ud. esta usando el comando less.

Intenta de hacer lo siguiente:

- Busca por “ports” escribiendo “/ports” – y apreta <ENTER>
- Apreta “n” para ir a la proxima coincidencia de “port” – hazlo varias veces.
- Apreta “N” para buscar hacia atrás.
- Apreta “p” para ir al principio.
- Busca por “/-p” y vea que encuentra.
- Apreta “h” por todo los atajos del teclado.
- Apreta “q” (dos veces en este caso) para salir de las páginas de “man”.