Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previa | |||
openbsd_httpd [2025/04/05 08:33] – root | openbsd_httpd [Fecha desconocida] (actual) – borrado - editor externo (Fecha desconocida) 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ==== httpd(8) ===== | ||
- | Este artículo es sobre el httpd de OpenBSD, no confundir con el software de la fundación Apache con el mismo nombre. | ||
- | |||
- | === Introducción === | ||
- | |||
- | Realmente lo que se debería hacer es crear un servicio http con httpd en una IP privada/de loopback y luego usar [[: | ||
- | |||
- | Una de las características de seguridad que trae este httpd es que hace chroot a /var/www, por lo cual las peticiones HTTP y todo eso están encerradas en el chroot. Así que un atacante por HTTP no podría acceder, en principio, a tu host. | ||
- | |||
- | Por defecto el chroot está en /var/www, tenlo en cuenta cuando configures httpd, ya que sobrará esa parte y tendrás que tomar /var/www como / cuando configures httpd. | ||
- | |||
- | === Configuración de ejemplo === | ||
- | |||
- | La configuración de httpd se encuentra en / | ||
- | |||
- | Esta configuración es demasiado básica (aunque funciona perfectamente) | ||
- | |||
- | <file ini / | ||
- | # $OpenBSD: httpd.conf, | ||
- | |||
- | # Directory to chroot | ||
- | chroot "/ | ||
- | |||
- | # MIME types | ||
- | |||
- | include "/ | ||
- | default type text/plain | ||
- | |||
- | server " | ||
- | listen on * port 80 | ||
- | location "/ | ||
- | root "/ | ||
- | request strip 2 | ||
- | } | ||
- | location * { | ||
- | block return 302 " | ||
- | } | ||
- | } | ||
- | |||
- | server " | ||
- | listen on * tls port 443 | ||
- | tls { | ||
- | certificate "/ | ||
- | key "/ | ||
- | } | ||
- | root / | ||
- | location "/ | ||
- | directory auto index | ||
- | } | ||
- | location "/ | ||
- | root "/ | ||
- | request strip 2 | ||
- | } | ||
- | } | ||
- | </ | ||
- | |||
- | Total, que esto crea un servicio en el puerto 80 que lo único que hace es redirigir todo el tráfico a el puerto 443. Todo con el dominio " | ||
- | |||
- | Puedes iniciar httpd(8) con rcctl(8): | ||
- | |||
- | < | ||
- | rcctl enable httpd | ||
- | rcctl start httpd | ||
- | </ | ||
- | |||
- | ==== Configuración de httpd mas avanzada ==== | ||
- | |||
- | Lo de arriba está bien pero eventualmente vas a querer mas cosas como CGI o PHP. OpenBSD trae su [[https:// | ||
- | |||
- | < | ||
- | rcctl enable slowcgi | ||
- | rcctl start slowcgi | ||
- | </ | ||
- | |||
- | Aquí una configuración mas avanzada: | ||
- | |||
- | <file ini / | ||
- | # Directory to chroot | ||
- | chroot "/ | ||
- | |||
- | # MIME types | ||
- | |||
- | include "/ | ||
- | default type text/plain | ||
- | |||
- | server " | ||
- | # For darknets | ||
- | alias loquesea.onion | ||
- | listen on 10.100.0.2 port 1341 # Cualquier puerto que no sea el 80 | ||
- | listen on ::1 port 1341 | ||
- | # Default log format | ||
- | log style forwarded | ||
- | errdocs "/ | ||
- | gzip-static | ||
- | root "/ | ||
- | directory index " | ||
- | # Soporte de scripts CGI | ||
- | location match "/ | ||
- | fastcgi | ||
- | } | ||
- | # Soporte de scripts PHP | ||
- | # Requiere el paquete " | ||
- | location match " | ||
- | fastcgi socket "/ | ||
- | |||
- | } | ||
- | } | ||
- | </ | ||
- | |||
- | Atento a las líneas subrayadas. Son interesantes o deberás cambiarlas. | ||
- | |||
- | Cambia lo que te haga falta, como el root o la dirección a la que bindeas (que aconsejo que sea una dirección privada si vas a usar un proxy inverso para mostrar el sitio al mundo). En este caso la dirección me la he inventado | ||
- | |||
- | Tras reiniciar httpd nuevamente (con '' | ||
- | |||
- | <note important> | ||
- | Como se avisó anteriormente, | ||
- | |||
- | Es un dolor de huevos. Pero también muy satisfactorio cuando funciona. | ||
- | </ | ||
- | |||
- | Con esto ya tienes el servidor HTTP funcionando. ¡Felicidades!{{ : | ||
- | |||
- | === Enlaces externos === | ||
- | - http:// | ||
- | - http:// |