Linux+Apache的稳定性、安全性和性能以及低廉的价格正在赢得越来越多的市场份额,使用Linux+Apache作网站服务器的朋友也越来越多,而Apache作为一种http服务,相比FTP总是不容易控制,特别是当网站以http方式提供软件/音乐下载时,若是每个用户都开启多个线程并没有带宽的限制,将很快达到http的最大连接数或者造成网络壅塞,使得网站的许多正常服务都无法运行。不过,Apache的使用者们早已开发出了mod_limitipconn和mod_bandwidth两个模块,来控制http的并发连接数和用户所能够使用的带宽,下面将以RedHat Linux 7.3+Apache 1.3.7来说明它们的使用方法。

一、使用mod_limitipconn限制Apache的并发连接数

mod_limitipconn可以控制每个IP地址同时连接服务器某一个目录的并发连接数,是一个非常有用的模块,其官方网页是http://dominia.org/djao/limitipconn.html,最新版本为for Apache 1.3.7的0.04,并且还有支持Apache 2.x的模块下载,由于本人使用Apache 1.3.7版本,所以请使用2.x版本Apache的朋友到其官方网站察看具体的使用方法。

mod_limitipconn for Apache 1.3x提供三种安装方式,分别是tar包、rpm安装文件和rpm源文件,由于rpm包只能用在 RedHat 7.x 版本,并且不支持检测代理服务器,所以我们一般都使用tar包的安装方式。

以管理员方式登陆服务器,然后在服务器上运行wget http://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz将mod_limitipconn的tar包下载到服务器,然后按照再运行tar zxvf mod_limitipconn-0.04.tar.gz将tar包解压缩,会在当前目录下生成mod_limitipconn-0.04目录,然后cd mod_limitipconn-0.04进入此目录,下一步就是使用apxs将目录中的mod_limitipconn.c编译。这时,我们需要确定自己的Apache安装在那个目录,并且找到apxs命令放在哪里。

通过命令whereis apxs,我们可以确定apxs命令的路径,如我的apxs命令所在为/usr/sbin/apxs,则输入/usr/sbin/apxs -c -i -a mod_limitipconn.c对mod_limitipconn.c进行编译,此命令会自动在你Apache的配置文件httpd.conf中加入需要的信息,并且将生成的mod_limitipconn.so模块拷贝到Apache的模块目录。不过为了确认此命令是否正常运作,请首先检查自己的Apache模块目录(我的是/usr/lib/apache),看内部是否含有mod_limitipconn.so文件,没有的话请将mod_limitipconn-0.04目录中生成的文件拷贝到此处。
Tags: , ,
当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。
要支持扩展,编译了好几次,也许是版本匹配的问题,
最后终于编译成功了:
把关键部分写一下:
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) , 阅读(3277) , 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) , 阅读(2883) , Via 本站原创
linux userdel 命令详解

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

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

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

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

linux下如何重启mysql 不指定

jed , 2009-4-10 13:29 , 服务器技术 , 评论(0) , 阅读(3705) , 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来运行。

linux smartd启动失败 不指定

jed , 2009-4-9 10:40 , 服务器技术 , 评论(0) , 阅读(3489) , Via 本站原创
smartd是一个守护进程(一个帮助程序),它能监视拥有自我监视,分析和汇报技术(Self-Monitoring,

Analysis, and Reporting Technology - SMART)的硬盘。

SMART系统使得硬盘能监视并汇报自己的运行状况。它的一个重要特性是能够预测失败,使得系统管理员

能避免数据丢失。

smartd由kernel-utils包缺省安装。用命令 rpm -ql kernel-utils 可以列出kernel-utils包中的文件。

smartd守护进程通常在系统启动的时候被开启,它的配置文件是/etc/smartd.conf。

比如,假设有两个硬盘被安装,/dev/hda和/dev/hdb。一个是CD_ROM设备,另一个是硬盘。为了检测它们

是否支持SMART,使用命令 smartctl -i /dev/hda 和 smartctl -i /dev/hdb:


# /usr/sbin/smartctl -i /dev/hda
smartctl version 5.1-11 Copyright (C) 2002-3 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Device Model: ST380011A
Serial Number: 3JVB672N
Firmware Version: 8.01
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 6
ATA Standard is: ATA/ATAPI-6 T13 1410D revision 2
Local Time is: Fri Aug 20 14:09:16 2004 EST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

”SMART support is: Available - device has SMART capability.“这行说明支持SMART。"SMART

support is: Enabled”这行说明SMART已经被打开。

CD-ROM设备和旧式的硬盘不支持SMART,这可以从smartctl -i /dev/hdb的输出看出:

# /usr/sbin/smartctl -i /dev/hdb
smartctl version 5.1-11 Copyright (C) 2002-3 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Device Model: LTN526D
Serial Number: [No Information Found]
Firmware Version: 9S03
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 1
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Fri Aug 20 14:24:43 2004 EST
SMART is only available in ATA Version 3 Revision 3 or greater.
We will try to proceed in spite of this.
SMART support is: Unavailable - device lacks SMART capability.
A mandatory SMART command has failed: exiting. To continue, use the -T
option to set the tolerance level to 'permissive'

注意有些硬盘控制器不支持SMART。比如有些硬件RAID控制器不支持,或者不会传递SMART信息,即使加入

的硬盘支持SMART。

chkconfig --del smartd

在服务里面停掉smartd服务守护进程。这是一个硬盘是否有故障的监视进程,

shell# service smartd start
启动 smartd: [失败]

shell# service smartd status
smartd 已死,但是 subsys 被锁

Tags: ,

linux下安装ssh 不指定

jed , 2009-4-8 18:39 , 服务器技术 , 评论(0) , 阅读(4525) , Via 本站原创
实际上最好别用光盘带的ssh   下载最新版本好像是3.0以上了   网站:www.ssh.com  
  下载.tar.gz并上传到自己的网站  
                        tar   -zxvf   ss*.tar.gz  
                        ./configure  
                        make  
                        make   install  
    
                  执行/usr/local/sbin/sshd2&  
  服务器端基本上就可以了,关于验证的方式、端口等的设置请配置/etc/ssh2/     .config   文件  
    
                        然后下载ssh的window客户端   执行   hoho     ok了  
Tags: ,
分页: 29/39 第一页 上页 24 25 26 27 28 29 30 31 32 33 下页 最后页 [ 显示模式: 摘要 | 列表 ]