I would like to update the arc case with the following updates.

1) Include a blurb for each of the modules explaining what they do
2) Add an addendum explaining briefly the interfaces (In this case the 
configuration directives they support)
3) Provide a complete reference for these configuration directives for each of 
the modules as supplied by the respective upstream communities.
4) Update mod_security to 2.1.5


                                    rahul

-------------- next part --------------

Additional Apache Modules

13 December 2007

1.    Summary and motivation

    1.1.    Introduction

    This FastTrack delivers Apache modules mod_jk, mod_fcgid, 
    mod_security and mod_dtrace to the Apache2 in OpenSolaris.

    Modules allow Apache to integrate and provide functionality
    during runtime that were not available during compile time.

    1.1.1 mod_security
    From modsecurity.org[3] "ModSecurity is a web application
    firewall (WAF). With over 70% of all attacks now carried out
    over the web application level, organisations need every help
    they can get in making their systems secure. WAFs are deployed
    to establish an external security layer that increases security,
    detects, and prevents attacks before they reach web applications.
    It provides protection from a range of attacks against web
    applications and allows for HTTP traffic monitoring and real-time
    analysis with little or no changes to existing infrastructure."

    1.1.2 mod_jk
    From tomcat.apache.org "mod_jk is a replacement to the elderly
    mod_jserv. It is a completely new Tomcat-Apache plug-in that
    handles the communication between Tomcat and Apache."

    1.1.3 mod_fcgid
    From fastcgi.coremail.cn "It is a binary compatibility alternative
    to Apache module mod_fastcgi." mod_fcgid is an apache module that
    allows CGIs to be deployed on apache that make use of the FastCGI
    mechanism. From www.fastcgi.com "FastCGI is a language independent,
    scalable, open extension to CGI that provides high performance
    without the limitations of server specific APIs."

    1.1.4 mod_dtrace
    From prefetch.net "The Apache DTrace module (mod_dtrace) utilizes
    the hook framework to add DTrace probes to the Apache web server.
    These probes can be used to observe and correlate web server and
    system behavior, and allow easy access to numerous pieces of
    realtime Apache data.


    This project integrates the most recent stable releases of
    mod_jk[1] tomcat-connectors-1.2.25, mod_fcgid[2] 2.2,
    mod_security[3] 2.1.5 and mod_dtrace[4] 0.3a

    This case seeks Minor Release Binding.

2.    Technical issues

    2.1.    Key objects

    /usr/apache2/2.2/libexec/mod_jk.so
    /usr/apache2/2.2/libexec/mod_fcgid.so
    /usr/apache2/2.2/libexec/mod_security2.so
    /usr/apache2/2.2/libexec/mod_dtrace.so

    /usr/apache2/2.2/libexec/${ISAINFO}/mod_jk.so
    /usr/apache2/2.2/libexec/${ISAINFO}/mod_fcgid.so
    /usr/apache2/2.2/libexec/${ISAINFO}/mod_security2.so
    /usr/apache2/2.2/libexec/${ISAINFO}/mod_dtrace.so

 
    2.2 Versioning

    mod_jk, mod_fcgid, mod_security and mod_dtrace have a single active
    release. (There was a module named mod_jk2 which was deprecated. It
    was not the successor to mod_jk.)

    It is not possible to query the modules to find out their
    versions.  The only way to do that is to look at the package
    description for the package including it.

    2.2 Directory Naming and Structure

    This project delivers the shared libraries of 32 bit and 64 bit
    into /usr/apache2/2.2/libexec and /usr/apache2/2.2/libexec/${ISAINFO}/ 
    directories of apache. This is in keeping with the approach taken
    by the Apache2 integration project for OpenSolaris (PSARC/2007/586).

3. Documentation

    The modules mod_jk, mod_fcgid, mod_security and mod_dtrace do not
    install documentation into apache though they come with some
    documentation in their source. The recommended way to access their
    documentation is to look at their websites (mod_fcgid[5] ,mod_jk[6],
    mod_security[7] and mod_dtrace[8] ). A list of external apache modules
    that has been added and their corresponding sites will be part of the
    release document.

4. Packaging and Delivery

    The modules will be delivered under the cluster SUNWCapch22m. This
    cluster consists of SUNWapch22m-fcgid, SUNWapch22m-jk,
    SUNWapch22m-security and SUNWapch22m-dtrace respectively.

5.  Interfaces

    5.1.    Interface Stability

    The interface stability of each component is described as Volatile
    as these are controled by external organizations over which Sun
    has no control. The specific researches regarding stability of
    each module are captured below.

    5.1.1 mod_jk
        The mod_jk developers will try to keep the releases of 1.2.X
    line compatible with each other. But this is not guaranteed in
    case of new features that may need to be retracted due to some
    bugs or vulnerabilities. The interface of mod_jk (it configuration)
    is presented as Addendum 2. The complete list of directives and
    their explanation as supplied by tomcat.apache.org is available
    as mod_jk_interface.html.

    5.1.2 mod_security
       The mod_security developers will keep the compatibility
    between releases of the same major number. (ie 2.y.z with 2 being
    the major number.) But there is no guarantee that meaning of a
    rule set (configuration directive) would be exactly the same
    across any two releases. The interface of mod_security (its 
    configuration) is presented in Addendum 1. The complete list of
    dirctives and their explanation (as provided by modsecurity.org)
    is available as mod_security_interface.html.

    5.1.3 mod_fcgid
       There were no commitments from mod_fcgid developers in this
    regard. (The mod_fcgid does not seem to have broken the
    configuration compatibility with any of its earlier releases
    yet [9] but is in very active developement). The interface of
    mod_fcgid (its configuration options) is presented as
    Addendum 3. The complete list of directives and their explanation
    as provided by fastcgi.coremail.cn is available as 
    mod_fcgid_interface.html


    5.1.4 mod_dtrace
        The mod_dtrace has had just two releases (0.2a and 0.3a) and
    is possibly very unstable. The interface of dtrace module consists
    of the apache functions it is hooking into. This is provided as 
    Addendum 4.
    

    5.2.    Imported Interfaces

    These Apache modules imports interfaces from

    NAME                      STABILITY        NOTES
    Apache2                    Uncommitted       PSARC/2007/586/   
    LDAP                       Evolving          PSARC/2000/362/
    PCRE                       Uncommitted       PSARC/2007/164/
    SUNWlxml                   Committed         PSARC/2001/175/
    Dtrace                     Uncommitted       PSARC/2001/466/

    5.3.    Exported Interfaces

    NAME                                                STABILITY
 
    /usr/apache2/2.2/libexec/mod_jk.so                  Volatile
    /usr/apache2/2.2/libexec/mod_fcgid.so               Volatile
    /usr/apache2/2.2/libexec/mod_security.so            Uncommitted
    /usr/apache2/2.2/libexec/mod_dtrace.so              Volatile
    /usr/apache2/2.2/libexec/${ISAINFO}/mod_jk.so       Volatile
    /usr/apache2/2.2/libexec/${ISAINFO}/mod_fcgid.so    Volatile
    /usr/apache2/2.2/libexec/${ISAINFO}/mod_security.so Uncommitted
    /usr/apache2/2.2/libexec/${ISAINFO}/mod_dtrace.so   Volatile


6.    References

   1. http://fastcgi.coremail.cn/
   2. http://tomcat.apache.org/connectors-doc/
   3. http://www.modsecurity.org/projects/modsecurity/apache/index.html
   4. http://prefetch.net/projects/apache_modtrace/index.html
   5. http://fastcgi.coremail.cn/doc.htm
   6. http://tomcat.apache.org/connectors-doc/generic_howto/quick.html
   7. http://www.modsecurity.org/documentation/index.html
   8. http://prefetch.net/projects/apache_modtrace/mod_dtrace.c
   9. http://fastcgi.coremail.cn/download.htm


Addendum 1
mod_security interfaces:
    It includes the configuration directives, exposed variables, library
functions (transformation functions), operators and actions to be taken on
the URI

Configuration Directives
    SecAction
    SecArgumentSeparator
    SecAuditEngine
    SecAuditLog
    SecAuditLog2
    SecAuditLogParts
    SecAuditLogRelevantStatus
    SecAuditLogStorageDir
    SecAuditLogType
    SecChrootDir
    SecCookieFormat
    SecDataDir
    SecDebugLog
    SecDebugLogLevel
    SecDefaultAction
    SecGuardianLog
    SecRequestBodyAccess
    SecRequestBodyLimit
    SecRequestBodyInMemoryLimit
    SecResponseBodyLimit
    SecResponseBodyMimeType
    SecResponseBodyMimeTypesClear
    SecResponseBodyAccess
    SecRule
    SecRuleInheritance
    SecRuleEngine
    SecRuleRemoveById
    SecRuleRemoveByMsg
    SecServerSignature
    SecTmpDir
    SecUploadDir
    SecUploadKeepFiles
    SecWebAppId

Variables

    ARGS
    ARGS_COMBINED_SIZE
    ARGS_NAMES
    AUTH_TYPE
    ENV
    FILES
    FILES_COMBINED_SIZE
    FILES_NAMES
    FILES_SIZES
    FILES_TMPNAMES
    HTTP_
    MULTIPART_CRLF_LF_LINES
    MULTIPART_STRICT_ERROR
    MULTIPART_UNMATCHED_BOUNDARY
    PATH_INFO
    QUERY_STRING
    REMOTE_ADDR
    REMOTE_HOST
    REMOTE_PORT
    REMOTE_USER
    REQBODY_PROCESSOR
    REQBODY_PROCESSOR_ERROR
    REQBODY_PROCESSOR_ERROR_MSG
    REQUEST_BASENAME
    REQUEST_BODY
    REQUEST_COOKIES
    REQUEST_COOKIES_NAMES
    REQUEST_FILENAME
    REQUEST_HEADERS
    REQUEST_HEADERS_NAMES
    REQUEST_LINE
    REQUEST_METHOD
    REQUEST_PROTOCOL
    REQUEST_URI
    REQUEST_URI_RAW
    RESPONSE_BODY
    RESPONSE_HEADERS
    RESPONSE_HEADERS_NAMES
    RESPONSE_PROTOCOL
    RESPONSE_STATUS
    RULE
    SCRIPT_BASENAME
    SCRIPT_FILENAME
    SCRIPT_GID
    SCRIPT_GROUPNAME
    SCRIPT_MODE
    SCRIPT_UID
    SCRIPT_USERNAME
    SERVER_ADDR
    SERVER_NAME
    SERVER_PORT
    SESSION
    SESSIONID
    TIME
    TIME_DAY
    TIME_EPOCH
    TIME_HOUR
    TIME_MIN
    TIME_MON
    TIME_SEC
    TIME_WDAY
    TIME_YEAR
    TX
    USERID
    WEBAPPID
    WEBSERVER_ERROR_LOG
    XML

Transformation functions

    base64Decode
    base64Encode
    compressWhitespace
    escapeSeqDecode
    hexDecode
    hexEncode
    htmlEntityDecode
    lowercase
    md5
    none
    normalisePath
    normalisePathWin
    removeNulls
    removeWhitespace
    replaceComments
    replaceNulls
    urlDecode
    urlDecodeUni
    urlEncode
    sha1

Actions

    allow
    auditlog
    capture
    chain
    ctl
    deny
    deprecatevar
    drop
    exec
    expirevar
    id
    initcol
    log
    msg
    multiMatch
    noauditlog
    nolog
    pass
    pause
    phase
    proxy
    redirect
    rev
    sanitiseArg
    sanitiseMatched
    sanitiseRequestHeader
    sanitiseResponseHeader
    severity
    setuid
    setsid
    setenv
    setvar
    skip
    status
    t
    xmlns

Operators

    eq
    ge
    gt
    inspectFile
    le
    lt
    rbl
    rx
    validateByteRange
    validateDTD
    validateSchema
    validateUrlEncoding
    validateUtf8Encoding

Addendum 2:
Apache directives exposed by mod_jk

JkWorkersFile
JkWorkerProperty
JkShmFile
JkShmSize
JkMountFile
JkMountFileReload
JkMount
JkUnMount
JkAutoAlias
JkMountCopy
JkWorkerIndicator
JkLogFile
JkLogLevel
JkLogStampFormat
JkRequestLogFormat
JkExtractSSL
JkHTTPSIndicator
JkCERTSIndicator
JkCIPHERIndicator
JkCERTCHAINPrefix
JkSESSIONIndicator
JkKEYSIZEIndicator
JkOptions
JkEnvVar
JkStripSession

Addendum 3:
Apache directives exposed by mod_fcgid

IdleTimeout
IdleScanInterval
BusyTimeout
BusyScanInterval
ErrorScanInterval
ZombieScanInterval
ProcessLifeTime
SocketPath
SpawnScoreUpLimit
SpawnScore
TerminationScore
MaxProcessCount
DefaultMaxClassProcessCount
DefaultMinClassProcessCount
DefaultInitEnv
IPCConnectTimeout
IPCCommTimeout
OutputBufferSize
PHP_Fix_Pathinfo_Enable

Addendum 4:
Apache methods hooked into by mod_dtrace:

apache_receive_request
apache_log_request
apache_create_child
apache_accept_connection
apache_check_user
apache_check_access
apache_check_authorization
dtrace_register_hooks


-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://mail.opensolaris.org/pipermail/webstack-discuss/attachments/20080211/b9916e1f/attachment.html>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://mail.opensolaris.org/pipermail/webstack-discuss/attachments/20080211/b9916e1f/attachment-0001.html>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://mail.opensolaris.org/pipermail/webstack-discuss/attachments/20080211/b9916e1f/attachment-0002.html>

Reply via email to