1. 程式人生 > >服務器運維之安全配置1

服務器運維之安全配置1

lis fault 使用 說明 transfer keepaliv sbin web服務器 chain

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個空閑進程時,則會自動停止關閉一些進程,以保證空閑進程不過過多。

服務器運維之安全配置1