Fortunately with OUD this is a very easy problem to solve. You simply change the system wide default size-limit to 1. This will prevent anonymous and any non-administrative users from returning the full list of registered databases. For example, with the default TNS configuration an anonymous search can list all registered databases:
$ ldapsearch -T -h tns1.example.com -p 1389 -b dc=example,dc=com -s sub 'orclNetDescString=*' dn
dn: cn=mydb1,ou=Databases,cn=OracleContext,DC=example,DC=com
dn: cn=mypdb1_tns1,ou=Databases,cn=OracleContext,DC=example,DC=com
dn: cn=mytestdb,cn=OracleContext,DC=example,DC=com
$ dsconfig -h tns1.example.com -X -p 4444 -D 'cn=Directory Manager' -j /u01/cfg/...pw --no-prompt set-global-configuration-prop --set size-limit:1
$ ldapsearch -T -h tns1.example.com -p 1389 -b dc=example,dc=com -s sub 'orclNetDescString=*' dn
dn: cn=mydb1,ou=Databases,cn=OracleContext,DC=example,DC=com
SEARCH operation failed
Result Code: 4 (Size Limit Exceeded)
Additional Information: This search operation has sent the maximum of 1 entries to the client
$ ldapsearch -T -h tns1.example.com -p 1389 -b dc=example,dc=com -s sub 'cn=mydb1' orclNetDescString
dn: cn=mydb1,ou=Databases,cn=OracleContext,DC=example,DC=com
orclNetDescString: (DESCRIPTION= (ADDRESS = (PROTOCOL = TCP)(HOST = tns1.example.com )(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = mydb1 )))
$ ldapmodify -h tns1.example.com -Z -X -p 1636 -D "cn=Directory Manager" -j /u01/cfg/...pw <<EOF
dn: cn=tnsadmin,ou=TNSAdmins,cn=OracleContext
changetype: modify
add: ds-rlim-size-limit
ds-rlim-size-limit: 0
EOF
Blessings!
No comments:
Post a Comment