C-ICAP Hardening


 
Thread Tools Search this Thread
Special Forums Cybersecurity C-ICAP Hardening
# 1  
Old 10-15-2013
C-ICAP Hardening

Does anyone have any experience hardening the c-icap.conf file? Here is the default config file, it has a lot of options; sorry about how long it is. I have removed some entries that were not needed as well, but it is still so long Smilie. Any help is much appreciated as I have never dealt with ICAP.

Code:
#
# This file contains the default settings for c-icap
# 
# 

# TAG: PidFile
# Format: PidFile pid_file
# Description:
#       The file to store the pid of the main process of the c-icap server.
# Default:
#       PidFile /var/run/c-icap/c-icap.pid
PidFile /var/run/c-icap/c-icap.pid

# TAG: CommandsSocket
# Format: CommandsSocket socket_file
# Description:
#       The path of file to use as control socket for c-icap
# Default:
#       CommandsSocket /var/run/c-icap/c-icap.ctl
CommandsSocket /var/run/c-icap/c-icap.ctl

# TAG: Timeout
# Format: Timeout seconds
# Description:
#       The time in seconds after which a connection without activity
#       can be cancelled.
# Default:
#       Timeout 300
Timeout 300

# TAG: MaxKeepAliveRequests
# Format: MaxKeepAliveRequests number
# Description:
#       The maximum number of requests can be served by one connection
#       Set it to -1 for no limit
# Default:
#       MaxKeepAliveRequests 100
MaxKeepAliveRequests 100

# TAG: KeepAliveTimeout
# Format: KeepAliveTimeout seconds
# Description:
#       The maximum time in seconds waiting for a new requests before a 
#       connection will be closed.
#       If the value is set to -1, there is no timeout.
# Default:
#       KeepAliveTimeout 600
KeepAliveTimeout 600  

# TAG: StartServers
# Format: StartServers number
# Description:
#       The initial number of server processes. Each server process
#       generates a number of threads, which serve the requests.
# Default:
#       StartServers 3
StartServers 3

# TAG: MaxServers
# Format: MaxServers number
# Description:
#       The maximum allowed number of server processes.
# Default:
#       MaxServers 10
MaxServers 10

# TAG: MinSpareThreads
# Format: MinSpareThreads number
# Description:
#       If the number of the available threads is less than number,
#       the c-icap server starts a new child.
# Default:
#       MinSpareThreads     10
MinSpareThreads     10

# TAG: MaxSpareThreads
# Format: MaxSpareThreads number
# Description:
#       If the number of the available threads is more than number then 
#       the c-icap server kills a child.
# Default:
#       MaxSpareThreads     20
MaxSpareThreads     20

# TAG: ThreadsPerChild
# Format:  ThreadsPerChild number
# Description:
#       The number of threads per child process.
# Default:
#       ThreadsPerChild     10
ThreadsPerChild     10

# TAG: MaxRequestsPerChild
# Format: MaxRequestsPerChild number
# Description:
#       The maximum number of requests that a child process can serve.
#       After this number has been reached, process dies. The goal of this
#       parameter is to minimize the risk of memory leaks and increase the
#       stability of c-icap. It can be disabled by setting its value to 0.
# Default:
#       MaxRequestsPerChild  0
MaxRequestsPerChild  0

# TAG: Port
# Format: Port port
# Description:
#       The port number that the c-icap server uses to listen to requests.
# Default:
#       Port 1344
Port 1344 

# TAG: User
# Format: User username
# Description:
#       The user owning c-icap's processes. By default, the owner is the
#       user who runs the program.
# Default:
#       No value
# Example:
        User nobody

# TAG: Group
# Format: Group groupname
# Description:
#       The group of users owning c-icap's processes, which, by default
#       is the group of the current user.
# Default:
#       No value
# Example:
#       Group nogroup

# TAG: ServerAdmin
# Format: ServerAdmin admin_mail
# Description:
#       The Administrator of this server. Used when displaying information
#       about this server (logs, info service, etc)
# Default:
#       No value
ServerAdmin you@your.address

# TAG: ServerName
# Format: ServerName aServerName
# Description:
#       A name for this server. Used when displaying information about this
#       server (logs, info service, etc)
# Default:
#       No value
ServerName YourServerName

# TAG: TmpDir
# Format: TmpDir dir
# Description:
#       dir is the location of temporary files.
# Default:
#       TmpDir /var/tmp
TmpDir /var/tmp

# TAG: MaxMemObject
# Format: MaxMemObject bytes
# Description:
#       The maximum memory size in bytes taken by an object which
#       is processed by c-icap . If the size of an object's body is
#       larger than the maximum size a temporary file is used.
# Default:
#       MaxMemObject 131072
MaxMemObject 131072

# TAG: DebugLevel
# Format: DebugLevel level
# Description:
#       The level of debugging information to be logged.
#       The acceptable range of levels is between 0 and 10.
# Default:
#       DebugLevel 1
DebugLevel 1

# TAG: ModulesDir
# Format: ModulesDir dir
# Description:
#       The location of modules
# Default:
#       ModulesDir /opt/icap/c_icap-0.2.6/lib/c_icap
ModulesDir /opt/icap/c_icap-0.2.6/lib/c_icap

# TAG: ServicesDir
# Format: ServicesDir dir
# Description:
#       The location of services
# Default:
#       ServicesDir /opt/icap/c_icap-0.2.6/lib/c_icap
ServicesDir /opt/icap/c_icap-0.2.6/lib/c_icap

# TAG: TemplateDir
# Format: TemplateDir dir
# Description:
#       The location of the text templates used by c-icap and its services,
#       categorized by language and services/modules
# Default:
#       No value
# Example:
TemplateDir /opt/icap/c_icap-0.2.6/share/c_icap/templates/

# TAG: TemplateDefaultLanguage

# Format: TemplateDefaultLanguage lang
# Description:
#       Sets the default language to use for text templates
# Default:
#       TemplateDefaultLanguage en
TemplateDefaultLanguage en

#TemplateReloadTime 360
#TemplateCacheSize 20
#TemplateMemBufSize 8192

# TAG: LoadMagicFile
# Format: LoadMagicFile path
# Description:
#       Load a c-icap magic file. A magic file contains various 
#       data type definitions. Look inside default c-icap.magic file
#       for more informations.
#       It can be used more than once to use multiple magic files.
# Default:
#       LoadMagicFile /opt/icap/c_icap-0.2.6/etc/c-icap.magic
LoadMagicFile /opt/icap/c_icap-0.2.6/etc/c-icap.magic

# TAG: RemoteProxyUsers
# Format: RemoteProxyUsers onoff
# Description:
#       Set it to on if you want to use username provided by the proxy server.
#       This is the recomended way to use users in c-icap.
#       If the RemoteProxyUsers is off and c-icap configured to use users or
#       groups the internal authentication mechanism will be used.
# Default:
#       RemoteProxyUsers off
RemoteProxyUsers off

# TAG: RemoteProxyUserHeader
# Format: RemoteProxyUserHeader Header
# Description:
#       Used to specify the icap header used by the proxy server to send
#       the authenticated client username to c-icap server 
# Default:
#       RemoteProxyUserHeader X-Authenticated-User
RemoteProxyUserHeader X-Authenticated-User

# TAG: RemoteProxyUserHeaderEncoded
# Format: RemoteProxyUserHeaderEncoded onoff
# Description:
#       Set it to off if the RemoteProxyUserHeader is not base64 encoded
# Default:
#       RemoteProxyUserHeaderEncoded on
RemoteProxyUserHeaderEncoded on

# TAG: AuthMethod
# Format: AuthMethod Method Authenticator
# Description:
#       Used to define the internal authentication mechanism to use. This
#       feature is not well tested and may cause problems. It is better to use
#       RemoteProxyUser configuration.
#       Method is the authentication method to use (basic, digest, etc).
#       Currently only basic authentication method is implemented as build in
#       module
#       Authenticator currently can only be "basic_simple_db"
#       It can be considered as a user/password store and can be
#       implemented as external module. The basic_simple_db is implemented as
#       build it module
# Default:
#       No set
# Example:
#       AuthMethod basic basic_simple_db
# TAG: basic.Realm
# Format: basic.Realm ARealm
# Description:
#       Specify the basic method realm
# Default:
#       basic.Realm "Basic authentication"
# Example:
#       basic.Realm "c-icap server authentication"

# TAG: basic_simple_db.UsersDB
# Format: basic_simple_db.UsersDB LookupTable
# Description:
#       Specify the lookup table where the usernames/passwords pairs 
#       are stored. The paswords must be unencrypted
#       For more information about c-icap lookup tables read c-icap server
#       manual page
# Default:
#       No value
# Example:
#       basic_simple_db.UsersDB hash:/usr/local/c-icap/etc/c-icap-users.txt

# TAG: GroupSourceByGroup
# Format: GroupSourceByGroup LookupTable
# Description:
#       Defines a lookup table where the groups of users are stored indexed
#       by group. It can be used more than once.
#       For more information about c-icap lookup tables read c-icap server
#       manual page
# Default:
#       No set
# Example:
#       GroupSourceByGroup hash:/usr/local/c-icap/etc/c-icap-groups.txt

# TAG: GroupSourceByUser
# Format: GroupSourceByUser LookupTable
# Description:
#       Defines a lookup table where the groups of users are stored indexed 
#       by user. It can be used more than once.
#       For more information about c-icap lookup tables read c-icap server
#       manual page
# Default:
#       No set
# Example:
#       GroupSourceByUser hash:/usr/local/c-icap/etc/c-icap-user-groups.txt

# TAG: acl
# Format: acl name type[{param}] value1 [value2] [...]
# Description:
#       Supported acl types are:
#               acl aclname service service1 ...
#                    The servicename
#               acl aclname type OPTIONS|RESPMOD|REQMOD ...
#                    The icap method
#               acl aclname port port1 ...
#                    The icap server port
#               acl aclname src ip1/netmask1 ...
#                    The client ip address
#               acl aclname srvip ip1/netmask1 ...
#                    The c-icap server ip address
#               acl aclname icap_header{HeaderName} value1 ...
#                    Matches the icap header HeaderName with value1 ...
#                    The values are in regex form: /avalue/
#               acl aclname icap_resp_header{HeaderName} value1 ...
#                    The icap response header
#                    The values are in regex form: /avalue/
#               acl aclname http_req_header{HeaderName} value1 ...
#                    The http request header
#                    The values are in regex form: /avalue/
#               acl aclname http_resp_header{HeaderName} value1 ...
#                    The http response header
#                    The values are in regex form: /avalue/
#               acl aclname data_type type1 ...
#                    The data type as recognized by the internal data type
#                    recognizer. The types are defined in c-icap.magic file
#               acl aclname auth username|* ...
#                    The authenticated users. Using * instead of username means
#                    all users.
#               acl aclname group group1 ...
#                    if the user of request belongs to given groups
# Default:
#       None set
# Examples:
#       acl OPTIONS type OPTIONS
#       acl RESPMOD type RESPMOD
#       acl REQMOD  type REQMOD
#       acl ALLREQUESTS type OPTIONS RESPMOD REQMOD
#       acl XHEAD icap_header{X-Test}  /value/
#       acl ECHO service echo
#       acl localnet src 192.168.1.0/255.255.255.0
#       acl localhost src 127.0.0.1/255.255.255.255
#       acl all src 0.0.0.0/0.0.0.0

# TAG: icap_access
# Format: icap_access allow|deny [!]acl1 ...
# Description:
#       Allowing or denying ICAP access based on defined access lists
# Default:
#       None set
# Example:
#       icap_access deny XHEAD
#       #Allow OPTIONS method for all:
#       icap_access allow localnet OPTIONS
#       #Require authentication for all users from local network:
#       icap_access allow AUTH localnet
#       icap_access deny all

# TAG: client_access
# Format: client_access allow|deny acl1 [acl2] [...]
# Description:
#       Allowing or denying connections on c-icap based on
#       defined access lists. Only the acl types src, srvip and port
#       can be used.
# Default:
#       None set
# Example:
#       client_access allow all

# TAG: LogFormat 
# Format: LogFormat Name Format
# Description:
#       Name is a name for this log format.
#       Format is a string with embedded % format codes. % format codes 
#       has the following form:
#           % [-] [width] [{argument}] formatcode
#           if - is specified then the output is left aligned
#           if width specified then the field is exactly width size
#           some formatcodes support arguments given as {argument}
#       
#       Format codes:
#              %a:  Remote IP-Address
#              %la: Local IP Address
#              %lp: Local port
#              %>a: Http Client IP Address. Only supported if the proxy 
#                   client supports the "X-Client-IP" header
#              %<A: Http Server IP Address. Only supported if the proxy
#                   client supports the "X-Server-IP" header
#              %ts: Seconds since epoch
#              %tl: Local time. Supports optional strftime format argument
#              %tg: GMT time. Supports optional strftime format argument
#              %>ho: Modified Http request header. Supports header name
#                    as argument. If no argument given the first line returned
#              %huo: Modified Http request url
#              %<ho: Modified Http reply header. Supports header name
#                    as argument. If no argument given the first line returned
#              %iu: Icap request url
#              %im: Icap method
#              %is: Icap status code
#              %>ih: Icap request header. Supports header name
#                    as argument. If no argument given the first line returned
#              %<ih: Icap response header. Supports header name
#                    as argument. If no argument given the first line returned
#              %Ih: Http bytes received
#              %Oh: Http bytes sent
#              %Ib: Http body bytes received
#              %Ob: Http body bytes sent
#              %I: Bytes received
#              %O: Bytes sent
#              %bph: The first 5 bytes of the body preview data. Non 
#                    printable characters printed in hex form.
#                    Supports the number of bytes to output as argument.
#              %un: Username
#              %Sl: Service log string
#              %Sa: Attribute value set by service. The attribute name must 
#                   given as argument.
# Default:
#       None set
# Example:
#       LogFormat myFormat "%tl, %a %im %iu %is %I %O %Ib %Ob %{10}bph" 

# TAG: ServerLog
# Format: ServerLog LogFile
# Description:
#       the file used by the build-in logger file_logger to 
#       store debugging information, errors and other
#       information about the c-icap server.
# Default:
#       ServerLog /opt/icap/c_icap-0.2.6/var/log/server.log
ServerLog /opt/icap/c_icap-0.2.6/var/log/server.log

# TAG: AccessLog
# Format: AccessLog LogFile [LogFormat] [[!]acl1] [[!]acl2] [...]
# Description:
#       LogFile is a file where to log access information.
#       LogFormat is the log format to use. If ommited c-icap uses:
#               "%tl, %la %a %im %iu %is"
#       Also acls can be used to select certain requests to be logged.
#       This directive can be used more than once to specify more than
#       one access log files
# Default:
#       AccessLog /opt/icap/c_icap-0.2.6/var/log/access.log
# Example:
#       AccessLog /opt/icap/c_icap-0.2.6/var/log/access.log MyFormat all
AccessLog /opt/icap/c_icap-0.2.6/var/log/access.log

# TAG: Logger
# Format: Logger LoggerName
# Description:
#       Specify wich logger to use. By default uses the build in "file_logger" which
#       uses files for access and server logging.
# Default:
#       Logger file_logger
# Example:
#       Logger sys_logger
# TAG: Module
# Format: Module Type ModuleFile
# Description:
#       Load an external module/plugin to c-icap.
#       ModuleFile is the filename of the module. If no full path given then c-icap
#       searche in path defined by the ModulesDir configuration parameter.
#       Type is the type of the external module and can be one of the following:
#       - "logger" for modules implement a logger
#       - "common" for general purpose modules
# Default:
#       
# Example:
#       Module logger sys_logger.so

# TAG: Service
# Format: Service aName ServiceFile
# Description:
#       It loads the service ServiceFile. The argument aName used 
#       as alias name for the service
# Default:
#       
# Example:
#       Service echo_service srv_echo.so

# TAG: ServiceAlias
# Format: ServiceAlias AliasName ServiceName[?param1=value1&param2=value2...]
# Description:
#       Used to define an alias name for a service.
# Default:
#       
# Example:
#       ServiceAlias avscan srv_clamav?allow204=on&sizelimit=off&mode=simple


#
# TAG: General configuration parameters for all services
# Description:
#       PreviewSize: The preview data size to advertise to the icap client
#       MaxConnections: The client should not use more than MaxConnections
#               for this service.
#       TransferPreview: The list of file extensions, seperated by commas,
#               for which the client should send preview data.
#       TransferIgnore: The list of file extensions that should not be sent
#               to the icap server
#       TransferComplete: The list of file extensions that should be sent
#               in their entirety, without preview, to the icap server
#       OptionsTTL: The options ttl for the service. The "sec[s]", "min" or 
#               "hour[s]" can be used to secify that the time is in seconds
#               minutes or hours respectively. If no time-units given
#               seconds are assumed.
#       Allow206 on|off: Enable/disable advertise of 206 responses.
#
# Example:
#       echo.PreviewSize 512
#       echo.TransferIgnore gif, jpeg
#       echo.OptionsTTL 3 min

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. HP-UX

Security hardening for standard HP-UX users

Hi, The standard accounts that are created during the HP-UX installation, eg, bin,adm,daemon,uucp,lp,hpdb and nobody have their own shell. Will there be any impact if we change these user's shell to /bin/false? Like processes get interrupted, files cannot be generated, etc. Regards (3 Replies)
Discussion started by: anaigini45
3 Replies

2. Linux

Password hardening using pam

Hi We have a requirement to vary the minimum password criteria by the group to which a user belongs. For example a standard user should have a password with a minimum length of 12 and containing a mix of characters whereas an administrator should have a password with a minimum length of 14... (1 Reply)
Discussion started by: gregsih
1 Replies

3. Solaris

Need jass hardening documentation

Hi, Where I could find information about "Jass hardening" for Solaris10? Because, I change the /opt/SUNWjass/Files/etc/syslog.conf file. But yet I don't know if I must restart the jass (and how?) or I must to copy /opt/SUNWjass/Files/etc/syslog.conf to /etc/syslog.conf? Thanks for your... (2 Replies)
Discussion started by: hiddenshadow
2 Replies

4. UNIX for Advanced & Expert Users

SuSe Linux Hardening

We've got a FTP server that's open to the public network and its running on Suse SUSE Linux Enterprise Server 11 (x86_64) SP2 Now, since it's an FTP server I can't disable that service, but how else do I harden this server from attacks from outside? I am thinking of disabling the firewall and... (3 Replies)
Discussion started by: hedkandi
3 Replies

5. SuSE

Hardening Suse11 sp1

Currently we are hardening our Solaris server using the Sun provided Jass Security tool kit. How Can I implement the same security level on SUSE11 SP1? Are there any tools similar/equivalent to Jass for SUSE11 SP1? Tanks and Regards (1 Reply)
Discussion started by: vcfko
1 Replies

6. Solaris

Solaris Hardening - SunJass

Hi guys, Is there any script or program which i can use to verify that my hardening setting is all correct ? Recently i am given a task to make sure my Sun servers are all harden properly though sunjass was already introduced. I need to generate a report to convince my manager that the settings... (0 Replies)
Discussion started by: ahlude
0 Replies

7. UNIX for Dummies Questions & Answers

sysctl help needed.(Server Hardening).

As per Hardening guide for the server. ICMP Broadcast Response: The kernel parameter icmp_echo_ignore_broadcasts must match to 1 However when i check the value of icmp_echo_ignore_broadcasts it thrown an error as unkonwn key. # sysctl icmp_echo_ignore_broadcasts error:... (2 Replies)
Discussion started by: pinga123
2 Replies

8. Solaris

Hardening Solaris

What do we need to do to harden a freshly installed solaris OS? like disable telnet, no ftp for root etc...What all services you need to stop? How to check what ports are open? etc etc....please provide all tips that come to your mind...thanks:) (5 Replies)
Discussion started by: rcmrulzz
5 Replies

9. Solaris

Hardening Solaris 10

So I've just done my first install of Solaris. I installed it on an x86 system and am now in the processing of figuring out what I need to do to 'harden' it. I've got the Security kit downloaded (jass) but I am not sure what to do with the .tar file. I can't seem to find any easy steps to... (6 Replies)
Discussion started by: flood
6 Replies

10. UNIX for Dummies Questions & Answers

Any leads to hardening UNIX

Hi! I am trying to get info/best practices/how-to harden unix, especially solaris! Appreciate any leads please..................... (3 Replies)
Discussion started by: sdharmap
3 Replies
Login or Register to Ask a Question