Linux/Apache/mod_security

  • Search
  • Home
  • All
  • Files
  • History
  • Latest Changes

Linux

  • Apache
  • Install
  • ShellScript
  • Customize
  • fail2ban
  • Gollum
  • HardwareInfo
  • iptables
  • Mail
  • NIC_Bonding
  • OpenVPN
  • phpMyAdmin
  • Redmine
  • Samba
  • SELinux
  • SSH
  • Virtualization
  • VNC

Table of Contents
  • インストール
  • 設定
  • リンク

インストール

  • EPELリポジトリ
    # yum install mod_security mod_security_crs

設定

  • /etc/httpd/conf.d/mod_security.conf (抜粋)

    # Maximum request body size we will
    # accept for buffering
    #SecRequestBodyLimit 131072
    SecRequestBodyLimit 5242880
    SecRequestBodyNoFilesLimit 51200
  • /etc/httpd/modsecurity.d/modsecurity_localrules.conf

    # Drop your local rules in here.
    
    # White List IP
    SecRule REMOTE_ADDR "@pmFromFile /etc/httpd/modsecurity.d/whitelist_ip.txt" \
            "phase:1,id:'1000001',nolog,allow,ctl:ruleEngine=Off,ctl:auditEngine=Off"
    
    # White List URI
    SecRule REQUEST_URI "@pmFromFile /etc/httpd/modsecurity.d/whitelist_uri.txt" \
            "phase:1,id:'1000002',nolog,allow,ctl:ruleEngine=Off,ctl:auditEngine=Off"
    
    # White List URI 2
    SecRule REQUEST_URI "@rx ^\/Etc\/" \
            "phase:1,id:'1000003',nolog,allow,ctl:ruleEngine=Off,ctl:auditEngine=Off"
    
    # White List Sub-Domain
    SecRule REQUEST_HEADERS:Host "@pmFromFile /etc/httpd/modsecurity.d/whitelist_subdomain.txt" \
            "phase:1,id:'1000004',nolog,allow,ctl:ruleEngine=Off,ctl:auditEngine=Off"
    
    # ZmEu Attack / phpMyAdmin
    SecRule REQUEST_URI "@rx (?i)\/(php-?My-?Admin[^\/]*|mysqlmanager|myadmin|pma2005|pma\/scripts|w00tw00t[^\/]+)\/" \
            "severity:alert,id:'0000013',deny,log,status:400,msg:'Unacceptable folder.',severity:'2'"
    • mod_security-2.7.1 でエラーが出るから適当にid追加したけど、idの振り方のルールってどこにあるのかな?
      ModSecurity: No action id present within the rule
  • /etc/httpd/modsecurity.d/whitelist_ip.txt
    mod_security による制限を行わない IP アドレスを列挙する。
    コメントは行頭から「#」で始める。

    # localhost
    127.0.0.1
    
    # example.com
    xxx.xxx.xxx.xxx
    
    # example.net
    yyy.yyy.yyy.yyy
  • /etc/httpd/modsecurity.d/whitelist_uri.txt
    mod_security による制限を行わない URI を列挙する。

    /cgi-bin/etc/PrintEnv.cgi
    /cgi-bin/etc/PrintEnv_txt.cgi
    /cgi-bin/etc/index.cgi
    /cgi-bin/etc/testCGI.cgi
  • /etc/httpd/modsecurity.d/whitelist_subdomain.txt
    mod_security による制限を行わないホスト名を列挙する。

    # WebApp1
    vh1.takeash.net
  • /etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_20_protocol_violations.conf

    • id:958291 "Range: 0-", mp4 等のストリーミングや分割ダウンロードが行われるファイルのダウンロードで引っかかる。

リンク

  • http://modsecurity.org/
    • Reference Manual
    • The Open Web Application Security Project
  • hashdos攻撃をmod_securityで防御する(CentOS+yum編) - 徳丸浩の日記
  • Attack by ZmEu - The Linux Page phpMyAdmin 脆弱性スキャンスクリプト対策
  • 黒ぶちメガネのblog » mod_securityのホワイトリスト、ブラックリストの書き方メモ
  • 禁煙できないSEの独り言: ModSecurity 2.5.12の導入
  • (続)spammer対策 - ねこ様にもてあそばれる日々(2006-05-03)
  • mod_securityでWebサーバを守る(第1回) - ソフテック
  • Webアプリケーションに潜むセキュリティホール
    • Webアプリケーションファイアウォールによる防御
    • mod_securityのXSS対策ルールを作成する
  • UNIX的なアレ:gihyo.jp出張所
    • 第19回 知っておきたいApacheの基礎知識 その15

Home

Last edited by TakeAsh, 2018-09-06 03:06:08