Servidor Web (IP Fija)
¿Qué es un Servidor Web?
Un servidor web como su nombre lo indica, es un software instalado en el equipo con todas las condiciones necesarias para servir o entregar páginas web que le sean solicitadas por un navegador, asegurando que se muestren y representen todos los elementos necesarios para su correcto funcionamiento y visualización.
Existen varios tipos de servidores web, Apache es un software de código abierto, libre de uso y totalmente configurable, es en este momento el más utilizado en la red, ya sea en plataformas Linux, Mac o Windows.
Al instalarlo en nuestra equipo dispondremos de un servidor completo, con todos los requisitos para ejecutarlo de forma local.
Partiendo desde la instalación del sistema operativo Debian GNU/Linux podemos ahora montar un servidor que ofrezca varios servicios a terceros como por ejemplo Servidor Web Apache 2 compatible con PHP, FTP, bases de datos, entre otros servicios.
Estos tipos de servidores los podemos usar solos en una maquina o en conjunto para que nuestro servidor sea más o menos completo. Recuerda que cuantos más servicios ofrezcamos más potente tiene que ser la maquina para poder dar a basto con todo.
Respecto a la compatibilidad de este frente a clientes con Linux, Windows o Mac va a ser total con lo que podremos compartir todos los servicios sin problemas como pueden ser la impresora o los archivos, directorios particiones que compartamos con nuestra red, entre otros.
Hardware Necesario
Podemos llamar servidor a toda maquina que este conectada a la red y ofrezca diferentes servicios a los usuarios de la misma. Para esto necesitamos Hardware suficiente para montar un computador que pueda cumplir nuestras necesidades.
El uso que le vamos a dar a esta maquina es exclusivamente la de servidor así que voy a prescindir de usar entorno gráfico para ahorrar recursos en nuestra maquina. Esto no quiere decir que no necesitemos una tarjeta gráfica y un monitor si no que no necesitamos una tarjeta gráfica muy potente y el monitor pues da lo mismo ya que operaremos con ella en modo Terminal. También vamos a prescindir del tema del sonido, por lo que no voy a instalarle ninguna tarjeta de sonido.
En un servidor Web el Hardware más potente que tiene que haber en la maquina es el procesador y la memoria ram sin duda alguna. De ellos dos depende el funcionamiento de todo una vez empecemos a sobrecargar el sistema con programas y usuarios conectados a el, así que cuanto mas tengamos de esto mejor.
Necesitamos minimamente:
Placa base (2 Puertos USB)
Microprocesador (mínimo 500 Mhz)
Tarjeta gráfica
Tarjeta de red 10/100 por lo menos
Memoria Ram (mínimo 512mb)
Disco duro (10Gb mínimo)
Lector de CD/DVD o usb libres para cargar el SO.
Con este Hardware es suficiente para un servidor casero, funciona a la perfección para uso personal pero no para profesional.
Una vez Instalado el servidor lo primero que recomiendo es que actualicen los paquetes.
sudo apt-get update
sudo apt-get upgrade
Configuración de Red
En la instalación del sistema operativo se nos configuró automáticamente el servicio DHCP para que nuestro router nos asigne automáticamente una IP. Eso esta muy bien y nos ha sido muy cómodo ya que no hemos tenido que configurar nuestra tarjeta de red para nada durante la instalación del sistema, pero vamos a tener que configurarla manualmente para que nuestro servidor sea accesible desde cualquier lugar.
¿Porque? Pues muy sencillo, Vamos a necesitar que nuestra tarjeta de red tenga una IP estática ya que cuando compartamos un servicio Web o Ftp deberemos abrir y redireccionar el puerto 80 para el Web y el 21 para el Ftp hacia nuestro servidor y por consecuente a una IP, que a continuación la configuraremos para que podamos hacerlo.
Lo primero que haremos será iniciar el servidor y accederemos a una Terminal, donde habrá que logearse como root.
Vamos a hacer algunas comprobaciones y configuraciones para asegurarnos de que tenemos bien configurada la red además de tener acceso a Internet desde este servidor.
Para empezar vamos a asignarle una IP fija a nuestra maquina, esto es necesario porque si vamos a ofrecer servicios hacia Internet deberemos abrir puertos y asignarlos a una IP fija desde el Router. Si por el contrario tenemos la asignación IP de forma automática con DHCP no podremos asignar "X "puerto a "Y" IP. Con lo cual es completamente necesario que nuestra tarjeta de red tenga una IP fija.
Durante la instalación el sistema quedo con una IP asignada de modo automático (DHCP) por el Router. Comprobemos si tenemos salida a Internet mandando unos pings, por ejemplo a Google.
Si en la terminal tecleamos:
$ ping www.google.com
Debería responder algo como lo siguiente, si es así, es que tenemos IP.
PING www.google.com (64.233.186.105): 56 data bytes
64 bytes from 64.233.186.105: icmp_seq=0 ttl=43 time=19.543 ms
64 bytes from 64.233.186.105: icmp_seq=1 ttl=43 time=25.960 ms
64 bytes from 64.233.186.105: icmp_seq=2 ttl=43 time=18.283 ms
Salimos del ping con Control + c.
En distribuciones de Linux basadas en Ubuntu y Debian, ejecute el siguiente comando para instalar ifconfig:
sudo apt install net-tools -y
Ahora vamos a ver de que rango es la IP que nuestro Router nos asigno en el arranque ejecutando el comando ifconfig.
sudo ifconfig
Veremos algo parecido a esto:
sudo ifconfig
enp3s0f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.101 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 XX:XX:XX:XX:XX:XX prefixlen 64 scopeid 0x20<link>
ether XX:XX:XX:XX:XX:XX txqueuelen 1000 (Ethernet)
RX packets 1249697371 bytes 1875981423435 (1.8 TB)
RX errors 0 dropped 324 overruns 0 frame 0
TX packets 588821817 bytes 59538936865 (59.5 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19
Como podemos ver, mi Router tiene activado el modo DHCP y me asigno automaticamente la IP 10.1.15.148 por lo que con ella sabemos el rango que debemos usar para nuestra IP fija es de 10.1.15.148.x.
Asignando IP Estática
Siempre que modifiquemos un archivo del sistema para configurarlo tenemos que tener en cuenta que es necesario hacer una copia de seguridad del mismo para que podamos guiarnos de él en un momento dado o restaurarlo en cualquier caso. A continuación haremos una copia del archivo llamado 01-network-manager-all.yaml que está situado en la ruta /etc/netplan y seguidamente lo editaremos para indicarle que IP fija es la que va a tener nuestro servidor.
sudo cp /etc/netplan/01-network-manager-all.yaml /etc/netplan/01-network-manager-all.yamlOLD
Una vez creada la copia vamos a editar el archivo interfaces con el editor de texto más sencillo de todos que viene por defecto en casi todas las distribuciones GNU/Linux llamado nano.
sudo nano -w /etc/netplan/01-network-manager-all.yaml
Veremos que el documento es así:
GNU nano 6.4 /etc/netplan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
Borramos la línea version: 2 e ingresamos la siguiente sintaxis:
dhcp: false
addresses: [dirección IP/24]
gateway: [dirección IP]
nameservers:
addresses: [dirección IP]
Reemplazamos la IP en addresses bajo DHCP con la IP estática a usar, obteniendo algo similar al Ejemplo siguiente:
dhcp: false
addresses: [192.168.0.101/24]
gateway: [192.168.0.1]
nameservers:
addresses: [8.8.8.8, 8.8.6.6]
addresses: IP fija que deseamos.
gateway: IP de acceso a la configuración del router
nameservers - addresses: es la IP del servidor DNS, los del Ejemplo \ref{ejipfija} son los de google.
Para saber el gateway tecleamos:
$ ip route show
Por último el servidor DNS o nameservers, para este yo utilizo las asignadas por opendns.org o puedes usar las que se encuentran en:
$ cat /etc/resolv.conf
Una vez configurado, guardamos los cambios y ejecutamos el siguiente comando:
sudo netplan apply
Ahora deberíamos tener la IP que configuramos anteriormente. Esto podemos verlo ejecutando el comando ip addr.
sudo ip addr
Ahora cada vez que ejecutemos el comando sudo ifconfig obtendremos la misma ip, pero si no le decimos al router que se la asigne a la tarjeta de red especifica puede que no tengamos conexión.
En el router debe haber un apartado de reserva de dirección (address reservation) en la sección DHCP, ahí debemos ingresar la MAC de la tarjeta de red y la IP del servidor para que siempre le asigne la misma IP.
Luego debemos buscar la sección de redireccionamiento (forwarding), en esta sección se debe poner el puerto y hacia que IP dirigirlo, poniendo lógicamente la del servidor.
Aclarar que esta es la IP local del servidor, se debe buscar la forma que la ip externa (la que entrega la compañía) sea estática y que cuando se intente acceder por ella se redirija a la IP fija local. Si la compañía no ofrece una IP externa fija (lo usual) debemos servirnos de un servidor DDNS (Dynamic DNS) que haga el trabajo, como por ejemplo NOIP.com, esta entregará una dirección web que actuara como IP Externa, y en el Router debemos poner la cuenta DDNS que hayamos tomado, así el router le enviará cual es la nueva IP de salida y siempre tendremos acceso.