Parece loco, pero no lo es: Server DNS recursivo detrás de NAT64. Explicando IPv6-only Capable Resolvers Utilising NAT64
Blog en espanol destinado a diferentes temas tecnicos principalmente en IT y Networking. Se desea cubrir Linux, DNS, DNSSEC, RPKI, BGP, Cisco, Programacion (Bash, Python, etc), Protocolos de Enrutamiento, Seguridad en Redes, VoIP.
Mostrando entradas con la etiqueta debian. Mostrar todas las entradas
Mostrando entradas con la etiqueta debian. Mostrar todas las entradas
lunes, 6 de noviembre de 2023
domingo, 26 de septiembre de 2021
Solución: VBoxGuestAdditions.iso (VERR_PDM_MEDIA_LOCKED)
Situación:
Cuando intentando insertar los Guest Addition en una VM Debian recibes: VERR_PDM_MEDIA_LOCKED
Solución:
Hay varias soluciones, por ejemplo:
1) Ejecutar:
sudo apt-get upgrade
sudo apt-get install virtualbox-guest-additions-iso
2) Remover e insertal el CD dentro de la configuración de la máquina virtual
3) Dejando una unidad óptica en blanco
y una cuarta solución que justo la acabo de hacer y quise publicar este post:
a) Arranca la VM
b) Abre un terminal
c) Ejecuta:
sudo su
cd /media
mkdir cdrom
mount /dev/cdrom /media/cdrom
cd cdrom
sh VBoxLinuxAdditions.run
Espero sea de utilidad.
Alejandro,
Global spending on public cloud services is expected to grow 18.4% in 2021 to total $304.9 billion (Gartner).
lunes, 30 de noviembre de 2015
Configurando una red con DHCPv6 Server (ISC), DHCPv6 relay (ISC) y como CPE un Router Cisco
Introducción
En el presente post vamos a explicar e implementar como trabajar con DHCPv6 Server, Relay y Cliente.
Favor leer la sección: "Explicación de la topología" la cual indica cada función
Topología
Explicación de la topología
En la topología de arriba va a ocurrir lo siguiente:
- El Ubuntu DHCPv6 Server está entregando prefijos v6
- El DHCPv6 Relay va a escuchar por la interfaz ethernet1 (e1) por peticiones DHCPv6 de Prefix Delegation (PD). Las mismas serán reenviadas por la interfaz ethernet0 (e0) al servidor DHCPv6 Server
- El Cisco Router va a hacer solicitudes DHCPv6 PD en su interfaz f1/0, del prefijo recibido va a configurar su interfaz f0/0 y enviar Router Advertisements por dicha interfaz permitiendo a los clientes auto-configurarse
- El cliente se va a autoconfigurar utilizando el prefijo recibido por RA
Nótese que para el Router Cisco le es transparente el DHCPv6 Relay Server
Que necesitamos:
- Del lado del server el servidor de ISC DHCPv6
- Del lado del ralay el relay de DHCPv6 de ISC (que es diferente al server)
- El Router tiene que ser un enrutador que haga DHCPv6 cliente PD
Instalando
En el Server Linux:
#sudo apt-get install isc-dhcp-server
En el Relay Server:
#sudo apt-get install isc-dhcp-relay
Durante la instalación del relay se van a realizar varias preguntas. Puedes decidir contestarlas o no. Para este post no es necesario responderlas.
Configuraciones:
Del lado del Server:
Red:
#ifconfig eth1 ine6 add 2001:db8::2/64
#route -A inet6 add default gw 2001:db8::1
en /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet6 2001:db8::/32 {
#Prefix range for PD
prefix6 2001:db8:1:100:: 2001:db8:1:f00 /56;
}
Explicacion de la configuracion dhcpd.conf:
La parte mas importante de la configuracion de arriba es la linea "prefix6" donde se indica el prefijo inicial y final /56 que los clientes van a recibir.
Para levantar el servicio de DHCPv6:
# /usr/sbin/dhcpd -6 -d -cf /etc/dhcp/dhcpd.conf eth0
Del lado del relay:
Red:
#ifconfig eth0 inet6 add 2001:db8::2/64
#ifconfig eth1 inet6 add 2001:db8:1::2/64
No hay configuraciones. El relay es levantado con este comando:
#dhcrelay -I -l eth1 -u eth0
Explicación del comando para ejecutar el dhcp-relay:
Hay muchas maneras y opciones para dhcrelay, en el comando anterior se esta diciendo: que se utilice el DHCPv6 interface-id option, que escuche peticiones por eth1 y las mismas sean enviadas por eth0
Del lado del Cisco Router:
ipv6 unicast-routing
interface FastEthernet1/0
description Hacia DHCPv6 Relay Server
ipv6 address 2001:DB8:1::1/64
ipv6 dhcp client pd IP-FROM-DHCPv6-SERVER
end
interface FastEthernet0/0
description Hacia LAN
ipv6 address IP-FROM-DHCPv6-SERVER ::1/64
end
Explicación de la configuración del router Cisco:
Para revisar:
Del lado del DHCPv6 Server deberiamos ver algo como:
Relay-forward message from 2001:db8::2 port 547, link address 2001:db8:1::2, peer address fe80::c801:24ff:fe20:1c
Picking pool prefix 2001:db8:1:f00::/56
Advertise PD: address 2001:db8:1:f00::/56 to client with duid 00:03:00:01:ca:01:24:20:00:00 iaid = 262145 valid for 600 seconds
Wrote 0 NA, 0 TA, 1 PD leases to lease file.
Sending Relay-reply to 2001:db8::2 port 547
Relay-forward message from 2001:db8::2 port 547, link address 2001:db8:1::2, peer address fe80::c801:24ff:fe20:1c
Reply PD: address 2001:db8:1:f00::/56 to client with duid 00:03:00:01:ca:01:24:20:00:00 iaid = 262145 valid for 600 seconds
Sending Relay-reply to 2001:db8::2 port 547
Nótese que 2001:db8:1:f00/64 corresponde al prefijo configurado en el DHCPv6 Server que es entregado vía PD
Algo muy importante es el comando:
b) R1#show ipv6 dhcp
El cual muestra el DUID (DHCPv6 Unique ID) del equipo (RFC3315):
This device's DHCPv6 unique identifier(DUID): 00030001CA0124200000
Podemos apreciar que este mismo número es que le llega al DHCPv6 Server
Del lado del cliente:
Depende de tu OS puedes hacer:
c:\ipconfig
o
#ifconfig
Proximos pasos
- Falta la parte de routing, hay muchas maneras de hacerlo, indiscutiblemente la intención es hacerlo con un protocolo de enrutamiento dinámico
- En el próximo Post haremos exactamente lo mismo pero con el DHCPv6 Server que sea una caja Cisco.
Para más información:
- https://tools.ietf.org/html/rfc6355
- http://www.cisco.com/c/en/us/support/docs/ip/ip-version-6-ipv6/113141-DHCPv6-00.html
- http://blog.acostasite.com/2014/04/instalar-isc-dhcp-43-en-linux-ubuntu.html
- http://blog.acostasite.com/2014/04/solucion-tres-errores-cuando-queremos.html
En el presente post vamos a explicar e implementar como trabajar con DHCPv6 Server, Relay y Cliente.
Favor leer la sección: "Explicación de la topología" la cual indica cada función
Topología
Explicación de la topología
En la topología de arriba va a ocurrir lo siguiente:
- El Ubuntu DHCPv6 Server está entregando prefijos v6
- El DHCPv6 Relay va a escuchar por la interfaz ethernet1 (e1) por peticiones DHCPv6 de Prefix Delegation (PD). Las mismas serán reenviadas por la interfaz ethernet0 (e0) al servidor DHCPv6 Server
- El Cisco Router va a hacer solicitudes DHCPv6 PD en su interfaz f1/0, del prefijo recibido va a configurar su interfaz f0/0 y enviar Router Advertisements por dicha interfaz permitiendo a los clientes auto-configurarse
- El cliente se va a autoconfigurar utilizando el prefijo recibido por RA
Nótese que para el Router Cisco le es transparente el DHCPv6 Relay Server
Que necesitamos:
- Del lado del server el servidor de ISC DHCPv6
- Del lado del ralay el relay de DHCPv6 de ISC (que es diferente al server)
- El Router tiene que ser un enrutador que haga DHCPv6 cliente PD
Instalando
En el Server Linux:
#sudo apt-get install isc-dhcp-server
En el Relay Server:
#sudo apt-get install isc-dhcp-relay
Durante la instalación del relay se van a realizar varias preguntas. Puedes decidir contestarlas o no. Para este post no es necesario responderlas.
Configuraciones:
Del lado del Server:
Red:
#ifconfig eth1 ine6 add 2001:db8::2/64
#route -A inet6 add default gw 2001:db8::1
en /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet6 2001:db8::/32 {
#Prefix range for PD
prefix6 2001:db8:1:100:: 2001:db8:1:f00 /56;
}
Explicacion de la configuracion dhcpd.conf:
La parte mas importante de la configuracion de arriba es la linea "prefix6" donde se indica el prefijo inicial y final /56 que los clientes van a recibir.
Para levantar el servicio de DHCPv6:
# /usr/sbin/dhcpd -6 -d -cf /etc/dhcp/dhcpd.conf eth0
Del lado del relay:
Red:
#ifconfig eth0 inet6 add 2001:db8::2/64
#ifconfig eth1 inet6 add 2001:db8:1::2/64
No hay configuraciones. El relay es levantado con este comando:
#dhcrelay -I -l eth1 -u eth0
Explicación del comando para ejecutar el dhcp-relay:
Hay muchas maneras y opciones para dhcrelay, en el comando anterior se esta diciendo: que se utilice el DHCPv6 interface-id option, que escuche peticiones por eth1 y las mismas sean enviadas por eth0
Del lado del Cisco Router:
ipv6 unicast-routing
interface FastEthernet1/0
description Hacia DHCPv6 Relay Server
ipv6 address 2001:DB8:1::1/64
ipv6 dhcp client pd IP-FROM-DHCPv6-SERVER
end
description Hacia LAN
ipv6 address IP-FROM-DHCPv6-SERVER ::1/64
end
Primero se habilita el routing IPv6 en el equipo.
Segundo, en la interfaz F1/0 se le esta diciendo al router que es DHCP cliente para prefijos y le asignamos el nombre: IP-FROM-DHCPv6-SERVER
Tercero, en la interfaz f0/0 le indica al router que utilice el prefijo recibido via DHCPv6 client y asigne el mismo a la interfaz como ::1/64. Es decir, el router toma el /56 del DHCPv6 y el mismo router va a crear una /64 para f0/0 (nota que puedes configurar otras interfaces utilizando el mismo prefijo recibido por el DHCP).
Para revisar:
Del lado del DHCPv6 Server deberiamos ver algo como:
a) Con el DHCPv6 server corriendo en foreground puedes ver:
Relay-forward message from 2001:db8::2 port 547, link address 2001:db8:1::2, peer address fe80::c801:24ff:fe20:1c
Picking pool prefix 2001:db8:1:f00::/56
Advertise PD: address 2001:db8:1:f00::/56 to client with duid 00:03:00:01:ca:01:24:20:00:00 iaid = 262145 valid for 600 seconds
Wrote 0 NA, 0 TA, 1 PD leases to lease file.
Sending Relay-reply to 2001:db8::2 port 547
Relay-forward message from 2001:db8::2 port 547, link address 2001:db8:1::2, peer address fe80::c801:24ff:fe20:1c
Reply PD: address 2001:db8:1:f00::/56 to client with duid 00:03:00:01:ca:01:24:20:00:00 iaid = 262145 valid for 600 seconds
Sending Relay-reply to 2001:db8::2 port 547
b) Para revisar los leases:
# more /var/lib/dhcp/dhcpd6.leases
Del lado del router Cisco:
Para revisar si la interfaz f0/0 se autoconfiguró cone l prefijo recibido por el DHCPv6:
a) R1#show ipv6 interface f0/0
Vamos a ver algo como:
R1#sh ipv6 interface f0/0
FastEthernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::C801:24FF:FE20:0
No Virtual link-local address(es):
Description: Hacia LAN
General-prefix in use for addressing
Global unicast address(es):
2001:DB8:1:F00::1, subnet is 2001:DB8:1:F00::/64 [CAL/PRE]
Nótese que 2001:db8:1:f00/64 corresponde al prefijo configurado en el DHCPv6 Server que es entregado vía PD
Algo muy importante es el comando:
b) R1#show ipv6 dhcp
El cual muestra el DUID (DHCPv6 Unique ID) del equipo (RFC3315):
This device's DHCPv6 unique identifier(DUID): 00030001CA0124200000
Podemos apreciar que este mismo número es que le llega al DHCPv6 Server
Del lado del cliente:
Depende de tu OS puedes hacer:
c:\ipconfig
o
#ifconfig
Proximos pasos
- Falta la parte de routing, hay muchas maneras de hacerlo, indiscutiblemente la intención es hacerlo con un protocolo de enrutamiento dinámico
- En el próximo Post haremos exactamente lo mismo pero con el DHCPv6 Server que sea una caja Cisco.
Para más información:
- https://tools.ietf.org/html/rfc6355
- http://www.cisco.com/c/en/us/support/docs/ip/ip-version-6-ipv6/113141-DHCPv6-00.html
- http://blog.acostasite.com/2014/04/instalar-isc-dhcp-43-en-linux-ubuntu.html
- http://blog.acostasite.com/2014/04/solucion-tres-errores-cuando-queremos.html
martes, 9 de diciembre de 2014
Python Script: Probably useless but functional IPv6 Network scanner
Below is the code of what is probably useless but a functional IPv6 host scanner written in Python using threading.
To perform a regular (brute force) network scans in an IPv6 Network is almost impossible and it can take over 5.000 years to finish.
This project was purely academic and I just wanted to learn about threading in Python.
This software is not recommended for general usage.....
This script will call the OS to actually perform the ping
This software receives two parameters:
a) Prefix to scan in the format 2001:db8::/64 (subnet, not host)
b) Number of simultaneous processes it can run (MAXPINGS)
One more time it was purely academic stuff but hopefully it can make your day
Finally, AFAIK nmap does not yet support IPv6 network scan.
The code was written in python3:
--- cut here ---
#!/usr/bin/python3
import threading
import sys
import ipaddress
import subprocess
import time
CURRENTPINGS=0 # Number of simultaneous ping at a time
def DOPING6(IPv6ADDRESS):
global MAXPINGS, CURRENTPINGS
CURRENTPINGS+=1
CMD="ping6 -c 3 "+str(IPv6ADDRESS) + " 2> /dev/null > /dev/null"
return_code = subprocess.call(CMD, shell=True)
if return_code == 0: #If ping was succesful
print (IPv6ADDRESS," is alive")
CURRENTPINGS-=1
def main():
global MAXPINGS, CURRENTPINGS
if len(sys.argv) != 3: #Validate how many parameters we are receiving
print(" Not enough or too many parameter")
print(" Usage: ./scanipv6.py IPv6Prefix/lenght MAXPINGS")
print(" Example: ./scanipv6.py 2001:db8::/64 20")
print(" Prefix lenght can be between 64-128")
print(" MAXPINGS corresponds to how many pings will be running at the same time")
exit()
SUBNET,MASK=sys.argv[1].split("/")
MAXPINGS=int(sys.argv[2])
for addr in ipaddress.IPv6Network(sys.argv[1]): #Let's loop for each address in the Block
ping_thread=threading.Thread(target=DOPING6,args=(addr,))
while CURRENTPINGS >= MAXPINGS: # With this while we make it possible to run max simultaneous pings
time.sleep(1) # Let's wait one second before proceeding
#print ("Interrumping...., CURRENTPINGS > MAXPINGS") #Uncomment this line just for debugging
ping_thread.start()
main()
To perform a regular (brute force) network scans in an IPv6 Network is almost impossible and it can take over 5.000 years to finish.
This project was purely academic and I just wanted to learn about threading in Python.
This software is not recommended for general usage.....
This script will call the OS to actually perform the ping
This software receives two parameters:
a) Prefix to scan in the format 2001:db8::/64 (subnet, not host)
b) Number of simultaneous processes it can run (MAXPINGS)
One more time it was purely academic stuff but hopefully it can make your day
Finally, AFAIK nmap does not yet support IPv6 network scan.
The code was written in python3:
--- cut here ---
#!/usr/bin/python3
import threading
import sys
import ipaddress
import subprocess
import time
CURRENTPINGS=0 # Number of simultaneous ping at a time
def DOPING6(IPv6ADDRESS):
global MAXPINGS, CURRENTPINGS
CURRENTPINGS+=1
CMD="ping6 -c 3 "+str(IPv6ADDRESS) + " 2> /dev/null > /dev/null"
return_code = subprocess.call(CMD, shell=True)
if return_code == 0: #If ping was succesful
print (IPv6ADDRESS," is alive")
CURRENTPINGS-=1
def main():
global MAXPINGS, CURRENTPINGS
if len(sys.argv) != 3: #Validate how many parameters we are receiving
print(" Not enough or too many parameter")
print(" Usage: ./scanipv6.py IPv6Prefix/lenght MAXPINGS")
print(" Example: ./scanipv6.py 2001:db8::/64 20")
print(" Prefix lenght can be between 64-128")
print(" MAXPINGS corresponds to how many pings will be running at the same time")
exit()
SUBNET,MASK=sys.argv[1].split("/")
MAXPINGS=int(sys.argv[2])
for addr in ipaddress.IPv6Network(sys.argv[1]): #Let's loop for each address in the Block
ping_thread=threading.Thread(target=DOPING6,args=(addr,))
while CURRENTPINGS >= MAXPINGS: # With this while we make it possible to run max simultaneous pings
time.sleep(1) # Let's wait one second before proceeding
#print ("Interrumping...., CURRENTPINGS > MAXPINGS") #Uncomment this line just for debugging
ping_thread.start()
main()
Linux - Touchpad no funciona al primer arranque pero si al reiniciar
Situacion:
El touchpad de la laptop no funciona la primera vez que arranca la laptop/computadora pero si al reiniciar la misma
Solucion:
1. Edita el archivo /etc/default/grub (NO es grub.cfg)
2. Ubica la siguiente linea:
GRUB_CMDLINE_LINUX=" "
3. Agrega lo siguiente entre "":
i8042.nomux=1 locale=fr_FR i8042.reset
4. La linea debe quedar asi:
GRUB_CMDLINE_LINUX="i8042.nomux=1 locale=fr_FR i8042.reset"
5. Graba el archivo y sal.
6. En el terminar ejecuta:
#sudo update-grub
7. Listo, apaga y prende tu computadora.
Creditos a:
http://ubuntuforums.org/showthread.php?t=2217553
El touchpad de la laptop no funciona la primera vez que arranca la laptop/computadora pero si al reiniciar la misma
Solucion:
1. Edita el archivo /etc/default/grub (NO es grub.cfg)
2. Ubica la siguiente linea:
GRUB_CMDLINE_LINUX=" "
3. Agrega lo siguiente entre "":
i8042.nomux=1 locale=fr_FR i8042.reset
4. La linea debe quedar asi:
GRUB_CMDLINE_LINUX="i8042.nomux=1 locale=fr_FR i8042.reset"
5. Graba el archivo y sal.
6. En el terminar ejecuta:
#sudo update-grub
7. Listo, apaga y prende tu computadora.
Creditos a:
http://ubuntuforums.org/showthread.php?t=2217553
viernes, 7 de diciembre de 2012
Solucion: Apache solo escucha sobre IPv6
Situación:
Apache solo funciona sobre IPv6
Troubleshoooting:
a) Para que escuche en IPv4:
- Editar el archivo /etc/apache2/ports.conf
- En la directiva Listen colocar por ejemplo:
Listen 192.168.1.10:80
Se pueden colocar varias directivas Listen. Tales como:
Listen 192.168.1.10:80
Listen 127.0.0.1:80
Para escuchar en todo IPv4 (cualquier IPv4 configurado en el server):
Listen 0.0.0.0:80
b) Para escuchar en IPv6:
- Editar el archivo /etc/apache2/ports.conf
- En la directiva Listen colocar <[direccionIPv6]:puerto>. Por ejemplo:
Listen [2001:db8::4]:80
Reiniciar apache..., por ejemplo: /etc/init.d/apache2 restart
Diagnóstico:
Para saber que servicios, a que direcciones IP escucha y que proceso esta asociado recomiendo utilizar el comando: netstat -pan
#netstat -pan | more
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 965/mysqld
tcp 0 0 127.0.0.1:587 0.0.0.0:* LISTEN 1020/sendmail: MTA:
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 1162/perl
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 8478/vsftpd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 816/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1020/sendmail: MTA:
tcp 0 0 192.168.1.10:22 192.168.1.2:57997 ESTABLISHED 19601/sshd: aacosta
tcp6 0 0 ::1:587 :::* LISTEN 1020/sendmail: MTA:
tcp6 0 0 :::80 :::* LISTEN 1134/apache2
tcp6 0 0 :::22 :::* LISTEN 816/sshd
En el extracto anterior la ultima linea indica que se está escuchando en todas las direcciones IPv6 (se puede comprender gracias a la culumna de la izquiera que indica tcp6 y luego en la cuarta columa indica ::22). El puerto está en estado listen por el proceso sshd y el pid 816
Para el primera linea se entiende que mysqld está escuchando en la dirección IPv4 127.0.0.1 en el puerto 3306 bajo el pid (process id) 965. Es decir, mysql no esta habilitado para escuchar conexiones de red (solo escucha localhost)
Mas información:
- http://serverfault.com/questions/332409/how-to-set-apache-virtualhost-to-work-with-ipv6- http://www.linuxweblog.com/blogs/sandip/20081027/forcing-apache-listen-ipv4
- http://www.linuxask.com/questions/limit-apache-only-listen-to-ipv4-address
Apache solo funciona sobre IPv6
Troubleshoooting:
a) Para que escuche en IPv4:
- Editar el archivo /etc/apache2/ports.conf
- En la directiva Listen colocar
Listen 192.168.1.10:80
Se pueden colocar varias directivas Listen. Tales como:
Listen 192.168.1.10:80
Listen 127.0.0.1:80
Para escuchar en todo IPv4 (cualquier IPv4 configurado en el server):
Listen 0.0.0.0:80
b) Para escuchar en IPv6:
- Editar el archivo /etc/apache2/ports.conf
- En la directiva Listen colocar <[direccionIPv6]:puerto>. Por ejemplo:
Listen [2001:db8::4]:80
Reiniciar apache..., por ejemplo: /etc/init.d/apache2 restart
Diagnóstico:
Para saber que servicios, a que direcciones IP escucha y que proceso esta asociado recomiendo utilizar el comando: netstat -pan
#netstat -pan | more
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 965/mysqld
tcp 0 0 127.0.0.1:587 0.0.0.0:* LISTEN 1020/sendmail: MTA:
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 1162/perl
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 8478/vsftpd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 816/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1020/sendmail: MTA:
tcp 0 0 192.168.1.10:22 192.168.1.2:57997 ESTABLISHED 19601/sshd: aacosta
tcp6 0 0 ::1:587 :::* LISTEN 1020/sendmail: MTA:
tcp6 0 0 :::80 :::* LISTEN 1134/apache2
tcp6 0 0 :::22 :::* LISTEN 816/sshd
En el extracto anterior la ultima linea indica que se está escuchando en todas las direcciones IPv6 (se puede comprender gracias a la culumna de la izquiera que indica tcp6 y luego en la cuarta columa indica ::22). El puerto está en estado listen por el proceso sshd y el pid 816
Para el primera linea se entiende que mysqld está escuchando en la dirección IPv4 127.0.0.1 en el puerto 3306 bajo el pid (process id) 965. Es decir, mysql no esta habilitado para escuchar conexiones de red (solo escucha localhost)
Mas información:
- http://serverfault.com/questions/332409/how-to-set-apache-virtualhost-to-work-with-ipv6- http://www.linuxweblog.com/blogs/sandip/20081027/forcing-apache-listen-ipv4
- http://www.linuxask.com/questions/limit-apache-only-listen-to-ipv4-address
jueves, 6 de septiembre de 2012
Tunel GRE entre Cisco y Linux + NAT
Introducción:
En el siguiente escenario se plantean dos oficinas conectadas mediante un tunel GRE. En la oficina "A" existe un router Cisco y en la oficina "B" un servidor Linux.
Objetivo:
Que la oficina "A" (la red con el router Cisco) salga a Internet (nateada) con el IP de la red de la oficina "B" (red con el servidor Linux)
Topologia:
Lado Cisco (Oficina A):
LAN: 192.168.56.6
WAN: 98.76.54.32
TUNNEL 0: 192.168.56.6
Lado Linux (Oficina B):
LAN: 192.168.1.200/24 (gre_if0)
WAN: 123.45.67.89 (Interfaz: venet0:0)
Pasos (lado equipo Linux):
1) Levantar el modulo GRE
#modprobe ip_gre
2) Crear la interfaz del tunel (llamada gre_if0). Puede tener cualquier nombre:
#ip tunnel add gre_if0 mode gre remote 98.76.54.32 local 123.45.67.89 ttl 255
3) Asignarle un IP a la interfaz recien creada (gre_if0)
#ip addr add 192.168.1.200/24 dev gre_if0
4) Levantar la interfaz del tunel (por defecto viene shutdown)
#ip link set gre_if0 up (Levantar la interfaz gre_if0)
5) Enrutar por el tunel aquellas rutas que sean necesarias, por ejemplo:
#route add -net 192.168.56.6 netmask 255.255.255.255 dev gre_if0
Pasos (lado Cisco)
!Creación de la interfaz tunel
interface Tunnel0
ip unnumbered FastEthernet0/0
tunnel source Vlan1
tunnel destination 123.45.67.89
!Configuración de la interfaz LAN
interface FastEthernet0/0
description **Conexion LAN**
ip address 192.168.56.6 255.255.255.252
duplex auto
speed auto
!La interfaz VLAN1 es la interfaz WAN
interface Vlan1
description **Conexion WAN**
ip address 98.76.54.32 255.255.255.248
!Hacer las rutas necesarias en el router
!para alcanzar la LAN de la oficina B
ip route 192.168.1.200 255.255.255.255 Tunnel0
PARA EL NAT (LADO LINUX):
1) Permitir routing en el equipo
# echo 1 > /proc/sys/net/ipv4/ip_forward
2) Que el servidor Linux sepa alcanzar la LAN de Oficina A
#route add -net 192.168.56.0 netmask 255.255.255.0 dev gre_if0
3) Realizar el NAT
# iptables -A POSTROUTING -t nat -s 192.168.56.0/24 -j SNAT --to 123.45.67.89
Notese que hubo que hacer Source NAT (SNAT). La explicación del motivo está indicada en el post: "Linux iptables, solucion al error: Warning: wierd character in interface"
Espero te sea útil,
En el siguiente escenario se plantean dos oficinas conectadas mediante un tunel GRE. En la oficina "A" existe un router Cisco y en la oficina "B" un servidor Linux.
Objetivo:
Que la oficina "A" (la red con el router Cisco) salga a Internet (nateada) con el IP de la red de la oficina "B" (red con el servidor Linux)
Topologia:
Lado Cisco (Oficina A):
LAN: 192.168.56.6
WAN: 98.76.54.32
TUNNEL 0: 192.168.56.6
Lado Linux (Oficina B):
LAN: 192.168.1.200/24 (gre_if0)
WAN: 123.45.67.89 (Interfaz: venet0:0)
Pasos (lado equipo Linux):
1) Levantar el modulo GRE
#modprobe ip_gre
2) Crear la interfaz del tunel (llamada gre_if0). Puede tener cualquier nombre:
#ip tunnel add gre_if0 mode gre remote 98.76.54.32 local 123.45.67.89 ttl 255
3) Asignarle un IP a la interfaz recien creada (gre_if0)
#ip addr add 192.168.1.200/24 dev gre_if0
4) Levantar la interfaz del tunel (por defecto viene shutdown)
#ip link set gre_if0 up (Levantar la interfaz gre_if0)
5) Enrutar por el tunel aquellas rutas que sean necesarias, por ejemplo:
#route add -net 192.168.56.6 netmask 255.255.255.255 dev gre_if0
Pasos (lado Cisco)
!Creación de la interfaz tunel
interface Tunnel0
ip unnumbered FastEthernet0/0
tunnel source Vlan1
tunnel destination 123.45.67.89
!Configuración de la interfaz LAN
interface FastEthernet0/0
description **Conexion LAN**
ip address 192.168.56.6 255.255.255.252
duplex auto
speed auto
!La interfaz VLAN1 es la interfaz WAN
interface Vlan1
description **Conexion WAN**
ip address 98.76.54.32 255.255.255.248
!Hacer las rutas necesarias en el router
!para alcanzar la LAN de la oficina B
ip route 192.168.1.200 255.255.255.255 Tunnel0
PARA EL NAT (LADO LINUX):
1) Permitir routing en el equipo
# echo 1 > /proc/sys/net/ipv4/ip_forward
2) Que el servidor Linux sepa alcanzar la LAN de Oficina A
#route add -net 192.168.56.0 netmask 255.255.255.0 dev gre_if0
3) Realizar el NAT
# iptables -A POSTROUTING -t nat -s 192.168.56.0/24 -j SNAT --to 123.45.67.89
Notese que hubo que hacer Source NAT (SNAT). La explicación del motivo está indicada en el post: "Linux iptables, solucion al error: Warning: wierd character in interface"
Espero te sea útil,
domingo, 2 de septiembre de 2012
Deshabilitar/bajar iptables en Linux
Introduccion:
En algunas ocasiones es necesario "bajar" o deshabilitar iptables en nuestro Linux, el procedimiento depende de la distribución de Linux que estes utilizando. Aquí te dejo los más conocidos.
1) Procedimiento si estas utilizando Redhat, Fedora core, Mandriva/Mandrake o Centos, solo debes ejecutar lo siguiente:
# service iptables save
# service iptables stop
# chkconfig iptables off
o
# /etc/init.d/iptables stop
2) Procedimiento para deshabilitar iptables en Debian o Ubuntu
a) Crea un script llamado fw.stop con el siguiente contenido:
#!/bin/sh
echo "Stopping firewall and allowing everyone..."
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
b) Dale permiso de ejecución a dicho script:
# chmod +x /root/fw.stop
o
# chmod 755 fw.stop
c) Puedes ejecutar el scritp con el siguiente comando:
# fw.stop
Mas info en:
http://sources68.com/linux-disable-remove-the-iptables-firewall-1fa67761.html
En algunas ocasiones es necesario "bajar" o deshabilitar iptables en nuestro Linux, el procedimiento depende de la distribución de Linux que estes utilizando. Aquí te dejo los más conocidos.
1) Procedimiento si estas utilizando Redhat, Fedora core, Mandriva/Mandrake o Centos, solo debes ejecutar lo siguiente:
# service iptables save
# service iptables stop
# chkconfig iptables off
o
# /etc/init.d/iptables stop
2) Procedimiento para deshabilitar iptables en Debian o Ubuntu
a) Crea un script llamado fw.stop con el siguiente contenido:
#!/bin/sh
echo "Stopping firewall and allowing everyone..."
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
b) Dale permiso de ejecución a dicho script:
# chmod +x /root/fw.stop
o
# chmod 755 fw.stop
c) Puedes ejecutar el scritp con el siguiente comando:
# fw.stop
Mas info en:
http://sources68.com/linux-disable-remove-the-iptables-firewall-1fa67761.html
jueves, 26 de abril de 2012
Completar el nombre de dominio en Linux
Introduccion:
Este es un post muy corto, sencillo pero muy útil.
El dia de hoy un amigo mio me preguntó como hacía para que su estación Linux completara el FQDN al momento de resolver un nombre, por ejemplo el quería escribir www y que su estación con linux buscara www.acostasite.com
Solución:
La solución es sumamente sencilla, lo unico que hay que hacer es editar el archivo /etc/resolv.conf y colocar el parametro domain dentro del mismo. Recordemos que este archivo es donde se especifican los servidores DNS que utilizará Linux
Por ejemplo, supongamos que yo deseo hacer ping a host blog dentro de blog.acostasite.com:
1) En /etc/resolv.conf debe haber algo como:
nameserver 8.8.8.8
domain acostasite.com
2) Posteriormente con solo hacer referencia a blog dentro un shell o en cualquier sitio del OS el mismo OS intentará ubicar el host blog, sino lo consigue colocará de manera automatica el sufijo acostasite.com
Ejemplo de la salida:
[root@localhost ~]# ping blog -n
PING cf-protected-blog.acostasite.com (173.245.61.138) 56(84) bytes of data.
64 bytes from 173.245.61.138: icmp_req=1 ttl=57 time=135 ms
64 bytes from 173.245.61.138: icmp_req=2 ttl=57 time=136 ms
64 bytes from 173.245.61.138: icmp_req=3 ttl=57 time=135 ms
64 bytes from 173.245.61.138: icmp_req=4 ttl=57 time=135 ms
Eso es todo!, espero sea útil,
Este es un post muy corto, sencillo pero muy útil.
El dia de hoy un amigo mio me preguntó como hacía para que su estación Linux completara el FQDN al momento de resolver un nombre, por ejemplo el quería escribir www y que su estación con linux buscara www.acostasite.com
Solución:
La solución es sumamente sencilla, lo unico que hay que hacer es editar el archivo /etc/resolv.conf y colocar el parametro domain dentro del mismo. Recordemos que este archivo es donde se especifican los servidores DNS que utilizará Linux
Por ejemplo, supongamos que yo deseo hacer ping a host blog dentro de blog.acostasite.com:
1) En /etc/resolv.conf debe haber algo como:
nameserver 8.8.8.8
domain acostasite.com
2) Posteriormente con solo hacer referencia a blog dentro un shell o en cualquier sitio del OS el mismo OS intentará ubicar el host blog, sino lo consigue colocará de manera automatica el sufijo acostasite.com
Ejemplo de la salida:
[root@localhost ~]# ping blog -n
PING cf-protected-blog.acostasite.com (173.245.61.138) 56(84) bytes of data.
64 bytes from 173.245.61.138: icmp_req=1 ttl=57 time=135 ms
64 bytes from 173.245.61.138: icmp_req=2 ttl=57 time=136 ms
64 bytes from 173.245.61.138: icmp_req=3 ttl=57 time=135 ms
64 bytes from 173.245.61.138: icmp_req=4 ttl=57 time=135 ms
Notese que en el ping yo solo escribí "blog" y el OS completó automaticamente acostasite.com (la opción "-n" solo evita el rdns de la respuesta)
Eso es todo!, espero sea útil,
miércoles, 17 de agosto de 2011
Crear un archivo de determinado tamaño en Linux
Hola todos, este es un post sencillo pero quizás muy util
Introduccion:
Deseo crear un archivo de un tamaño especifico en linux
Comando:
Para crear un archivo de..., digamos 5 Megabytes:
Formula:
(10*1024*1024=5242880 bytes). Esto quiere decir que 5 MB en bytes son: 5242880
El comando a ejecutar es:
$ dd if=/dev/zero of=archivo_5MB bs=5242880 count=1
Importante, si intentas utilizar el device if (input file) /dev/null NO SIRVE, el tamaño resultante del archivo será 0.
1+0 records in
1+0 records out
5242880 bytes (10 MB) copied, 0.392 s, 33.6 MB/s
Luego has un "ls -l" y revisa el tamaño del archivo.
Introduccion:
Deseo crear un archivo de un tamaño especifico en linux
Comando:
Para crear un archivo de..., digamos 5 Megabytes:
Formula:
(10*1024*1024=5242880 bytes). Esto quiere decir que 5 MB en bytes son: 5242880
El comando a ejecutar es:
$ dd if=/dev/zero of=archivo_5MB bs=5242880 count=1
Importante, si intentas utilizar el device if (input file) /dev/null NO SIRVE, el tamaño resultante del archivo será 0.
1+0 records in
1+0 records out
5242880 bytes (10 MB) copied, 0.392 s, 33.6 MB/s
Luego has un "ls -l" y revisa el tamaño del archivo.
lunes, 4 de julio de 2011
Solución: "Give root password for maintenance"
Problema:
Al intentar arrancar Linux recibo el mensaje:
Give root password for maintenance
(or type Control-D to continue):
Diagnostico:
El inconveniente es que existen errores en tu File System que no pudieron solucionarse automaticamente durante el arranque.
Solucion:
El mensaje hay que obligatoriamente colocar el password de root. Posteriormente uno de los siguientes comandos:
- Solucion automaticamente
fsck -vfy /dev/sda5
- Solucion interactiva
fsck -vf /dev/sda5
Espero este pequeno articulo haya sido util.
Suerte!
Al intentar arrancar Linux recibo el mensaje:
Give root password for maintenance
(or type Control-D to continue):
Diagnostico:
El inconveniente es que existen errores en tu File System que no pudieron solucionarse automaticamente durante el arranque.
Solucion:
El mensaje hay que obligatoriamente colocar el password de root. Posteriormente uno de los siguientes comandos:
- Solucion automaticamente
fsck -vfy /dev/sda5
- Solucion interactiva
fsck -vf /dev/sda5
Espero este pequeno articulo haya sido util.
Suerte!
miércoles, 3 de noviembre de 2010
Tunel GRE entre Cisco y Linux (Debian)
Situación:
Deseo crear un tunel GRE entre en un equipos Linux y un router Cisco
Procedimiento:
a) Del lado del linux:
Lo primero que hay que hacer es levantar el modulo ip_gre del lado del Linux:
#modprobe ip_gre
Luego,necesitamos definir ante todo, el nombre de la interfaz, y la dirección que este va a tener, en mi caso, decidi que la interfaz se llamara "Core2", y usare la dirección IP 7.7.7.0/30 (OJO, esta es una dirección IP PUBLICA!!!!!!, es conveniente usar direcciones IP privadas, ejm: 10.0.0.0/8, en mi caso, esto se monto en un laboratorio).
Ejecutamos los siguientes comandos
ip tunnel add Core2 mode gre local 8.8.8.1 remote 9.9.9.2 dev eth0
ip add ad dev Core2 7.7.7.1/32
ip link set dev Core2 up
Local hace referencia a la interfaz en nuestro linux (eth0 que tiene el IP 8.8.8.1) por donde sale el trafico, si manejamos una sola interfaz, en este caso usaríamos la dirección IP de la interfaz que tenemos configurado, si manejamos dos interfaces, es conveniente usar la interfaz por donde sabemos que el trafico hacia la otra punta del tunel va a salir. (usar un traceroute)
Remote hace referencia a la dirección IP del peer, esta tendría que ser la dirección contra la que vamos a levantar el tunnel
Ahora, vemos como queda la configuracion de la interfaz
#ifconfig Core2
Core2 Link encap:UNSPEC HWaddr C8-2F-97-7E-05-08-00-00-00-00-00-00-00-00-00-00
inet addr:7.7.7.1 P-t-P:7.7.7.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MTU:1476 Metric:1
RX packets:134 errors:0 dropped:0 overruns:0 frame:0
TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:11896 (11.6 KiB) TX bytes:3780 (3.6 KiB)
b) Del lado del equipo cisco , es un poco más sencillo,
GRE#conf t
Enter configuration commands, one per line. End with CNTL/Z.
GRE#int tunnel 100
GRE(config-if)#tunnel source 9.9.9.2
GRE(config-if)#tunnel destination 8.8.8.1
GRE(config-if)#ip address 7.7.7.2 255.255.255.252
Listo!!!
Veamos la configuracion
GRE#sh run in tu100
Building configuration...
Current configuration : 128 bytes
!
interface Tunnel100
ip address 7.7.7.2 255.255.255.252
tunnel source 9.9.9.2
tunnel destination 8.8.8.1
end
GRE#
Y listo Sres, ya tenemos nuestro Tunel levantado
GRE#sh int tunnel 100
Tunnel100 is up, line protocol is up
Hardware is Tunnel
Internet address is 7.7.7.2/30
MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation TUNNEL, loopback not set
Keepalive not set
Tunnel source 9.9.9.2, destination 8.8.8.1
Tunnel protocol/transport GRE/IP
Cabe destacar que la interfaz tunnel 100, usa por defecto un tunel modo GRE, asi que no hace falta definirlo.
Revisar:
Para probar conexión, un simple Ping podria darnos lo que buscamos
GRE#ping 7.7.7.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 7.7.7.1, timeout is 2 seconds:
!!!!!
Lab:/home/rollingpaper# tcpdump -i Core2 icmp
tcpdump: WARNING: arptype 778 not supported by libpcap - falling back to cooked socket
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on Core2, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
11:56:26.704400 IP 7.7.7.2 > 7.7.7.1: ICMP echo request, id 153, seq 0, length 80
11:56:26.708400 IP 7.7.7.2 > 7.7.7.1: ICMP echo request, id 153, seq 1, length 80
11:56:26.710648 IP 7.7.7.2 > 7.7.7.1: ICMP echo request, id 153, seq 2, length 80
11:56:26.712147 IP 7.7.7.2 > 7.7.7.1: ICMP echo request, id 153, seq 3, length 80
11:56:26.713897 IP 7.7.7.2 > 7.7.7.1: ICMP echo request, id 153, seq 4, length 80
Listo Sres, espero que haya sido de ayuda
Deseo crear un tunel GRE entre en un equipos Linux y un router Cisco
Procedimiento:
a) Del lado del linux:
Lo primero que hay que hacer es levantar el modulo ip_gre del lado del Linux:
#modprobe ip_gre
Luego,necesitamos definir ante todo, el nombre de la interfaz, y la dirección que este va a tener, en mi caso, decidi que la interfaz se llamara "Core2", y usare la dirección IP 7.7.7.0/30 (OJO, esta es una dirección IP PUBLICA!!!!!!, es conveniente usar direcciones IP privadas, ejm: 10.0.0.0/8, en mi caso, esto se monto en un laboratorio).
Ejecutamos los siguientes comandos
ip tunnel add Core2 mode gre local 8.8.8.1 remote 9.9.9.2 dev eth0
ip add ad dev Core2 7.7.7.1/32
ip link set dev Core2 up
Local hace referencia a la interfaz en nuestro linux (eth0 que tiene el IP 8.8.8.1) por donde sale el trafico, si manejamos una sola interfaz, en este caso usaríamos la dirección IP de la interfaz que tenemos configurado, si manejamos dos interfaces, es conveniente usar la interfaz por donde sabemos que el trafico hacia la otra punta del tunel va a salir. (usar un traceroute)
Remote hace referencia a la dirección IP del peer, esta tendría que ser la dirección contra la que vamos a levantar el tunnel
Ahora, vemos como queda la configuracion de la interfaz
#ifconfig Core2
Core2 Link encap:UNSPEC HWaddr C8-2F-97-7E-05-08-00-00-00-00-00-00-00-00-00-00
inet addr:7.7.7.1 P-t-P:7.7.7.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MTU:1476 Metric:1
RX packets:134 errors:0 dropped:0 overruns:0 frame:0
TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:11896 (11.6 KiB) TX bytes:3780 (3.6 KiB)
b) Del lado del equipo cisco , es un poco más sencillo,
GRE#conf t
Enter configuration commands, one per line. End with CNTL/Z.
GRE#int tunnel 100
GRE(config-if)#tunnel source 9.9.9.2
GRE(config-if)#tunnel destination 8.8.8.1
GRE(config-if)#ip address 7.7.7.2 255.255.255.252
Listo!!!
Veamos la configuracion
GRE#sh run in tu100
Building configuration...
Current configuration : 128 bytes
!
interface Tunnel100
ip address 7.7.7.2 255.255.255.252
tunnel source 9.9.9.2
tunnel destination 8.8.8.1
end
GRE#
Y listo Sres, ya tenemos nuestro Tunel levantado
GRE#sh int tunnel 100
Tunnel100 is up, line protocol is up
Hardware is Tunnel
Internet address is 7.7.7.2/30
MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation TUNNEL, loopback not set
Keepalive not set
Tunnel source 9.9.9.2, destination 8.8.8.1
Tunnel protocol/transport GRE/IP
Cabe destacar que la interfaz tunnel 100, usa por defecto un tunel modo GRE, asi que no hace falta definirlo.
Revisar:
Para probar conexión, un simple Ping podria darnos lo que buscamos
GRE#ping 7.7.7.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 7.7.7.1, timeout is 2 seconds:
!!!!!
Lab:/home/rollingpaper# tcpdump -i Core2 icmp
tcpdump: WARNING: arptype 778 not supported by libpcap - falling back to cooked socket
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on Core2, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
11:56:26.704400 IP 7.7.7.2 > 7.7.7.1: ICMP echo request, id 153, seq 0, length 80
11:56:26.708400 IP 7.7.7.2 > 7.7.7.1: ICMP echo request, id 153, seq 1, length 80
11:56:26.710648 IP 7.7.7.2 > 7.7.7.1: ICMP echo request, id 153, seq 2, length 80
11:56:26.712147 IP 7.7.7.2 > 7.7.7.1: ICMP echo request, id 153, seq 3, length 80
11:56:26.713897 IP 7.7.7.2 > 7.7.7.1: ICMP echo request, id 153, seq 4, length 80
Listo Sres, espero que haya sido de ayuda
viernes, 1 de octubre de 2010
Sendmail e IPv6. Hacer que sendmail escuche en IPv6
Problema:
Tengo un servidor de correo en Linux Debian con Sendmail, en IPv4 todo funciona bien pero no escucha conexiones en IPv6
Escenario:
Servidor Debian con Sendmail 8.14.3 e IPv6 configurado
Procedimiento:
Primero verificar que efectivamente Sendmail no escucha en IPv6. Por ejemplo:
#netstat -pan | grep sendmail
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2596/sendmail: MTA:
unix 2 [ ACC ] STREAM LISTENING 4198 1025/mysqld / var/run/mysqld/mysqld.sock
unix 2 [ ACC ] STREAM LISTENING 13539 2596/sendmail: MTA: / var/run/sendmail/mta/smcontrol
unix 2 [ ] DGRAM 13535 2596/sendmail: MTA:
En la salida anterior notamos que sendmail se encuentra escuchando solo sobre la red IPv4.
Solucion:
La solucion es indicarle al Sendmail que también levante sobre la familia Inet6. Para ello es necesario modificar el sendmail.mc para reconstruir el sendmail.cf y luego reiniciar el sendmail. Los pasos son los siguientes:
1) Editar el sendmail.mc y agregar las siguientes lineas:
DAEMON_OPTIONS(`Family=inet6, Name=MTA-v6, Port=smtp, Addr=DIRIPV6')dnl
DAEMON_OPTIONS(`Family=inet6, Name=MSP-v6, Port=submission, M=Ea, Addr=::1')dnl
OJO: Sustituir DIRIPV6 por tu dirección IPv6
2) Ejecutar sendmailconfig (para procedar el sendmail.mc con m4 y generar el .cf)
3) Luego de ejecutar el comando anterior lo siguiente es siempre indicarle que Y en las siguientes preguntas:
Configure sendmail with the existing /etc/mail/sendmail.conf? [Y] y
Configure sendmail with the existing /etc/mail/sendmail.mc? [Y] y
Reload the running sendmail now with the new configuration? [Y] y
Verificar:
Para verificar ejecuta el comando:
#netstat -pan | grep sendmail
Realiza un telnet de la siguiente manera:
#telnet ::1 25
debes recibir respuesta similar a:
Trying ::1...
Connected to ::1.
Escape character is '^]'.
220 ipv6.para.com ESMTP Sendmail 8.14.3/8.14.3/Debian-9.1ubuntu1; Fri, 1 Oct 20 10 11:52:48 -0430; (No UCE/UBE) logging access from: localhost(OK)-localhost [IPv6:::1]
Suerte, espero haya sido util.
Tengo un servidor de correo en Linux Debian con Sendmail, en IPv4 todo funciona bien pero no escucha conexiones en IPv6
Escenario:
Servidor Debian con Sendmail 8.14.3 e IPv6 configurado
Procedimiento:
Primero verificar que efectivamente Sendmail no escucha en IPv6. Por ejemplo:
#netstat -pan | grep sendmail
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2596/sendmail: MTA:
unix 2 [ ACC ] STREAM LISTENING 4198 1025/mysqld / var/run/mysqld/mysqld.sock
unix 2 [ ACC ] STREAM LISTENING 13539 2596/sendmail: MTA: / var/run/sendmail/mta/smcontrol
unix 2 [ ] DGRAM 13535 2596/sendmail: MTA:
En la salida anterior notamos que sendmail se encuentra escuchando solo sobre la red IPv4.
Solucion:
La solucion es indicarle al Sendmail que también levante sobre la familia Inet6. Para ello es necesario modificar el sendmail.mc para reconstruir el sendmail.cf y luego reiniciar el sendmail. Los pasos son los siguientes:
1) Editar el sendmail.mc y agregar las siguientes lineas:
DAEMON_OPTIONS(`Family=inet6, Name=MTA-v6, Port=smtp, Addr=DIRIPV6')dnl
DAEMON_OPTIONS(`Family=inet6, Name=MSP-v6, Port=submission, M=Ea, Addr=::1')dnl
OJO: Sustituir DIRIPV6 por tu dirección IPv6
2) Ejecutar sendmailconfig (para procedar el sendmail.mc con m4 y generar el .cf)
3) Luego de ejecutar el comando anterior lo siguiente es siempre indicarle que Y en las siguientes preguntas:
Configure sendmail with the existing /etc/mail/sendmail.conf? [Y] y
Configure sendmail with the existing /etc/mail/sendmail.mc? [Y] y
Reload the running sendmail now with the new configuration? [Y] y
Verificar:
Para verificar ejecuta el comando:
#netstat -pan | grep sendmail
Realiza un telnet de la siguiente manera:
#telnet ::1 25
debes recibir respuesta similar a:
Trying ::1...
Connected to ::1.
Escape character is '^]'.
220 ipv6.para.com ESMTP Sendmail 8.14.3/8.14.3/Debian-9.1ubuntu1; Fri, 1 Oct 20 10 11:52:48 -0430; (No UCE/UBE) logging access from: localhost(OK)-localhost [IPv6:::1]
Suerte, espero haya sido util.
Suscribirse a:
Entradas (Atom)
Una mejora práctica en el Transporte DNS sobre UDP en IPv6
Por Hugo Salgado y Alejandro Acosta Introducción y planteamiento del problema En el presente documento queremos discutir sobre un draft (bor...
-
Debido al crecimiento moderado que ha tenido el presente blog se me ocurrió añadir/integrar las estadisticas de google analytics a mi blog. ...
-
Introduccion: En algunas ocasiones es necesario "bajar" o deshabilitar iptables en nuestro Linux, el procedimiento depende de...
-
Saludos, Lo primero que debemos de hacer para quitar el stacking entre los switches es desconectar los cables Stack que los unen.... Es buen...