Client Zugangsprüfung // Valid Node Checking

Um im großen Feld der Oracle Listener Sicherheit mal einen kleinen Schritt zu tun, hier ein Hinweis zu einer Basis Einstellung. Mit einigen wenigen Einträgen in der sqlnet.ora können die Rechner festgelegt werden, die sich zur DB verbinden dürfen.

Diese Zeilen sind zusätzlich in die sqlnet.ora einzutragen:

tcp.validnode_checking = yes
tcp.invited_nodes = (localhost, app01)

Anschließend, reload des Listeners:

cmd> lsnrctl reload

tcp.validnode_checking = yes aktiviert die IP/ Host- Prüfung. tcp.invited_nodes = () legt die zugelassen Rechner fest. ‚localhost‘ sollte immer eingetragen werden. Mit der Option tcp.excluded_nodes = () werden die genannten Clients ausgesperrt, aber alle anderen zugelassen. tcp.invited_nodes hat dennoch Vorrang vor tcp.excluded_nodes.

Leider können keine Wildcards, Subnetze oder IP-Ranges angegeben werden.

Nach aktivieren der Funktion kommt es auf nicht autorisierten Clients zu folgendem Fehler:

cmd> sqlplus scott/tiger@db01
SQL*Plus: Release 11.2.0.2.0 Production on Sat Dec 17 13:58:55 2011
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
ERROR:
ORA-12537: TNS: Verbindung beendet

und diese Einträge sind im listener.log zu finden:

Sat Dec 17 14:05:36 2011
17-DEC-2011 14:05:36 * 12546
TNS-12546: TNS: Berechtigung verweigert
 TNS-12560: TNS: Fehler bei Protokolladapter
  TNS-00516: Genehmigung verweigert

Weitere Infos:
http://docs.oracle.com/cd/B19306_01/network.102/b14213/lsnrctl.htm#i553605

Client Zugangsprüfung // Valid Node Checking