Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
#141
Dudas y pedidos generales / Re:URBAN vpn es realmente fiable
Marzo 17, 2023, 04:22:35 PM #142
Dudas y pedidos generales / Re:Que es git?
Marzo 16, 2023, 08:33:05 PM
¿Has hecho una búsqueda por la web?
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
~ DtxdF
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
~ DtxdF
#143
Dudas y pedidos generales / Re:Necesito ejemplos front end y back end de como usar api rest
Marzo 15, 2023, 10:04:25 AM #144
Dudas y pedidos generales / Re:Necesito ejemplos front end y back end de como usar api rest
Marzo 14, 2023, 07:04:24 PM
Probablemente lo que buscas:
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Genérico:
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Genérico:
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
*.- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#145
International forum / Python With Appjail | FastAPI
Marzo 04, 2023, 11:43:41 PM
In any development project, you usually have to worry about many components: databases, dependencies, configurations, network settings and so on. Things can get too complicated when you need to transfer your project to another colleague or, even worse, transfer the project to a production environment, and very bad things can happen... Those problems has been solved by some useful tools, such as those for creating and managing containers.
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login is the framework we will use to create a container with our project: an API using the FastAPI framework. By using this tool we ensure that we can share and reproduce our project to guarantee that it will run smoothly with virtually the same environment as on the host. As a bonus, the host will not be affected.
Continue reading: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
~ DtxdF
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login is the framework we will use to create a container with our project: an API using the FastAPI framework. By using this tool we ensure that we can share and reproduce our project to guarantee that it will run smoothly with virtually the same environment as on the host. As a bonus, the host will not be affected.
Continue reading: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
~ DtxdF
#146
Dudas y pedidos generales / Re:Desbloquearme_de_una_red_wifi
Febrero 28, 2023, 12:17:07 AM #147
Dudas y pedidos generales / Re:desencriptar un BD crypt 14 de whatshapp
Febrero 26, 2023, 10:48:20 PM #148
Zona Webmaster / Instalando WordPress en un contenedor con AppJail/Makejail
Febrero 26, 2023, 11:24:51 AM
Fuente: WordPress
WordPress es un sistema de gestión de contenidos (en inglés, Content Management System o CMS) lanzado el 27 de mayo de 2003, enfocado a la creación de cualquier tipo de página web. Originalmente alcanzó una gran popularidad en la creación de blogs, para luego convertirse en una de las principales herramientas para la creación de páginas web comerciales.
Como se expresó en el You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login, Makejail es un archivo de texto plano para automatizar la creación de contenedores. WordPress es una excelente aplicación para demostrar el potencial de AppJail y sus Makejails.
La instalación y configuración de WordPress, sumando a sus dependencias, y la configuración de la base de datos obstaculiza el proceso principal: usarlo. Muchos consideran que es complejo por los aspectos antes mencionados. Afortunadamente hay un Makejail para solventar esto: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Recomiendo leer artículos anteriores para saber cómo usar las características de red de AppJail, aunque aquí solo se mostrará las redes virtuales por su simpleza. Recomiendo también leer la documentación de AppJail para obtener más detalles: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
WordPress
Dado que usaremos el Makejail del repositorio centralizado, no hará falta crear uno propio para automatizar los complejos procesos. Solo necesitamos el siguiente Makejail:
Makejail:
INCLUDE options/network.makejail
INCLUDE gh+AppJail-makejails/wordpress
OPTION expose=80Por supuesto, sé es libre de usar cualquiera puerto o no usar ninguno, y hacer otras cosas según sea necesario, aunque en ara a la simplicidad, se usará el anterior Makejail.
El archivo `options/network.makejail` es otro Makejail que será incluido indicando las opciones de red que usaremos. Es solo una convención puedes nombrarlo como desees.
options/network.makejail:
ARG network
ARG interface=wordpress
OPTION virtualnet=${network}:${interface} default
OPTION natEl otro Makejail, el de WordPress, contendrá las instrucciones necesarias para instalar WordPress y sus dependencias, PHP y PHP-FPM, MariaDB y NGINX, aparte de configurar cada uno. Todo de forma abstracta y simple.
Una vez creemos los Makejails necesarios, es tan sencillo realizar los procesos usando `appjail makejail`:
appjail makejail -j wordpress -- --network webEn en ejemplo anterior, el contenedor será nombrado como `wordpress` y se le está pasando el parámetro `--network` para indicar la red a utilizar, que en este caso es `web`. Usa la que realmente exista en tu sistema.
Una vez concluído el anterior proceso, solo hay que ingresar en nuestro navegador y seguir los pasos que indica el mismo WordPress.
Conclusión
Probablemente si no usaramos AppJail/Makejail este artículo contendría varias líneas explicando un montón de cosas, incluyendo qué dependencias usa WordPress, cuáles archivos de configuración utilizar para NGINX o PHP-FPM, o cualquier otra cosa que obstaculizaría el objetivo principal.
El Makejail de WordPress acepta varios parámetros, pero estos son descritos en su propia documentación.
~ DtxdF
#149
GNU/Linux / [Non-Linux] Recreando contenedores con Makejail
Febrero 25, 2023, 12:13:16 PM
Fuente: EnterpriseAI
AppJail es la herramienta que permite crear y mantener contenedores de FreeBSD con extrema facilidad. Este automatiza muchísimas cosas para que solo nos podamos preocupar por nuestra aplicación, pero AppJail tiene más funcionalidades para automatizar cosas que podrían ser repetitivas, como es la creación de un contenedor.
AppJail, en vez de usar un largo y tedioso archivo yaml o json, usa un simple archivo de texto con determinadas instrucciones para recrear un contenedor, el cual veremos con más detalles en un momento. Con este simple archivo podemos crear un contenedor, con sus aplicaciones e incluso configurarlas, aparte de que podemos configurar las opciones de redes y mucho más.
Solo se mostrarán algunas instrucciones, por lo que es recomendable leer la documentación si se desea saber todas las que están disponibles: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Recomiendo ver el repositorio central de los Makejails, tanto si deseas usar un Makejail de un software existente o si quieres colaborar en el proyecto: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Introducción a Makejail:

Los archivos Makejails son archivos de texto plano que tienen la siguiente sintaxis:
# Comentario
COMANDO argumentoEs solo eso, no tienes que preocuparte por llaves, corchetes, punto y coma, o cualquier otro carácter raro. Veamos el siguiente ejemplo real:
OPTION start
CMD echo "Hello, world!"Con el comando `OPTION` pasamos opciones a `appjail quick` y con `CMD` ejecutamos un comando usando `sh(1)`. Cabe aclarar que, de forma predeterminada, `CMD` ejecuta el comando en el contenedor, no en el host.
Si queremos ejecutar el ejemplo anterior, tenemos que usar `appjail makejail`.
appjail makejail -j helloEl nombre de la jaula es opcional, por lo que si no se define, se usa uno aleatorio.
Conclusión
El punto de los Makejails es que el usuario final solo tenga que preocuparse por usar la aplicación y no aprender los detalles implicados. Esto es válido normalmente con aplicaciones complejas, que requieran configurarse previamente o se necesiten conocer ciertos detalles para hacerla funcionar correctamente.
En esta breve introducción solo se mostró lo básico para usar los Makejails y en los siguientes artículos se mostrarán ejemplos con aplicaciones reales.
~ DtxdF
#150
Redes y antenas / Re:[1/3] Container networking con AppJail: puentes, vnet, virtualnets y mucho más
Febrero 23, 2023, 05:57:35 PM
Gracias You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login o/
Sí, es parecido a la virtualización, aunque se le conoce normalmente como "virtualización imperfecta", "virtualización ligera", "contenedores" o para el caso de FreeBSD, jaulas.
Se puede usar para lo que comenta, para probar aplicaciones que podrían arruinar o desordenar el host, por ejemplo.
En el mismo README dejé documentos o enlaces que hablan en profundidad sobre las jaulas o tecnologías relacionadas. También le recomiendo la wiki de FreeBSD, ahí hay información variada de las jaulas.
~ DtxdF
Sí, es parecido a la virtualización, aunque se le conoce normalmente como "virtualización imperfecta", "virtualización ligera", "contenedores" o para el caso de FreeBSD, jaulas.
Se puede usar para lo que comenta, para probar aplicaciones que podrían arruinar o desordenar el host, por ejemplo.
En el mismo README dejé documentos o enlaces que hablan en profundidad sobre las jaulas o tecnologías relacionadas. También le recomiendo la wiki de FreeBSD, ahí hay información variada de las jaulas.
~ DtxdF
#151
Redes y antenas / [3/3] Container networking con AppJail: configuraciones complejas
Febrero 23, 2023, 02:57:50 PM
Fuente: CoinDesk
La información que se ha recopilado en la parte You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login y You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login es valiosa para explicar configuraciones un poco más complejas que se adaptan a aplicaciones más específicas. Afortunadamente, AppJail abstrae todos los procesos necesarios para llevar a cabo las operaciones sin necesidad de que conozcamos los detalles intrinsecos.
Después de leer este artículo sabrás cómo organizar tus jaulas para que se adapten a tu aplicación y entorno.
Es recomendable leer la documentación de todas formas: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
multi-(virtual)net & bridges:

Una jaula puede estar en varias redes virtuales al mismo tiempo. Esto es bastante útil para mantener un orden lógico que se adapte más a nuestro entorno. Por ejemplo, podemos crear tres jaulas: `jdb`, un DBMS, `jweb`, un servidor web y `jdev`, una jaula donde estará la aplicación que estamos desarrollando que usará los servicios de las otras jaulas. Además de las jaulas, hay que tener tres redes: `web`, para los servidores web o cosas relacionadas (nginx, apache, php-fpm, APIs, etc.), `db`, para bases de datos (mongodb, mysql, redis, etc.) y `development`, para jaulas que se usarán estrictamente para desarrollar aplicaciones usando los demás servicios. Nuestra jaula `jdev` debe estar en todas las redes para que la comunicación pueda tener efecto.
Las redes virtuales no proveen una conexión al exterior, pero fácilmente se puede solucionar con NAT o los puentes. Es importante saber cual elegir porque uno provee características que el otro no puede y ofrece un mejor aislamiento que el otro no dispone, lo cual puede o no ser estrictamente necesario. Es recomendable leer la documentación para obtener más detalles.
En este caso, los puentes serán la elección actual.
#
# Networks
#
# db
appjail network add db 10.42.0.0/24
# web
appjail network add web 10.0.0.0/24
# development
appjail network add development 172.16.0.0/10
#
# Jails
#
# jdb
appjail quick jdb virtualnet="db:jdb" bridge="jdb iface:jext" start
# jweb
appjail quick jweb virtualnet="web:jweb" bridge="jweb iface:jext" start
# jdev
appjail quick jdev virtualnet="db:jd1" virtualnet="development:jd2" virtualnet="web:jd3" bridge="jdev iface:jext" startEs así de sencillo crear una jaula que esté en múltiples redes virtuales. Después de instalar algunos paquetes, actualizarlos o hacer cualquier cosa que necesite conexión al exterior, podríamos quitar las interfaces que están agregadas al puente para que las jaulas que solo deben ofrecer servicios locales no se puedan comunicar hacia el exterior.
appjail network detach jdb
appjail network detach jwebEs necesario editar la plantilla de las jaulas para que los cambios persistan como es descrito en la documentación.
multi-bridges:

Las redes virtuales son bastante útiles, pero los puentes ofrecen un rango de aplicaciones un poco más amplias por ser más flexibles. Por ejemplo, podríamos usar `dns/dnsmasq` para que este asigne las direcciones IPs en un rango específico a determinadas jaulas que estén en un puente privado.
# jpub
appjail quick jpub \
bridge="jpb1 iface:jext bridge:public" \
bridge="jpb2 bridge:private" \
mount_devfs \
devfs_ruleset=10 \
dhcp="sb_jpb1" \
dhcp="sb_jpb2" \
overwrite
# jpriv
appjail quick jpriv \
bridge="jpv bridge:private" \
mount_devfs \
devfs_ruleset=10 \
dhcp="sb_jpv" \
overwriteEn el ejemplo anterior, `jpub` está tanto en `public` como en `private`, por lo que puede comunicarse tanto con las jaulas que estén en `private` como comunicarse con el exterior ya que `public` tiene como miembro a la interfaz del host `jext`. `jpriv` solo puede comunicarse con las jaulas que estén en `private`.
Ahora se iniciará `dnsmasq` para que las jaulas que estén en `private` puedan obtener una dirección IP.
# AppJail crea el puente si no existe, pero dado que primero necesitamos agregarle una dirección IP ya que dnsmasq lo requiere, es necesario crearlo manualmente antes de iniciar las jaulas.
ifconfig bridge create name private
ifconfig private inet 129.0.0.1/24
dnsmasq --interface=private --dhcp-range=129.0.0.2,129.0.0.150,12h -dEn este punto es posible iniciar las jaulas para observar el resultado.
# appjail start jpub
...
# appjail cmd jexec jpub ifconfig sb_jpb1 inet
sb_jpb1: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
inet 192.168.1.101 netmask 0xffffff00 broadcast 192.168.1.255
# appjail cmd jexec jpub ifconfig sb_jpb2 inet
sb_jpb2: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
inet 129.0.0.15 netmask 0xffffff00 broadcast 129.0.0.255
# appjail start jpriv
...
# appjail cmd jexec jpriv ifconfig sb_jpv inet
sb_jpv: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
inet 129.0.0.112 netmask 0xffffff00 broadcast 129.0.0.255Conclusión:
En este punto, es posible crear jaulas que usen distintos tipos de configuración según necesitemos para crear una variedad de aplicaciones.
En los siguientes artículos, se mostrarán algunas cosas interesantes de AppJail usando todo el conocimiento adquirido hasta el momento.
~ DtxdF
#152
Redes y antenas / [2/3] Container networking con AppJail: DHCP, SLAAC, NAT y port forwarding
Febrero 22, 2023, 12:05:10 PM
Fuente: InfoWorld
En la You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login se presentó los usos básicos de redes para los contenedores en FreeBSD utilizando AppJail. AppJail puede lidiar con problemas más complejos para poder adaptarse a entornos o necesidades mucho más específicas, como se verá acontinuación.
Al igual que la parte anterior, no se mostrarán configuraciones del host para que las opciones sean efectivas, ya que de eso se encarga la documentación: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Es importante leer la primera parte para conocer cómo son nombradas las interfaces.
DHCP & SLAAC:
AppJail puede confiar los parámetros de la red a otro nodo de la red, por lo que será más sencillo y rápido crear y administrar jaulas genéricas.
Primero que nada, necesitamos configurar algunas reglas `devfs.ruleset(5)` para habilitar `bpf(4)` ya que `dhclient(8)` lo requerirá.
/etc/devfs.rules:
[devfsrules_dhcp=10]
add include $devfsrules_jail_vnet
add path 'bpf*' unhideCon lo anterior, los ejemplos posteriores serán efectivos.
# VNET + DHCP
appjail quick jdhcp \
vnet=em0 \
dhcp=em0 \
mount_devfs \
devfs_ruleset=10 \
start
# Netgraph + DHCP
appjail quick jdhcp \
jng="jdhcp em0" \
dhcp=ng0_jdhcp \
mount_devfs \
devfs_ruleset=10 \
start \
overwrite
# Netgraph + Bridge + DHCP
appjail quick jdhcp \
jng="jdhcp em0" \
bridge="iface:jext jdhcp" \
dhcp=ng0_jdhcp \
dhcp=sb_jdhcp \
mount_devfs \
devfs_ruleset=10 \
start \
overwriteIPv6 está creciendo rápidamente a lo largo del mundo por lo que AppJail tiene soporte para esta característica. AppJail puede confiar en SLAAC para configurar algunos parámetros de red para una interfaz dada.
# VNET + SLAAC
appjail quick jslaac \
vnet="em0" \
slaac="em0" \
start \
overwrite
# VNET + SLAAC + Bridge + DHCP
appjail quick jds \
vnet="em0" \
slaac="em0" \
bridge="iface:jext jds" \
dhcp="sb_jds" \
mount_devfs \
devfs_ruleset=10 \
startNAT:
Gracias a las redes virtuales, NAT es posible, siendo este un camino alternativo a los puentes para que la jaula pueda comunicarse con el exterior.
Este tipo de configuración es la forma alternativa a los puentes y no tendría sentido combinarla. Ver la documentación para más detalles.
appjail quick jnat virtualnet="development:jnat default" nat start
# explicitly
appjail quick jnat virtualnet="development:jnat default" nat="network:development" overwrite startLa opción `nat` requiere que el parámetro `network` esté definido, pero como se pudo observar, dado que `development` está marcada como la red predeterminada usando el parámetro `default`, se puede usar de forma implícita en opciones como `nat` o `expose` como veremos más adelante. Cuando no hay ninguna red predeterminada, `nat` se quejará si no se define el parámetro `network`.
Es posible aplicar NAT a varias redes en las que se encuentre la jaula, lo cual es útil si se usará la dirección de origen para diferentes propósitos.
# appjail quick jnat virtualnet="development:jn1 default" virtualnet="web:jn2" nat nat="network:web" start overwrite
...
# appjail network hosts -REj jnat
192.128.0.2 development
10.0.0.2 web
# appjail cmd jexec jnat ping -c4 -S 192.128.0.2 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 192.128.0.2: 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=114 time=45.209 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=114 time=44.204 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=114 time=44.436 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=114 time=44.864 ms
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 44.204/44.678/45.209/0.387 ms
# appjail cmd jexec jnat ping -c4 -S 10.0.0.2 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 10.0.0.2: 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=114 time=44.984 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=114 time=45.167 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=114 time=44.426 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=114 time=44.581 ms
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 44.426/44.789/45.167/0.298 msTambién podemos realizar el proceso de `appjail quick` de forma manual.
appjail quick jnat virtualnet="development:jn1 default" overwrite
appjail nat add jail -n development jnat
appjail config -Ia 'exec.prestart="appjail nat on jail ${name}"' -j jnat
appjail config -Ia 'exec.poststop="appjail nat off jail ${name}"' -j jnat
appjail start jnatAppJail también puede aplicar NAT a una red entera en lugar de hacerlo por cada jaula.
# appjail nat add network db
# appjail nat on network db
# appjail nat boot on network db
# service appjail-natnet status
NAT Information:
BOOT NAME RULE
1 db nat on "jext" from 10.42.0.0/24 to any -> ("jext:0")
Status:
nat on jext inet from 10.42.0.0/24 to any -> (jext:0) round-robinEn el ejemplo anterior, NAT se aplicará al inicio del servicio `appjail-natnet`, ya que el boot flag está ajustado a 1.
Aplicar NAT a una red entera ahorra tiempo y recursos, pero hay veces en las que determinadas jaulas no deberían comunicarse con el exterior. AppJail soluciona esto aplicando una regla NONAT evitando así enmascarar la dirección IP de la jaula.
# Usando appjail quick:
appjail quick jnonat virtualnet="db:jnonat default" nonat overwrite start
# Manualmente:
appjail quick jnonat virtualnet="db:jnonat default" overwrite
appjail nat add jail -n db -N jnonat
appjail config -Ia 'exec.prestart="appjail nat on jail ${name}"' -j jnonat
appjail config -Ia 'exec.poststop="appjail nat off jail ${name}"' -j jnonat
appjail start jnonatPort forwarding:
Exponer los servicios de red que se encuentren en una jaula hacia el exterior para que nuestros clientes puedan aprovechar esto resulta bastante útil. Por ejemplo, NGINX puede ser usado para proveer un servidor web a nuestros clientes:
# Usando appjail quick:
appjail quick nginx virtualnet="web:nginx default" nat expose=80 start
# Mnualmente:
appjail quick nginx virtualnet="web:nginx default" nat overwrite
appjail expose set -k web -p 80 nginx
appjail config -Ia 'exec.prestart="appjail expose on ${name}"' -j nginx
appjail config -Ia 'exec.poststop="appjail expose off ${name}"' -j nginx
appjail start nginx
# www/nginx:
appjail pkg jail nginx install -y nginx
appjail sysrc jail nginx nginx_enable="YES"
appjail service jail nginx nginx startDado que somos el host, podemos realizar una petición HTTP directamente a la dirección IP de la jaula:
# fetch -qo - http://10.0.0.2
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...En cambio otro host dentro de la red podría usar la dirección IP del host, asumiendo en este caso que es `192.168.1.105`:
# fetch -qo - http://192.168.1.105
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...Conclusión:
En este pequeño artículo se mostraron más características de AppJail que permiten tener más control acerca de la red y sus parámetros. Es un complemento de la parte anterior, por lo que es recomendable leer ambas partes. No obstante, tanto esta como la anterior parte forman lo esencial para adaptar una o más jaulas a nuestro entorno. En la parte siguiente se mostrarán configuraciones más complejas asumiendo lo anteriormente aprendido.
~ DtxdF
#153
Redes y antenas / [1/3] Container networking con AppJail: puentes, vnet, virtualnets y mucho más
Febrero 21, 2023, 04:20:41 PM
Fuente: IONOS
En una You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login se brindó una breve introducción a los contenedores en FreeBSD usando AppJail, pero eso solo es una pequeña parte de todo el conjunto. Las redes son un aspecto fundamental cuando se trata de contenedores, ya que son la forma en cómo interactúan los contenedores tanto con los clientes, como con nosotros mismos, los administradores, y también como interactúan entre ellos mismos. No solo es una forma de comunicación, también es una cuestión de organización.
AppJail está hecho para tratar con estos aspectos adaptándose a diferentes necesidades, como se verá a continuación.
No se mostrarán las configuraciones que necesita el host, ni como configurar el firewall o cosas similares, ya que de eso se encarga la documentación: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
IP aliasing:
Aunque el IP aliasing no provea aislamiento, para cierto tipo de aplicaciones puede ser bastante útil.
# IPv4
appjail quick myjail alias=jext ip4="192.168.1.120/24" overwrite start resolv_conf
# IPv6
appjail quick myjail alias=jext ip6="2001:db8:0:1::2/64" overwrite start resolv_conf
# Dual
appjail quick myjail alias=em0 ip4="192.168.1.120/24" ip6="2001:db8:0:1::2/64" overwrite start resolv_conf
# Múltiples interfaces
appjail quick myjail alias ip4="jext|192.168.1.120/24" ip6="em0|2001:db8:0:1::2/64" overwrite start resolv_confTanto `ip4` como `ip6` pueden ser especificadas múltiples veces. La opción `overwrite` detiene y destruye la jaula si existe, y `resolv_conf` copia el archivo `/etc/resolv.conf` del host a la jaula. Aunque la opción `resolv_conf` realmente no sea necesaria especificarla, ya que en el archivo de configuración de AppJail está habilitada por defecto, es útil para ilustrar como es el proceso manualmente.
Redes virtuales:

AppJail puede crear redes aisladas y privadas, las cuales son llamadas «redes virtuales». Una jaula puede estar en más de una red virtual. Esto es increiblemente útil para organizar de forma lógica un montón de jaulas.
Recomiendo usar rangos privados especificados con más detalles en RFC 1918:
* 10.0.0.0/8
* 172.16.0.0/12
* 192.168.0.0/16
Antes de crear una jaula, necesitamos tres cosas: la dirección de red, el CIDR y el nombre. En el siguiente ejemplo, la red `development` tendrá como dirección de red `10.42.0.0` y el CIDR será `24`.
appjail network add development 10.42.0.0/24Ahora que tenemos nuestra red, es posible crear una jaula que esté en ella.
appjail quick myjail virtualnet="development:myjail" overwrite startEn este caso la jaula llamada `myjail` estará en la red `development` y usará una interfaz llamada `myjail`. El nombre de la interfaz puede ser igual al nombre de la jaula, pero recomiendo mantenerlo corto (menos de 10 caracteres).
Una forma de ilustrar las redes virtuales es creando otra que esté en la misma red que `myjail`.
appjail quick otherjail virtualnet="development:otherjail" overwrite startUna vez lo anterior esté concluido, necesitamos conocer la dirección IP de cada jaula, lo cual se puede lograr usando el comando `appjail network hosts`.
myjail:
# appjail network hosts -REj myjail
10.42.0.2 developmentotherjail:
# appjail network hosts -REj otherjail
10.42.0.3 developmentAhora podemos utilizar `ping(8)` para verificar el éxito de la comunicación.
# appjail cmd jexec otherjail ping -c4 10.42.0.2
PING 10.42.0.2 (10.42.0.2): 56 data bytes
64 bytes from 10.42.0.2: icmp_seq=0 ttl=64 time=0.369 ms
64 bytes from 10.42.0.2: icmp_seq=1 ttl=64 time=0.211 ms
64 bytes from 10.42.0.2: icmp_seq=2 ttl=64 time=0.172 ms
64 bytes from 10.42.0.2: icmp_seq=3 ttl=64 time=0.129 ms
--- 10.42.0.2 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.129/0.220/0.369/0.090 msIP aliasing & Redes virtuales:
La razón principal por la que las redes virtuales y el IP aliasing se pueden combinar es para proveer opciones de red para las jaulas que no pueden utilizar `vnet(9)`, como las jaulas con linux, aunque perfectamente se puede utilizar una jaula estándar.
appjail quick jalias alias="appjail0" virtualnet="development" startHerendado el stack del host:
Aunque esto puede causar algunos problemas con algunas aplicaciones, heredar el stack de red del host puede ser útil para ciertas aplicaciones, aunque este método no provee aislamiento de ninguna manera.
appjail quick myjail alias ip4_inherit ip6_inherit resolv_conf overwrite startDeshabilitando el stack de red:
AppJail puede crear una jaula con IPv4 o IPv6 deshabilitado usando `ip4_disable` y `ip6_disable`.
appjail quick myjail alias ip4_disable ip6_disable resolv_conf overwrite startNetgraph:
AppJail puede utilizar Netgraph para crear puentes y enlaces de la misma forma que los puentes. AppJail utiliza el script `jng` por lo que es necesario tenerlo instalado de antemano:
install -m 555 /usr/share/examples/jails/jng /usr/local/bin/jngAhora podemos usar la opción `jng` del comando `appjail quick` para crear nuestra jaula con el tipo de configuración mencionada anteriormente.
appjail quick myjail jng="myjail jext" overwrite startEl nombre `myjail` será utilizado por los enlaces y `jext` es la interfaz de nuestro sistema que será agregada como miembro del puente que creará `jng`. En el ejemplo anterior, se creará un nodo llamado `ng0_myjail` y un puente llamado `jextbridge`.
Puentes:

AppJail puede crear puentes, interfaces y agregar interfaces existentes como miembros del puente en demanda. Esta opción provee una forma distinta de manejar el apartado de redes para las jaulas, y es mucho más flexible.
appjail quick jbridge bridge="jpub iface:jext" start
# Si no se define ningún puente, como en el anterior ejemplo,
# appjail será usado.
appjail quick jbridge bridge="jpub iface:jext bridge:public" startEn el ejemplo anterior, dos interfaces serán creadas: `sa_jpub` que será agregada como miembro del puente y `sb_jpub` será para la jaula.
Supongamos que ya hemos instalado los paquetes que necesitamos para la jaula anterior, y no queramos que esa jaula vuelva a tener conexión con el exterior hasta que realmente se vuelva a necesitar. AppJail puede lograr esto quitando `jpub` como miembro del puente.
appjail network detach jpubSin embargo, es necesario editar la plantilla de la jaula y eliminar las líneas donde se hace referencia a esta interfaz para que en un reinicio no la vuelva a crear y agregar.
Cabe aclarar que dado que `jpub` no es miembro del puente, AppJail no la destruirá al detener la jaula, para forzar esto podríamos usar `appjail detach -df`.
appjail network detach -df jpubVNET:
Probablemente se tiene una tarjeta de red sobrante que una jaula puede aprovechar para su máximo rendimiento. AppJail puede tomar ventaja de esto usando la opción `vnet`.
appjail quick jvnet vnet=em0 startConclusión:
En este pequeño artículo de una serie de artículos se explica lo básico para configurar el apartado de redes de nuestras jaulas. AppJail ofrece más opciones que se adaptan a determinados entornos, cada vez un poco más complejos, por lo que se detallarán en siguientes episodios.
~ DtxdF
#154
GNU/Linux / Re: [Non-Linux] Introducción a los contenedores en FreeBSD con AppJail
Febrero 20, 2023, 06:03:03 PM #155
GNU/Linux / [Non-Linux] Introducción a los contenedores en FreeBSD con AppJail
Febrero 20, 2023, 05:11:25 PM
Fuente: FreeBSD Foundation
Las jaulas son un mecanismo de virtualización a nivel de sistema operativo que permite a un administrador de sistema particionar el sistema operativo en pequeños sistemas derivados e independientes, todos compartiendo el mismo kernel, con solo una pequeña sobrecarga. Aunque este mecanismo sea implementado a través de la llamada al sistema jail(2), también se puede usar en el espacio de usuario gracias a jail(8), sumando además a que una gran parte de las herramientas base también tienen este mecanismo implementado para manipular características dentro de la jaula, como se verá más adelante. Esta funcionalidad fue introducida por You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login en 1999 y lanzada a partir de la versión 4.0 de FreeBSD.

Algunos comandos de AppJail.
Administrar pequeños sistemas con sus propias cosas en lugar de un solo sistema con todas las cosas que necesite la organización, trae con sí varias ventajas, como usar una aplicación de forma aislada sin que el host se vea afectado; ventajas como la seguridad y el mantenimiento del mismo sistema hacen tentativa esta opción.
No obstante, las jaulas aunque sean relativamente fáciles de crear y mantener, cuando se necesitan varias para diferentes propósitos, delegadas para diferentes administradores, la dificultad puede aumentar y por lo tanto los errores se hacen presente. Además, si le sumamos a que las jaulas por sí solas no controlan las reglas de nuestro cortafuegos, no restringen los recursos, no descargan una imagen con FreeBSD para que podamos usarla como el sistema que usará la jaula, no configuran la parte de la red para, por ejemplo, usar DHCP, no exponen puertos, etc. Las jaulas no hacen tal cosa porque en el sistema base ya hay herramientas que hacen esto por nosotros, pero debemos conocer cuales son esas herramientas y como usarlas, aparte de tener un orden en nuestra configuración para que otros administradores pueden realizar su trabajo sin interferencias.
Esto no es desalentador si se está dispuesto a realizar este proceso, de forma vainilla, sin ningún ayudante o framework presente. No obstante, hay personas u organizaciones que simplemente necesitan abstraer y automatizar estos procesos; necesitan ser eficientes, por lo que nacen otro tipo de personas: los desarrolladores de los frameworks que usan estas desventajas para convertirlas en virtudes en un solo conjunto.
La idea de los helpers/frameworks no es nueva [1], ya que hay una docena de ellos actualmente creados, muchos parecidos unos a otros, pero hay otros que tienen sus diferencias. Ya sea que se especialicen en hacer ciertas cosas mejor, o tener determinado público objetivo, o simplemente tener un modelo de desarrollo completamente distinto.
Pese a que existan varias alternativas presentes, AppJail es un nuevo framework que tiene como objetivo tanto a desarrolladores como administradores de sistemas. Esta herramienta tiene con sí docenas de características para que los procesos repetitivos, simplemente lo sean muchísimo menos, y muchos de ellos, abstraídos para que el usuario solo tenga que encargarse de lo principal: administrar sus aplicaciones en un entorno aislado.
Este pequeño artículo será parte de una serie de pequeños artículos mostrando las características de este framework, pero no me es posible mostrar absolutamente todas porque de eso se encarga la misma documentación: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Cosas como la instalación, simplemente no se mostrarán aquí, por lo que se deja implícito que se explica en la misma documentación.
Características:
* Fácil de usar.
* Inicio y parada de las jaulas en paralelo.
* Soporte para UFS y ZFS.
* Soporte para RACCT/RCTL para restringir los recursos de una jaula.
* Soporta IPv4 y IPv6.
* Soporta DHCP y SLAAC.
* Redes virtuales para organizar de forma lógica las jaulas.
* Puentes para proveer aislamiento entre jaulas.
* Soporta VNET.
* Despliegue sencillo usando los Makejails.
* Soporta Netgraph.
* Soporta LinuxJails.
* Soporta thin y thick jails.
* TinyJails, una característica experimental para exportar una jaula bastante despojada que es bastante útil para su distribución.
* Control del inicio y parada de las jaulas usando prioridades y el boot flag.
* Soporta las dependencias de jaulas.
* Initscripts, para crear jaulas interactivas.
* Respaldos sencillos con un solo comando.
* Estructura modular, lo cual hace que AppJail sea fácil de mantener: cada archivo tiene una responsabilidad propia.
* La mayoría de comandos tienen una interfaz como una tabla, bastante familiar en varias herramientas de administración de sistemas.
* Sin base de datos, todos los archivos son guardados individualmente en entidades separadas (redes, jaulas, etc.), lo cual hace su respaldo y mantenimiento mucho más sencillo.
* Supervisor - Próximamente ...
* ...
Creación de una jaula:

Creando una jaula con dos simples comandos.
Dos cosas son necesarias para la creación de nuestra jaula: obtener los componentes (`base.txz`, `lib32.txz`, etc.) y usar esos componentes para crear la jaula.
appjail fetch
appjail quick myjail start loginUsando el comando `appjail fetch` descargaremos el archivo `MANIFEST` para verificar la suma de verificación de los components. Después, los componentes se descargarán. Por defecto, solo `base.txz` será descargado.
Una vez tengamos un `release` con los componentes deseados, podremos crear nuestra jaula con el comando `appjail quick`. Este caso nuestra jaula se llamará `myjail`. Además, usamos la opción `start` para iniciar la jaula después de su creación, y `login` para iniciar sesión dentro de la jaula después de iniciarla.
No es necesario ejecutar `appjail fetch` nuevamente al menos que se quiera crear otro release con diferentes componentes.
Notas:
[1] You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
~ DtxdF
#156
Dudas y pedidos generales / Re: Ip a traves de instagram
Febrero 17, 2023, 04:16:19 PM
No es necesario comentar que necesitas ayuda. Si alguien quiere y puede ayudarte, simplemente lo hace, solo tienes que ser paciente.
Te recomiendo usar el buscador del foro, probablemente encontrarás a un usuario con tu misma cuestión. También esta puede ser la razón por la que aún no has recibido una respuesta, ya que seguro que es un duplicado.
~ DtxdF
Te recomiendo usar el buscador del foro, probablemente encontrarás a un usuario con tu misma cuestión. También esta puede ser la razón por la que aún no has recibido una respuesta, ya que seguro que es un duplicado.
~ DtxdF
#157
Dudas y pedidos generales / Re: ayuda con laptop servicio dns no disponible
Febrero 15, 2023, 10:39:23 AM
You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login
Pueden ser varias cuestiones para tu caso, no necesariamente tienen que ser los DNS.
Si estás usando ping, el servidor donde está la página web podría bloquear los paquetes ICMP, pero no necesariamente quiere decir que no esté funcionando.
Tal vez el destino al que estás contactando no esté disponible realmente y no sea problema de una configuración del ISP o local.
No sé a donde tratas de acceder, pero si no es algo que el ISP no quiere que veas, no es necesario usar una VPN. Muchas veces, no es necesario usarla para evitar la censura por parte del ISP, con solo cambiar el DNS está listo.
Aquí va una lista de servidores DNS (IPv4):
* OpenDNS: 208.67.222.222, 208.67.220.220
* Google: 8.8.8.8, 8.8.4.4
* Cloudflare: 1.1.1.1, 1.0.0.1
Hay muchos más servidores, pero con cualquiera de estos debería funcionar. Yo uso OpenDNS.
~ DtxdF
Pueden ser varias cuestiones para tu caso, no necesariamente tienen que ser los DNS.
Si estás usando ping, el servidor donde está la página web podría bloquear los paquetes ICMP, pero no necesariamente quiere decir que no esté funcionando.
Tal vez el destino al que estás contactando no esté disponible realmente y no sea problema de una configuración del ISP o local.
No sé a donde tratas de acceder, pero si no es algo que el ISP no quiere que veas, no es necesario usar una VPN. Muchas veces, no es necesario usarla para evitar la censura por parte del ISP, con solo cambiar el DNS está listo.
Aquí va una lista de servidores DNS (IPv4):
* OpenDNS: 208.67.222.222, 208.67.220.220
* Google: 8.8.8.8, 8.8.4.4
* Cloudflare: 1.1.1.1, 1.0.0.1
Hay muchos más servidores, pero con cualquiera de estos debería funcionar. Yo uso OpenDNS.
~ DtxdF
#158
Dudas y pedidos generales / Re: Python Para Creación de Malware?
Enero 22, 2023, 10:24:34 PM
Al menos que vaya a ser el servidor que manipule los nodos, no es recomendable usar Python, en especial si se desea usar en el cliente. Es mejor usar lenguajes como C/C++ o Go. Claro está que si el nodo es un servidor web, también usar el lenguaje que permita (PHP, por ejemplo) sería lo recomendable, aunque no siempre el más efectivo ni eficiente.
~ DtxdF
~ DtxdF
#159
Underc0de / Re: Feliz Navidad y Próspero 2023!!
Diciembre 25, 2022, 09:35:30 AM
@AXCESS
Cada año se luce más realizando estos excelentes resumenes del año dándole más vida al foro. Gracias por eso.
---
Hay rumores, pero solo son eso: rumores, que mencionan que el que usa la cuenta de ANTRAX no es el propio dueño, sino un caniche del ejército de La Caniche que se quiere apoderar del foro, y mira las estrategias...
Pilas señores, pilas...
~ DtxdF
Cada año se luce más realizando estos excelentes resumenes del año dándole más vida al foro. Gracias por eso.
---
Hay rumores, pero solo son eso: rumores, que mencionan que el que usa la cuenta de ANTRAX no es el propio dueño, sino un caniche del ejército de La Caniche que se quiere apoderar del foro, y mira las estrategias...
Pilas señores, pilas...
~ DtxdF
#160
Noticias Informáticas / Re: Ahora puedes registrarte en Telegram sin un número de teléfono
Diciembre 14, 2022, 12:02:52 AM
Muchas gracias por la aclaratoria, es una excelente noticia, y como mencioné antes, una forma creativa de hacer negocios por parte de Telegram.
~ DtxdF
~ DtxdF

