Instalar Linux (en especial distros server-style) de cero es como abrir un cuaderno en blanco: limpio, rápido, y listo para añadir nuestro contenido. Antes de armar nuestro proyecto en este servidor, no esta demás hacer algunas configuraciones iniciales, como en cualquier aparato hoy en día. So, hice un pequeño (¿pequeño?) apunte sobre esto, empecemos:
Lo primero, decir que estamos en Linux. Tenga o no tenga GUI, vamos a usar mucho la consola para muchas cosas, por ende, es necesario que te acostumbres a esto. Puede complicar un poco al principio, pero después se le toma hasta cariño acceder a una línea de comandos, agiliza las cosas. ¿Y como accedemos? Tenemos dos formas:
En la primera, la pantalla tiene un login básico, de usuario, y clave.
Prefiero la segunda, si tengo un notebook me da la comodidad de configurarla en la comodidad de la cama de forma remota, y no encorvando la espalda en algun lugar incomodo. Además de que si instalo servicios como VPN en la red (con la respectiva configuración), puedo acceder a ella desde cualquier parte del mundo.
Para acceder por SSH, abrimos cmd en Windows (desde W8 en adelante, anterior a eso se debe usar un programa aparte como PuTTY) o, en macOS: Terminal. Seguido a esto se debe usar el siguiente comando:
ssh user@ip
Debemos reemplazar user
por el usuario que creamos en la instalación (usamos en la publicacion anterior juan), y ip, por la ip que tiene asignada. De ejemplo vamos a usar juan como usuario, y 192.168.1.101 como ip, por ende, queda así:
ssh juan@192.168.1.101
Al ser la primera vez que te conectas a Linux mediante SSH, entregará un mensaje similar a este:
A esta opción escribimos yes, y posteriormente pedirá la contraseña:
Despues de, si nos entrega esto:
... quiere decir que ya estamos conectados vía SSH.
Desde el tiempo en que se publica la distro, hasta el tiempo en que la instalaste, normalmente los programas (desde ahora les llamaremos paquetes) pueden haber recibido alguna actualización, para corregir vulnerabilidades o incorporar nuevas características. En distribuciones Debian, esto se puede realizar con los siguientes comandos:
sudo apt-get update && sudo apt-get upgrade -y
Voy a marcar dos cosas importantes en este comando. La primera, es que al apretar Enter, pedirá la clave de super usuario o root. Esto es debido a que ponemos primero sudo
, comando que realiza la siguiente tarea como super usuario requerido para algunas tareas, como actualizar paquetes, o modificar algún archivo de sistema (sudo, en inglés, es como un "super user do...")
La segunda, es que aquí no es un comando, si no dos. Gracias al &&, concatené sudo apt-get update
y sudo apt-get upgrade -y
(la y es de yes, para confirmar la operación) en una única línea. El sistema automáticamente una vez terminado el primer comando, accionará el segundo. Sirve para concatenar mas comandos inclusive:
echo hola && echo " probando" && echo " texto"
Va a dar como resultado "hola probando texto" (puse espacios antes, si no queda como holaprobandotexto).
Esto sirve si quieres tener los manuales (manpages) en español, además de configurar ciertas variables de localización para que la máquina tenga bien configurado cosas como el idioma, moneda, fechas y horas, que está en el país al que pertenece:
sudo apt-get install manpages-es && sudo dpkg-reconfigure locales
Aquí va a darte una pantalla donde elegir el país que corresponda. En mi caso, siendo Chile, usaré es_CL.UTF-8. Despues de esto, se sugiere hacer un logout / login.
En base a lo mismo, configuraremos también la zona horaria:
sudo timedatectl set-timezone America/Santiago
Aquí puse Santiago de Chile, pero depende de tu zona.
Hay una lista bien útil en PHP.net donde puedes encontrar la que te corresponda, o poner el comando timedatectl list-timezones
.
Instalaremos los paquetes ntp
y ntpsec-ntpdate
para mantener configurada la hora de forma automática. Usaremos el servicio NTP del Servicio Hidrográfico y Oceanográfico de la Armada (SHOA) de Chile en este caso. Debemos probar su conexión antes:
sudo apt-get install ntp ntpsec-ntpdate -y # Instala los paquetes necesarios
sudo ntpdate ntp.shoa.cl # Prueba de conexión con ntp.shoa.cl
Si funciona y actualiza la hora, añadamos el servidor a la lista del servicio ntp y lo echamos a andar:
echo "server ntp.shoa.cl" | sudo tee -a /etc/ntpsec/ntp.conf
sudo service ntpd start
No está demas en un PC instalar algun software para descomprimir archivos zip, o algún gestor de descargas, de la misma manera, instalemos algunos paquetes que nos pueden servir mas adelante:
sudo apt-get install curl wget net-tools git unzip fail2ban ufw -y
Cosillas que vamos a instalar en este paso:
curl
: Para transferencia de archivos, y uso de algunas API.wget
: Herramienta que sirve para descargas.net-tools
: Utilidades para la red, como ifconfig
, netstat
, arp
, etc.git
: Gestor de control de versiones.unzip
: Para descomprimir archivos .zip (que probablemente hayas bajado con wget)fail2ban
: Fail2ban es una herramienta de seguridad, evita accesos no autorizados a tu servidor.ufw
: Firewall. A la hora de tener ciertos servicios, es muy recomendable filtrar ciertos accesos. Mas adelante hablaré sobre UFW.Sobre fail2wan, es bien facil de activar:
sudo systemctl enable fail2ban --now
sudo fail2ban-client status
Si a la hora de instalar elegiste mal el nombre (hostname
) de la maquina y quieres cambiarlo:
sudo hostnamectl set-hostname <define aquí tu nuevo nombre>
Puedes usar mayúsculas, minúsculas, números y guiónes.
Una vez hecho esto, te sugiero dos cosas, limpiar paquetes que no son necesarios:
sudo apt-get autoremove -y && sudo apt-get clean
y por supuesto, un reinicio no está demás:
sudo reboot
Si quieres apagar la máquina y seguir mañana:
sudo shutdown -P now