Está en la página 1de 36

Curso de Administración De Servidores Linux

Proyecto del Curso


Configurar un servidor Linux
Instalar un servidor desde cero. Configurar un servidor web NGNIX y una base de datos
MySQL. Administra usuarios y permisos. Y Desplegar una aplicación de Node.js con una
configuración de producción.

Clase 1: Introducción:
En nuestro curso veremos comandos, scripts, instalación de servicios y como
monitorizarlos. También gestionaremos usuarios y permisos. Abordaremos un tema
básico de seguridad informática, que es como endurecer nuestro servidor, para tener
servicios altamente disponibles y evitar que atacantes pueda vulnerar nuestro sitio, para
ellos utilizaremos herramientas como linis y openscap, también realizaremos escaneo de
nuestro sitio.

Clase 2: Distribuciones más utilizadas de Linux


Ubuntu server y la otra es Centos Server, con estas dos distribuciones estaremos
trabajando durante el curso. Necesitamos tener una de las 2, Ubuntu server 18.04 o ya
sea Centos Server Version 7. Ubuntu tiene restricciones en cuanto al soporte que brinda a
cada una de los servicios, por ejemplo: el soporte debería ser extendido, el soporte
extendido, se simboliza en las paginas de ubuntu con un LTS. LST no da un soporte de
actualizaciones de software por lo menos de 5 años , el no extendido por solo 9 meses.

Centos viene de RedHat, RedHat debo pagar, La diferencia es que RedHat es más
utilizado en entornos empresariales y Ubuntu server es más utilizado para desplegar
sitios web.

Clase 3: Instalación de ubuntu server


El nombre del servidor es importante por que con ese nombre se va a identificar
El password es Clo_q3
Clase 4: Instalación de Centos (voy a regresar)

Clase 5: Gestión del árbol de directorios


Ctrl +l : Es para limpiar la pantalla
Linux diferencia entre Mayúsculas y Minúsculas
ls: es para listar las cosas en una ubicación específica
pwd: es para mostrarme en el directorio donde yo estoy trabajando
platzi@platzi~: esa girgulilla significa que el usuario esta trabajando en su directorio
home
ls -l: nos muestra la información de lo que hay pero mas detallada, como permisos, el
dueño del archivo
touch “nombre del archivo”: es para crear un archivo
- También puedo usar touch “nombre del archivo”: para cambiar la fecha de
modificación.
cp “archivocopiar” “archivocopiado”: nos sirve para copiar archivos
mkdir “nombredirectorio”: nos sirve para crear un directorio
En Linux ya sea archivos , directorio o lo que sea no pueden tener el mismo nombre
La salida de ls -l:
- 1er carácter significa que es un archivo, si es una d es un directorio
cd .. : para regresarme al directorio padre
cd : sin parámetros regreso a home
cd -: me regreso al ultimo directorio donde estaba
mv “nombrearchivo a mover o ya sea cambiarle nombre” “nombre a donde lo queremos
mover o el nuevo nombre que le queramos dar”
rm “nombre del archivo”: es para borrar un archivo
- Cambe mencionar que con rm no puedo eliminar carpetas que contengan
contenido adentro para eso se hace el siguiente comando

- rm -r “nombre carpeta”: eliminar la carpeta de forma recursiva

Clase 6: Diferencias entre LESS, CAT, HEAD Y TAIL para lectura de archivos
Cat “nombre del archivo”: me permite ver la información contenida en el archivo
less: “nombre del archivo” me permite ve la info, pero paginada: para moverme entre
paginas usar la tecla espaciadora mientras que si solo quiero bajar solo utilizo las flechas.
Y para salirme utilizo los: q
man ls: me sirve para obtener ayuda de comandos (me lista todos los comandos y una
breve descripción de ellos
- puedo utilidar man “letra con que inicie un comando” “2 veces tab”: para
ver que comandos empiezan con esas letras

- también dentro del resultado de man ls puedo hacer una busqueda


con /”palabra a buscar”, para navegar hacia delante de las palabras que
encontró uso la tecla n y si quiero navegar para atrás uso la tecla shift+n
tail “nombre del archivo”: me muestra la última parte del archivo. Por default me muestra
las ultimas 10 líneas
- tail -n “#líneas” “nombre del archivo”: Esto es por si quiero ver más líneas
- tail -f “nombre del archivo” : para que haga un seguimiento al archivo. Por si
existe un cambio en el mismo. Es para que lo vea en tiempo real. Para entornos
productivos. También puedo leer varios archivos en la misma consola.

head “nombre del archivo”: hace lo mismo que tail solo que me muestra solo las
primeras 10 líneas y no las últimas.

Clase 7: Interacción con archivos y permisos


Los permisos se le ponen a los usuarios y a los grupos.
-rw-rw-r-- 1 platzi platzi 0 jun 17 23:17 prueba2
 El primero carácter
o – es un archivo
o d es un directorio
o l enlace simbólico
r: lectura
w: escritura
x: ejecución
o Los 3 primeros son para el usuario
o Los otros 3 son para el grupo
o Los otros 3 son para otros usuarios en el sistema operativo
Para cambiar los permisos hay 2 maneras
Uno con letras y la segunda con números que significan la matriz de binarios.
chmod ugoa + w “nombre del archivo”:
o u: usuario
o g: para el grupo
o o: para otros
o a: para todos
o +: para agregar el permiso
o -: para quitar el permiso
o r, w, x: según el permiso que le queramos dar

chmod +x : para darle a los 3 tipos el permiso


sudo chown “usuario al cual le queremos pasar el archivo”:”el grupo al que lo queremos
pasar”. Se puede obviar el grupo con poner un espacio. “nombre del archivo que
queremos cambiar” Así:
platzi@platzi:~$ sudo chown root: archivo.txt

sudo se guarda en memoria por un cierto tiempo por eso es que no vuelve a solicitar la
contraseña.

Clase 8: Conociendo las terminales en Linux


Como hacer el proceso de administración de cada una de las consolas que tenemos en el
sistema operativo.
No podemos cargar una interfaz grafica en un servidor por los recursos que esta necesita.
Si hacemos la instalación de distribuciones server encontramos que siempre estaremos
trabajando en la consola.
Tenemos diferentes terminales virtuales en el sistema operativo. Están numeradas desde
la 1 a la 6 (tty1-tty6) y la 7 esta desarrollada para la interfaz grafica
Comandos que debemos hacer en el sistema operativo para verificar cada una de esas
terminales.
o Ctrl+alt+cualquier tecla F
o Sudo Chvt “el numero de terminal al que me quiero conectar” : por que requiere
permisos de administrador
w: puedo ver la cantidad de usuarios que están en mi sistema operativo.
who: hace lo mismo que w pero con menos información
tty: para ver en que terminal estoy
/dev/pts/0 es una terminal virtual
Proceso para matar una consola ya que hay un usuario no deseado.
ps -ft tty1: ps me lista los procesos del sistema operativo, -ft para listar las consolas,
tty en caso del que tenga alguna
kill -9 “número del proceso”

Las distribuciones de Linux para servidores no incluyen interfaz gráfica, ya que


consumen muchos recursos. Esto significa que siempre vamos a trabajar desde la
terminal.

Tendremos disponibles 6 terminales virtuales a las que podemos entrar o salir con las
teclas Ctrl + Alt + Fx. También podemos usar el comando chvt. La séptima terminal es la
interfaz gráfica, así que en este caso no disponemos de ella.

Cada usuario activo en nuestro sistema operativo crea una nueva conexión. Podemos ver
todas estas conexiones con los comandos who y w (este último nos da un poco más de
información).

Para ver todos los procesos que corren en el sistema podemos usar el comando ps. Para
filtrar los procesos y ver únicamente las conexiones de los usuarios usamos ps -ft tty.

Este comando nos muestra el identificador de cada proceso. Para terminarlo podemos
usar el comando kill -9 PID.

Clase 9: Manejo y monitoreo de procesos y recursos del sistema


Una de las funciones como admininistradores es verificar que todos los procesos que se
estén ejecutando en el SO sean validos para el SO, que no existan procesos que estén
haciendo cosas maliciosas. Para poder identificar estos procesos se deben ejecutar los
siguientes comandos.

ps aux: para ver los procesos que están corriendo en el Sistema Operativo
ps aux | grep platzi: para ver los procesos que pertenecen al usuario platzi, esto lo hicimos
con un pipe, es decir la salida del comando ps aux se la pasamos al comando grep

Pasar procesos al background: Esto me sirve por si quiero hacer multiples tareas a la
vez , no tenga que abrir una cantidad excesiva de consolas por tareas, sino que esos
procesos se mandan al background o segundo plano.

jobs: para ver los procesos que tengo en segundo plano,


fg: para traerme el proceso que estaba en segundo plano a primer plano

Ahora un proceso sin que se nos pierda la consola


platzi@platzi:~$ ./platzi.sh & -> de esa forma estamos ejecutando el scritpt en segundo
plano. Pero solo con el & no me da una salida el comando
Para eso utilizamos el comando
platzi@platzi:~$ nohup ./platzi.sh & -> al utilitlar el nohoup, me genera un archivo
denominiado nohup.out y puedo ver ese archivo con cat y ver que está haciendo el
proceso.

usuario$ fg %2: Para traer el proceso de segundo plano a primer plano. El [2] es el
número del proceso.

Clase 10: Monitoreo de recursos del sistema


En esta clase veremos algunos comandos para verficiar los procesos en el sistema
operativo.
Cómo administrar la RAM, EL CPU Y EL DISCO en Linux. Para eso usaremos:
Top: me muestra cuantos usuarios tengo, la carga promedio, cuantas tareas tengo.
Vamos a ver cada una de las cosas que nos muestra la salida de ese comando
Procesador
 Load average (carga promedio): se refiere a la cpu.

o Para ver la información del cpu ejecutamos


o cat /proc/cpuinfo | grep -i processor = el -i es para que busque sin
importar minusculas o mayúsculas
o si tengo 4 procesadores ese número puede ir hasta 4, y si me marca 2 es
porque estoy usando el 50% de mi capacidad.
Memoria:
Si queremos ver info de la memoria: usamos free -h: nos muestra cual es el total de
memoria que yo tengo, la que estoy usando y cual aun tengo libre
Disco
du: como esta el uso, y cuanto espacio tiene
du -hsc /home/platzi/ : para ver cuanto espacio esta usando ese directorio

Si queremos saber cuales son los procesos que mas CPU se consumen en SO se
ejecuta:
sudo ps auxf | sort -nr -k 3 | head -n 5
SI queremos saber cuales son los procesos que mas RAM consumen ejecutamos
sudo ps auxf | sort -nr -k 4 | head -n 5
htop: Podemos usarlo para una mejor administración, podemos realizar filtros, organizar
procesos por tipo, porcentaje de cpu, memoria.

Clase 11: Análisis de los parámetros de red


Direccion IP, puerto,
Cuando estamos administrando nuestro servidor, tenemos estos 2 tipos de direcciones, ip
públicas e ip privadas.
La publica: es aquea que nos permite conectarnos desde nuestra casa utilizando un
protocolo especifico llamado ssh.
Cual es la dirección IP de nuestro equipo: Para eso hay 2 comandos
Ifconfig:
Ip a:
Ip -4 a: con eso solamente dirección IPV4
Hostname: para ver el nombre con el que identificamos al equipo en las redes.
Route -n: para ver el gateway
nslookup “nombre del dominio”: para ver la direccion ip asosciada al dominio
wget “dominio”: para la descarga de paquetes.

Clase 12: Administración de paquetes acorde a la distribución


Cada una de las distribuciones maneja sus software de manera distinta,
Para la instalación de paquetes en cada distribución especifica:
Red Hat/ CetnOS->distribución que tiene como base RedHat.
 el gestor de paquetes para ellos va a hacer RMP (Red Hay Package Manager) y
también hay una manera más fácil de instalar los paquetes, sin que se rompan las
cosas, es decir sin que se tenga que hacer una instalación manual
o 2 tipos de paquetes
 Rmp
 Repositorios yum (instalaciones desde internet con mi gestor de
paquetes yum
Debian / Ubuntu
 La administraciones de paquetes es .deb
 dpkg-reconfigure: para abrir el asistente de instlación si en caso hubiera
 repositorios apt

Instalación de paquetes en RedHat / CentOS


La base de datos de paquetes se encuentra en en /var/lib/rpm
Rpm-qa: listar todos los paquetes instalados en la maquina virtual
Rmp-i paquete.rpm: Realizar la instalación de un paquete
Rmp -e paquete.rpm: Remover un paquete del sistema
Yum install paquete: permite instalar un paquete desde un repositorio sin tener que
conocer la ruta del archivo o las dependencias
Yum search paquete: para buscar un paquete.

Instalación de paquetes en Debian/ Ubuntu-Server


La base de datos de paquetes de encuentra en /var/lib/dpkg
Dpkh-l: listar todos los debs instalados en la máquina
Dpkg -i paquete.deb: Realizar la instalación de un paquete
Dpkg -r paquete.deb: Remover un paquete del sistema.
dpkg-reconfigure paquete: Volver a ejecutar el asistente de configuración si esta
disponible.(Siempre y cuando la configuración este disponible)
apt install paquete: instalar el repositorio.
Sudo apt search paquete: buscar un paquete
Clase 13: Manejo de paquetes en sistemas basados en Debian.
Direrencia entre el apt upgrade y el update:
Apt update: actualiza una lista de los paquetes disponibles, pero no instala o actualiza
ningún paquete
Apt upgrade: Instala las nuevas versiones de los paquetes que se tienen.
Todo lo que sea actualización del SO debe ser ROOT.
Cuando instalamos el SO solo lo instalamos pero también tenemos que actualizarlo, para
que incluya las últimas actualizaciones de seguridad. Para eso
Sudo apt update: conectase a los repositorios de ubuntu y descargar la información.
Sudo apt upgrade: realizar la descarga de estos software una vez actualizados los índices.
Sudo apt dist-upgrade: aquí puede ser que algunos paquetes que estaban funcionando
bien se rompan. Por eso tenemos que ser cuidadosos. Aquí se modifican cosas en el
kernel.

dpkg-reconfigure tzdata: para volver a reconfigurar la hora del servidor (paquete)

Otro gestor de paquetes en ubuntu es snap:


Sudo snap search aws-cli: buscar la consola de amazon
sudo snap refresh - - list: para ver todos los paquetes
Sudo snap info paquete: si quiero ver la información en específico de un paquete.

Sudo snap install canonical-livepatch: para hacer actualizaciones en el kernel sin tener
que reiniciar.
Clase 14 Manejo de paquetes basados en RedHat – CentOS
Rmp -qa: para ver todos los paquetes que tengo instalado en el SO
Rpm -qi paquete: para consultar información de un paquete.
Rpm -qc paquete: configuración de donde se encuentra BASH
sudo yum update: actualización de los repositoríos -hacerlo
yum install net-tools: para que me incluya algunos comandos para interacturar con la red,
ifconfig, route, etc.
Tarea: Instalar htop y nmap

Clase 15: Nagios: Desempaquetado, descompresión, compilación e instalación de


paquetes
Esta es una muestra de como instalar software que no viene en repositorios.
Nagios es un software de monitoreo de infraestructura de TI.

Paso #1 :
Instalar un conjunto de paquetes para que todo funciones bien.

Build essentials es para compilar el código, algunas librerías para hacer CURL , el
sevidor apachace que es donde va a estar nagios, unzip para descomprimir, php, gcc para
poder compilar, y unas librerías de perl para la conexión a la base de datos mysql.
Paso # 2 descargar el sistema de monitoreo. (NAGIOS)

Utilizamos el wget para descargar los archivos de internet


El “-O” que nuestra salida (la descarga va a hacer a un archivo) llamado
nagioscore.tar.gz . tar que es empaquetad y .gz que esta comprimido.
Paso # 3: Verificamos que tenemos una archivo nagioscore.tar.gz que fue el resultado de
descargarme ese archivo de esa url

Paso # 4 Descomprimir y desempaquetar.

X= extrar
V=que me muestre por pantalla que es lo que está realizando
Z= por que es un archivo que esta empaquetado y comprimido
F= para decirle que va ir un archivo o sea que archivo quiero descomprimir y
dempaquetar? nagioscore.tar.gz
Paso # 4: Verificamos que nos lo haya descomprimido y nos crea la carpetan agios-4.4.4

Paso # 5 Listamos lo que tiene la carpeta

El proceso de un software siempre consta de configuración y de ejecutar ese software


como tal
Paso # 6: Configurar el software

Debo ejecutarlo con sudo, pero yo le debo configurar con unas variables especificas
Lo voy a configurar para que se pueda utilizar con apache y le voy a poner la ruta donde
esta apache actualmente.

Paso # 7 Ejecución del código


Sudo make all: va y verifica los archivos de configuracion previamente creados y realiza
un proceso especifico que verifica que todos los archivos que configuramos estén bien
Paso #8 : Crear el grupo nagios

Paso # 9:
Sudo make install: para instalar las cosas
Sudo make install-init: para instalar los scripts en el sistmema de arranque
Sudo make install-commandmode: para tener acceso a los modos de comando
Sudo make install-config: y para la configuracion
Sudo make install-webconf : para que dentro de los sitios de apache quede una relación
con NAGIOS
Hasta el momento el proceso de instalación ya fue realizado
Se verifica con curl localhost
Paso # 10 activar 2 módulos en apache para que nagios funcione de buena forma
Necesitamos correr los servicios
Sudo systemctl status nagios : para ver como está el servicio
Sudo systemctl start nagios: para iniciar el servicio

Para poder entrar a la consola web de nagios.


Nagiosadmin
Platzi

Documentación
https://support.nagios.com/kb/article/nagios-core-installing-nagios-core-from-source-96.html#Ubuntu

Clase 16: Los usuarios, una tarea vital en el proceso de administración del sistema
operativo.
En esta clase aprenderemos a identificar los usuarios con los que estoy trabajando y a
identificar las rutas en el SO donde se guarda esta información
Id: me muestra cual es la identificación de mi usarios

 uid me muestra el id del usuario


 gid me muestra el id del grupo, y al resto de grupos que pertenece el usuario
en distribuciones debian los usuarios empiezan a partir del 1000, en RedHat empiezan
desde el 500. Y el ID 0 esta reservado para el usuario root
whoim: me responde que usuario soy yo (que usuario) pero esta información donde está
almacenada?

Aquí encontramos todos los usuarios del sistema operativo.

La salida del archivo etc/passwd

X significa que la contraseña esta cifrada, se les llama contraseñas sombra.


0: uid
0: group-id
Root: el usuario
/root: es el home del usuario
:/bin/bash: la consola que usa el usuario para trabajar

¿Dónde se almacenan las contraseñas de los usuarios?

Para cambiar la contraseña de los usuarios, la toma como base el usuario whoaim
Passwd “nueva contrasena”: para cambiar la contraseña
Clase 17: Creando y manejando cuentas de usuario en el sistema operativo

2 formas es decir, 2 comandos


1. sudo useradd nombre: la diferencia es con el siguiente es que con este al momento de
crear el usario no me pide una contrasena y tampoco me crea un directorio. Y debería
cambiarle la contraseña al usuario, ya que por defecto no tiene.
2.sudo adduser nombre: aquí me pide la contraseña y más información. Y también me
crear una carptea y esa carpeta deberiamos tener una copia a una ruta que yo quiera en el
SO

Borrar un usuario
Sudo userdel nombre:

Modificar un usuairio
Usermod es para moverlos de grupo.

Clase 18: Entendiendo la membresía de los grupos


Vamos a ver como asociar usuarios a grupos especificos y ver el proceso de mover un
usuario para que sea super administrador
Sudo u – nombreusuario: para cambiarme de usuario
groups nombreusuario :para verificar a que grupos pertence el usuario
Por defecto cuando un usuario se crea, se asocia al mismo grupo
sudo gpasswd -a nombreusuario nombregrupoagregar : estando en otro usuario que tenga
permisos de sudo hacemos el comando anterior para asociar un usuario a un grupo.
Ejemplo: sudo gpasswd -a nodejs sudo
Gpasswd -d nombreusuario nombregrupodonde lo voy a sacar: para remover a un usuario
de un grupo.

Otra forma
Usermod -aG sudo nodejs : póngame el usuario en un grupo secundario

Para ver que permisos tiene el usuario o tengo


Sudo -l

Clase 19: Usando PAM para el control de acceso de usuarios


Pam es un método para autenticar usuarios en el Sistema Operativo
Como administradores de servidores linux tenemos un reto, contralar la carga de procesos
que puede realizar un usuario, verificar la fortaleza de sus passwords, ver en que horas se
loggean en mis servidores ssh.

PAM tiene diferentes configuraciones en el sistema operativo.


PAM 3 carpetas por defecto que debo verificar
 ls /etc/pam.d: encontramos información a todas las configuraciones que podemos
hacer sobre PAM
 ls /lib64/security/: encontramos las librerías y los accesos de pam que sirven para
cada función especifica
 ls /etc/security/ : se realizan algunos cambios de configuración para que pam los
tome y pueda realizar ciertas acciones predeterminadas

pswcore : para verificar la fortaleza de mis contraseñas

ulimit: listar los permisos que tiene el usuario para ejecutar ciertas cosas en el sistema
operativo, también miro la cantidad de procesos que puede ejecutar.
Ulimit -u 10: para predeterminar la cantidad de procesos que puede realizar el usuario.
A nuestros servidores pueda entrar a mi servidor ssh en los días que yo quiera y a la hora
que yo quiera. Para eso se modifica el archivo
Vim /etc/security/time.conf
para cambiar un usuario de grupo en centos
el único que puede cambiar los usuarios de grupo es el root.
Gpasswd -a platzi wheel: el usuario wheel es sudo en ubuntu
Debemos salirnos de la consola y volver a ingresar para que los cambios tengan efecto.
Yo quiero salir a comer para llenarme de pizza
Módulo 4 Servicios en el sistema operativo

Clase 20: Autenticación de clientes y servidores sobre ssh


Administrar servidores de forma remota para eso se usa ssh

Lo primero que debemos hacer es ir a ver la configuración de nuestro archivo vi


/etc/ssh/sshd_config
Para generar las llaves necesitamos 2, una llave pública y una llave privada, esas estarán
en el cliente y la publica es la que se envía el servidor.
En el cliente le damos ssh-keygen y empezara a crear una llava publica y una privada.
Para ver si fueron creadas las llaves ls .ssh
La publica es id_rsa.pub
La priavada es id_rsa
Pasamos la llave publica al servidor
ssh-copy-id -i ~/.ssh.id_rsa.pub platzi@direcciondel servidor
Clase 21: Configurando DNS con bind

A continuación, vamos a configurar un servidor DNS en Ubuntu con BIND que será
nuestro servidor DNS

1. Necesitamos instalar otro gestor de paquetes llamado aptitude


Para eso. Sudo apt install aptitude
2. Necesitamos buscar el paquete bind
Aptitude search “?name(^bind)”

3. Una vez teniendo el paquete bind, lo instalamos


Sudo apt install -y bind9
4. verificamos la instalación verificando que el puerto 53 esté en escucha
5. Para realizar consultas al dns que acabamos de instalar realizamos lo siguiente
dig www.platzi.com @127.0.0.1

Paso siguiente después de instalarlo es verificar todo lo que viene


incluido dentro del paquete como lo son los archivos de configuración
manuales entre otros, para esto podemos hacer uso de dpkg -L bind9.

El archivo de configuración principal será /etc/bind/named.conf, también


tenemos el archivo /etc/bind/rndc.key en este se puede configurar la
clave que se puede usar para obtener acceso al nombre de dominio.
Clase 22: Arranque, detención y recarga de servicios
Sudo systemctl status servicio: ver el estado del servicios que queremos verificar.
 En donde dice loaded nos dice que archivos se cargaron y desde donde se realizo
la carga y disable o enable es el estado en que se encuentra, es decir si el servidor
se apaga o tiene un reinicio cuando arranque va a iniciar desactivado

Sudo systemctl enable servicio: para activar o desactivar el servicio cuando arranque
Sudo systemctl start o stop o restart: para iniciar, parar o reiniciar un servicio

También tenemos un conjunto de LOGS


Sudo systemctl list-units -t service –all : para ver todos los servicios del sistema
operativo.

Journalctl: es la búsqueda de los logs de lo servicios en el sistema operativo, y los logs se


encuentran en

Si yo quiero ver los logs de apache


Sudo journalctl -fu apache2
Si yo quiero ver cuanto espacio de disco están usando los logs
Sudo journalctl –disk-usage
Para ver los logs desde la ultima vez que la maquina inicio
Sudo journalctl –list-boots: para ver los bootees que hemos realizado
Para ver los logs que han sido críticos
Sudo journalctl -p crit: información de logs críticos
Clase 23: NGNIX Y Apache en Ubuntu-Server
https://platzi.com/clases/1667-linux/23437-nginx-y-apache-en-ubuntu-server/

Para validar los puertos que tienen un proceso activo usamos:


Sudo netstat -tulpn
Paso # 2: Instalar NGNIX
sudo apt install nginx nginx-extras
Paso # 3: Cambiamos el Puerto de apache a 8080
Sudo nano /etc/apache2/ports.conf

Puta: Regresar si algo no cuadra en la configuración


Clase 24: Instalación y configuración de NGINIX
Sudo apt update
Sudo apt install nginx
Sudo netstat -tulpn : para ver los puertos que se están ejecutando
Donde tiene la configuración NGNIX?
etc/nginx/ ->aquí
cd etc/nginx/sites-available/: tenemos la configuración por defecto, tengo la
configuración del servidor y que va a leer los archivos de /var/www/html
cd /var/www/html : encontramos las paginas iniciales de cada servidor

cd/etc/nginx/sites-enabled: aqueos sitios que están activados en esete momento


Clase 25: Qué es NGINX Amplify?

NGINX Amplify es una herramienta SaaS que permite realizar el monitoreo de NGINX y
NGINX Plus. Los factores que permite monitorear son el rendimiento, configuraciones
con análisis estático. parámetros del sistema operativo, así como PHP-FPM, bases de
datos y otros componentes. Nginx Amplify es de fácil configuración y llevar control de
nuestros servidores es agradable por los tableros de administración que posee.

Con NGINX Amplify podrás recolectar más de 100 métricas de NGINX y el sistema
operativo. Amplify analiza los archivos de configuración propios del servidor, detecta
configuraciones incorrectas y da recomendaciones de seguridad, también permite crear
notificaciones que pueden ser enviadas por correo o a un canal de Slack con un simple
clic.
Clase 26: NGINIX Amplify: Instalación y configuración de un servidor para
producción
NGINX Amplify es una herramienta que permite monitorear aplicaciones y servicios de
NGNIX. Nos ayuda a detectar problemas en nuestros proyectos, trackear las peticiones,
conexiones, tiempos de respuesta, tráfico, uso de CPU, entre otras.

Clase 27: Monitoreo de MySQL con Nagios


Como administradores de servidores Linux también involucra desplegar servidores de
base de datos.
Paso # 1: buscar mysql
Sudo apt search “mysql-server$”
Paso # 2 instalar mysql
Sudo apt install mysql-server
Paso #3 comprobar que si se instalo mysql
 Debemos primero ver el usuario y el password que tenemos asignado en mysql
para eso nos vamos a la ruta /etc/mysql/debian.cnf
Paso # 4 Conectarnos a la BD
Mysql -u debian-sys-maint -p (-h) si el servidor de bd esta en otra maquina)
Una vez conectado al servidor me debe de aparecer así

Paso #5: Realizar una instalación segura de mysql donde verificamos algunos parámetros
nuevamente, como el acceso remoto de otras bases de datos, la configuración de una
contraseña etc
Sudo mysql_secure_installation
Paso #5: Proceso adicional de nagios
Verificamo que este funcionando apache2
Sudo systemctl status apache2

Paso # 6 : debemos agregar 2 modulos específicos en apache


Sudo a2enmod rewrite cgi
Paso #7: Crear un usuario con su passwors en nagios

El usuario para entrar a la consola web de nagios es nagiosadmin y el password es platzi


Paso #8 Reinicar apache
Sudo systemctl restart apache2
Clase 28: Configuración de Nagios
Hacer que nagios pueda ver mysql, debemos cambiar los archivos de configuración de
nagios. Para que mysql pueda ver este software. También debemos crear un usuario en
base de datos que nos permita hacer uso de la base de datos mysql
Paso #1 crear un usuario de base de datos
Sudo mysql
Grant select on *.* to ‘nagios’@’localhost’ identified by ‘CLo_q31234#’;
FLUSH PRIVILEGES; ->para hacer que los privilegios se apliquen en mysql

Configuración de Nagios
sudo vim /usr/local/nagios/etc/nagios.cfg
y agregar una línea de cgfile con mysqlmonitoring
-otro paso
Crear comandos específicos para poder hacer uso de nagios
sudo vim /usr/local/nagios/etc/objects/commands.cfg

-otro paso
Ir al achivo /usr/local/nagios/etc/objects/mysqlmonitoring.cfg
Clase 29: Los logs, nuestros mejores amigos

Como buscar archivos de logs e interpretarlos


Find: si queremos buscar algo en el sistema operativo
Find “ruta” : para buscar algo en una ruta
Find /var/log/ -name “*.log” -type f =a para ir a buscar todo lo que tenga *.log y que sean
archivos.
Find /var/log/ ! -name “*.log” -type f = para ir a buscar aqueo que no termine en lo que
yo le estoy indicando.
Sudo find /etc/ -mtime 10 : para ir a buscar los archivos que tuvieron cambios en los
últimos 10 minutos
Grep
Grep “palabra” y el archivo donde queremos hacer la búsqueda

Awk para hacer filtrado de logs


Clase 30: Las bases de Bash
Automatizar tareas: Bash scripting
Paso # 1 : Crear un archivo con extensión.sh
Paso # 2 ponerle le interperte:
#!/bin/bash
Paso # 3 : podemos agregar variables
WELCOME = “Hola Platzi”
Paso #4 : podemos imprimir esa variable con echo $WELCOME
Clase 31: Las variables y su entorno de ejecución
Todas las variables del SO se encuentran con
env
En el path tengo todos los binarios que se pueden ejecutar, lo puedo ver con
Echo $PATH

SCRIPT PARA VER LA INFO DEL ESPACIO DE ALMACENAMIETO DE MI


DISCO USANDO COMANDOS DENTRO DE BASH
Para asignarle los comandos a las variables se usa $(COMANDO)
Clase 32 Automatizando tareas desde la terminal
Script que me permite hacer un backup de una base de datos mysql

Clase 36 Entendiendo la gestión de vulnerabilidades


El aseguramiento es un proceso constante
Malas prácticas:
 No desactivar el usuario root
 Realizar un login con usuario y password: se recomienda hacer uso de ssh y
validar las llaves
 Actualización constante del software

Gestion de vulnerabilidades:
telnet
que usuarios tengo
que servicios están en mi servidor

Recomendaciones:
Verificar la seguridad
Yum check-update – -security
Yum update security

Clase 37: Que es una superficie de ataque? Principio del menor privilegio
Entre el mayo numero tenemos adminisrando mayo cantidad de cosas debemos de
proteger
La superficie de ataque se refiere al conjunto de vulnerabilidades que puedne ser
explotadas por un atacante.
Clase 38: El firewall y sus reglas
Para asegurar los servicios hacemos uso de un software que viene por defecto en Ubuntu,
el software, verificar que puertos son los que tengo abiertos, aplicar reglas y a hacer una
protección de forma básica.

Sudo ufw status: para ver el estado del firewall


Sudo ufw allow puerto comment ‘ssh’ : para permitir un puerto
Sudo ufw enable: para activar nuestro firewall
Sudo ufw status : para ver las reglas que tenemos en el firewall
Para borrar las reglas del firewall
#1:
Sudo ufw status numbered
Y con el numero al lado izquierdo y para borrar la regla
Sudo ufw delete “numero de la regla”

Restringir el acceso al servicio de ssh a una ip deteminada


Sudo ufw allow from “dirección ip” proto tcp to any port 22 comment ‘permitir ssh ip’

Los unicos puertos abiertos para todo el publico son :


El 80, 443 y el 22

Sudo ufw reset: para borrar todas las reglas

Sudo ufw app list: para ver las aplicaciones permitidas


Clase 39: Escaneo de puertos con NMAP y NIKTO desde Kali Linux
nmap
nmap -sV -sC -O -oA platzi “dirección ip del equipo” realiza un mapeo de la red con un
par de parámetros específicos
-sV= que me muestre información de la versión
-sC= comprueba si ya existe un script disponible que me permita explotar
vulnerabilidades en mi servidor
-O: identificar que S.O esta corriendo en la maquina
-oA: que nos guarde la salida en un archivo platzi
NIKTO
Escanear información adicional de un servidor web
Nikto -h dirección ip -o nikto.txt
Clase 40: Linix: software que nos revisa como estamos en cuanto a la seguridad de
nuestro sistema operativo o servidor
Lynix es una herramienta de auditoria de seguridad en Linux
Servicios y recomendaciones que me da lynix
Sudo apt install lynis
Sudo lynis audit system
CLASE 41: Configuración de Node.js en un ambiente productivo
Vamos a instalar nodejs. Verificaremos como hacer la descarga de un repositorio y
vamos a crear un servicio que se arranque desde el sistema operativo. Para ello hay que
seguir los siguientes pasos.

También podría gustarte