服务器运维之安全配置1

1.编译安装mod_security 
mod_security是一个集入侵检测和防御引擎功能的开源web应用安全程序(或web应用程序防火墙)它以Apache Web服务器的模块方式运行, 目标是增强web应用程序的安全性, 防止web应用程序受到已知或未知的攻击。

# cd /usr/local/src 
# wget http://www.modsecurity.org/download/modsecurity-apache_2.1.3.tar.gz

# tar -zxvf modsecurity-apache_2.1.3.tar.gz # cd modsecurity-apache_2.1.3/apache2

# cat /usr/local/apache2/conf/httpd.conf | grep "ServerRoot" | grep -v "#"

ServerRoot "/usr/local/apache2" # 
#vi Makefile 
top_dir = /usr/local/apache2

# make # make install 
vi /usr/local/apache2/conf/httpd.conf

加载下列模块

LoadModule unique_id_module modules/mod_unique_id.so

LoadModule security2_module
modules/mod_security2.so
添加一行:
Include conf/modsecurity/*.conf
保存。
cd/usr/local/src/modsecurity-
apache_2.1.3/rules
#mkdir
/usr/local/apache2/conf/modsecurity
#cp*.conf
/usr/local/apache2/conf/modsecurity/customize
modsecurity_crs_10_config.conf.
Additionally you may want to edit
modsecurity_crs_30_http_policy.conf
which enforces an application specific
HTTP protocol usage.
重启apache
2,iptables规则
vi/usr/local/sbin/fw.sh
将以下脚本命令粘贴到 fw.sh 文件中。
#!/bin/bash
#Stop iptables service first
service iptables stop
#Load FTP Kernel modules
Ishin/modnrohe in conntrack ftn

/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
#Inital chains default policy
/sbin/iptables-F-t filter
/sbin/iptables-P INPUT DROP
/sbin/iptables-P OUTPUT ACCEPT
#Enable Native Network Transfer
/sbin/iptables-A INPUT-i lo -j ACCEPT
#Accept Established Connections
/sbin/iptables-A INPUT-m state--state
ESTABLISHED,RELATED-j ACCEPT
#ICMP Control
/sbin/iptables-A INPUT-p icmp-m limit--limit 1/s-limit-burst 10-i ACCEPT#

limit 1/s--limit-burst 10-jACCEPT#
WWW Service
/sbin/iptables-A INPUT-p tcp--dport 80-jACCEPT
#FTP Service
/sbin/iptables-A INPUT-p tcp--dport 2121-j ACCEPT
#SSH Service
/sbin/iptables-A INPUT-p tcp--dport
59825-jACCEPT
#Anti DDOS
/sbin/iptables-I INPUT-p tcp--syn-m ttl--ttl-eq 117-j DROP
/sbin/iptables-I INPUT-p tcp--syn-m
length-length:40-j DROP

#chmod 755/usr/local/sbin/fw.sh
#echo'/usr/local/sbin/fw.sh'>>
/etc/rc.d/rc.local
#/usr/local/sbin/fw.sh
3、apachet和 php 优化设置
对于访问量稍大的站点,Apache的这些默认配置是无法满足需求的,我们仍需调整Apache的一些参数,使Apache能够在大访问量环境下发挥出更好的性能。以下我们对Apache配置文件httpd.conf中对性能影响较大的参数进行一些说明。
(1)Timeout 该参数指定Apache在接收请求或发送所请求内容之前的最长等待时间(秒),若超过该时间Apache则放弃处理该请求,并释放连接。该参数默认值为120,推荐设置为60,对于访问量较大的网站可以设置为30。

(2)KeepAlive 该参数控制Apache是否允许在一个连接中有多个请求,默认打开。但对于大多数论坛类型站点来说,通常设置为off以关闭该支持。
(3)MPM-prefork.c 在默认情况下Apache使用Prefork(进程)工作模式,可以说这部分的参数设置是对Apache性能影响的核心和关键。

查看你的apache运行的模式:
#/usr/local/apache2/bin/httpd-1
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c

然后用户可以在配置文档中找到以下配置段:
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 15
MaxRequestsPerChild 0
这就是控制Apache进程工作的配置段,为了更好的理解上述配置中的各项参数,下面让我们先了解一下Apache是如何控制进程工作的。我们知道,在Unix系统中,很多服务(Service)的守护进程(Daemon)在启动时会创建一个进程以准备应答可能的连接请求,服务即进入了端口监听状态,当一个来自客户端(Client)的请求被发送至服务所监听的端口时,该服务进程即会处理该请求,在处理过程中,该进程处于独占状态,也就是说如果此时有其他请求到达,这些请求只能“排队”等待当前请求处理完成且服务进程释放。这样就会导致越来越多的请求处于队列等待状态,实际表现就是该服务处理能力非常低下。Apache 使用Prefork模式很好的解决了这一问题。下面我们来看看Apache实际上是如何高效率工作的。当Apache启动时,Apache会启动StartSpareServers个空闲进程同时准备接收处理请求,当多个请求到来时,StarSpareServers进行会越来越少,当空闲进程减少到MinSpareServers个时,Apache为了能够继续有充裕的进程处理请求,它会再启动StartsServers个进程备用,这样就大大减少了请求队列等待的可能,使得服务效率提高,这也是为什么叫做Pre-fork的原因;让我们继续跟踪Apache的工作,我们假设Apache已经启动了200个进程来处理请求,理论上来说,此时Apache一共有205个进程,而过了一段时间,假设有100个请求都得到了Apache的响应和处理,那么此时这100个进程就被释放成为空闲进程,那么此时Apache有105个空闲进程。而对于服务而言,启动太多的空闲进程时没有任何意义的,反而会降低服务器的整体性能,那么Apache真的会有105个空闲进程么?当然不会!实际上Apache随时在检查自己,当发现有超过MaxSpareServers个空闲进程时,则会自动停止关闭一些进程,以保证空闲进程不过过多。

猜你喜欢

转载自www.cnblogs.com/wuyanxue/p/10012733.html
今日推荐