0% encontró este documento útil (0 votos)
138 vistas42 páginas

Servicios de Red en Linux

Este documento describe varios servicios de red comunes utilizados en Linux, incluidos los protocolos de acceso remoto Telnet y SSH, los protocolos de transferencia de archivos FTP, SFTP y SCP, y el servidor LAMP. Explica cómo instalar y configurar servidores para cada protocolo, y proporciona detalles sobre el uso de herramientas de cliente como Putty y Filezilla para acceder a estos servicios de forma remota.

Cargado por

Mauricio Anento
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
138 vistas42 páginas

Servicios de Red en Linux

Este documento describe varios servicios de red comunes utilizados en Linux, incluidos los protocolos de acceso remoto Telnet y SSH, los protocolos de transferencia de archivos FTP, SFTP y SCP, y el servidor LAMP. Explica cómo instalar y configurar servidores para cada protocolo, y proporciona detalles sobre el uso de herramientas de cliente como Putty y Filezilla para acceder a estos servicios de forma remota.

Cargado por

Mauricio Anento
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Módulo 4.

Servicios de red sobre Linux

La capa de aplicación del modelo TCP/IP ofrece diversos servicios a los usuarios y
dispositivos. Entre otras acciones, posibilita acceder remotamente a un equipo,
transferir información, resolver nombres de dominio en direcciones IP y asignar
direcciones IP automáticamente.

En este módulo estudiaremos cómo utilizarlos en Linux, sea el dispositivo un


servidor o un cliente.

Unidad 4.1. Accesos remotos, archivos y direcciones

Unidad 4.2. Servidor LAMP

Cierre

Referencias

Descarga la lectura
Lección 1 de 5

Unidad 4.1. Accesos remotos, archivos y


direcciones

4.1.1 Telnet y SSH

En módulos pasados, aprendimos que para acceder remotamente a un equipo que corre Windows, el
protocolo utilizado se denomina RDP. Pero, ¿existe algo equivalente en Sistemas Operativos sin entorno
gráfico? La respuesta es sí, es posible acceder remotamente a la consola (CLI) utilizando los protocolos
Telnet o SSH.

Telnet (teletype network) es un protocolo antiguo que utiliza TCP para transporte. Un servidor Telnet
escucha por defecto en el puerto TCP 23, aunque veremos más adelante que podemos usar telnet en
otro puerto y realizar otras funciones.

Este protocolo es ampliamente utilizado para conectarse remotamente a dispositivos de conectividad,


como ser Switches o Routers. Sin embargo, tiene una gran desventaja. Para iniciar sesión el sistema
remoto solicita usuario y contraseña. Esta información no viaja encriptada por lo que cualquier persona
que intercepte los paquetes donde se envían el usuario y la clave, tendrá el poder de ingresar
remotamente al equipo. Por esta razón no se recomienda su uso. Sin embargo, si aún es necesario tener
Telnet activo o simplemente para corroborar su falta de seguridad, es posible instalar el servidor
mediante apt-get install telnetd

Luego de que la instalación esté completa, podemos verificar que el puerto esté escuchando con nmap –
p 23 [Link]

Para ingresar desde un equipo remoto necesitamos un cliente de Telnet. En entornos Linux suele venir
instalado por defecto, por lo que en una consola ingresaríamos telnet <IP Servidor>
A continuación, se nos solicitarán los datos para iniciar sesión. Una vez iniciada la sesión, nos
encontramos en la consola del equipo remoto.

Todos los comandos, inclusive reiniciar o apagar el equipo, serán ejecutados en este dispositivo, por lo
cual es necesario ser cuidadosos.

Telnet también puede ser utilizado para una rápida verificación de un puerto. Si en lugar de utilizar el
puerto por defecto 23, se utiliza el puerto que se quiere verificar (telnet <IP Server> <Puerto> y la
conexión es rechazada, entonces ese puerto no está escuchando. En cambio si la pantalla queda negra
o se recibe algún mensaje, la conexión se estableció aunque no sea posible realizar acción alguna
porque el cliente Telnet espera otro tipo de respuesta.

Figura 1. Uso de Telnet para verificar puertos abiertos

Fuente: [Captura de pantalla de Linux sobre el Uso de Telnex para verificar puertos abiertos]
(s.f.). Elaboración propia

Detalle de la figura 1: En la captura de pantalla observamos que primero se intentó un Telnet al puerto
24, el cual fue rechazado por el servidor indicando que ese puerto no se encuentra escuchando o está
bloqueado por el Firewall. En el segundo intento, el puerto utilizado fue el 22, y en este caso se
establece la conexión y el servidor responde con información relacionada a SSH, lo cual indica que el
puerto 22 se encuentra escuchando.
En el caso de ambientes Windows, una de las opciones más populares para conexiones remotas es
Putty. Es posible acceder a él y descargarlo de forma gratuita mediante el siguiente enlace:
[Link]

Figura 2. Putty

Fuente: [Captura de pantalla sobre Putty] (s.f.). Elaboración propia

Detalle de la figura 2: Observamos aquí la pantalla inicial de Putty. Para conectarnos a otro dispositivo
utilizaremos su dirección IP o nombre de host, debemos seleccionar qué tipo de conexión usaremos
(Raw, Telnet, Rlogin, SSH o Serial) y el puerto. Luego usaremos el botón Open para iniciar la conexión.
En caso que accedamos con frecuencia a ciertos dispositivos, podemos guardar los datos. A la izquierda
de la ventana disponemos de más opciones, como por ejemplo la opción de almacenar en un archivo la
interacción con el sistema remoto (opción Sessions / Logging).
Analicemos ahora una mejor opción para conexiones remotas: SSH o Secure Shell. Como su nombre lo
indica, a diferencia de Telnet, este protocolo es seguro ya que la información viaja encriptada mediante
claves públicas y privadas (Intef, 2017). Para instalar un servidor SSH en Debian, hacer correr apt-get
install openssh-server

Una vez finalizada la instalación, debemos comprobar que el puerto TCP 22 se encuentra escuchando.
En otros dispositivos, como Switches o Routers, es muy probable que dicho puerto venga habilitado por
defecto o que se deba realizar algún tipo de configuración previa.

Como cliente, es posible usar Putty en ambientes Windows o como cliente SSH en la consola de Linux.
Conectarse desde Putty es similar a lo hecho con anterioridad para Telnet, sólo que ahora debemos
seleccionar la opción SSH.

En caso de utilizar la consola de Linux, podemos abrir una conexión con alguna de las siguientes
opciones:

1 ssh IP

2 ssh jperez@IP

La opción 1 asume que el usuario, actualmente logueado en el cliente, iniciará sesión ssh en el servidor,
por lo que el servidor directamente solicitará la clave de ese usuario.

La opción 2 asume que jperez es el usuario que desea iniciar sesión en el servidor, y solicitará su
contraseña.

En ambos casos, el usuario debe tener una cuenta creada en el servidor.

La primera vez que nos intentemos conectar a un servidor, el cliente nos indicará que la autenticación no
puede establecerse y tendremos que informarle que queremos continuar.
Figura 3. Información encriptada en SSH

Fuente: [Captura de pantalla de Wireshark sobre información encriptada en SSH] (s.f.).


Elaboración propia

Detalle de la figura 3: se observa una captura en Wireshark de una conexión SSH, donde la información
viaja encriptada.

Para editar la configuración del servidor SSH es necesario editar el archivo /etc/ssh/sshd_config

Al traer ya una configuración predeterminada, es conveniente hacer un backup de este archivo, por si
nuestras modificaciones no resultan como queríamos. Una manera simple de realizar dicho backup
consiste en copiar el archivo con otro nombre, por ejemplo cp /etc/ssh/sshd_config
/etc/ssh/sshd_config_backup

Para el caso de desear especificar qué usuarios pueden iniciar sesión con SSH, debemos agregar la
siguiente línea al archivo (test1 es el nombre del usuario que podrá iniciar sesión): AllowUsers test1
Mientras que para utilizar un puerto TCP distinto al 22, deberíamos agregar o descomentar la línea Port
22 y reemplazar por el número de puerto deseado.

Para cada cambio realizado en el archivo de configuración, es necesario reiniciar el servicio SSH:
/etc/init.d/ssh restart

Para conocer otras opciones de configuración relacionadas a la seguridad, puedes visitar la siguiente
página: [Link]

4.1.2 FTP, SFTP, SCP

Transferir archivos entre dos dispositivos es sumamente importante. Por ejemplo, los usuarios finales
pueden descargar software, los administradores subir logs de sus equipos, los diseñadores de páginas
web subir sus archivos al servidor, entre otras cosas.

El protocolo FTP (Protocolo de Transferencia de Archivos) se utiliza en muchos casos, aunque comparte
el mismo problema que el protocolo Telnet: son inseguros. En contrapartida, los protocolos SFTP, FTPS
y SCP ofrecen mayor seguridad, ya que los datos viajan encriptados.

Vsftpd es un programa que permite que el servidor acepte tanto conexiones seguras como inseguras.
Para instalarlo, tipeamos: apt-get install vsftpd

Al igual qe otros servicios, vsftpd cuenta con una configuración por defecto, la cual permite conexiones
usando el protocolo FTP. FTP utiliza el modelo cliente-servidor. Se establece una conexión TCP y a partir
de ese momento el cliente envía comandos al servidor.

Tabla 1. Comandos de FTP

Comando Función
Comando Función

put [Link] Copia el archivo [Link] desde el cliente al servidor

get [Link] Copia el archivo [Link] desde el servidor al cliente

dir Lista los archivos y subdirectorios en el servidor

! Vuelve a la consola del cliente

exit Vuelve a la consola del servidor

mput *.txt Copia todos los archivos con extensión .txt desde el cliente al servidor

Fuente: Elaboración propia

Detalle de la Tabla 1: Encontramos aquí detallados los comandos más comunes de FTP

También existen clientes de FTP para entorno gráfico, siendo uno de los más populares, y a su vez
gratuito, Filezilla.

Figura 4. Cliente de FTP GUI Filezilla


Fuente: [Captura de pantalla sobre Cliente de FTP GUI Filezilla] (s.f.). Elaboración propia

Detalle de la figura 4: Observamos a Filezilla con una conexión ya establecida. Para agregar servidores
de FTP, deberíamos utilizar el botón ubicado en el extremo izquierdo. Allí es donde debemos indicar la
dirección IP del servidor, el tipo de protocolo (FTP o SFTP), el tipo de encriptación y los datos para
iniciar sesión. Todo esto dependerá de la configuración del servidor, la cual debemos tener a mano.

Una vez establecida la conexión, Filezilla muestra dos estructuras de directorios; la de la izquierda
corresponde a la computadora cliente y la de la derecha al servidor. Para subir (sentido cliente a servidor)
archivos, sólo es necesario buscarlos en la estructura y hacer doble clic con el mouse, o clic derecho y
Upload. También disponemos de otras opciones, como es agregarlo a una cola, crear directorios o borrar
archivos.

Si lo que necesitamos es descargar contenido desde el servidor FTP, entonces debemos ubicar los
archivos en la estructura de la derecha, y realizar la misma operatoria.
Retomando con nuestro servidor FTP, es posible realizar configuraciones editando el archivo
/etc/[Link].

Las líneas que comienzan con # están comentadas, lo cual significa que no están activas. Simplemente
eliminando el símbolo # estarán activas.

Algunas opciones de edición son:

anonymous_enable: permite o prohibe, que personas sin cuenta inicien sesión.

write_enable: habilita o no escritura

anon_upload_enable: habilita o no a anónimos a subir archivos

data_connection_timeout=120: Si en 2 minutos no hay actividad, la conexión se cierra.

cmds_allowed: especifica los comandos que permite el FTP

local_allowed: permite que cuentas locales accedan al FTP

Para consultar un listado más amplio de opciones de configuración, recomendamos visitar el siguiente
enlace: [Link]

Hasta aquí utilizamos a vsftpd como servidor FTP inseguro. Para que funcione de forma segura,
debemos configurar certificados SSL (Secure Socket Layer). Para crear un certificado que dure 1 año
debemos utilizar el siguiente comando:

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/[Link] -out
/etc/ssl/private/[Link]

Luego, debemos agregar este certificado en la configuración del FTP editando el archivo /etc/[Link]
Casi al final, encontramos algo similar a:

# This option specifies the location of the RSA certificate to use for SSL

# encrypted connections.

rsa_cert_file=/etc/ssl/certs/[Link]

rsa_private_key_file=/etc/ssl/private/[Link]

ssl_enable=NO

Y lo cambiamos por:

# This option specifies the location of the RSA certificate to use for SSL

# encrypted connections.

rsa_cert_file=/etc/ssl/private/[Link]

rsa_private_key_file=/etc/ssl/private/[Link]

ssl_enable=YES

allow_anon_ssl=NO

force_local_data_ssl=YES

force_local_logins_ssl=YES

require_ssl_reuse=NO
ssl_ciphers=HIGH

Para finalizar, deberíamos reiniciar el servicio de vsftpd: /etc/init.d/vsftpd restart

Cuando ahora nos conectemos usando Filezilla, corresponderá cambiar el tipo de encriptación: antes era
texto plano FTP, ahora deberá cambiarse para que requiera explícitamente FTP sobre TLS.

Una opción aún mejor que FTP con TLS, si ya disponemos de un servidor SSH, es usar el protocolo
SCP. El protocolo de copia segura utiliza los certificados de SSH para transferir archivos. Al instalar el
servidor SSH (openssh-server) ya es posible utilizar SCP. La sintaxis utilizada en SCP puede parecer
confusa en un primer momento porque requiere definir la ubicación de los archivos y también la conexión
SSH, todo esto al mismo tiempo.

Por ejemplo, para copiar el archivo [Link] ubicado en /ruta dentro del cliente, al equipo remoto
denominado servidor usando el usuario de SSH jperez y en el directorio /ruta/directorio-destino
deberemos utilizar el siguiente comando:

scp /ruta/[Link] jperez@servidor:/ruta/directorio-destino/

No existe una conexión previa como en FTP, sino que luego de ejecutar ese comando se solicitará la
clave de jperez y si es válida, entonces la transferencia se ejecuta.

Si lo que queremos es descargar el archivo [Link] ubicado en el directorio /home/compartido dentro


del servidor, y descargarlo en el directorio del cliente /home/jperez, entonces usaremos:

scp jperez@servidor:/home/compartido/[Link] /home/jperez

Existen aplicaciones para entorno gráfico, como por ejemplo winSCP para el caso de ambientes
Windows. La elección del protocolo a utilizar podría no ser nuestra, ya que si simplemente somos un
cliente que necesita subir y bajar archivos de un determinado servidor que no controlamos, el
administrador de ese servidor definirá el protocolo a utilizar. Sin embargo, sabiendo las ventajas y
desventajas de cada uno, podemos sugerir mejoras en el caso que se continúe utilizando FTP para
transferencia de archivos o Telnet para accesos remotos.
4.1.3 DNS

Toda comunicación entre dispositivos de red se realiza mediante direcciones IP. Cada vez que
accedemos a un sitio web, lo hacemos a través de la IP del servidor de páginas web. Si los usuarios
tuvieran que memorizar cada dirección IP de cada servidor de páginas web, Internet no sería lo que es.
Inclusive para los administradores de red resultaría sumamente complejo recordar todas las IP de sus
servidores y dispositivos.

El protocolo DNS (Sistema de Nombres de Dominio) permite que los dispositivos utilicen un nombre de
dominio y se encarga de realizar la conversión entre nombres y direcciones IP.

DNS utiliza una estructura jerárquica para una mejor organización. Los dominios de nivel superior (org,
com, net, ar) son la raíz de la estructura. Dentro de cada dominio de primer nivel no pueden repetirse los
nombres, pero sí podría existir por ejemplo [Link] y [Link] porque los dominios de
nivel superior son .com y .ar respectivamente.

Los root servers de la imagen 6 son servidores DNS que conocen todos los dominios de nivel superior.
Luego la gestión se delega. Por ejemplo, para el dominio de nivel superior .ar, se delega en NIC
Argentina. Cualquier persona que quiera adquirir un dominio deberá solicitarlo a NIC Argentina a través de
[Link].

Figura 5. Estructura jerárquica DNS


Fuente: Shenron, 2009. [Imagen intitulada sobre Consultas recursivas e iterativas].
Recuperado de [Link]

Detalle de la figura 5: Vemos en la imagen precedente un ejemplo de cómo se organiza la estructura


jerárquica de DNS

Supongamos que empresa1 adquiere el dominio [Link] y luego decide tener subdominios para
cada una de sus regiones: [Link], [Link],
[Link], [Link] y [Link]. La administración de
esos subdominios es delegada a la propia empresa, quién deberá configurar su servidor DNS.

Bind

Bind es un software open source que permite resolver consultas DNS de los usuarios y también publicar
información de DNS en Internet. Podemos instalarlo en Debian. Esto lo haríamos recurriendo a: apt-get
install bind9
Bind dispone de varios archivos de configuración. Según cuál sea nuestro objetivo, será la opción
seleccionada de edición. De entre los archivos de configuración, algunos de los que podemos mencionar
son:

[Link]: el cual, hace referencia a otros archivos

[Link]: correspondiente a opciones generales

[Link]: para las opciones del servidor local DNS

[Link]: relacionado a los DNS de nivel superior

Las consultas a los servidores DNS pueden ser recursivas o iterativas. En el caso de las consultas
recursivas, nos encontraremos con que el servidor consultado deberá obtener la resolución
comunicándose con otros servidores. Una vez obtenida la respuesta, tocará devolver la información al
cliente. O informar el error, por no haber podido resolverlo. Para el caso de las consultas iterativas, el
servidor solamente responderá con la resolución (si la conoce) o con un error, sin realizar otras
consultas.

Figura 6. Consultas recursivas e iterativas


Fuente: Flylib, 2017. [Imagen intitulada sobre Consultas recursivas e iterativas] Recuperado
de [Link]

Detalle de la figura 6: En el gráfico anterior, se observan los dos escenarios presentes


simultáneamente. El cliente le realiza una consulta recursiva a server1, mientras que este maneja
consultas iterativas con los demás servidores. En general el servidor DNS local funciona como Server1 y
para realizar esta configuración en Bind editaremos el archivo [Link] con las direcciones IP
de los servidores que usaremos para redirigir consultas de nombres que nuestro servidor no conozca. En
el ejemplo se agregaron los DNS de Google [Link] y [Link].

Esto se haría de la siguiente manera:

options {

forwarders {

[Link]; [Link];
};

};

Si en nuestra organización queremos asignar nombres a todos los dispositivos y ser capaces de
resolverlos, configuraremos Bind como servidor DNS maestro. En este caso, se debe editar el archivo
/etc/bind/[Link]

Lo que hacemos en este caso es referenciar a dos archivos con bases de datos que poseen los nombres
de dominio y direcciones IP. El primero sirve para resolver nombres en direcciones IP, el segundo para el
proceso inverso.

Primer archivo:

// Archivo para resolver nombres en IP

zone "[Link]" {

type master;

file "/etc/bind/[Link]";

};

Segundo archivo:

// Archivo para resolver IP en nombre

zone "[Link]" {

type master;
file "/etc/bind/[Link]";

};

En el archivo /etc/bind/[Link] de ejempo se hace referencia a [Link] y [Link],


este último indicando la zona de la red [Link]

En el archivo [Link], por ejemplo, tendríamos la siguiente información:

; BIND data file for [Link]

@ IN SOA [Link]. [Link]. (

1 ; número serie

604800 ; Refresco

86400 ; Reintento

2419200 ; Expiración

604800 ) ; TTL (tiempo de vida)

@ IN NS [Link].

IN MX 10 [Link].
lab1pc1 IN A [Link]

lab1pc2 IN A [Link]

www IN A [Link]

dns IN A [Link]

mail IN A [Link]

Las primeras líneas definen parámetros del servidor, como tiempo de refresco o expiración. Luego hay
dos líneas, @ IN NS [Link] indica el nombre del servidor DNS primario (en este ejemplo el
mismo servidor que se llama dns). Mientras que IN MX 10 [Link] indica el servidor que procesa
el correo en el dominio [Link].

Luego se definen todos los nombres de los dispositivos de la red y su dirección IP.

El archivo [Link] se vería así:

@ IN SOA [Link]. [Link]. (

1 ; Serial

604800 ; Refresh

86400 ; Retry

2419200 ; Expire

604800 ) ; Default TTL


@ IN NS [Link].

10 IN PTR [Link].

11 IN PTR [Link].

150 IN PTR [Link].

150 IN PTR [Link].

150 IN PTR [Link].

Nuevamente las primeras líneas definen parámetros del servidor, y luego ingresaremos el sufijo de host
de cada dispositivo seguido de IN PTR y su nombre. Por ejemplo, el dispositivo [Link] tiene la
IP [Link].

Para finalizar, debemos editar el archivo /etc/[Link] del servidor DNS y avisar que el propio servidor
es el servidor DNS:

nameserver [Link]

search [Link]

Reiniciamos bind (/etc/init.d/bind restart) y verificamos el correcto funcionamiento, por ejemplo.


realizando un ping al nombre de dominio [Link]

Los demás dispositivos de la red podrán usar ahora el DNS local [Link], el cual deberá ser
configurado en sus parámetros de red. Ahora el servidor DNS local podrá resolver todos los nombres que
conoce, y para el resto de los casos utilizará los DNS definidos en [Link].

Si algo fallara, podríamos verificar primero la sintaxis de los archivos de configuración: named-checkconf
/etc/[Link]. Si no hay ninguna salida, entonces la sintaxis es correcta.
Lección 2 de 5

Unidad 4.2. Servidor LAMP

Un Servidor LAMP, que corresponde a las siglas de Linux, Apache, MySql/MariaDB y Perl/PHP/Python,
permite disponer de un servidor Web OpenSource con prestanciones avanzadas.

Inicialmente veremos cómo configurar en nuestro servidor Linux un potente servidor de páginas web,
Apache.

Si a este servidor le sumamos una base de datos como MySQL y un lenguaje de programación como
PHP estaremos en condiciones de instalar un CMS o Sistema de Gestión de Contenidos.

Un CMS nos permite crear sitios web avanzados que utilizan bases de datos y programación en PHP, a
diferencia de un sitio web básico que solo está progamado en código HTML. Algunos de los CMS más
populares son Wordpress, Joomla y Drupal.

4.2.1 Instalación Apache

Un servidor web recibe las solicitudes de los clientes a través del protocolo HTTP, generalmente al puerto
80 TCP. Windows Server ofrece IIS como servidor, mientras que en ambientes Linux es ampliamente
utilizado Apache, el cual también está disponible para Windows. Para instalarlo en nuestro servidor,
usaremos apt-get install Apache2

Figura 7. Estructura de directorios y archivos Apache


Fuente: [Captura de pantalla sobre archivos de configuración de Apache] (s.f.). Elaboración
propia

Detalle de la figura 7: Corresponde a la captura de pantalla de la estructura de archivos de configuración


de Apache.

Una vez instalado, podemos chequear que funciona correctamente accediendo desde un browser a la IP
del servidor. Si Apache está funcionando correctamente, veremos una página mencionando que funciona,
documentación básica y la estructura de archivos de configuración en el directorio /etc/apache2.

4.2.2 Configuraciones básicas

Cada archivo de configuración cumple una función:

[Link] : archivo principal de configuración, aunque muchas configuraciones se


delegan en otros archivos.

[Link] : configuración de puertos, por defecto 80 y 443.


sites-enabled : definición se host virtuales

mods-enabled : directorio donde se definen módulos

[Link] se divide en tres secciones: configuraciones globales del servidor, como por ejemplo
Timeout 300, o tiempo máximo para procesar una solicitud (por defecto en 300 segundos);
configuraciones para el servidor por defecto; y finalmente configuraciones para los hosts virtuales. Como
en otros archivos de configuración, [Link] viene creado con parámetros por defecto. Si se desea
comentar una línea para que no sea tenida en cuenta debe agregarse al comienzo el símbolo #.

Desde este archivo, también se hace referencia a otros, por ejemplo la línea Include [Link] el cual
tendrá toda la configuración relacionada a puertos. El archivo [Link] por defecto escucha en el puerto
80 y 443:

Listen 80

<IfModule ssl_module>

Listen 443

</IfModule>

<IfModule mod_gnutls.c>

Listen 443

</IfModule>

Si nos desplazamos al directorio /etc/apache2/sites-enabled podremos ver todos los sitios configurados,
siendo el [Link] el que viene por defecto. Si nuestro servidor alberga más de un sitio, entonces
cada uno tendrá su propio archivo .conf en este directorio. Vamos a verlo en un caso práctico con un
ejemplo en donde crearemos dos sitios: [Link] y [Link]

Primero crearemos la estructura de directorios donde se almacenarán los archivos de cada uno de estos
sitios web. Se debe crear un directorio para cada sitio.

mkdir -p /var/www/[Link]/public_html

mkdir -p /var/www/[Link]/public_htm

Luego en cada directorio deberíamos incluir como mínimo un archivo [Link], que es el que el browser
solicita por defecto. Un ejemplo de archivo [Link] sería para [Link]:

<html>

<head>

<title>Bienvenidos a Empresa1</title>

</head>

<body>

<h1>Si lees este mensaje, entonces has configurado correctamente Apache </h1>

</body>

</html>

Este archivo debe ubicarse en /var/www/[Link]/public_html


El siguiente paso, consiste en crear un archivo .conf para [Link] y [Link] dentro de
/etc/apache2/sites-available. Es posible copiar el que viene con defecto (cp [Link]
[Link]) y editar las variables en rojo:

nano /etc/apache2/sites-available/[Link]

<VirtualHost *:80>

ServerAdmin administrador@[Link]

DocumentRoot /var/www/[Link]/public_html

ServerName [Link]

ServerAlias [Link]

ErrorLog ${APACHE_LOG_DIR}/[Link]

CustomLog ${APACHE_LOG_DIR}/[Link] combined

</VirtualHost>

ServerName establece el dominio base para el sitio, mientras que ServerAlias permite que también
pueda accederse con www.

Para [Link] debemos crear un archivo similar con los parámetros necesarios para ese dominio.

Para activar ambos sitios debemos correr el siguiente comando:

a2ensite [Link]
a2ensite [Link]

Y luego deshabilitar el sitio por defecto con a2dissite [Link]. Finalmente, debemos reiniciar el
servicio apache2 para que los cambios tengna efecto. Para probar la nueva configuración, si el ambiente
es real, entonces los DNS deberán tener cargados la IP de nuestro servidor. En caso que sólo querramos
probar la configuración y los dominios no son reales, entonces es posible editar el archivo hosts para
cargar manualmente los nombres de dominio y dirección IP. En Windows el archivo se encuentra en
%windir%\system32\drivers\etc\hosts, mientras que en Linux en /etc/hosts

Dentro del archivo hosts deberemos incluir:

[Link] [Link]

[Link] [Link]

Donde la IP es [Link] es la dirección IP del servidor Apache. El archivo hosts es consultado por
el Sistema Operativo antes de consultar al servidor DNS.

Esta configuración de Apache nos permite alojar dos sitios web en nuestro servidor. Si creamos todos
los archivos con el usuario root, y los administradores de esos sitios deben tener acceso, entonces se
deben cambiar los permisos del directorio /var/www/[Link]/public_html y de cualquier otro sitio
para que dichos administradores puedan acceder y editar sus archivos.

Figura 8. Prueba exitosa de Apache


Fuente: [Captura de pantalla sobre prueba exitosa de Apache] (s.f.). Elaboración propia

Detalle de la figura 8: Se observa en la captura de pantalla precedente, el mensaje que corresponde


a una correcta configuración de Apache-

4.2.3 Instalación MySQL y PHP

Como indicamos anteriormente, veremos ahora cómo instalar el motor de bases de datos MySQL. Para
hacerlo en Debian, debemos ejecutar apt-get install mysql-server. Durante la instalación, debemos
seleccionar una clave de usuario root de MySQL (no es el root de Linux). En caso de que la instalación
no lo solicite, una vez que esta haya finalizado, ejecutaremos mysql_secure_installation para
establecerla. También podemos realizar configuraciones adiciones de seguridad.

Para loguearse a MySQL debemos ingresar el siguiente comando, seguido de la clave seleccionada al
momento de la instalación:

mysql -u root –p

A partir de este momento, nos encontramos en la consola de MySQL o MariaDB y podemos ejecutar
comandos, como por ejemplo crear una nueva base de datos:

mysql> create database dbprueba;


mysql> create user 'usuariotest'@'localhost' identified by 'password';

mysql> grant all on dbprueba.* to 'usuariotest' identified by 'password';

Figura 9. Creación de base de datos en MySQL

Fuente: [Captura de pantalla de Linux sobre creación de base de datos en MySQL] (s.f.).
Elaboración propia

Detalle de la figura 9: En la captura de pantalla precedente, observamos la consola de MySQL recien


creada.

Para listar las bases de datos creadas, debemos ejecutar show databases;

MariaDB [(none)]> show databases;

+--------------------+
| Database |

+--------------------+

| dbprueba |

| information_schema |

| mysql |

| performance_schema |

+--------------------+

4 rows in set (0.00 sec)

Y si lo que queremos es borrar una base de datos, ejecutaremos drop database <nombre>;

Figura 10. Listado de bases de dato y eliminación


Fuente: [Captura de pantalla de Linux sobre listado de bases de datos y eliminación] (s.f.).
Elaboración propia

Detalle de la figura 10: En la captura de pantalla de referencia, podemos observar primero el listado de
bases de datos que contiene el sistema y como con posterioridad de eliminar uno de ellos, desaparece
de la lista.

Puedes profundizar sobre MySQL visitando el siguiente enlace: [Link]


statements/, pero si nuestro objetivo principal es instalar un CMS, entonces con un manejo básico
estaremos en condiciones de hacerlo.

Un CMS requiere también de disponer de PHP. Para instalarlo ejecutar:

apt-get install php7.0 libapache2-mod-php7.0 php7.0-mysql apache2-mod-php7.0

En caso de no encontrar los paquetes, es necesario investigar la versión actual de PHP para la versión
de Debian.
Para probar si la instalación fue correcta, crear el siguiente archivo:
/var/www/[Link]/public_html/[Link] e introducir el siguiente texto:

<?php

phpinfo();

?>

Luego desde un explorador ingresar a [Link]/[Link] y debemos ver la página de la imagen 11.

Figura 11. Instalación correcta de PHP

Fuente: [Captura de pantalla sobre instalación correcta de PHP] (s.f.). Elaboración propia

Detalle de la figura 11: En la captura de pantalla precedente, observamos cómo se visualizaría la


instalación correcta de PHP al ingresar a la url que se utiliza para hacer la comprobación.
4.2.3 Nociones de CMS

Nuestro servidor LAMP está listo: hemos instalado un Sistema Operativo Linux, luego Apache, MySQL y
PHP. Estamos ahora en condiciones de instalar un CMS, como por ejemplo WordPress, y crear un sitio
web profesional.

El proceso de instalación consiste en los siguientes pasos:

1 Descargar el software desde [Link]

2 Descomprimirlo en nuestra computadora y luego subir todos los archivos al servidor


mediante FTP/SCP/FTPS, por ejemplo, a /var/www/[Link]/public_html

3 Ingresar al dominio para instalar Wordpress, por ejemplo [Link]


admin/[Link]

4 Completar la información relacionada a la base de datos creada en MySQL

Figura 12. Instalación de Wordpress


Fuente: [Captura de pantalla sobre instalación de WordPress] (s.f.). Elaboración propia

Detalle de la figura 12: En la captura de pantalla insertada precedentemente, observamos cómo


completar información relacionada a la base de datos para su correcta instalación.

Si la conexión con la base de datos es exitosa, entonces la instalación nos solicitará datos relacionados
al nuevo sitio web.

Figura 13. Configuración del sitio web


Fuente: [Captura de pantalla sobre configuración del sitio web en WordPress] (s.f.).
Elaboración propia

Detalle de la figura 13: La captura de pantalla incluida previamente, muestra cómo se configura un sitio
web con Wordpress.

Una vez finalizada la instalación, accedemos al panel de control del CMS. donde se puede administrar el
sitio web.

Podremos elegir un tema que le dará una estructura al sitio. También crear los menús, agregar páginas
de contenido, editarlas o eliminarlas.

Figura 14. Escritorio de WordPress


Fuente: [Captura de pantalla sobre el escritorio de WordPress] (s.f.). Elaboración propia

Detalle de la figura 14: La imagen, corresponde al Escritorio de Wordpress, desde donde de una
manera muy intuitiva, se administra el sitio web.

Figura 15. Sitio web elaborado con WordPress

Fuente: [Captura de pantalla sobre sitio web elaborado con WordPress] (s.f.). Elaboración
propia
Detalle de la figura 15: Podemos observar la captura de pantalla de la home del sitio [Link]
elaborado con WordPress.

El procedimiento de instalación es similar para otros CMS, como Drupal o Joomla, y la elección
dependerá de qué Administrador de páginas web nos gusta más.
Lección 3 de 5

Cierre

Telnet y SSH

Es posible acceder remotamente a la consola (CLI) utilizando los protocolos Telnet o SSH. Telnet
(teletype network) es un protocolo antiguo que utiliza TCP para transporte. Este protocolo es
ampliamente utilizado para conectarse remotamente a dispositivos de conectividad, como ser Switches
o Routers. Sin embargo, tiene una gran desventaja. Para iniciar sesión el sistema remoto solicita
usuario y contraseña. Esta información no viaja encriptada por lo que cualquier persona que intercepte
los paquetes donde se envían el usuario y la clave, tendrá el poder de ingresar remotamente al equipo.
Por esta razón no se recomienda su uso.

FTP, SFTP, SCP



Transferir archivos entre dos dispositivos es sumamente importante. Por ejemplo, los usuarios finales
pueden descargar software, los administradores subir logs de sus equipos, los diseñadores de páginas
web subir sus archivos al servidor, entre otras cosas.

El protocolo FTP (Protocolo de Transferencia de Archivos) se utiliza en muchos casos, aunque


comparte el mismo problema que el protocolo Telnet: son inseguros. En contrapartida, los protocolos
SFTP, FTPS y SCP ofrecen mayor seguridad, ya que los datos viajan encriptados.

DNS

El protocolo DNS (Sistema de Nombres de Dominio) permite que los dispositivos utilicen un nombre de
dominio y se encarga de realizar la conversión entre nombres y direcciones IP.

DNS utiliza una estructura jerárquica para una mejor organización. Los dominios de nivel superior (org,
com, net, ar) son la raíz de la estructura.

Bind es un software open source que permite resolver consultas DNS de los usuarios y también publicar
información de DNS en Internet. Podemos instalarlo en Debian.

Servidor LAMP

Un Servidor LAMP, que corresponde a las siglas de Linux, Apache, MySql/MariaDB y Perl/PHP/Python,
permite disponer de un servidor Web OpenSource con prestanciones avanzadas.

Si a este servidor le sumamos una base de datos como MySQL y un lenguaje de programación como
PHP estaremos en condiciones de instalar un CMS o Sistema de Gestión de Contenidos.

Un CMS nos permite crear sitios web avanzados que utilizan bases de datos y programación en PHP, a
diferencia de un sitio web básico que solo está progamado en código HTML. Algunos de los CMS más
populares son Wordpress, Joomla y Drupal.
Lección 4 de 5

Referencias

Cuello Cannavo, E. (2017) Capturas de pantalla de Apache. [Figuras 7 y 8]. Argentina

Cuello Cannavo, E. (2017) Capturas de pantalla de Firezilla. [Figura 4]. Argentina

Cuello Cannavo, E. (2017) Capturas de pantalla de la comprobación de la instalación de PHP. [Figura


11]. Argentina

Cuello Cannavo, E. (2017) Capturas de pantalla de Linux. [Figuras 1, 9 y 10]. Argentina

Cuello Cannavo, E. (2017) Capturas de pantalla de Putty. [Figura 2]. Argentina

Cuello Cannavo, E. (2017) Capturas de pantalla de Whireshark. [Figura 3]. Argentina

Cuello Cannavo, E. (2017) Capturas de pantalla del CMS Wordpress. [Figuras 12, 13, 14 y 15].
Argentina

Debian Wiki. (2006). Accesos remotos SSH. Recuperado de [Link]

Debian Wiki. (2017). Bind9. Recuperado de [Link]

Debian Wiki. (2017). SSH. Recuperado de [Link]


DigitalOcean. (2013). How To Configure the Apache Web Server on an Ubuntu or Debian VPS
Recuperado de [Link]
server-on-an-ubuntu-or-debian-vps

DigitalOcean. (2017). How To Set Up Apache Virtual Hosts on Debian 8 Recuperado de


[Link]

[Link] (2017). [Imagen intitulada sobre Consultas recursivas e iterativas] Recuperado de


[Link]

Intef. (2017). Servidor DNS Bind9 Recuperado de


[Link]

Intef. (2017). Instalación de servidor de SSH. Recuperado de


[Link]

Libremática (2017). Cómo instalar un servidor LAMP en Debian 9 Stretch Recuperado de


[Link]

Perpinan, A. (2004). Administración de Redes GNU/Linux. República Dominicana: Impresos Gamma

Shenron. (2009). [Imagen intitulada sobre Consultas recursivas e iterativas]Recuperado de


[Link]

WordPress. (2017). Cómo instalar o actualizar tu web hecha con WordPress Recuperado de
[Link]
Lección 5 de 5

Descarga la lectura

También podría gustarte