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
