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
httpd
ymod_ssl
[root@centos ~]# dnf -y install httpd mod_ssl ⬅️
- Reiniciar el servicio
httpd
[root@centos ~]# systemctl restart httpd ⬅️
- Revisar que
mod_ssl
esté 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_ssl
esté 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
httpd
esté 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.html
en el directorio/var/www/html
donde 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
localhost
utilizandocurl
-
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
<
<html><body><h1>It works!</h1></body></html> ✅
* 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
<
<html><body><h1>It works!</h1></body></html> ✅
* 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 |