Ipv6 отключен или нет
Я пытался полностью отключить IPv6 на моем Ubuntu 14.04 в соответствии с этим постом Но netstat показывает, что он используется. Зачем?
~ > sudo sysctl -p|grep ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
~ > cat /proc/sys/net/ipv6/conf/all/disable_ipv6
1
~ > sudo netstat -tpln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 786/rpcbind
tcp 0 0 0.0.0.0:51413 0.0.0.0:* LISTEN 1682/transmission-g
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 1679/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1129/sshd
tcp 0 0 0.0.0.0:17500 0.0.0.0:* LISTEN 4601/dropbox
tcp 0 0 127.0.0.1:17600 0.0.0.0:* LISTEN 4601/dropbox
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 1278/zabbix_agentd
tcp 0 0 127.0.0.1:17603 0.0.0.0:* LISTEN 4601/dropbox
tcp 0 0 0.0.0.0:44326 0.0.0.0:* LISTEN 4541/skype
tcp 0 0 0.0.0.0:57767 0.0.0.0:* LISTEN 802/rpc.statd
tcp6 0 0 :::111 :::* LISTEN 786/rpcbind
tcp6 0 0 :::51413 :::* LISTEN 1682/transmission-g
tcp6 0 0 :::22 :::* LISTEN 1129/sshd
tcp6 0 0 :::17500 :::* LISTEN 4601/dropbox
tcp6 0 0 :::52253 :::* LISTEN 802/rpc.statd
tcp6 0 0 :::10050 :::* LISTEN 1278/zabbix_agentd
1 ответ
Хорошо - абсолютно НЕ сетевой эксперт, и мне все равно, согласны ли вы или даже знаете, причину моей полной, полной и абсолютной неприязни к ipv6. Поверьте, что мои чувства по этому поводу не изменятся.
Вот как я справился с распространением ipv6 в своих сетевых системах под управлением Ubuntu 16.04:
Я не собираюсь описывать свои первоначальные попытки - такие как игнорирование его на моих сетевых интерфейсах, слабые попытки не принять или переслать его с помощью iptables (хотя я действительно получил ОЧЕНЬ хороший совет относительно ipv6 и iptables). Если вы еще не сделали эти вещи, то вам не следует делать какие-либо из моих предложений здесь IMSHO.
URL-адреса, которые я нашел полезными (есть и другие, они сработали для меня):
- http://www.neuraldump.com/2016/11/how-to-disable-ipv6-in-ubuntu-16-04-xenial-xerus/
- http://mindref.blogspot.com/2010/12/debian-disable-ipv6_22.html
- http://crashmag.net/disable-ipv6-lookups-with-bind-on-rhel-or-centos
Начальный проход: отключите его, используя директивы sysctl в качестве пользователя root, создайте / отредактируйте (замените / на 'или') /etc/sysctl.d/99-idontlikeipv6.conf, добавив следующие строки:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Сохраните файл и перезапустите procps:
sudo service procps reload
Далее по спирали... (и почему iptables просто не в порядке)
Прослушивание сокетов IPv6 и Linux (или как узнать, есть ли у вас проблемы), большинство людей, обеспокоенных безопасностью, как минимум, используют какой-то брандмауэр. Я сделал это и подумал, что iptables - лучшая вещь для защиты процессов без лишних затрат.
Затем я узнал, что локальные процессы, которые связываются с IPv4 и IPv6, не "защищены" и не защищены от получения трафика IPv6 ЛЮБЫМИ директивами iptable, поскольку iptables влияет только на / блокирует трафик IPv4. Для брандмауэра трафика IPv6 вам нужно настроить другой файл правил и загрузить его через ip6tables. Это файл и команды загрузки, которые я использовал:
(как root) создайте / отредактируйте /etc/ip6tables.up.rules и добавьте следующее:
*фильтр
: INPUT DROP [0: 0]
: FORWARD DROP [0: 0]
: OUTPUT DROP [0: 0]
COMMITзагрузить его
sudo ip6tables-restoreпроверьте как это выглядит:
netstat -atunp
Это покажет вам любые процессы, слушающие на вашем локальном компьютере - вы хотите искать строки tcp6 и udp6. Вы можете отфильтровать вывод netstat в эти строки с помощью:
netstat -atunp | egrep "tcp6|udp6"
Когда я сделал это, я увидел такие вещи, как:
tcp6 0 0 :::10000 :::* LISTEN 2353/perl
tcp6 0 0 :::113 :::* LISTEN 1399/oidentd
tcp6 0 0 :::631 :::* LISTEN 6620/cupsd
tcp6 0 0 :::17500 :::* LISTEN 6834/dropbox
udp6 0 0 :::5353 :::* 7160/chrome
udp6 0 0 :::5353 :::* 1120/avahi-daemon:
udp6 0 0 :::57956 :::* 1120/avahi-daemon:
наряду с другими. В остальном вот как я от них (некоторых) избавился:
Посмотрите на netstat, чтобы увидеть, как вы делаете. У меня все еще было много вещей, слушающих трафик IPv6. Такие процессы, как tomcat, apache2, rpcbind, cupsd, chrome... список продолжался некоторое время. Отключение каждого из них потребовало небольшого изучения и работы. Я постараюсь быть кратким.
- apache2: измените файл apache ports.conf (мой был в /etc/apache2), добавив IP-адрес после каждой директивы Listen, перед каждым портом, разделитель ':'. Например:
Слушать 127.0.0.1:80
Слушать 127.0.0.1 443 - tomcat / catalina: измените файл server.xml в / conf, добавив адресную директиву в каждое предложение соединителя, например:
<Соединитель
порт ="6969"
адрес = "8.8.8.8"
redirectPort = "8443" - postfix: измените строку файла /etc/postfix/main.cf для net_protocols следующим образом:
net_protocols = ipv4 - bind9 / named: найдите свой конфигурационный файл dns (может быть несколько, вы сами здесь) и добавьте listen-on-v6 {none; }; близко к / до / после директивы listen-on. Мой был в /etc/bind/named.conf, на некоторых страницах было сказано посмотреть / добавить его в файл named.conf.options
- cups (cupsd, cups-browserd): отредактируйте /etc/cups/cupsd.conf и измените директиву порта следующим образом (ПРИМЕЧАНИЕ: покупатель остерегается, вам могут понравиться чашки, если вы не захотите его испортить)):
Порт 127.0.0.1:631 - sshd: зависит от установленного сервера ssh. Я столкнулся с двумя различными способами, чтобы установить это только в списке адресов IPv4.
- отредактируйте / etc / ssh / sshd_config и используйте только 1 директиву ListenAddress и присвойте ей конкретный адрес IPv4 значение "любой порт" 0.0.0.0, например:
# ListenAddress::
ListenAddress 4.4.4.4 - Установите директиву AddressFamily на inet (убедитесь, что включена только одна директива AddressFamily)
# AddressFamily any
AddressFamily inet
- отредактируйте / etc / ssh / sshd_config и используйте только 1 директиву ListenAddress и присвойте ей конкретный адрес IPv4 значение "любой порт" 0.0.0.0, например:
- ntp: отредактируйте / etc / default / ntp, чтобы NTPD_OPTS начинался с -4, аналогично:
NTPD_OPTS = '- 4 -g' - rpcbind (rpc.statd, rpc.mountd): закомментируйте строки, начинающиеся с tcp6 или udp6
- avahi-daemon: я не мог найти причину, чтобы позволить это, и он очень легко удалялся... apt-get purge avahi-daemon
- chrome - этот контролировался через пользовательский интерфейс - следующий URL-адрес был ключевым для предотвращения его трафика IPv6: https://unix.stackexchange.com/questions/187294/chromium-browser-pepperflashplugin-opening-listening-ports-on-0-0-0-05353
используйте chrome для перехода к URL-адресу chrome://flags/#device-discovery-notifications и используйте список выбора, чтобы выбрать "отключить" (или отключить, не помню). Отключение этой так называемой функции "обнаружения устройств" отключает прослушивание порта mDNS 5353/tcp. Вам нужно перезапустить Chromium / Google Chrome, чтобы это вступило в силу.
Чтобы эти изменения вступили в силу, перезагрузите компьютер. Есть и другие способы, но я слишком устал, чтобы вдаваться в подробности, и перезагрузка либо даст вам машину с присосками и паттерами IPv6 - ИЛИ это создаст вам целый ряд новых проблем, о которых нужно беспокоиться.
ПРИМЕЧАНИЕ: Знание - это сила, а руками оно может быть мощным оружием. Вы берете на себя всю ответственность за исправление ваших систем, следуя любой из вещей в моем посте. Njoy
-Туалет