在这里让我们一起学习,一起提高!
  有些时候,总是很害怕自己的网站文件有没有被人修改过,害怕被人放了新的恶意文件进来。于是,经常翻动各个文件夹去看最后修改时间什么的,费时又费力,而且最后修改时间也不一定是准确的。
    在Linux下面,有一个软件可以帮我们做到24小时不间断的监控文件改动,就是inotify-tools。只要是内核版本在2.6.13以上的系统都可以用,比如CentOS 5 。
    安装步骤:

1,下载

wget --no-check-certificate http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

2,编译

tar zxf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure
make
make install

3,一些小处理
如果是32位系统

ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib/libinotifytools.so.0

如果是64位系统

ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib64/libinotifytools.so.0

无论32或者64位系统都执行

echo 104857600 > /proc/sys/fs/inotify/max_user_watches
echo 'echo 104857600 > /proc/sys/fs/inotify/max_user_watches' >> /etc/rc.local

    使用办法:

inotifywait -m -r -d -o/var/log/change.log --timefmt '%F %T' --format '%T %w%f %e'  -e close_write -e create /home/www

其中/var/log/change.log是日志路径,/home/www是监控的网站路径
1:load Average
   1.1:什么是Load?什么是Load Average?
   Load 就是对计算机干活多少的度量(WikiPedia:the system Load is a measure of the amount of work that a compute system is doing)
   简单的说是进程队列的长度。Load Average 就是一段时间(1分钟、5分钟、15分钟)内平均Load。【参考文章:unix Load Average Part1:How It Works】

网站排障分析常用的命令 不指定

jed , 2012-1-15 01:21 , 服务器技术 , 评论(0) , 阅读(5652) , Via 本站原创
整理一些常用分析网站的小命令方便大家排障,内容均来源于网络。
系统连接状态篇:
1.查看TCP连接状态

netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn

netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}' 或
netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}'
netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}'

netstat -n |awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn

netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c


2.查找请求数请20个IP(常用于查找攻来源):
linux挂载新硬盘 fdisk / parted
Linux的硬盘识别:
一般使用”fdisk -l”命令可以列出系统中当前连接的硬盘
设备和分区信息.新硬盘没有分区信息,则只显示硬盘大小信息.
1.关闭服务器加上新硬盘
2.启动服务器,以root用户登录
3.查看硬盘信息
Tags: , ,
iptables -F   #清除所有规则
iptables -X  #清除所有自定义规则
iptables -Z   #各项计数归零
iptables -P INPUT DROP  #将input链默认规则设置为丢弃
iptables -P OUTPUT DROP  #将output链默认规则设置为丢弃
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT #对运行在本机回环地址上的所有服务放行
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT  #把这条语句插在input链的最前面(第一条),并且对状态为ESTABLISHED,RELATED的连接放行。
服务器上的一些统计数据:

1)统计80端口连接数


netstat -nat|grep -i "80"|wc -l

1

2)统计httpd协议连接数


ps -ef|grep httpd|wc -l

1

3)、统计已连接上的,状态为“established'


netstat -na|grep ESTABLISHED|wc -l

2

4)、查出哪个IP地址连接最多,将其封了.



netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r +0n

netstat -na|grep SYN|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r +0n



最直接的方法如下:



netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'



LAST_ACK 14
SYN_RECV 348
ESTABLISHED 70  (活动连接数,实际正在处理的请求数量,最有意义的一个字段)
FIN_WAIT1 229
FIN_WAIT2 30
CLOSING 33
TIME_WAIT 18122

状态:描述
CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉

也就是说,这条命令可以把当前系统的网络连接状态分类汇总。
Tags: , ,

Linux VPS下简单解决CC攻击 不指定

jed , 2010-6-14 08:55 , 服务器技术 , 评论(0) , 阅读(3429) , Via 本站原创
一,准备工作
1,登录进VPS控制面板,准备好随时重启VPS。
2,关闭Web Server先,过高的负载会导致后面的操作很难进行,甚至直接无法登录SSH。
3,以防万一,把设置的Web Server系统启动后自动运行去掉。
(如果已经无法登录进系统,并且重启后负载过高导致刚刚开机就已经无法登录,可联系管理员在母机上封掉VPS的IP或80端口,在母机上用虚拟控制台登录 进系统,然后进行2&3的操作,之后解封)

二,找出攻击者IP

1,在网站根目录建立文件ip.php,写入下面的内容。
Tags: , , ,
如果你的IPTABLES基础知识还不了解,建议先去看看。


们来配置一个filter表的防火墙

1、查看本机关于IPTABLES的设置情况

[root@tp ~]# iptables -L -n

Chain INPUT (policy ACCEPT)

target prot opt source destination

Chain FORWARD (policy ACCEPT)

target prot opt source destination

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

Chain RH-Firewall-1-INPUT (0 references)

target prot opt source destination

ACCEPT all -- 0.0.0.0/0 0.0.0.0/0

ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
Tags: ,
防止syn攻击(DDOOS攻击的一种)
iptables -I INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -I FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
防止各种端口扫描
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
Ping洪水攻击(Ping of Death)
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
维护“手机之家”(http://www.imobile.com.cn)的服务器有快两年了,也有些经验心得,写在这里给大家分享。

  服务器配置如下:redhat linux 9.0、apache 1.3.29、php 4.3.4、mysql 3.23.58,以下建议均在以上平台上跑的很好,当然也跟你的应用有关系,具体实施要根据实际效果来进行。

  1、众所周知的方法就是使用 Zend Optimizer(简称 ZO,最新版本为 2.5.1) 或者 Zend Performance Suite(简称 ZPS,其中包含 ZO,最新版本为 3.6.0)对 PHP 进行加速。相关软件可到张微波的主页来下载哦,地址为:http://www.5ilinux.com/blog/archives/000093.html

  2、apache配置优化(httpd.conf)
1)修改“Timeout”的值为 30-60,如果你得程序没有执行时间需要很长的话,可以修改到 10-15;
2)修改“KeepAlive”的值为“Off”,这个很有效果,也很有争议,我自己的看法是很有效果,而且并没有影响速度,大家可以自行试验;
3)修改“MaxRequestsPerChild”的值为“2048”,这个还在试验中,一是因为怕有内存泄漏,二是因为 apache 进程会因为随着服务时间的延长,会变得越来越胖(我这里的实际情况是某些 apache 进程会狂吃内存到18MB,晕啊:),不过这设置有没有效果,还在试验中;
4)在不使用 .htaccess 的情况下,将其“”部分设置为“None”方式,如果你使用 PHPMYADMIN 进行管理的话,可以使用 PHPMYADMIN 的 COOKIE 权限控制方式。

  3、卸载不必要的模块,不管是静态编译还是 DSO 模式,以便节省内存占用。具体模块可以参照 apache 的手册,这里就不多说了。PHP 也是同样,我基本上已经把不用的模块都卸载了:)

  4、使用 mod_gzip 进行加速,很简单,就不多说了。

  5、如果你的服务器还是负载很高的话,更极端的方式就是在 httpd.conf 里面将日志停掉了,不过一般要保留 errorlog 才好,以便排错,而且要记得,不是把“CustomLog”注释掉就行了,而要使用“CustomLog /dev/null common”这样的方式才好。
Tags: ,
分页: 2/6 第一页 上页 1 2 3 4 5 6 下页 最后页 [ 显示模式: 摘要 | 列表 ]