esto es la suraguwiki el contenido, como puedes ver, deja mucho que desear para comentarios sobre los cosos aquí, puedes mandar un correo a diego arroba suragu punto net

Si eres un putísimo crack y quieres contribuir a esta wiki, pídeme una cuenta en el mismo correo de arriba

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
openbsd_httpd [2025/04/05 08:33] rootopenbsd_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 [[:openbsd:relayd|relayd]] o [[:red:haproxy|haproxy]] para redirigir el tráfico al mundo de fuera. Idealmente el relayd o haproxy está en una máquina distinta (la máquina que da al internet). 
- 
-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 /etc/httpd.conf. Puedes ver un ejemplo de como configurarlo en /etc/examples/httpd.conf (copiado aquí abajo) 
- 
-Esta configuración es demasiado básica (aunque funciona perfectamente) 
- 
-<file ini /etc/httpd.conf> 
-# $OpenBSD: httpd.conf,v 1.22 2020/11/04 10:34:18 denis Exp $ 
- 
-# Directory to chroot 
-chroot "/var/www" 
- 
-# MIME types 
- 
-include "/etc/mimetypes" 
-default type text/plain 
- 
-server "example.com" { 
-        listen on * port 80 
-        location "/.well-known/acme-challenge/*" { 
-                root "/acme" 
-                request strip 2 
-        } 
-        location * { 
-                block return 302 "https://$HTTP_HOST$REQUEST_URI" 
-        } 
-} 
- 
-server "example.com" { 
-        listen on * tls port 443 
-        tls { 
-                certificate "/etc/ssl/example.com.fullchain.pem" 
-                key "/etc/ssl/private/example.com.key" 
-        } 
-        root /sites/example.com # /var/www/sites/example.com 
-        location "/pub/*" { 
-                directory auto index 
-        } 
-        location "/.well-known/acme-challenge/*" { 
-                root "/acme" 
-                request strip 2 
-        } 
-} 
-</file> 
- 
-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 "example.com" (así que el certificado debería ser para ese dominio). Para generar certificados SSL fácilmente con OpenBSD vea [[:openbsd:acme-client]]. Que es certbot si fuese un buen programa. 
- 
-Puedes iniciar httpd(8) con rcctl(8): 
- 
-<code> 
-rcctl enable httpd 
-rcctl start httpd 
-</code> 
- 
-==== 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://man.openbsd.org/slowcgi|propio servidor FastCGI]] así que esto es relativamente fácil. Debes iniciar el servicio con  
- 
-<code> 
-rcctl enable slowcgi 
-rcctl start slowcgi 
-</code> 
- 
-Aquí una configuración mas avanzada: 
- 
-<file ini /etc/httpd.conf [enable_line_numbers="true",highlight_lines_extra="12,21,22,23"]> 
-# Directory to chroot 
-chroot "/var/www" 
- 
-# MIME types 
- 
-include "/etc/mimetypes" 
-default type text/plain 
- 
-server "suragu.net" { 
-        # 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 "/sites/suragu.net/errdocs" 
-        gzip-static 
-        root "/sites/suragu.net" 
-        directory index "index.html" 
-        # Soporte de scripts CGI 
-        location match "/*.cgi" { 
-                fastcgi 
-        } 
-        # Soporte de scripts PHP 
-        # Requiere el paquete "php<version>" 
-        location match "*.php" { 
-                fastcgi socket "/var/www/run/php-fpm.sock" 
- 
-        } 
-} 
-</file> 
- 
-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 ''rcctl restart httpd'') podrás hacer ''curl http://10.100.0.2:1341'' y debería funcionar. También puedes probar los scripts de CGI 
- 
-<note important> 
-Como se avisó anteriormente, httpd(8) hace un chroot a /var/www y slowcgi es conciente de esto. Así que si tu script CGI usa Perl o Python, deberás copiar los intérpretes a ''/var/www/bin'' o ''/var/www/usr/bin''. Tu sabrás como quieres hacerlo. También tendrás que instalar los módulos de Perl/Python que uses para tus scripts CGI en ''/var/www/usr/lib/perl5'' y cosas así 
- 
-Es un dolor de huevos. Pero también muy satisfactorio cuando funciona. 
-</note> 
- 
-Con esto ya tienes el servidor HTTP funcionando. ¡Felicidades!{{ :smile.png?200 |}} 
- 
-=== Enlaces externos === 
-  - http://man.openbsd.org/httpd 
-  - http://man.openbsd.org/httpd.conf 

QR Code
QR Code openbsd_httpd (generated for current page)