Centos: Como desactivar la IPv6 en distintas versiones

CentOS 7 / RHEL 7

Comprobar si IPv6 está activado

Antes de hacerlo verificamos si en verdad esta activada o no:

# ip addr show | grep net6
# ifconfig -a | grep inet6
inet6 fe80::211:aff:fe6a:9de4 prefixlen 64 scopeid 0x20
inet6 ::1 prefixlen 128 scopeid 0x10[host]

Método 1: Desactivandolo en el Kernel (Requiere Reiniciar)

1. Editamos el archivo Grub y agregamos en la Variable “GRUB_CMDLINE_LINUX” lo siguiente:

ipv6.disable=1

Quedando así:

cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="ipv6.disable=1 crashkernel=auto rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

2. Recreamos el Grub con los nuevos cambios, y reemplazamos en caso de que exista:

grub2-mkconfig -o /boot/grub2/grub.cfg

3. Reiniciamos

shutdown -r now

4. Comprobamos que ya no aparece a línea “Inet6” (con el comando de más arriba)

Método 2: Usando Sysctl (Sin Reiniciar)

1. Agregamos las siguientes líneas al archivo “/etc/sysctl.conf” :

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

Nota: En caso que quieras desactivar SOLO para una interfaz de red especifica y no en todas podrías usar:

net.ipv6.conf.[interfaz].disable_ipv6 ### Aqui pones el nombre de la interfaz
net.ipv6.conf.default.disable_ipv6 = 1

2. Procesamos los cambios en el Sysctl:

sysctl -p

Adicional: “Evitar SSH XForwarding”

Al hacer estos cambios debemos de estar seguros que nuestro archivo “/etc/ssh/sshd_config” contiene la siguiente línea para evitar errores de SSH XForwarding:

vi /etc/ssh/sshd_config
...
AddressFamily inet
...

Reiniciamos el Servicio de SSH:

systemctl restart sshd

CentOS 6 / RHEL 6

Comprobar si IPv6 está activado

ifconfig |grep inet6
inet6 addr: fe80::d6be:d9ff:fe99:5a77/64 Scope:Link
inet6 addr: fe80::d6be:d9ff:fe99:5a77/64 Scope:Link

Método 1: Editando ipv6.conf (Requiere Reiniciar)

1. Creamos el archivo “/etc/modprobe.d/ipv6.conf” en caso de que no exista y le agregamos la siguiente línea:

options ipv6 disable=1

2. Desactivamos el servicio de IPtables para IPv6

chkconfig ip6tables off

3. Reiniciamos

shutdown -r now

4. Comprobamos que ya no aparece a línea “Inet6” (con el comando de más arriba)

Método 2: Editando Sysctl (Sin Reiniciar)

1. Ejecutamos uno de estos 2 bloques:

sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1

o este:

echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6

2. Vemos si las lineas se agregaron al archivo /etc/sysctl.conf

vi /etc/sysctl.conf
...
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
...


3. Procesamos los cambios en el Sysctl:

sysctl -p

Método 3 (Aun sin probar)

Encontre otro metodo que tambien podrian probar en caso los otros no funcionen, les aviso que este método aun no lo pruebo por mi mismo porque los otros si me han funcionado.

1. Agregar las siguientes líneas en los siguientes archivos:

vi /etc/modprobe.d/modprobe.conf
options ipv6 disable=1
alias net-pf-10 off
alias ipv6 off
install ipv6 /bin/true
vi /etc/sysconfig/network
NETWORKING_IPV6=no
IPV6INIT=no

X: es el número de NIC (0-1-2-etc)

vi /etc/sysconfig/network-scripts/ifcfg-ethx
IPV6INIT=no

2. Desactivamos el servicio de IPtables para IPv6

chkconfig ip6tables off

3. Comprobamos que ya no aparece a línea “Inet6” (con el comando de más arriba)

Adicional: “Evitar SSH Xforwarding”

Si tenemos varias interfaces de red (Multiple NIC) en distintas Subnets debemos realizar unos cambio adicionales para solucionar un Bug de Routing en Centos 6.x . Mas info sobre el bug aqui

En el archivo /etc/sysctl.conf cambiar la el valor de la siguiente linea de 1 a 2.

net.ipv4.conf.default.rp_filter = 2 ### Por defecto era 1