中国最完整的sysctl.conf优化方案

############################### net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
#############################
通过源路由 , 攻击者可以尝试到达内部IP地址 --包括RFC1918中的地址 , 所以
不接受源路由信息包可以防止你的内部网络被探测 。
#################################
net.inet.tcp.drop_synfin=1
###################################
安全参数 , 编译内核的时候加了options TCP_DROP_SYNFIN才可以用 , 可以阻止某些OS探测 。
##################################
kern.maxvnodes=8446
#################http://www.bsdlover.cn#########
vnode 是对文件或目录的一种内部表达 。因此 , 增加可以被操作系统利用的 vnode 数量将降低磁盘的 I/O 。
一般而言 , 这是由操作系统自行完成的 , 也不需要加以修改 。但在某些时候磁盘 I/O 会成为瓶颈 ,
而系统的 vnode 不足 , 则这一配置应被增加 。此时需要考虑是非活跃和空闲内存的数量 。
要查看当前在用的 vnode 数量:
# sysctl vfs.numvnodes
vfs.numvnodes: 91349
要查看最大可用的 vnode 数量:
# sysctl kern.maxvnodes
kern.maxvnodes: 100000
如果当前的 vnode 用量接近最大值 , 则将 kern.maxvnodes 值增大 1,000 可能是个好主意 。
您应继续查看 vfs.numvnodes 的数值 , 如果它再次攀升到接近最大值的程度 ,
仍需继续提高 kern.maxvnodes 。在 top(1) 中显示的内存用量应有显著变化 ,
更多内存会处于活跃 (active) 状态 。
####################################
kern.maxproc: 964
#################http://www.bsdlover.cn#########
Maximum number of processes
####################################
kern.maxprocperuid: 867
#################http://www.bsdlover.cn#########
Maximum processes allowed per userid
####################################
因为我的maxusers设置的是256 , 20 16*maxusers=4116 。
maxprocperuid至少要比maxproc少1 , 因为init(8) 这个系统程序绝对要保持在运作状态 。
我给它设置的2068 。
kern.maxfiles: 1928
#################http://www.bsdlover.cn#########
系统中支持最多同时开启的文件数量 , 如果你在运行数据库或大的很吃描述符的进程 , 那么应该设置在20000以上 ,
比如kde这样的桌面环境 , 它同时要用的文件非常多 。
一般推荐设置为32768或者65536 。
####################################
kern.argmax: 262144
#################http://www.bsdlover.cn#########
maximum number of bytes (or characters) in an argument list.
命令行下最多支持的参数 , 比如你在用find命令来批量删除一些文件的时候
find . -name "*.old" -delete , 如果文件数超过了这个数字 , 那么会提示你数字太多的 。
可以利用find . -name "*.old" -ok rm {} ;来删除 。
默认的参数已经足够多了 , 因此不建议再做修改 。
####################################
kern.securelevel: -1
#################http://www.bsdlover.cn#########
-1:这是系统默认级别 , 没有提供任何内核的保护错误;
0:基本上作用不多 , 当你的系统刚启动就是0级别的 , 当进入多用户模式的时候就自动变成1级了 。
1:在这个级别上 , 有如下几个限制:
a. 不能通过kldload或者kldunload加载或者卸载可加载内核模块;
b. 应用程序不能通过/dev/mem或者/dev/kmem直接写内存;
c. 不能直接往已经装在(mounted)的磁盘写东西 , 也就是不能格式化磁盘 , 但是可以通过标准的内核接口执行写操作;
d. 不能启动X-Windows , 同时不能使用chflags来修改文件属性;
2:在 1 级别的基础上还不能写没装载的磁盘 , 而且不能在1秒之内制造多次警告 , 这个是防止Dos控制台的;

推荐阅读