Configuración de servicios de red en el servidor CentOS#
Diagrama de red#
| Diagrama de interfaces de red en VirtualBox |
|---|
![]() |
| 🟠 Red DMZ - Conexiones que se manejan en la red internal network de VirtualBox |
| 🔵 Red LAN - Conexiones que se manejan en la red host-only de VirtualBox |
| 🟢 Red WAN - Conexiones que se manejan en la red NAT Network de VirtualBox |
| 🔴 Red Externa - Conexiones que salen desde el equipo físico hacia Internet |
Instalar servicio Apache httpd#
- Instalar los paquetes
httpdymod_ssl
[root@centos ~]# dnf -y install httpd mod_ssl ⬅️
- Reiniciar el servicio
httpd
[root@centos ~]# systemctl restart httpd ⬅️
- Revisar que
mod_sslesté instalado y configurado
``` [root@centos ~]# cat /etc/httpd/conf.modules.d/00-ssl.conf ⬅️ LoadModule ssl_module modules/mod_ssl.so ✅
[root@centos ~]# grep '^SSLCertificate*' /etc/httpd/conf.d/ssl.conf ⬅️ SSLCertificateFile /etc/pki/tls/certs/localhost.crt ✅ SSLCertificateKeyFile /etc/pki/tls/private/localhost.key ✅
[root@centos ~]# ls -la /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key ⬅️ -rw-r--r--. 1 root root 3871 Nov 1 12:13 /etc/pki/tls/certs/localhost.crt ✅ -rw-------. 1 root root 1704 Nov 1 12:13 /etc/pki/tls/private/localhost.key ✅ ```
- Revisar que
mod_sslesté cargado en Apache HTTPD
[root@centos ~]# apachectl -M | grep ssl ⬅️
AH00558: httpd: ...
ssl_module (shared) ✅
Warning
En algunos casos se muestra que el comando apachectl no soporta la opción -M
[root@centos ~]# apachectl -M | grep ssl ⬅️
apachectl: The "-M" option is not supported. ❌
Se puede utilizar el comando httpd -M para obtener la información deseada
# httpd -M 2>/dev/null | grep ssl ⬅️
ssl_module (shared) ✅
- Verificar que los puertos estén abiertos
[root@centos ~]# netstat -ntulp | egrep -i '^Proto|httpd' ⬅️
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::80 :::* LISTEN 1234/httpd ✅
tcp6 0 0 :::443 :::* LISTEN 1234/httpd ✅
Note
- En esta práctica no importa que el certificado sea auto-firmado y que se muestre una advertencia de seguridad en los navegadores web.
Configurar servicio Apache httpd#
- Configurar que el servicio
httpdesté activo y se inicie automáticamente con el sistema
``` [root@centos ~]# systemctl enable --now httpd ⬅️ Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service. ✅
[root@centos ~]# systemctl status httpd ⬅️ ... ```
- Crea el archivo
index.htmlen el directorio/var/www/htmldonde está la raíz del sitio web.
[root@centos ~]# echo '<html><body><h1>It works</h1></body></html>' > /var/www/html/index.html
Verificar el funcionamiento del servicio Apache httpd#
-
Verifica que puedas ver el archivo en
localhostutilizandocurl -
Conexión HTTP al puerto 80
``` [root@centos ~]# curl -vk# 'http://localhost/' ⬅️ * Trying ::1:80... * Connected to localhost (::1) port 80 (#0)
GET / HTTP/1.1 Host: localhost User-Agent: curl/7.76.1 Accept: /
- Mark bundle as not supporting multiuse < HTTP/1.1 200 OK ✅ < Date: Fri, 11 Nov 2022 06:19:08 GMT < Server: Apache/2.4.53 (CentOS Stream) OpenSSL/3.0.1 < Last-Modified: Fri, 11 Nov 2022 06:18:35 GMT < ETag: "2d-5ed2bdc1cf211" < Accept-Ranges: bytes < Content-Length: 45 < Content-Type: text/html; charset=UTF-8 <
It works!
✅- Connection #0 to host localhost left intact ```
- Conexión HTTPS al puerto 443 (no importa que el certificado sea auto-firmado)
``` [root@centos ~]# curl -vk# 'https://localhost/' ⬅️ * Trying ::1:443... * Connected to localhost (::1) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * CAfile: /etc/pki/tls/certs/ca-bundle.crt * TLSv1.0 (OUT), TLS header, Certificate Status (22): * TLSv1.3 (OUT), TLS handshake, Client hello (1): * TLSv1.2 (IN), TLS header, Certificate Status (22): * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS header, Finished (20): * TLSv1.2 (IN), TLS header, Unknown (23): * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8): * TLSv1.2 (IN), TLS header, Unknown (23): * TLSv1.3 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS header, Unknown (23): * TLSv1.3 (IN), TLS handshake, CERT verify (15): * TLSv1.2 (IN), TLS header, Unknown (23): * TLSv1.3 (IN), TLS handshake, Finished (20): * TLSv1.2 (OUT), TLS header, Finished (20): * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.2 (OUT), TLS header, Unknown (23): * TLSv1.3 (OUT), TLS handshake, Finished (20): * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 ✅ * ALPN, server accepted to use http/1.1 * Server certificate: * subject: C=US; O=Unspecified; CN=centos.local; emailAddress=root@centos.local * start date: Nov 11 01:03:10 2022 GMT * expire date: Nov 11 01:03:10 2023 GMT * issuer: C=US; O=Unspecified; OU=ca-156703581440990179; CN=centos.local; emailAddress=root@centos.local * SSL certificate verify result: self-signed certificate in certificate chain (19), continuing anyway. * TLSv1.2 (OUT), TLS header, Unknown (23):
GET / HTTP/1.1 Host: localhost User-Agent: curl/7.76.1 Accept: /
- TLSv1.2 (IN), TLS header, Unknown (23):
- TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
- TLSv1.2 (IN), TLS header, Unknown (23):
- TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
- old SSL session ID is stale, removing
- TLSv1.2 (IN), TLS header, Unknown (23):
- Mark bundle as not supporting multiuse < HTTP/1.1 200 OK ✅ < Date: Fri, 11 Nov 2022 06:19:18 GMT < Server: Apache/2.4.53 (CentOS Stream) OpenSSL/3.0.1 < Last-Modified: Fri, 11 Nov 2022 06:18:35 GMT < ETag: "2d-5ed2bdc1cf211" < Accept-Ranges: bytes < Content-Length: 45 < Content-Type: text/html; charset=UTF-8 <
It works!
✅- Connection #0 to host localhost left intact ```
- Edita los archivos HTML que necesites en el directorio
/var/www/html, estos serán visibles bajo la URLhttp://172.16.1.10/
Note
- Continúa en la siguiente página cuando tengas configurados los servicios de red del servidor CentOS
| ⇦ | ⇧ | ⇨ |
|---|---|---|
| Página anterior | Arriba | Página siguiente |
