首页 > 代码库 > 简述sysctl和利用sysctl禁用ipv6模块

简述sysctl和利用sysctl禁用ipv6模块

   目前在大部分的实际生产环境中ipv6并没有被大规模使用,所以在很多的服务器上ipv6的模块的开启往往会带来很多安全隐患和麻烦,那么我们就需要禁用掉ipv6的模块,以前只是利用ip6tables来关闭ipv6的进出策略(可参看http://jim123.blog.51cto.com/4763600/1844094),但是在内核上常常还会有ipv6的影响,这个才平时分析日志的时候还是会发现,这个时候就可以利用sysctl命令来修改用于在内核运行时动态地修改内核的运行参数,不得不说sysctl是一个很强大的工具,它可以修改上百个系统变量,当然使用的系统版本不一样支持修改的系统变量的个数也不一样,而sysctl使用参数也很简单:

variable:要读取的系统变量的名称
variable=value:设置内核参数对应的变量值,通常是0和1,其中1 来表示‘yes‘,用 0 来表示‘no‘,即布尔型
-n:打印值时不打印关键字;
-e:忽略未知关键字错误;
-N:仅打印名称;
-w:当改变sysctl设置时使用此项;
-p:从配置文件“/etc/sysctl.conf”加载内核参数设置;
-a:打印当前所有可用的内核参数变量和值;
-A:以表格方式打印当前所有可用的内核参数变量和值。

系统中关于ipv6的变量有200多个:

[root@bogon ~]# sysctl -a|grep -i ‘ipv6‘|wc -l
209

查找ipv6的disable的变量,全部开启就可以了

[root@bogon ~]# sysctl -a|grep -i ‘ipv6‘|grep ‘disable‘
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1
net.ipv6.conf.pan0.disable_ipv6 = 1
#事实上只要修改net.ipv6.conf.all.disable_ipv6和net.ipv6.conf.default.disable_ipv6就可以了,其他都是相关联的变量

可以通过编辑/etc/sysctl.conf然后再 sysctl -p使变量生效

本文出自 “技术随笔” 博客,请务必保留此出处http://jim123.blog.51cto.com/4763600/1881556

简述sysctl和利用sysctl禁用ipv6模块