再做编译内核及调整服务器性能

来源:岁月联盟 编辑:zhu 时间:2008-01-18
再做编译内核及调整服务器性能内容简介:【FreeBSD教程】 ( 调整于2006.3.10) 现象 : 代理服务器开到半天 ( 从昨日 20:30 到今日 14:30), 内存占用已上 70%. 偶然有卡的现象 , 检查发现有一些其它无关的服务开着 . 分析 : 该机子并不是直接做 MINI 后配   【FreeBSD教程】(调整于2006.3.10)

现象:

代理服务器开到半天(从昨日20:30到今日14:30),内存占用已上70%.偶然有卡的现象,检查发现有一些其它无关的服务开着.

分析:

该机子并不是直接做MINI后配置成代理服务器的,前面做过MAIL SERVER的配置及调试.加载过不少的程序及打开相应进程.

需修改些参数以期能提高服务器性能及安全.

处理:

1.先是做了postfix,mailscanner等软件的卸载,并将其所属目录一并删除,但保留了apache22,php,mysql等软件.

2.对代理服务器又做了一次内核的编译(ee /usr/src/sys/i386/conf/my_proxy),将用不到的网卡支持,以及其它一些内容,全部注释掉了,然后做

# config my_pro

# cd ../compile/my_pro

# make cleandepend

# make depend

# make

# make install

因为是远程操作,担心存在不确定性,随即到了办公室,却发现用户不能登录,检查发现,外网网卡系统可以识别,但内网两块网卡均未被识别(ifconfig命令查看结果),再次编辑内核文档my_pro后,再重复上述步骤重新编译,重启后问题消失,两个网段均可以正常通过代理服务器上网了.

3.系统优化

参照:网上一文,在博客中有.其中蓝色部分为新加入.

修改的文档有:

(1)/etc/sysctl.conf

net.inet.ip.forwarding=1

net.inet.tcp.blackhole=2

net.inet.udp.blackhole=1

net.inet.ip.portrange.first=25000

net.inet.ip.portrange.last=49151

net.inet.tcp.recvspace=65535

net.inet.tcp.sendspace=65535

security.bsd.see_other_uids=0

kern.ipc.maxsockbuf=8388608

kern.ipc.shm_use_phys=1

kern.ipc.shmmax=67108864

kern.ipc.shmall=32768

net.local.stream.sendspace=65536

net.local.stream.recvspace=65536

net.inet.tcp.inflight_enable=1

(2)/etc/rc.conf

background_dhclient="YES"

clear_tmp_enable="YES"

tcp_entensions="YES"

accounting_enable="YES"

这句lastcomm为命令.

(3)/boot/loader.conf

原文档为空.

authboot_delay="2"

hw.ata.atapi_dma=1

kern.pic.maxsockets="16384"

net.inet.tcp.tcbhashsize="2048"

#beastie_disable="YES"

(4)chen用户的环境变量./cshrc

加入:

alias ls ls -GF
## 彩色化ls
setenv EDITOR ee
## 默认编辑器为ee
setenv PAGER less
## 默认分页器为less,比more要方便。
set nobeep
set prompt = '%n@%/%# '
set filec
set autolist
##
非凡注重最后一行。
 

(5) 禁止一般用户查看系统日志
# chmod g-w,o-r /var/log/*
# chmod 600 /etc/syslog.conf
# chmod 600 /etc/newsyslog.conf

(6) 为了防止cracker利用rootkit工具通过后门进入系统,对/bin,/sbin进行安全保护
# chflags schg /bin/*
# chflags schg /sbin/*

(7) 把系统的核心的运行层次设置为最安全的层次
# sysctl -w kern.securelevel=2

(8) 打开磁盘配额

以下方法未使用
# vi /etc/rc.conf
enable_quotas="YES"
check_quotas="YES"
禁止一般用户使用crontab,建立/etc/cron/allow文件把需要使用的用户放进去
# echo root > /var/cron/allow
# chmod 600 /var/cron/allow

4.安装软件实现流量及系统的监控

(1)安装并配置mrtg

此篇根据BSD版块剑心版主写的一篇关于mrtg配置的贴子修改后实现.

首先安装 snmp
cd /usr/ports/net-mgmt/p5-SNMP
make install clean
当中会叫你填写你的email、操作系统等等,直接回车即可。
可以用以下命令启动snmp,/usr/local/etc/rc.d/snmpd.sh start
接下来安装 mrtg
cd /usr/ports/net-mgmt/mrtg
make install clean


配置:

用index.cfg文件监控服务器流量
/usr/local/bin/cfgmaker --output=/usr/www/mrtg/index.cfg public@192.168.1.1
WorkDir: /usr/www/mrtg
Options[_]: growright, bits
Language:GB2312
crontab -e
*/5 * * * * /usr/local/bin/mrtg /usr/www/mrtg/index.cfg

下面接着:
/usr/local/bin/mrtg /usr/www/mrtg/index.cfg
这个需要运行3次,前两次都会报错,不用去理会他,第3次就应该没有错误了,不过,
若是有问题的话,就需要改index.cfg,再执行直到没有错误发生为止。
制作首页index.html:
/usr/local/bin/indexmaker --output=/usr/www/mrtg/index.html /usr/www/mrtg/index.cfg
这样以后就可以通过:http://******/mrtg/index.html看你的代理的流量了,注重此处是以你的apache主目录设置为/usr/www来说的,你可以根据实际情况修改。

这里,在防火墙的脚本中加入了内网可以进行http访问,外网拒绝.

(2)安装PhpSysInfo

cd /usr/ports/www/phpSysInfo
make install clean
cd /usr/local/www/data-dist/phpSysInfo
cp config.php.new config.php

截图如下所示:

重启后,内存占用降到20%以后,观察6个小时,差不多都是保持在20%左右了.这块工作还待进一步的观察和收集资料,寻找规律,微调代理服务器的配置,以求提高其性能.制定基线,及时编写文档.

图片内容