当apache站点受到严重的cc攻击,我们可以用iptables来防止web服务器被CC攻击,实现自动屏蔽IP的功能。
1.系统要求
(1)LINUX 内核版本:2.6.9-42ELsmp或2.6.9-55ELsmp(其它内核版本需要重新编译内核,比较麻烦,但是也是可以实现的)。
(2)iptables版本:1.3.7
2. 安装
安装iptables1.3.7和系统内核版本对应的内核模块kernel-smp-modules-connlimit
3. 配置相应的iptables规则
示例如下:
(1)控制单个IP的最大并发连接数
iptables -I INPUT -p tcp --dport 80 -m connlimit \
--connlimit-above 50 -j REJECT  
#允许单个IP的最大连接数为 30(2)控制单个IP在一定的时间(比如60秒)内允许新建立的连接数
iptables -A INPUT -p tcp --dport 80 -m recent \
--name BAD_HTTP_ACCESS --update --seconds 60 \
--hitcount 30 -j REJECT
iptables -A INPUT -p tcp --dport 80 -m recent \
--name BAD_HTTP_ACCESS --set -j ACCEPT
#单个IP在60秒内只允许最多新建30个连接4. 验证
(1)工具:flood_connect.c(用来模拟攻击)
(2)查看效果:
使用
watch 'netstat -an | grep:21 | \ grep<模拟攻击客户机的IP>| wc -l'实时查看模拟攻击客户机建立起来的连接数,
使用
watch 'iptables -L -n -v | \grep<模拟攻击客户机的IP>'查看模拟攻击客户机被 DROP 的数据包数。
5.注意
为了增强iptables防止CC攻击的能力,最好调整一下ipt_recent的参数如下:
#cat/etc/modprobe.conf
options ipt_recent ip_list_tot=1000 ip_pkt_list_tot=60
#记录1000个IP地址,每个地址记录60个数据包
#modprobe ipt_recent
本文来自黑色电视机,原文地址:http://www.blacktv.com.cn
useradd -d /home/xxxx -s /sbin/nologin

useradd -d /home/xxxx -s /sbin/nologin xxxxx

linux useradd 命令详解

  功能说明:建立用户帐号。

  语  法:useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s ][-u ][用户帐号] 或 useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s ]

  补充说明:useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。

  参  数:
  -c<备注>  加上备注文字。备注文字会保存在passwd的备注栏位中。 
  -d<登入目录>  指定用户登入时的启始目录。
  -D  变更预设值.
  -e<有效期限>  指定帐号的有效期限。
  -f<缓冲天数>  指定在密码过期后多少天即关闭该帐号。
  -g<群组>  指定用户所属的群组。
  -G<群组>  指定用户所属的附加群组。
  -m  自动建立用户的登入目录。
  -M  不要自动建立用户的登入目录。
  -n  取消建立以用户名称为名的群组.
  -r  建立系统帐号。
  -s   指定用户登入后所使用的shell。
  -u  指定用户ID。
大家都使用过google或者xunlei的搜索,输入关键字后可以出现相关提示,是个不错的功能,今天就在这里给大家把我的拙作给大家分享

点击在新窗口中浏览此图片

程序下载:
下载文件 (已下载 1031 次)



数据库表:
要支持扩展,编译了好几次,也许是版本匹配的问题,
最后终于编译成功了:
把关键部分写一下:
mkdir /usr/local/modules


——————————————————————
开始编译:
tar -zxf zlib-1.2.3.tar.tar
ls
   cd zlib
  cd zlib-1.2.3
  ./configure --prefix=/usr/local/zlib
  make
  make install
   cd ..
————————————————————
  tar zxvf freetype-2.3.7.tar.gz
  cd freetype-2.3.7
ls
./configure --prefix=/usr/local/modules/freetype
  make
  make install
freetype编译完毕
——————————————————————
wget  http://prdownloads.sourceforge.net/png-mng/libpng-1.2.5.tar.gz?download
  tar zxvf libpng-1.2.5.tar.gz
  cd libpng-1.2.5
ls
cp scripts/makefile.linux makefile
cp scripts/makefile.linux makefile
make test
make install
——————————————————
cd ..
wget ftp://ftp.ro.debian.org/pub/mirrors/openwrt.org/sources/jpegsrc.v6b.tar.gz
tar -xzvf jpegsrc.v6b.tar.gz
  ls
cd jpeg-6b/
mkdir /usr/local/modules/jpeg6
mkdir /usr/local/modules/jpeg6/bin
  mkdir /usr/local/modules/jpeg6/lib
  mkdir /usr/local/modules/jpeg6/include
mkdir /usr/local/modules/jpeg6/man
mkdir /usr/local/modules/jpeg6/man/man1

./configure --prefix=/usr/local/modules/jpeg6 --enable-shared --enable-static
  make
  make install

————————————————————

cd ..
tar -xzvf gd-2.0.35.tar.gz
  cd gd-2.0.35
ls
  ./configure --prefix=/usr/local/modules/gd --with-jpeg=/usr/local/modules/jpeg6 --with-png --with-zlib --with-freetype=/usr/local/modules/freetype
  make
  make install
  cd ..

——————————————————
开始编译php:

tar -xzvf php-5.2.6.tar.gz
  cd php-5.2.6
  ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-freetype-dir=/usr/local/modules/freetype/  --with-mysql=/usr/local/mysql  --with-zlib --with-libxml-dir=/usr/local/libxml --enable-shared --with-gd=/usr/local/modules/gd/ --with-jpeg-dir=/usr/local/modules/jpeg6/ --with-png-dir --enable-mbstring=all --with-mysqli=/usr/local/mysql/bin/mysql_config   --enable-gd-native-ttf
  make
  make test
  make install
———————————————————
编译完毕。
重启apache服务。
注:在编译的过程中,如果发现错误,什么目录没有,就mkdir建立。之后再编译。

看phpinfo是否支持你想要的模块,若没有再编译即可。
Tags: , , , ,

Linux让mysql作为服务来启动 不指定

jed , 2009-4-10 16:35 , 服务器技术 , 评论(0) , 阅读(3481) , Via 本站原创
编译完成mysql,之后把这个相应的权限给改了
下面这几句很重要
(这个顺序也很重要,一定不要颠倒)
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/var
chown -R mysql /usr/local/mysql/var/
chown -R mysql /usr/local/mysql/var/.
chown -R mysql /usr/local/mysql/var/mysql
chown -R mysql /usr/local/mysql/var/mysql/
chgrp -R mysql /usr/local/mysql

cp ../support-files/my-medium.cnf /etc/my.cnf
  vi /etc/ld.so.conf
/usr/local/mysql/lib/mysql
/usr/local/lib
保存。
载入库:
/sbin/ldconfig -v
cp mysql.server /etc/rc.d/init.d/mysqld
cd /etc/rc.d/init.d/
vi mysqld

找到
$bindir/mysqld_safe  --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &
      wait_for_pid created $!; return_value=$?
改为:
  $bindir/mysqld_safe  --user=root  --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &
      wait_for_pid created $!; return_value=$?

之后:
service mysqld start
service mysqld restart 就可以了。
最后是在启动机器的时候也启动服务
我们的机器是在rulevel 3 所以只加level 3就可以了
chkconfig --level 3 mysqld on
这样就不要在rc.local里面加/usr/local/mysql/bin/mysqld-safe --user=mysql & 了

可以这样启动或者重启或者关闭mysql
service mysqld start
service mysqld restart
service mysqld stop
——————————————————————
over
Tags: ,
1、建用户:



adduser phpq                             //新建phpq用户
passwd phpq                               //给phpq用户设置密码



2、建工作组


groupadd test                          //新建test工作组

3、新建用户同时增加工作组


useradd -g test phpq                      //新建phpq用户并增加到test工作组

注::-g 所属组 -d 家目录 -s 所用的SHELL


4、给已有的用户增加工作组

usermod -G groupname username

或者:gpasswd -a user group

5、临时关闭:在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上*就可以了。想恢复该用户,去掉*即可。

或者使用如下命令关闭用户账号:
passwd peter –l

重新释放:
passwd peter –u

6、永久性删除用户账号
userdel peter

groupdel peter

usermod –G peter peter   (强制删除该用户的主目录和主目录下的所有文件和子目录)

7、从组中删除用户
编辑/etc/group 找到GROUP1那一行,删除 A
或者用命令
gpasswd -d A GROUP

8、显示用户信息
id user
cat /etc/passwd

更详细的用户和用户组的解说请参考
Linux 用户和用户组详细解说
本文主要讲述在Linux 系统中用户(user)和用户组(group)管理相应的概念;用户(user)和用户组(group)相关命令的列举;其中也对单用户多任务,多用户多任务也做以解说。

本篇文章来源于 PHP资讯 原文链接:http://www.phpq.net/linux/linux-add-delete-user-group.html

linux userdel 命令详解 不指定

jed , 2009-4-10 16:25 , 服务器技术 , 评论(0) , 阅读(3041) , Via 本站原创
linux userdel 命令详解

  功能说明:删除用户帐号。

  语  法:userdel [-r][用户帐号]

  补充说明:userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。

  参  数:
  -r  删除用户登入目录以及目录中所有文件。

linux下如何重启mysql 不指定

jed , 2009-4-10 13:29 , 服务器技术 , 评论(0) , 阅读(3891) , Via 本站原创
好多人在网上问linux怎么重启mysql,回答也是各式各样的。mysql并没有像apache那样可以通过/usr/local/apache/bin/apachetl restart这样来重启。好多提到的都是killall mysqld ,杀掉所有mysql进程,然后重新启动mysql,这样容易造成mysql数据库的损坏,特别是在应用的情况下。mysql其实是可以作为服务来重启的。
方法如下:
源码目录下/support-files/mysql.server 拷贝到/etc/rc.d/init.d/下。然后把启动mysql命令添加到/etc/rc.d/rc.local。这样启动以后,mysql就自动启动了。运行过程中,就可以用server mysql restart来运行。
is_writeable() 函数判断指定的文件是否可写。

该函数是 is_writable() 函数的别名。

语法

is_writeable(file)

说明
如果文件存在并且可写则返回 true。file 参数可以是一个允许进行是否可写检查的目录名。



<?php
$file = "test.txt";
if(is_writeable($file))
  {
  echo ("$file is writeable");
  }
else
  {
  echo ("$file is not writeable");
  }
?>

Tags: ,
PHP 内置函数 file_put_contents 用于写入文件。

file_put_contents 函数最简单的写法,可以只用两个参数,一个是文件路径,一个是要写入的内容,语法如下:

file_put_contents(filepath,data)
如果文件不存在,file_put_contents 函数会自动创建文件;如果文件已存在,原有文件被重写。

你可以利用 file_put_contents 函数创建并写入一个新文件,或者重写一个原有文件。

下面是一个使用 file_put_contents 函数的 PHP 代码示例:
分页: 3/5 第一页 上页 1 2 3 4 5 下页 最后页 [ 显示模式: 摘要 | 列表 ]