ipv6 是否禁用

ipv6 是否禁用

我尝试在 Ubuntu 14.04 上完全禁用 IPv6,具体方法如下:这个帖子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 的原因。相信我对此事的看法不会改变。

这是我在运行 ubuntu 16.04 的网络系统上抑制 IPv6 扩散的方法:

我不会描述我最初的尝试 - 例如在我的网络接口上忽略它,不接受或使用 iptables 转发它的微弱尝试(虽然我确实学到了关于 ipv6 和 iptables 的一个非常好的技巧)。如果你还没有做过这些事情,那么你不应该做我在这里的任何建议,恕我直言。

我发现有用的 URL(还有其他的,这些对我有用):

初始阶段:以用户 root 身份使用 sysctl 指令禁用它,创建/编辑(将 / 替换为“或”)/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 的本地进程不受任何 iptable 指令的“保护”,或被阻止接收 IPv6 流量,因为 iptables 仅影响/阻止 IPv4 流量。要防火墙 IPv6 流量,您需要设置另一个规则文件并通过以下方式加载它ip6tables。这是我使用的文件和加载命令:

  1. (以 root 身份)创建/编辑 /etc/ip6tables.up.rules 并添加以下内容:
    *filter
    :INPUT DROP [0:0]
    :FORWARD DROP [0:0]
    :OUTPUT DROP [0:0]
    COMMIT

  2. 加载
    sudo ip6tables-restore < /etc/ip6tables.up.rules

  3. 检查它的样子:
    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 中),在每个 Listen 指令后、每个端口前添加一个 IP 地址,以“:”分隔符分隔。例如:
    Listen 127.0.0.1:80

    Listen 127.0.0.1 443
  • tomcat/catalina:修改 /conf 下的 server.xml 文件,在每个连接器子句中添加一个地址指令,例如:
    < Connector
    port="6969"
    地址=“8.8.8.8”
    重定向端口="8443"
  • postfix:修改 /etc/postfix/main.cf 文件中 net_protocols 行,内容为:
    net_protocols = ipv4
  • bind9/named:找到你的 dns 配置文件(可能有几个,你自己决定)并添加监听-on-v6 { 无; };接近/之前/之后'聆听' 指令。我的是在 /etc/bind/named.conf 中,有些页面说要查找/将其添加到名为 named.conf.options 的文件中
  • cups(cupsd、cups-browserd):编辑 /etc/cups/cupsd.conf 并更改端口指令,如下所示(注意:买家要小心,您可能会喜欢 cups 给您带来的东西,如果是这样,您不会想把它搞砸的):
    端口 127.0.0.1:631
  • sshd:取决于安装的 ssh 服务器。我遇到了两种不同的方法来将其设置为仅列出 ipv4 地址。
    1. 编辑 /etc/ssh/sshd_config 并且只有1ListenAddress 指令并赋予其特定的 IPv4 地址“任何端口”0.0.0.0 值,例如:
      # ListenAddress ::
      ListenAddress 4.4.4.4
    2. 将 AddressFamily 指令设置为 inet (确保只启用一个 AddressFamily 指令)
      # AddressFamily any
      地址家庭网络
  • ntp:编辑 /etc/default/ntp 使 NTPD_OPTS 以-4,类似于:
    NTPD_OPTS='-4 -g'
  • rpcbind(rpc.statd、rpc.mountd):注释掉以 tcp6 或 udp6 开头的行
  • avahi-daemon:我找不到任何允许它的理由,而且它很容易就被清除了……apt-get purge avahi 守护进程
  • chrome-这个是通过UI控制的-以下URL是削弱其IPv6流量的关键: https://unix.stackexchange.com/questions/187294/chromium-browser-pepperflashplugin-opening-listening-ports-on-0-0-0-05353
    使用 chrome 导航到 URLchrome://flags/#device-discovery-notifications并使用选择列表选择“禁用”(或已禁用,记不清了)。禁用这个所谓的“设备发现”功能会关闭 mDNS 端口 5353/tcp 的监听。您需要重新启动 Chromium/Google Chrome 才能使此功能生效。

要使这些更改生效,请重新启动您的计算机。还有其他方法,但我实在是太累了,不想再详细阐述,重新启动要么会让您的计算机出现 IPv6 问题,要么会让您担心一系列新问题。

注意:知识就是力量,用双手就可以成为强大的武器。如果你按照我帖子中的任何内容操作,你将承担弄乱你的系统的所有责任。尽情享受吧

-厕所

相关内容