$hots = array('8213'=> 0,'8212'=> 100,'8172'=> 10008);
$key = array_search(max($hots),$hots);
echo $key;//8172
Submitted by admin on 2013, April 1, 3:47 PM
$hots = array('8213'=> 0,'8212'=> 100,'8172'=> 10008);
$key = array_search(max($hots),$hots);
echo $key;//8172
Submitted by admin on 2013, March 31, 1:12 PM
net.ipv4.netfilter.ip_conntrack_max = 655350
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 600
改为
net.netfilter.nf_conntrack_max = 655350
net.netfilter.nf_conntrack_tcp_timeout_established = 600
> grep ip_conntrack /proc/slabinfoip_conntrack 38358 64324 304 13 1 : tunables 54 27 8 : slabdata 4948 4948 216 其中各个数字的含义为:38358 the number of currently active objects
64324 the total number of available objects
304 the size of each object in bytes
13 the number of pages with at least one active object
查出目前 ip_conntrack 记录最多的前十名 IP
cat /proc/net/ip_conntrack | cut -d ' ' -f 10 | cut -d '=' -f 2 | sort |
http://wiki.khnet.info/index.php/Conntrack_tuning
Submitted by admin on 2013, March 30, 8:48 PM
http://www.webta.org/projects/apachetop/
Apachetop is a curses-based top-like display for Apache information, including requests per second, bytes per second, most popular URLs, etc.
Apachetop watches a logfile generated by Apache (in standard common or combined logformat, although it doesn't (yet) make use of any of the extra fields in combined) and generates human-parsable output in realtime.
安装很简单
#yum -y install readline-devel
# wget http://www.webta.org/apachetop/apachetop-0.12.6.tar.gz
# tar xzvf apachetop-0.12.6.tar.gz
# cd apachetop-0.12.6
# ./configure
# make
# make install
分析查看日志的时候
apachetop -f access.log
下面是用法说明:
当执行之后,还有命令可以切换显示状态:
Submitted by admin on 2013, March 27, 9:42 AM
Submitted by admin on 2013, March 27, 9:42 AM
denyhosts.cfg配置文件说明:(从网上找的,参考下) denyhost的安装方法有好几种,在启动时候出现提示错误,启动失败问题汇总如下,大家可以参考处理。 今天查看了一下系统的失败登陆记录 ,几分钟都没有显示完毕,不是吧,世界上总是有那么多的闲得蛋疼的人呢?你怎么不去死呢? 启动 设置自动启动 BLOCK_SERVICE = sshd #禁止的服务名,同样也可以是ftp,smtp等等 DAEMON_PURGE = 1m #预设清除 启动时出现了错误,可以使用下面方式解决 #service denyhost start 在运行还会提示错误:导入Python版本错误的提示。如: 分析后发现原因在此:以前本机已经有一个python2.4的版本,使用rpm安装的,默认的路径是/usr/lib/python2.4,因为要升级python到2.5,也没有对卸载这个2.4的版本,使用编译安装的python2.5,安装路径并没有配置,这默认安装到/usr/local/lib/python2.5这个路径,而目前激活的python环境是2.5的,可能因为denyhosts安装时会根据环境查找安装,因此会在/usr/local/lib/python2.5/site-packages路径下安装Denyhosts这个文件夹。当运行denyhosts时,脚本会指定使用的是/usr/lib/python*这个路径的python里(暂时没找到脚本哪个地方指定),因此它无法定位python的版本,会出现这个错误。
使用
grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' /var/log/secure.1 | sort | uniq -c
统计里一下,哎,居然尝试N次!看来世界需要清静了!使用手工解决已经无法适应别人的暴力扫描了,我们也人工智能一下哈哈,使用denyhosts软件保护你的ssh吧
开始安装 CentOS 5.5, DenyHosts 2.5
cd /usr/local/src
wget ttp://mesh.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.5.tar.gz
tar -zxvf DenyHosts-2.5.tar.gz
cd DenyHosts-2.5
python setup.py install
默认安装到/usr/share/denyhosts/目录
cd /usr/share/denyhosts/
cp denyhosts.cfg-dist denyhosts.cfg
vi denyhosts.cfg
根据自己需要进行相应的配置
配置文件说明
SECURE_LOG = /var/log/secure
#ssh 日志文件,它是根据这个文件来判断的。
HOSTS_DENY = /etc/hosts.deny
#控制用户登陆的文件
PURGE_DENY = 5m
#过多久后清除已经禁止的
BLOCK_SERVICE = sshd
#禁止的服务名
DENY_THRESHOLD_INVALID = 1
#允许无效用户失败的次数
DENY_THRESHOLD_VALID = 10
#允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 5
#允许root登陆失败的次数
HOSTNAME_LOOKUP=NO
#是否做域名反解
ADMIN_EMAIL = www.yes81.net
件地址,它会给管理员发邮件
DAEMON_LOG = /var/log/denyhosts
#自己的日志文件
cp daemon-control-dist daemon-control
vi daemon-control
参考:
DENYHOSTS_BIN = "/usr/bin/denyhosts.py"
DENYHOSTS_LOCK = "/var/lock/subsys/denyhosts" //启动的pid文件
DENYHOSTS_CFG = "/usr/share/denyhosts/denyhosts.cfg" //配置文件
chmod 700 daemon-control
./daemon-control start
设置自启动:
vi /etc/rc.local
加入
/usr/share/denyhosts/daemon-control start
我使用了
cd /etc/init.d
ln -s /usr/share/denyhosts/daemon-control denyhosts
chkconfig denyhosts --add
那么可以使用chkconfig denyhosts on 来设置启动啦。SECURE_LOG = /var/log/secure #sshd日志文件,它是根据这个文件来判断的,不同的操作系统,文件名
稍有不同。
HOSTS_DENY = /etc/hosts.deny #控制用户登陆的文件,被禁止的IP会被写进里面
PURGE_DENY = 5m #过多久后清除已经禁止的
# 'm' = minutes
# 'h' = hours
# 'd' = days
# 'w' = weeks
# 'y' = years
DENY_THRESHOLD_INVALID = 5 #允许无效用户失败的次数
DENY_THRESHOLD_VALID = 10 #允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 5 #允许root登陆失败的次数
DENY_THRESHOLD_RESTRICTED = 1
WORK_DIR = /usr/share/denyhosts/data
HOSTNAME_LOOKUP=NO #是否做域名反解
LOCK_FILE = /var/lock/subsys/denyhosts
ADMIN_EMAIL = #管理员邮件地址
DAEMON_LOG = /var/log/denyhosts #DenyHosts的日志文件
./daemon-control start
starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg
Can't read: /private/var/log/system.log
[Errno 2] No such file or directory: '/private/var/log/system.log'
Error deleting DenyHosts lock file: /var/lock/subsys/denyhosts
[Errno 2] No such file or directory: '/var/lock/subsys/denyhosts'
使用:
mkdir -p /private/var/log/
mkdir -p /var/lock/subsys/
./daemon-control start
starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg
Can't read: /private/var/log/system.log
[Errno 2] No such file or directory: '/private/var/log/system.log'
Error deleting DenyHosts lock file: /var/lock/subsys/denyhosts
[Errno 2] No such file or directory: '/var/lock/subsys/denyhosts'
使用:
touch /private/var/log/system.log
touch /var/lock/subsys/denyhosts
./daemon-control start
出现:
starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg
DenyHosts could not obtain lock (pid: )
[Errno 17] File exists: '/var/lock/subsys/denyhosts'
使用:
rm -f /var/lock/subsys/denyhosts
./daemon-control start
starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py –daemon –config=/usr/share/denyhosts/denyhosts.cfg
OK!
启动完成啦。
你可以使用
service denyhosts status来查看运行状态
DenyHosts is running with pid = 25874 表示已经启动起来了。
接下来就可以使用
cat /etc/hosts.deny来查看记录了
starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg
python: can't open file '/usr/bin/denyhosts.py': [Errno 2] No such file or directory
经过查找发现denyhosts.py在目录/usr/local/bin/目录下,于是修改daemon-control文件
#vi daemon-control
DENYHOSTS_BIN = "/usr/bin/denyhosts.py"
DENYHOSTS_LOCK = "/var/lock/subsys/denyhosts"
DENYHOSTS_CFG = "/usr/share/denyhosts/denyhosts.cfg"
将第一行修改为DENYHOSTS_BIN = "/usr/local/bin/denyhosts.py"
Traceback (most recent call last):
File "/usr/local/bin/denyhosts.py", line 5, in
import DenyHosts.python_version
ImportError: No module named DenyHosts.python_version
到这里错误很明了了,经过查询发现版本不对会导致这个问题。
Traceback (most recent call last):
File "/usr/local/python-2.4/bin/denyhosts.py", line 5, in ?
import DenyHosts.python_version
ImportError: No module named DenyHosts.python_version
需要修改下面的部分:
1、/usr/share/denyhosts/daemon-control
PYTHON_BIN = "/usr/bin/env python"
改为
PYTHON_BIN = "/usr/local/python-2.4/bin/python"
#!/usr/bin/env python
改为
#!/usr/local/python-2.4/bin/python
DENYHOSTS_BIN = "/usr/bin/denyhosts.py"
改为
DENYHOSTS_BIN = "/usr/local/python-2.4/bin/denyhosts.py"
2.
cp -rp /usr/local/python-2.4/lib/python2.4/site-packages/DenyHosts/ /usr/local/python-2.4/lib/python2.4/
Submitted by admin on 2013, March 21, 11:43 AM
1、使用SSH登陆服务器2、输入命令: ps ax ,会列出所有的进程,找出对应的进程,类似“21045 ? Ss 0:00 /usr/local/bin/memcached -d -m 100 -u root -l 192.168.1.11 -p 12000 -c 256 ?CP /tmp/memcached.pid”。记下开头的id,如前面的21045.3、输入命令关闭进程:kill 210454、重新启动进程
如果要清空memcache的items,常用的办法是什么?杀掉重启?如果有n台memcache需要重启怎么办?挨个做一遍?
很简单,假设memcached运行在本地的11211端口,那么跑一下命令行:
$ echo ”flush_all” | nc localhost 11211
注:flush并不会将items删除,只是将所有的items标记为expired。
第一、连接:telnet 127.0.0.1 11211
第二、按回车键
第三、flush_all 后回车
控制台显示OK,表示操作成功
说明:
1、清空所有键值
flush_all
注:flush并不会将items删除,只是将所有的items标记为expired,因此这时memcache依旧占用所有内存。
2、退出
quit
Submitted by admin on 2013, March 21, 8:27 AM
Apache Banner的隐藏方法,
修改httpd.conf文件,设置以下选项:
ServerTokens ProductOnly
ServerSignature Off
关闭trace-method
TraceEnable off
另外apache可以在编译的时候,故意混淆banner信息,达到隐藏的目的
ServerSignature apache生成的一些页面底部,比如404页面,文件列表页面等等。
ServerTokens指向被用来设置Server的http头回响。设置为Prod可以让HTTP头回响显示成这样….
Server: Apache
apache禁止访问目录列表- -
编辑httpd.conf
把下面配置项改成
Options Indexes FollowSymlinks MultiViews
Options FollowSymlinks MultiViews
即拿掉Indexes,重新启动apache
隐藏http头信息中看到php的版本信息
在php.ini中设置 expose_php = Off
Submitted by admin on 2013, March 20, 11:35 PM
如果只是用squid做代理,不想缓存所有网站文件的话,可以修改squid配置
将squid.conf里的cache_dir ufs /home/cache 1024 16 256 改成cache_dir ufs /home/cache 1024 16 256 read-only
保存 然后,检查一下,有没有语法错误:
#squid -k parse
#squid -k reconfigure
操作完毕
squid中文操作指南
read-only
read-only选项指示Squid继续从cache_dir读取文件,但不往里面写新目标。它在squid.conf文件里看起来如下:
cache_dir ufs /cache0 7000 16 256 read-only
假如你想把cache文件从一个磁盘迁移到另一个磁盘,那么可使用该选项。如果你简单的增加一个cache_dir,并且删除另一个,squid的命中率会显著下降。在旧目录是read-only时,你仍能从那里获取cache命中。在一段时间后,就可以从配置文件里删除read-only缓存目录。