Home » Полезные советы » Отключаем ipv6 в приложениях

Отключаем ipv6 в приложениях

Надоело каждый раз вспоминать, как отключить ipv6 в том или ином приложении. Пока ipv6 у нас почти не используется, считаю, что его лучше отключать, чтобы не ловить лишние ошибки или проблемы с безопасностью. Буду вести эту шпаргалку для себя и остальных, если кому-то покажется полезным.

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужно пройти .

Как отключить ipv6

Я отдельно рассказывал, как отключить ipv6 в Centos 7. На деле, это почему-то не всегда помогает. Надежнее отключить ipv6 у конкретного приложения. Ниже идет пополняемый список приложений, для которых я буду отключать ipv6.

Для того, чтобы проверить, какой интерфейс слушает приложение, можно использовать команду netstat. Если у вас нет соответствующего приложения, ставится оно так:

# yum install net-tools

для Centos, или вот так для Debian и Ubuntu

# apt install net-tools

Проверяем, какие порты и протоколы используют наши приложения:

# netstat -tulnp

Видим, что у нас приложения ntp, ssh и zabbix-client слушают протокол ipv6. Дальше пойдет инструкция по отключению. После того, как у всех приложений отключите ipv6, должна получиться такая картинка:

Ntp

Дальше инструкция, как отключить ipv6 в ntp в системе Ubuntu 16. В файле /etc/default/ntp добавляем в параметры флаг -4:

NTPD_OPTS='-4 -g'

Перезапускаем ntp:

# systemctl restart ntp

Проверяем отключение ipv6 у ntp:

# netstat -tulnp | grep ntp

Chrony

Отключаем ipv6 в chrony в Centos 7. Редактируем конфиг /etc/sysconfig/chronyd.

OPTIONS="-4"

Перезапускаем chrony:

# systemctl restart chronyd

Проверяем, отключился ли ipv6 у chrony:

# netstat -tulnp | grep chronyd

Sshd

Рассказываю, как отключить ipv6 у ssh. В конфигурационном файле /etc/ssh/sshd_config указываем параметр:

ListenAddress 0.0.0.0

Перезапускаем sshd:

# systemctl restart sshd

Проверяем, отключили ли ipv6 у ssh:

# netstat -tulnp | grep ssh

Zabbix-agent

Выключаем ipv6 у агента zabbix. В конфигурационном файле /etc/zabbix/zabbix_agentd.conf указываем параметр:

ListenIP=0.0.0.0

Перезапускаем zabbix-agent:

# systemctl restart zabbix-agent

Проверяем:

# netstat -tulnp | grep zabbix-agent

Zabbix-server

Отключаем ipv6 в zabbix сервере. В конфигурационном файле /etc/zabbix/zabbix_server.conf указываем параметр:

ListenIP=0.0.0.0

Перезапускаем zabbix-server:

# systemctl restart zabbix-server

Проверяем:

# netstat -tulnp | grep zabbix-server

Apache

Рассказываю, как отключить ipv6 у web сервера apache. В основном конфиге указываем параметр:

Listen 0.0.0.0:80

Перезапускаем apache:

# apachectl restart

Смотрим, отключили ipv6 у apache или нет. Если у вас Centos, то служба зовется httpd.

# netstat -tulnp | grep httpd

Если Debian/Ubuntu, то apache.

# netstat -tulnp | grep apache

Postfix

Отключаем ipv6 в postfix. Меняем в конфиге /etc/postfix/main.cf

inet_protocols = ipv4

Перезапускаем postfix:

# systemctl restart postfix

Проверяем отключение ipv6:

# netstat -tulnp | grep master

Rsync

Отключаем ipv6 в rsync в CentOS 7. В конфигурационном файле /etc/sysconfig/rsyncd указываем параметр:

OPTIONS="-4"

Перезапускаем rsyncd:

# systemctl restart rsyncd

Проверяем, отключился ли ipv6 в rsync:

# netstat -tulnp | grep rsync

Mysql

Рассказываю, как отключить ipv6 в mysql server. В конфигурационный файл добавляем в секцию [mysqld] параметр:

bind-address = 127.0.0.1

Для того, чтобы слушать только локальный интерфейс или параметр:

bind-address = 0.0.0.0

Чтобы слушать все ipv4 адреса на сервере. Для применения настроек по отключению ipv6 в mysql сервере, перезапустите его:

# systemctl restart mysql

или

# systemctl restart mariadb

 

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Что даст вам этот курс:
  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.
Проверьте себя на вступительном тесте и смотрите подробнее программу по .

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

6 комментариев

  1. Аватар

    Для глобального отключения нужно в /etc/default/grub в строку GRUB_CMDLINE_LINUX добавить ipv6.disable=1
    После этого выполнить в CentOS — grub2-mkconfig -o /boot/grub2/grub.cfg,
    в Debian — grub-mkconfig -o /boot/grub/grub.cfg.
    Ну, и перезагрузить машину.

    • Zerox

      Спасибо за информацию, попробую. До grub никогда руки не доходили. Не хочется туда лазить без крайней необходимости. А в самой системе надежно и гарантированно отключить не получается.

  2. Аватар

    Почему-бы просто не настроить файерволл на непропуск IPv6-трафика, раз у Вас он почти не используется?
    Ну или не отключить сам протокол, как это делается в Винде?

    • Zerox

      Можно настроить firewall и закрыть ipv6. Но лично я не сторонник лишних сущностей. Если ipv6 не нужно, то зачем мне лишние правила в фаерволе? К тому же его может вообще не быть в некоторых случаях. Считаю более логичным отключить его в приложении.

      В Centos по какой-то причине у меня не получается полностью отключить ipv6. Я не изучал подробно вопрос, но почему-то стандартных вещей в sysctl.conf

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

      и в /etc/sysconfig/network

      NETWORKING_IPV6=no
      IPV6INIT=no

      оказывается недостаточно.

  3. Аватар
    aaaaaaaaaaaaa

    Зачем ставить netstat, когда из коробки есть ss, который является его потомком

    • Zerox

      Предлагаю ввести в консоли две команды и сравнить вывод:
      netstat -tulnp
      ss -tulnp
      Думаю, после этого не будет вопроса, зачем использовать netstat.

Добавить комментарий

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.