{"id":1450,"date":"2016-06-21T21:37:08","date_gmt":"2016-06-21T19:37:08","guid":{"rendered":"https:\/\/clemente.pamplona.name\/dba\/?p=1450"},"modified":"2016-06-22T12:28:21","modified_gmt":"2016-06-22T10:28:21","slug":"securizando-el-listener","status":"publish","type":"post","link":"http:\/\/clemente.pamplona.name\/dba\/securizando-el-listener\/","title":{"rendered":"Securizando el listener"},"content":{"rendered":"<p>Vamos a ver una serie  de entradas sencillas sobre securizaci\u00f3n b\u00e1sica de la base de datos <\/p>\n<p>La securizaci\u00f3n del listener es una de las tareas mas sencillas y de las primeas que tenemos que hacer con la instalaci\u00f3n de la base de datos.<br \/>\nEsta securizaci\u00f3n consta de varias partes:<\/p>\n<ul>\n<li>Securizacion del S.O\n<li> Restringir las IPs desde las que se permite el acceso\n<li> A\u00f1adir autenticacion al listener.\n<li> Auditar listeners\n<li> Parametrizar conexiones\n<li> Cifrar tr\u00e1fico\n<\/ul>\n<p><\/p>\n<h1> Securizaci\u00f3n del S.O <\/h1>\n<p>Como en todo componente de Oracle, la securizaci\u00f3n del Sistema Operativo es primordial.<br \/>\nOracle por defecto cuenta con una estructura de permisos en directorios que no deben de variarse.<br \/>\nEn cualquier caso siempre es conveniente seguir  los aparatados de <i>managing security<\/i> de los documentos de instalacion de los productos <\/p>\n<h1>Restringir las IPs desde las que se permite el acceso <\/h1>\n<p>Este apartado es muy relativo, ya que puede no aplicar a nuestro sistema, sin embargo, en la mayor\u00eda de los casos estaremos tratando arquitecturas de 3 capas donde los accesos a las bases de datos son desde nuestra capa de servidor de aplicaci\u00f3n.<\/p>\n<p>Para habilitar las <i>whitelists <\/i> usaremos los par\u00e1metros <b>tcp.invited_nodes<\/b> y <b>tcp.validnode_checking <\/b> en el fichero <i>$TNS_ADMIN\/sqlnet.ora<\/i> de la siguiente manera<\/p>\n<pre>\r\ntcp.validnode_checking = YES\r\ntcp.invited_nodes = ( X.X.X.X, hostname, ... )\r\n<\/pre>\n<p>La documentaci\u00f3n de estos par\u00e1metros la tenemos en <a href=\"http:\/\/docs.oracle.com\/cd\/E11882_01\/network.112\/e41945\/profile.htm#NETAG289\" target=\"_blank\">Configuring Database Access Control<\/a><\/p>\n<h1>A\u00f1adir autenticaci\u00f3n al listener.<\/h1>\n<p><font color=red> Esta opcion est\u00e1 desoportada en la version 12c <a href=\"http:\/\/docs.oracle.com\/database\/121\/UPGRD\/deprecated.htm#UPGRD60063\" target=\"_blank\"> Desupport of Oracle Net Listener Password<\/a><\/font><br \/>\nUna de las primeras vulnerabilidades que van a encontrarte en una auditoria de seguridad es la falta de autenticacion del listener.<br \/>\nPoner password al listener previene a la base de datos de ejecuci\u00f3n de los comandos de control del mismo desde ubicaciones remotas. Es importante destacar que , desde la version 10g \u00ab<i>the listener password is no longer required as the listener implements OSAuthentication,<\/i>\u00ab, esto quiere decir que el usuario del sistema operativo propietario del listener no necesita el password para pararlo o arrancarlo ( que es el principal miedo del DBA cuando pone password al listener) <\/p>\n<p>Para poner password al listener ejecutaremos:<\/p>\n<pre>\r\n$ lsnrctl\r\nLSNRCTL> change_password\r\nOld password:\r\nNew password:\r\nReenter new password: \r\nConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=BBDD1)(PORT=1521)))\r\nPassword changed for LISTENER\r\nThe command completed successfully\r\nLSNRCTL> set password\r\nPassword:\r\nThe command completed successfully\r\nLSNRCTL> save_config\r\nConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=BBDD1)(PORT=1521)))\r\nSaved DBLSNR configuration parameters.\r\nListener Parameter File \/oracle\/product\/BBDD\/network\/admin\/listener.ora\r\nOld Parameter File \/oracle\/product\/BBDD\/network\/admin\/listener.bak\r\nThe command completed successfully<\/pre>\n<p>Esto nos habr\u00e1 a\u00f1adido unas lineas al listener.ora<\/p>\n<pre>\r\nThis added the following lines to listener.ora:\r\n#----ADDED BY TNSLSNR 21-JUN-2016 13:47:56---\r\nPASSWORDS_VSEC = D911537DUT5E6546\r\n<\/pre>\n<h1\n\n\n<h1>Auditar el listener <\/h1>\n<p>Toda securizacion de un elemento debe incluir la habilitaci\u00f3n de un registro del mismo.<br \/>\nPara habilitar el regitro del log de listener a\u00f1adiremos al fichero <i> $TNS_ADMIN\/listener.ora<\/i> las siguientes lineas :<\/p>\n<pre>\r\nLOG_STATUS = ON\r\nLOG_DIRECTORY_<listenername> = $TNS_ADMIN\r\nLOG_FILE_<listenername> = $ORACLE_SID\r\n<\/pre>\n<p><font color=red> Esto ya se lleva a cabo por defecto a partir de la versi\u00f3n  11.5.10.<\/font><\/p>\n<h1> Parametrizar conexiones<\/h1>\n<p>El ultimo y no menos importante de los apartados es el de parametrizar los par\u00e1metros del listener ,un ejemplo de uno de estos par\u00e1metros es <b>CONNECT_TIMEOUT<\/b><br \/>\nA\u00f1afiendo en el <i> $TNS_ADMIN\/listener.ora<\/i> el par\u00e1metro <\/p>\n<pre>\r\nCONNECT_TIMEOUT_<listenername> = 10\r\n<\/pre>\n<p>Especificamos el tiempo en segundos que el listener esperar\u00e1 para que se complete una conexion de cliente.<\/p>\n<h1> Cifrar tr\u00e1fico<\/h1>\n<p>El cifrado del tr\u00e1fico de la base de datos es posiblemente uno de los puntos mas importantes a la hora de securizar una conexion.<br \/>\n<b>\u00bfPor que  la hemos dejado para el final?<\/b><br \/>\nLa respuesta es sencilla, por que este cifrado implica una opcion de pago que es la <i> Advanced Security<br \/>\nOption (ASO).<\/i><br \/>\nSi est\u00e1s interesado en ahondar en esta opcion tienes la informacion en el grupo <a href=\"https:\/\/support.oracle.com\/epmos\/faces\/SearchDocDisplay?_adf.ctrl-state=pq5v7gt9f_4&#038;_afrLoop=199611155251452\" target=\"_blank\">Advanced Security Option<\/a> del MSOC<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vamos a ver una serie de entradas sencillas sobre securizaci\u00f3n b\u00e1sica de la base de datos La securizaci\u00f3n del listener es una de las tareas mas sencillas y de las primeas que tenemos que hacer con la instalaci\u00f3n de la &hellip; <a href=\"http:\/\/clemente.pamplona.name\/dba\/securizando-el-listener\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,60,122],"tags":[619,613,617,615],"class_list":["post-1450","post","type-post","status-publish","format-standard","hentry","category-11g","category-12c","category-seguridad","tag-connect_timeout","tag-listener-security","tag-tcp-invited_nodes","tag-tcp-validnode_checking"],"_links":{"self":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/1450","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/comments?post=1450"}],"version-history":[{"count":12,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/1450\/revisions"}],"predecessor-version":[{"id":1462,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/1450\/revisions\/1462"}],"wp:attachment":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/media?parent=1450"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/categories?post=1450"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/tags?post=1450"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}