亚洲Aⅴ无码Av红楼在线观看_国产午夜福利涩爱AⅤ_国产sm调教一区二区三区_精品人妻一区二区三区不卡毛片

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
全部產品
您的位置: 網站首頁 > 幫助中心>文章內容

LINUX下APACHE+MYSQL服務器安全的一些配置

發(fā)布時間:  2012/7/3 18:13:48

MYSQL方面:
    修改配置文件:
    調整最大連接數:max_connections=500
    打開慢查詢:log-slow-queries=slowquery.log
                long_query_time=1
    調大最大錯誤連接數:max_connect_errors=500
APACHE方面:
    啟用mod_evasive模塊,防止DDOS攻擊,該模塊需要網上去下載。配置文件如下:
    LoadModule evasive20_module   modules/mod_evasive20.so
    <IfModule mod_evasive20.c>
    #記錄和存放黑名單的哈西表大小,如果服務器訪問量很大,可以加大該值
    DOSHashTableSize 3097
    #同一個頁面在同一時間內可以被同一個用戶訪問的次數,超過該數字就會被列為攻擊,
    #同一時間的數值可以在DosPageInterval參數中設置。
    DOSPageCount 2
    #同一個用戶在同一個網站內可以同時打開的訪問數,同一個時間的數值在DOSSiteInterval中設置。
    DOSSiteCount 40
    #設置DOSPageCount中時間長度標準,默認值為1。
    DOSPageInterval 1
    #DOSSiteInterval 2 設置DOSSiteCount中時間長度標準,默認值為1。
    DOSSiteInterval 1
    #被封時間間隔秒,這中間會收到 403 (Forbidden) 的返回。
    DOSBlockingPeriod 10
    #設置受到攻擊時接收攻擊信息提示的郵箱地址。
    #DOSEmailNotify you@yourdomain.com
    #受到攻擊時Apache運行用戶執(zhí)行的系統(tǒng)命令
    #DOSSystemCommand “su - someuser -c ‘/sbin/… %s …’”
    #攻擊日志存放目錄,BSD上默認是 /tmp
    </IfModule>
   
    啟動mod_security模塊,做些安全保證。該模塊也需要去網上單獨下載。配置文件如下:
    LoadModule evasive20_module   modules/mod_evasive20.so
    <IfModule mod_security.c>
    # 打開過濾引擎開關。如果是Off,那么下面這些都不起作用
    SecFilterEngine On
    # 把設置傳遞給字目錄
    SecFilterInheritance Off
    # 檢查url編碼
    SecFilterCheckURLEncoding On
    # 檢測內容長度以避免堆溢出攻擊
    #SecFilterForceByteRange 32 126
    # 日志的文件和位置。一定要先建立好目錄,否則apache重新啟動的時候會報錯。
    SecAuditLog /**/apache2/logs/audit_log
    # debug的設置
    #SecFilterDebugLog /**/apache2/logs/modsec_debug_log
    #SecFilterDebugLevel 1
    #當匹配chmod,wget等命令的時候,重新定向到一個特殊的頁面,讓攻擊者知難而退
    SecFilter chmod redirect:http://www.sina.com
    SecFilter wget redirect:http://www.sina.com
    #檢測POST數據,注意,請甚用這個開關,可能會導致一些post頁面無法訪問。詳細的信息,請察看www.modsecurity.org的文檔,其中有詳細的post編碼要求。
    #SecFilterScanPOST Off
    # 缺省的動作
    SecFilterDefaultAction "deny,log,status:406"
    # 重新定向用戶
    #SecFilter xxx redirect:http://www.sina.com
    # 防止操作系統(tǒng)關鍵詞攻擊
    SecFilter /etc/*passwd
    SecFilter /bin/*sh
    # 防止double dot攻擊
    SecFilter "\.\./"
    # 防止跨站腳本(CSS)攻擊
    SecFilter "<( |\n)*script"
    # Prevent XSS atacks (HTML/Javascript injection)
    SecFilter "<(.|\n)+>"
    # 防止sql注入式攻擊
    SecFilter "delete[[:space:]]+from"
    SecFilter "insert[[:space:]]+into"
    SecFilter "select.+from"
    #重定向exe和asp請求
    #SecFilterSelective REQUEST_URI "\.exe" "redirect:http://www.google.com"
    #SecFilterSelective REQUEST_URI "\.asp" "redirect:http://www.google.com"
    #下面是限制了upload.php文件只能用來上傳jpeg.bmp和gif的圖片
    #
    #SecFilterInheritance On
    #SecFilterSelective POST_PAYLOAD "!image/(jpeg|bmp|gif)"
    #
    #偽裝服務器標識
    SecServerSignature "Microsoft-IIS/6.0"
    </IfModule>
   
    啟動文件壓縮,縮小傳輸流量,這個是APACHE自帶的,配置文件如下:
    LoadModule deflate_module modules/mod_deflate.so
    <IfModule mod_deflate.c>
    #壓縮的級別越高,壓縮率越大,但是也越占用服務器CPU資源,這里設為5
    DeflateCompressionLevel 5 

    #將html、文本、xml、php進行壓縮
    AddOutputFilterByType   DEFLATE text/html text/plain text/xml application/x-httpd-php
   
    # 將html、htm、xml、php、css、js進行壓縮
    AddOutputFilter         DEFLATE  html  htm  xml  php  css  js
    </IfModule>
   
    將某些非法IP列入黑名單:
    <Directory "/ddd">
    Order allow,deny
    Allow from all
    Deny from 192.168.1.1
    </Directory>
   
    配置錯誤日志和訪問日志按天分割:
    ErrorLog "|/***/apache2/bin/rotatelogs /***/apache2/logs/errorlog.%Y.%m.%d 86400"
    <IfModule log_config_module>
    #
    # The following directives define some format nicknames for use with
    # a CustomLog directive (see below).
    #
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      # You need to enable mod_logio.c to use %I and %O
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    #
    # The location and format of the access logfile (Common Logfile Format).
    # If you do not define any access logfiles within a <VirtualHost>
    # container, they will be logged here.  Contrariwise, if you *do*
    # define per-<VirtualHost> access logfiles, transactions will be
    # logged therein and *not* in this file.
    #
    #CustomLog logs/access_log common
   
    CustomLog "|/***/apache2/bin/rotatelogs -l /***/apache2/logs/access_log.%Y.%m.%d 86400" common

    #
    # If you prefer a logfile with access, agent, and referer information
    # (Combined Logfile Format) you can use the following directive.
    #
    #CustomLog logs/access_log combined
    </IfModule>
   
    其他些關鍵配置:
    #Timeout:接收和發(fā)送前超時秒數
    Timeout 300
    #關閉穩(wěn)固連接
    #KeepAlive Off
    #MaxKeepAliveRequests:在穩(wěn)固連接期間允許的最大請求數
    MaxKeepAliveRequests 100
    #KeepAliveTimeout:在同一個連接上從同一臺客戶上接收請求的秒數
    KeepAliveTimeout 5
    # prefork MPM

    # StartServers:啟動時服務器啟動的進程數

    # MinSpareServers:保有的備用進程的最小數目

    # MaxSpareServers:保有的備用進程的最大數目

    # MaxClients:服務器允許啟動的最大進程數

    # MaxRequestsPerChild:一個服務進程允許的最大請求數

    #    MaxRequestPerChild 0
    #如何確定APAACHE是工作在prefork模式之下?網上去查,不記得了。。。
    <IfModule prefork.c>

    StartServers 5

    MinSpareServers 5

    MaxSpareServers 10

    MaxClients 150

    </IfModule>

防火墻的配置:
    原則上只開放80端口,而且22端口只對管理員的IP開放,另外使服務器禁PING
    將22端口只對管理員IP開放:
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -s 管理員IP -j ACCEPT
    將80端口對所有人開放:
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
    #防止同步包洪水
    #--limit 1/s 限制syn并發(fā)數每秒1次,可以根據自己的需要修改
    -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
    #防止各種端口掃描 
    -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
    #Ping洪水攻擊(Ping of Death)
    -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

    #DDOS
    -A INPUT -p icmp -m limit --limit 3/s -j LOG --log-level INFO --log-prefix "ICMP packet IN: "
    -A INPUT -p icmp -m limit --limit 6/m -j ACCEPT
    -A INPUT -p icmp -j DROP
   
服務器其他的一些參數配置和觀察腳本:
    服務器的禁ping
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    或者編輯/etc/sysctl文件,使用/sbin/sysctl -p 使配置生效
   
    當前連接數的排序
    netstat -nat|grep ":80"|awk '{print $5}' |awk -F: '{print $1}' | sort| uniq -c|sort -n

    APACHE連接狀態(tài)排序
    netstat -nat|awk '{print awk $NF}'|sort|uniq -c|sort -n

    統(tǒng)計訪問數最多的IP
    cat access_log.2010.08.05|gawk -F: '{print $1}' | sort| uniq -c|sort -n
    cat access_log.2010.08.04|gawk -F: '{print $1}' | sort| uniq -c|sort -n
   
    ps -ef|grep httpd|wc -l
    netstat -na | grep :80 |grep ESTABLISHED |wc -l
   
    利用apache的mod_evasive模塊的日志,查看哪些時間段DDOS攻擊比較多:
    cat /var/log/messages |grep mod_evasive|gawk  '{print $1,$2,$3}' | gawk -F: '{print $1}'| sort| uniq -c|sort -n【精確到小時】
    cat /var/log/messages |grep mod_evasive|gawk  '{print $1,$2,$3}' | gawk -F: '{print $1,$2}'| sort| uniq -c|sort -n【精確到分鐘】

    統(tǒng)計攻擊最多的IP 
    cat /var/log/messages |grep mod_evasive|gawk  '{print $8}' | sort| uniq -c|sort -n

    統(tǒng)計apache日志中訪問最多的IP
    cat access_log.2010.08.05|gawk '{print $1}'|sort|uniq -c|sort -n
 
    gawk -F 指定分隔符
    sort 排序 uniq 去除相鄰重復的行,并統(tǒng)計個數 sort -n 按照數字進行排序
   
    比如我們在 /etc/hosts.allow中加入
    all:192.168.1.
    這樣就會允許來自192.168.1.*域的所有的客戶來訪問。這只是舉個例子,實際上,系統(tǒng)默認狀態(tài) 下,都是能用這些網絡服的

    如果我們在 /etc/hosts.deny中加入,就限制了來自192.168.1.*域的所有的所有的IP。
    all:192.168.1.

    如果我們在 /etc/hosts.deny中加入
    all:192.168.1.1,這樣就限制了所有在192.168.1.1中的所有的用戶的訪問。

    當hosts.allow和 host.deny相沖突時,以hosts.allow設置優(yōu)化。

    設置好后,要重新啟動
    # /etc/rc.d/init.d/xinetd restart
    # /etc/rc.d/init.d/network restart
   
系統(tǒng)日志的檢查:
    二、    messages日志

  首先說下我們最關注的系統(tǒng)/var/log/messages,這東東不僅是咱們服務器的系統(tǒng)日志,
    很多時候它也做了許多服務的日志,這也是它被稱為雜貨鋪的原因,值得重點關注,大家一般都喜歡用以下命令看最后十條日志

  tail -n10 /var/log/messages

  其實還可以將一段日志保存成文件,正用練下自己的awk、sed和grep水平;或者直接用vim來查看,
    這也是算是一種經驗之談吧。我以前配置bind的主從復制,有
    時因為權限的原因報錯;
    這時可以在一臺報錯的服務器上用命令tail -f /var/log/messages實時查看服務器的變化情況,
    從中查找錯誤的蛛絲馬跡;事實證明,效果很好,而且用于lvs+keepalived的排錯效也不錯,其它事例依此類推。

    三、secure的用法

  /var/log/secure:記錄登入系統(tǒng)存取數據的文件,例如 pop3, ssh, telnet, ftp 等都會被記錄,我們可以利用此文件找出不安全的登陸IP。
    四、記錄登陸者的數據

    /var/log/wtmp:記錄登入者的訊息數據,由于本文件已經被編碼過(為二進制文件),
    所以必須使用 last指令來取出文件的內容,你用cat等命令直接查看此文件是不行的。

    五、lastlog記錄系統(tǒng)時間

  /var/log/lastlog : 記錄每個使用者最近簽入系統(tǒng)的時間, 因此當使用者簽入時,
    就會顯示其上次簽入的時間,您應該注意一下這個時間, 若不是您上次簽入的時間,
    表示您的帳號可能被人盜用了。 此檔可用 /usr/bin/lastlog 指令讀取(Freebsd下為/usr/sbin/lastlogin)。
    六、用dmesg查看啟動消息

     dmesg提供了一個簡單的方法查看系統(tǒng)啟動信息。當Linux啟動的時候,內核的信息被存入內核ring緩存當中,
    dmesg可以顯示緩存中的內容。默認情況下,dmesg打印內容到屏幕上面,當然你可以重定向輸出到一個文件。
    如果硬件損壞的話,在dmesg日志里是有顯示的,可用以下命令來查看dmesg | grep error

    七、服務器的郵件日志

  服務器的郵件為/var/log/messages,如果要用專業(yè)的日志分析工具來分析的話,
    我推薦用Awstats;由于公司的開發(fā)對郵件的要求比較低,所以我?guī)退麄兣渲玫木褪亲詈唵蔚膕endmail,
    有時看看郵件日志里的status狀態(tài)來判斷郵件到底有沒有正確發(fā)送;在配置Nagios 服務器,
    我也習慣用此日志來判斷報警郵件到底有沒有發(fā)送,如果對自己的shell水平足夠自信,
    也可以寫腳本來收集郵件服務器的返回狀態(tài)等,但專業(yè)的事情,建議還是由專業(yè)的工具來做,
    特別是郵件負載比較大時,每天幾百萬條日志或上千萬條日志不是開玩笑的。


本文出自:億恩科技【www.allwellnessguide.com】

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線