El SysAdmin del 3er Mundo

todo lo que expliqué mientras nadie prestaba atención

domainpop con postfix

| Comments

Otra importante entrada que decidí migrar de puheroska

Es tan sencillo como crear un dominio virtual y asignarle usuarios reales. Para no volverte loco pon el nombre del usaurio igual que el del dominoio.

Por ejemplo, crea dos usuarios, uno llamado subdom y un segndo llamado otro. Luego crea el fichero /etc/postfix/virtual y ponle esto:

“/etc/postfix/virtual”
1
2
@subdom.tudomionio.cu   subdom
@otro.tudominio.cu      otro

postmap que tú conoces y postfix reload

“postmap”
1
2
postmap /etc/postfix/virtual
postfix reload

Ya hemos declarado que subdom y otro, serán usuarios y que todo lo que se envíe a los dominios virtuales @otro.tudominio.cu será almacenado en /var/mail/otro

Finalmente en el /etc/main.cf pones:

“/etc/postfix/main.cf”
1
2
virtual_alias_domains = subdom.tudominio.cu otro.tudominio.cu
virtual_alias_maps = hash:/etc/postfix/virtual

OJO no olvides que en mydestination y debes incluir ambos dominios virtuales.

Si este artículo te resultó interesante, considere donar 0.003 BTC: 1LgL9cfT2StNk9gdedMJZseMnKJCEgQJdQ

túnel 6in4

| Comments

Típico: Quiero darle cumplimiento a la resolución 185/2016, pero mi proveedor no me ha dado una ipv6

¿Tienes una ipv4 pública? Felicidades, puedes jugar con ipv6

Existe una tecnología transisional poco recomendada que se conoce como 6in4, consiste en levantar un túnel especial que te permite hacerte con un rango ipv6 pa jugar y comer mierda, porque no es ipv6 puro. Supuestamente internet debe tener servididores que hagan relay hacia ipv6 real pero hoy en día son cada vez menos.

y ahora un mensaje:

Si bien Hurricane Electric provee túneles, siendo esto una solución PERFECTA; hay que tener en cuenta que: No se con que cuchara etecsa se coma eso.

Pero volviendo al tema:

Las grandes redes dual-stack como google y facebook, tiene sus 6in4 bien afinaditos, así que a través de un 6in4 puedes perfectamente llegar a ellos. En otros tiempo, esta solución me pinchó finísimo pero recientemente no la he probado.

Digamos que tu ip pública es 220.110.12.190 Calculamos la ipv6 que te toca:

1
2
[lazaro@artema ~]$    ipv6calc --quiet --action conv6to4 220.110.12.190
2002:dc6e:cbe::

Digamos que devolvió el prefijo 2002:dc6e:cbe:: Ese será nuestro prefijo, para meter cuantas direcciones querramos.

“creando el túnel”
1
2
3
ip tunnel add tun6to4 mode sit ttl 255 remote any local 10.0.0.1
ip link set tun6to4 up
ip -6 addr add 2002:dc6e:cbe::1/16 dev tun6to4

Una vez levantada la interfaze, levantamos una puerta de enlace que saque todas las direcciones ipv6 del túnel que traduce las ipv4:

“ruta”
1
ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4 metric 1

Nota que la dirección ::192.88.99.1 es así de palo, es una ruta especial que da lugar al túnel 6in4.

Ahora, asignamos la primera dirección ipv6 a la interfaz pública (eth0):

“ip a”
1
ip -6 addr add 2002:dc6e:cbe::cafe/64 dev eth0

A la interfaz de la LAN (eth1) le asignamos una ip también, pero le decimos que ::cafe es la puerta de enlace predeterminada. En su momento, el servidor con debian me quedó así:

“/etc/network/interfaces”
1
2
3
4
5
6
7
8
9
10
11
# la asignamos a la publica una ipv6
iface eth0 inet6 static
        address 2002:a00:1::cafe
        netmask 64

# y la interfaz de la LAN se asignamos otra
# pero ::cafe será la puerta de enlace
iface eth1 inet6 static
        address 2002:a00:1:21c:c0ff:feb2:91c2
        netmask 64
        gateway 2002:a00:1::cafe

En la entrada anterior vimos como usar el forward y como habilitarlo. Recuerdas?

Si este artículo te resultó interesante, considere donar 0.003 BTC: 1LgL9cfT2StNk9gdedMJZseMnKJCEgQJdQ

cortafuegos ipv6 sencillo

| Comments

En entradas anteriores mencionábamos la necesidad urgente de un cortafuegos para ipv6. Aquí les va uno hipotético y sencillo:

Sean:

  • la red 2001:db8:: /64
  • eth0 interfaz de cara al enlace
  • eth1 interfaz de cara a la LAN
  • 2001:db8::1 servidor DNS
  • 2001:db8::2 servidor de correo
“firewall ipv6”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# al piedra angular
ip6tables -A INPUT   -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

# nuestro ruter no tiene ningún servicio corriendo
# así que no permitimos nada pa adentro
ip6tables -A INPUT -j DROP

# el forward desde internet hacia la LAN va descartado
ip6tables -A FORWARD -i eth0 -o eth1 -j DROP

# permitimos que las máquinas en la LAN vean los sitios web de internet
ip6tables -A FORWARD -i eth1 -o eth0 -p tcp --dport 80  -j ACCEPT
ip6tables -A FORWARD -i eth1 -o eth0 -p tcp --dport 443 -j ACCEPT


# al servidor DNS le permitimos que encueste a otros servidores dns
# nuestro servidor dns es un servidor de cache, para la LAN. Dice:
# lo que venga por la lan, a salir por el enlace, proveniente del servidor DNS
# y además, cuto puerto de destino sea el 53, permítelo
ip6tables -A FORWARD -i eth1 -o eth0 -p udp --dport 53 -s 2001:db8::01 -j ACCEPT
ip6tables -A FORWARD -i eth1 -o eth0 -p tcp --dport 53 -s 2001:db8::01 -j ACCEPT

# permitimos que el servidor de correo sea visible desde afuera
# lo que venga, de afuera, pa adentro, protocolo tcp del puerto tal
# y como destino sea la ip del servidor de correo, permítelo
ip6tables -A FORWARD -i eth0 -o eth1 -p tcp --dport 25  -d 2001:db8::2 -j ACCEPT
ip6tables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80  -d 2001:db8::2 -j ACCEPT
ip6tables -A FORWARD -i eth0 -o eth1 -p tcp --dport 110 -d 2001:db8::2 -j ACCEPT

# el resto del tráfico proveniente de la LAN hacia internet, le hacemos reject
# esto evita que los teléfonos no se queden locos intentando buscar salida
ip6tables -A FORWARD -i eth1 -o eth0 -j REJECT

# el resto del tráfico que venga de internet, le hacemos DROP
ip6tables -A FORWARD -i eth0 -o eth1 -j DROP

# habilita el forward
sysctl net.ipv6.conf.all.forwarding=1

Si este artículo te resultó interesante, considere donar 0.003 BTC: 1LgL9cfT2StNk9gdedMJZseMnKJCEgQJdQ

las reglas del juego ipv6

| Comments

ipv4 se parece a ipv6, lo que las damas se parecen al ajedrez

Ambos juegos se desarrollan sobre un tablero de 64 casillas, moviendo fichas y comiéndose las del adversario. Pero sus fundamentos, aunque similares, no son iguales y para que hablar de las reglas.

En la entrada anterior, comentaba los disparates primordiales que he ido viendo con respecto a ipv6. Aquí les dejo un básico sobre las reglas del juego con ipv6.

2001:db8:: NO ES UN RANGO USABLE

Realmente sí lo es, pero está reservado para documentación esto quiere decir que NO DEBE HABER UNA LAN CON ESTE RANGO.

¿Entonces la LAN y la pública?

En ipv6, las direcciones de la LAN, son parte de la pública. No existe una distinción real entre LAN o internet y sobre todo:

NO HAY NATEO!!!

Te delegarán un prefijo y tú tendrás suficientes ip como para asignarle un ip a cada partícula de polvo de tu oficina. Pero ojo:

esas ip serán visibles desde y hacia internet

Cada ip que delegues de tu prefijo, formará parte del ciberspacio. Visto de otra forma. Si asignas 2001:db8::aaa1 a una máquina en tu LAN, esa dirección será de facto, alcanzable desde internet (si tienes internet claro).

Para lidiar con esta situación, deberás tener bien claro el forward en tu router.

pero yo no tengo una ipv6 real

No estés tan seguro… Si tienes una ipv4 pública, tienes algo parecido. Más adelante veremos como hacer un túnel 6in4, así que el prefijo de dirección más apropiado para tu LAN lo calcularás así:

“ipv6calc”
1
ipv6calc --quiet --action conv6to4 tu.ipv4.publica.aqui

Nota para los imbéciles: ¿¿Notaste lo que dice tu.ipv4.publica.aqui??

Eso te devolverá algo como 2002:a00:1:: lo cual es prefijo 6in4 en base a la ipv4 pública de tu LAN. Ese será tu prefijo ipv6.

Otra cosa: NO SE PONEN IP CORRIDAS como por ejemplo 2002:a00:1::1 y 2002:a00:1::2 ya que una de las cosas que intenta evitar ipv6 es el escaneo de redes. Las ipv6 se calculan en base a la mac. Más tarde veremos como lo hace el protocolo SLAAC.

A mi en lo personal, me gusta ponerle al ruter “cafe” 2002:a00:1::cafe y un ejemplo mas creativo 2002:a00:1::caba110 (caballo) así cada servidor tendría un nombre: cafe, caba110, ada, ded0, dad0, 1ce, a5ado

Por cierto, los 0 a la izquierda, se descartan

2002:a00:1::0001 es la misma dirección que 2002:a00:1::1 y de echo, es mucho más largo, porque tiene una pila de 0 por medio, pero así se expresa de manera más corta. Incluso así puede hacer ping y cualquier referencia a la dirección que el stack ipv6 se encarga de comprimirla y descomprimirla, sepa usted.

Note que en a00 sí se ponen los ceros, porque NO están a la izquierda.

Entonces el Forward

El forward de un cortafuegos será lo que controla que será visible dentro de tu LAN. La puerta de enlace decide qué será visible o no. Más adelante veremos un firewall ipv6 lo más sencillo posible. Usaremos ip6tables.

¿y el dhcp?

Hay servidores dhcp para ipv6, pero el mecanismo bacán es SLAAC. Te adelanto que dnsmasq tiene SLAAC, pero el pro, es radvd

Una configuración de radvd típica se ve así:

“/etc/radvd.conf”
1
2
3
4
5
6
7
8
9
10
interface eth1 {
     AdvSendAdvert on;
     MinRtrAdvInterval 3;
     MaxRtrAdvInterval 10;
     prefix ::/64 {
            AdvOnLink on;
            AdvAutonomous on;
            AdvRouterAddr on;
     };
};

Como vez, no especificas que rango de ip darás ni cosa parecida. El rango que darás, será del mismo prefijo que tiene en la interfaz eth1 (en este caso).

¿qué son las direcciones ff02 y fe80?

Son direcciones link-local. En ipv6, hay direcciones del tipo “multicast” cuyo destino serán todas las ip que estén dislocadas en la red. Esto no debe confundirse con anycast y vale aclarar que en ipv6 NO EXISTE broadcast.

“ping multicast”
1
2
3
4
[root@artema ~]# ping ff02::1%wlp2s0
PING ff02::1%wlp2s0(ff02::1%wlp2s0) 56 data bytes
64 bytes from fe80::420e:85ff:fe7a:e6d7%wlp2s0: icmp_seq=17 ttl=64 time=112 ms
64 bytes from fe80::420e:85ff:fe7a:e6d7%wlp2s0: icmp_seq=18 ttl=64 time=7.42 ms

Eso hará le hará ping a malanga y puesto de vianda que tengan un link-local en la red que tiene conectado el cable de eth0.

Sin embargo, al hacer ping a ff02::2 solo responderán aquellas ipv6 que sean routers. Eso es una manera de saber quien es un router o simplemente si hay alguno.

Las direcciones fe80:: son enlaces locales. Podría decirse que las direcciones fe80 son como decir “arp” pero se les puede hacer ping y otras boberías. O sea, es de palo tener direcciones fe80:: aparte de las globales.

¿y dnsmasq?

Ese es otro que bien baila y con cualquier música. Tiene un SLAAC implementado que es una maravilla. Al parámetro dhcp-range se le mandan unas clásulas especiales que hacen maravillas. La que más me gusta es ra-names que asigna una ip y un registro AAAA para máquina.

que bolá con bind?

Los registros del tipo AAAA resuelven punteros address para direcciones ipv6.

Sean:

  • ns01 el nombre del servidor
  • ns01 registro A con ip 192.168.0.1
  • ns01 registro AAAA con ip 2001:db8::cafe
  • proxy registro CNAME que apunta a ns01

Cuando preguntes por la ipv6 de proxy, resolverá 2001:db8::cafe, de esta manera, el sistema operativo preguntará simplemente por “proxy” y el DNS le resolverá ambas direcciones (4 y 6), la configuración de dichos stack, decidirá cual usar.

Esto en bind se escribe así:

“dominio.zone”
1
2
3
4
5
6
; El 1 el proxy
ns01         IN      A       192.168.0.1
ns01         IN      AAAA    2001:db8::cafe
             IN      MX  0   ns01
ruter        IN      CNAME   ns01
proxy        IN      CNAME   ns01

Ejemplo vivo:

“ping ipv6 a un CNAME”
1
2
3
4
[lazaro@artema ~]$ ping -6 proxy.hcg.sld.cu
PING proxy.hcg.sld.cu(ns01 (2002:c9dc:d582::cafe)) 56 data bytes
64 bytes from ns01 (2002:c9dc:d582::cafe): icmp_seq=1 ttl=64 time=0.100 ms
64 bytes from ns01 (2002:c9dc:d582::cafe): icmp_seq=2 ttl=64 time=0.174 ms

¿Qué aprendimos?

  • 2001:db8:: es un rango reservado, no se usa
  • ipv6 es complejo pero no complicado.
  • hay un ip6tables aparte de iptables
  • ipv6 NO necesita nateo
  • que existen tecnologías transicionales como 6in4
  • no es DHCP, si no RA y SLAAC
  • no hay ARP, si no link-local
  • los punteros AAAA funcionan igualito que los A

Si este artículo te resultó interesante, considere donar 0.003 BTC: 1LgL9cfT2StNk9gdedMJZseMnKJCEgQJdQ

la resolución 185/2016

| Comments

El otro día, me doy por enterado que que lanzaron la resolución 185/2016 nada menos que sobre la implementación de ipv6. Como todo en cuba; llega tarde pero bien recibido. Me reí muchísimo cuando la leí. No con la ley, si no imaginándome la puesta en vigor de la ley.

Me imaginé:

  • la gente poniendo ipv6 en su LAN con el prefijo 2001:db8::
  • los cortafuegos sin configurar
  • los que no leen preguntando como hacer un forward o un nateo

Y la mierda estaba por llover, cuando vi mi vaticinio materializándose ante mis ojos.

Podría ser este tu caso

Luego de entablar un diálogo técnico, una persona a la que consideraba buena en este asunto de los servidores y redes, me dice que implementó ipv6 hace como un mes, pero que tenía “un problema”, ya que no lograba hacer un NAT para que el servidor de correo dentro de la LAN, recibiera los correos desde afuera.

Cuando le dije que me mandara su cortafuegos, me dijo que no tenía un cortafuegos aún para ipv6.

Me insistió que por favor le explicara cómo hacer el singao nateo.

Le pedí que me mostrara como tenía ipv6 desplegado y me dijo que la puerta de enlace era 2001:db8::1 y el servidor de correo ::2

Llegado a ese punto, lo mandé a fumarse un peo, pero volvió a llamar; pasando por alto el collar de insultos que le había puesto antes de tirar el teléfono.

Sobre el “nateo de ipv6”

ipv6 NO lleva nateo. El nateo fue una solución que mandó a la mierda ipv6

Si tienes una ip pública con máscara /64 es visible desde y hacia internet. O sea, que si tu servidor de correo tiene una dirección como 2001:db8::2/64 YA ES VISIBLE EN INTERNET y si no tienen cortafuegos pinguísimo aprepárate.

Más detalles en la siguiente entrada…

Si este artículo te resultó interesante, considere donar 0.003 BTC: 1LgL9cfT2StNk9gdedMJZseMnKJCEgQJdQ

driver broadcom

| Comments

Cuando tienes un dispositivo inalámbrico de Broadcom, por lo general tienes un bluetooth y una wifi. Me imagino que los broadcom modernos, tengan además dual band (wifi de 5Ghz).

En la entrada anterior, mencioné que había adquirido unos audífonos bluetooth; junto con él, un montón de nuevas resinguetas (como todo en archlinux). Resulta que el driver opensource brcm80211 no pinchaba bien del todo con el bluetooth. Al punto que no podía alejarme ni un metro del dispositivo, además, que el mero echo de moverme, hacía que el audio se cortara.

Usar el blob (driver propietario) parecía una variante atractiva, pero existe el driver b43 (QUE TAMBIÉN es opensource) y se jacta de ser creado con ingeniería inversa. De un principio esto no me pareció algo atractivo; pero ya lo había dicho el célebre comunistón Chino:

Todo conocimiento auténtico nace de la experiencia directa

Mao Zedong

Al parecer, el driver ya viene con el sistema, sin embargo, necesita un firmware para poder levantar el hardware. Por suerte hay un paquete en AUR que hace toda la pincha, se llama b43-firmware

Tras instalarlo, hay que poner en la lista negra, el driver anterior, si no se forma un reguero tremendo a la hora de cargar los driver y seleccionará el opensource por defecto.

“/etc/modprobe.d/broadcom.conf”
1
2
3
[lazaro@artema ~]$ cat /etc/modprobe.d/broadcom.conf
blacklist brcmsmac
b43

Por si las moscas, ejecuta:

“depmod”
1
[root@artema ~]# depmod -a

y reinicia

Ahora, la comparación:

brcm80211

La wifi pincha DE PINGA. Dentro de la banda de los 2.4Ghz, hace de todo, desde AP (modo master) hasta la dichosa autenticación WPA2. Soporta incluso survey. PERO el bluetooth pincha de asco. Se desaparece cuando lo usas más de 20 minutos, diciendo que un dispositivo USB fue desconectado.

broadcom-wl

Sin dudas, el driver propietario es una seda, dice que habilita los canales de 5Ghz pero es mentira. El bluetooth pincha de maravilla, sobre todo en lo referente a calidad de audio PERO cada vez que cambias de kernel el driver debe recompilarse y suele fallar (eso dicen). En tal caso, reinstalar el driver es una solución. Además, te recuerdo que no es de código abierto. Sabe dios que backdoor te mete dentro del kernel. En cuanto a las prestaciones de la wifi, hay unas cuantas pérdidas: No puede autenticar con WPA2 y no soporta modo master. Tampoco el survey parece pinchar.

b43

La wifi, tiene las mismas prestaciones que el propietario. El bluetooth funciona excelente. La wifi se porta muy bien los primeros días. PERO El día que amanezca con el moño virao la wifi se desparece, corriendo depmod AVEEECEES aparece. O sea, la mismas miserias del propietario, pero con la aleatoria posibilidad de que amanezcas sin wifi.

Al final, fui a un taller, di 5 pesos mi tarjeta y adquirí una Atheros… Solución PERFECTA.

Si este artículo te resultó interesante, considere donar 0.003 BTC: 1LgL9cfT2StNk9gdedMJZseMnKJCEgQJdQ