Code Example A-4    Load Balancing and Binding Based Filtering's LDIF
version: 1
|
|
dn: ou=actions
|
objectclass: ids-proxy-top
|
objectclass: organizationalUnit
|
ou: actions
|
|
dn: ou=global
|
objectclass: ids-proxy-top
|
objectclass: organizationalUnit
|
ou: global
|
|
dn: ou=groups
|
objectclass: ids-proxy-top
|
objectclass: organizationalUnit
|
ou: groups
|
|
dn: ou=properties
|
objectclass: ids-proxy-top
|
objectclass: organizationalUnit
|
ou: properties
|
|
dn: ou=rules
|
objectclass: ids-proxy-top
|
objectclass: organizationalUnit
|
ou: rules
|
|
#
|
# This bootstrap entry defines:
|
#
|
# 1) the name of the iDAR server set is: "iDAR"
|
# 2) the DN of the ids-proxy-sch-GlobalConfiguration object
|
# 3) the base DN of the Properties definitions
|
# 4) the base DN of the Groups definitions
|
#
|
# Note: iDAR learns this entry's DN via the startup configuration (tailor.txt).
|
#
|
dn: ids-proxy-con-Server-Name=iDAR
|
objectclass: ids-proxy-sch-LDAPProxy
|
objectclass: ids-proxy-top
|
ids-proxy-con-Server-Name: iDAR
|
ids-proxy-sch-Action-Base: ou=actions
|
ids-proxy-sch-Global-Config-Dn: ids-proxy-con-Config-Name=config,ou=global
|
ids-proxy-sch-Group-Base: ou=groups
|
ids-proxy-sch-Property-Base: ou=properties
|
ids-proxy-sch-Rule-Base: ou=rules
|
|
#
|
# This Global properties entry declares:
|
#
|
# 1) which port the proxy will listen on for connections
|
#
|
dn: ids-proxy-con-Config-Name=config,ou=global
|
objectclass: ids-proxy-sch-GlobalConfiguration
|
objectclass: ids-proxy-top
|
ids-proxy-con-Config-Name: config
|
ids-proxy-con-connection-pool: FALSE
|
ids-proxy-con-connection-pool-interval: 15
|
ids-proxy-con-connection-pool-timeout: 30
|
ids-proxy-con-include-logproperty: LogProperty
|
ids-proxy-con-listen-backlog: 128
|
ids-proxy-con-listen-host: localhost
|
ids-proxy-con-listen-port: 389
|
ids-proxy-con-one-thread-only: FALSE
|
ids-proxy-con-userid: nobody
|
ids-proxy-con-working-dir: /tmp
|
ou: global
|
|
#
|
# Here we stipulate to iDAR where to send its log file as well
|
# as what logging level to use.
|
#
|
dn: ids-proxy-con-Name=LogProperty,ou=properties
|
objectclass: ids-proxy-sch-LogProperty
|
objectclass: ids-proxy-sch-Property
|
objectclass: ids-proxy-top
|
ids-proxy-con-Name: LogProperty
|
ids-proxy-con-log-file: /opt/iDAR/logs/fwd.log
|
ids-proxy-con-log-level: warning
|
ids-proxy-con-stat-level: none
|
ids-proxy-sch-Enable: TRUE
|
ids-proxy-sch-belongs-to: iDAR
|
ou: properties
|
|
#
|
# note that we change group on bind
|
#
|
dn: ids-proxy-con-Name=successfulBind,ou=rules
|
objectclass: ids-proxy-sch-OnBindSuccessRule
|
objectclass: ids-proxy-sch-Rule
|
objectclass: ids-proxy-top
|
ids-proxy-con-Name: successfulBind
|
ids-proxy-con-bind-anonymous: FALSE
|
ids-proxy-con-bind-sasl: TRUE
|
ids-proxy-con-bind-simple: TRUE
|
ids-proxy-con-execute: change#100
|
ids-proxy-con-ssl-required: FALSE
|
ids-proxy-sch-Enable: TRUE
|
ids-proxy-sch-belongs-to: iDAR
|
ou: rules
|
|
#
|
# this is the group we changeto on successful bind
|
#
|
dn: ids-proxy-con-Name=change,ou=actions
|
objectclass: ids-proxy-sch-Action
|
objectclass: ids-proxy-sch-ChangeGroupAction
|
objectclass: ids-proxy-top
|
ids-proxy-con-Name: change
|
ids-proxy-con-to-group: onbind#.*#5
|
ids-proxy-sch-Enable: TRUE
|
ids-proxy-sch-belongs-to: iDAR
|
ou: actions
|
|
#
|
# iDAR finds its group properties by essentially performing a one level search
|
# beneath the ids-proxy-sch-LDAPProxy stipulated ids-proxy-sch-Group-Base.
|
# (This is in contrast with all other entries which are "found" by an exact DN
|
# to utilize.) Since there could be more than one entry beneath the
|
# ids-proxy-sch-Group-Base, each group entry has an ids-proxy-con-Priority
|
# value to indicate their evaluation order. In addition, the
|
# ids-proxy-sch-belongs-to attribute allows entries at this level to exclude
|
# or include themselves based on if their ids-proxy-sch-belongs-to value
|
# matches the value asserted by the ids-proxy-con-Server-Name value found
|
# in the ids-proxy-sch-LDAPProxy objectclass entry.
|
#
|
# The following entry defines a group called "onbind" that:
|
#
|
# 1) assigns an evaluation priority of 10 (evaluates before 9, 8, 7, etc.)
|
# 2) declares the server configuration this entry belongs to as "iDAR"
|
# 3) uses a con-Client value that FAILS matching during priority scanning
|
# 4) allows all clients regardless of bind name (since it isn't enumerated)
|
# 5) allows all operations
|
# 6) stipulates that referrals are returned to the proxy's client
|
# 7) stipulates that this group is to use load balancing.
|
#
|
dn: ids-proxy-con-Name=onbind,ou=groups
|
objectclass: ids-proxy-sch-Group
|
objectclass: ids-proxy-sch-NetworkGroup
|
objectclass: ids-proxy-top
|
ids-proxy-con-Client: 0.0.0.0
|
ids-proxy-con-Name: onbind
|
ids-proxy-con-Priority: 10
|
ids-proxy-con-allow-multi-ldapv2-bind: FALSE
|
ids-proxy-con-filter-inequality: TRUE
|
ids-proxy-con-include-property: load-balance
|
ids-proxy-con-max-refcount: 15
|
ids-proxy-con-max-scope: 2
|
ids-proxy-con-max-simultaneous-conns-from-ip: 0
|
ids-proxy-con-permit-auth-none: TRUE
|
ids-proxy-con-permit-auth-sasl: TRUE
|
ids-proxy-con-permit-auth-simple: TRUE
|
ids-proxy-con-permit-op-add: TRUE
|
ids-proxy-con-permit-op-compare: TRUE
|
ids-proxy-con-permit-op-delete: TRUE
|
ids-proxy-con-permit-op-extended: TRUE
|
ids-proxy-con-permit-op-modify: TRUE
|
ids-proxy-con-permit-op-modrdn: TRUE
|
ids-proxy-con-permit-op-search: TRUE
|
ids-proxy-con-reference: forward
|
ids-proxy-con-referral-bind-policy: bind_any
|
ids-proxy-con-referral-ssl-policy: ssl_unavailable
|
ids-proxy-con-search-reference: follow
|
ids-proxy-con-tcp-no-delay: TRUE
|
ids-proxy-con-timeout: 120
|
ids-proxy-sch-Enable: TRUE
|
ids-proxy-sch-belongs-to: iDAR
|
ou: groups
|
|
#
|
# The following entry defines a group called "default" that:
|
#
|
# 1) assigns an evaluation priority of 33 (evaluates before 32, 31, 30, etc.)
|
# 2) declares the server configuration this entry belongs to as "iDAR"
|
# 3) allows all clients to be a member of the group as con-Client is ALL
|
# 4) allows all clients regardless of bind name (since it isn't enumerated)
|
# 5) disallows add, compare, delete, modify, modrdn and extended operations
|
# 6) stipulates that referrals are returned to the proxy's client
|
# 7) stipulates that this group is to use load balancing.
|
#
|
dn: ids-proxy-con-Name=default,ou=groups
|
objectclass: ids-proxy-sch-Group
|
objectclass: ids-proxy-sch-NetworkGroup
|
objectclass: ids-proxy-top
|
ids-proxy-con-Client: ALL
|
ids-proxy-con-Name: default
|
ids-proxy-con-Priority: 33
|
ids-proxy-con-allow-multi-ldapv2-bind: FALSE
|
ids-proxy-con-filter-inequality: TRUE
|
ids-proxy-con-include-property: load-balance
|
ids-proxy-con-include-rule: successfulBind
|
ids-proxy-con-max-refcount: 15
|
ids-proxy-con-max-scope: 2
|
ids-proxy-con-max-simultaneous-conns-from-ip: 0
|
ids-proxy-con-permit-auth-none: TRUE
|
ids-proxy-con-permit-auth-sasl: TRUE
|
ids-proxy-con-permit-auth-simple: TRUE
|
ids-proxy-con-permit-op-add: FALSE
|
ids-proxy-con-permit-op-compare: FALSE
|
ids-proxy-con-permit-op-delete: FALSE
|
ids-proxy-con-permit-op-extended: FALSE
|
ids-proxy-con-permit-op-modify: FALSE
|
ids-proxy-con-permit-op-modrdn: FALSE
|
ids-proxy-con-permit-op-search: TRUE
|
ids-proxy-con-reference: forward
|
ids-proxy-con-referral-bind-policy: bind_any
|
ids-proxy-con-referral-ssl-policy: ssl_unavailable
|
ids-proxy-con-search-reference: follow
|
ids-proxy-con-tcp-no-delay: TRUE
|
ids-proxy-con-timeout: 120
|
ids-proxy-sch-Enable: TRUE
|
ids-proxy-sch-belongs-to: iDAR
|
ou: groups
|
|
#
|
# The following entry defines the property used to stipulate which servers
|
# will be contacted. It also apportions the servers.
|
#
|
# Note: it is assumed that the load balanced servers are equal in content
|
# and in capability.
|
#
|
dn: ids-proxy-con-Name=load-balance,ou=properties
|
objectclass: ids-proxy-sch-LoadBalanceProperty
|
objectclass: ids-proxy-sch-Property
|
objectclass: ids-proxy-top
|
ids-proxy-con-Name: load-balance
|
ids-proxy-con-Server: server-1#34
|
ids-proxy-con-Server: server-2#33
|
ids-proxy-con-Server: server-3#33
|
ids-proxy-sch-Enable: TRUE
|
ids-proxy-sch-belongs-to: iDAR
|
ou: properties
|
|
#
|
# server enumeration
|
#
|
dn: ids-proxy-con-Name=server-1,ou=properties
|
objectclass: ids-proxy-sch-LDAPServer
|
objectclass: ids-proxy-sch-Property
|
objectclass: ids-proxy-top
|
ids-proxy-con-Name: server-1
|
ids-proxy-con-host: pink
|
ids-proxy-con-link-security-policy: ssl_optional
|
ids-proxy-con-port: 10205
|
ids-proxy-con-supported-version: 23
|
ids-proxy-con-tcp-no-delay: TRUE
|
ids-proxy-sch-Enable: TRUE
|
ids-proxy-sch-belongs-to: iDAR
|
ou: properties
|
|
#
|
# server enumeration
|
#
|
dn: ids-proxy-con-Name=server-2,ou=properties
|
objectclass: ids-proxy-sch-LDAPServer
|
objectclass: ids-proxy-sch-Property
|
objectclass: ids-proxy-top
|
ids-proxy-con-Name: server-2
|
ids-proxy-con-host: red
|
ids-proxy-con-link-security-policy: ssl_optional
|
ids-proxy-con-port: 10389
|
ids-proxy-con-supported-version: 23
|
ids-proxy-con-tcp-no-delay: TRUE
|
ids-proxy-sch-Enable: TRUE
|
ids-proxy-sch-belongs-to: iDAR
|
ou: properties
|
|
#
|
# server enumeration
|
#
|
dn: ids-proxy-con-Name=server-3,ou=properties
|
objectclass: ids-proxy-sch-LDAPServer
|
objectclass: ids-proxy-sch-Property
|
objectclass: ids-proxy-top
|
ids-proxy-con-Name: server-3
|
ids-proxy-con-host: blue
|
ids-proxy-con-link-security-policy: ssl_optional
|
ids-proxy-con-port: 389
|
ids-proxy-con-supported-version: 23
|
ids-proxy-con-tcp-no-delay: TRUE
|
ids-proxy-sch-Enable: TRUE
|
ids-proxy-sch-belongs-to: iDAR
|
ou: properties
|
|