viernes, 18 de noviembre de 2011

Habilitar Firewall para publicar servicios del servidor SQL Server

Después  de una instalación de un servidor de bases de datos SQL server, generalmente se debe  permitir  conectividad de equipos remotos para los diferentes aplicaciones del motor, por lo cual es necesarios crear reglas en el firewall del equipo donde se instaló el SQL Server para publicar estos servicios.
El puerto de la instancia por defecto es 1433
El puerto dedicado a administración  es 1434
El puerto para servicios de service broker 4022
El puerto para Transact-SQL Debugger/RPC es 135
El puerto para Analysis Services es 2383
El puerto para SQL Browser es 2382
El puerto para SQL Server Browser Service's 1434
No olvidar servicios complementarios como

El HTTP
El SSL
El multicast broadcast response en UDP (Browser Service Enumerations)
Aunque hay varias maneras de configurar el firewall de Windows, como la interfaz gráfica, la consola o línea de comando o por un script .bat, en este caso no centraremos en las dos últimas formas.

Para el caso de la línea de comandos o CMD, lo primero que debemos realizar es que se ejecute como administrador, esto evitara que cuando le enviemos un comando nos diga que se requiere elevar los permisos de ejecución de comandos.


El comando para crear un regla en el firewall que habilite un puerto, como por ejemplo el puerto 1433, sería el siguiente.
netsh firewall set portopening TCP 1433 "SQLServer" --abre puertos
 netsh firewall set multicastbroadcastresponse ENABLE --permite multicast
En el caso de utilizar un script , el cual nos facilita crear varias regla que habiliten los diferentes puertos en firewall como por ejemplo:
@echo =========  Puertos servidor SQL Server ===================
@echo Habilitar instancia por defecto de SQL puerto 1433
netsh firewall set portopening TCP 1433 "SQLServer"
@echo Habilitar conexión dedicada administración Puerto 1434
netsh firewall set portopening TCP 1434 "SQL Admin"
@echo Habilitar conexión del servicio server broker Puerto 4022
netsh firewall set portopening TCP 4022 "SQL Service Broker"
@echo Habilitar Transact-SQL Debugger/RPC Puerto 135
netsh firewall set portopening TCP 135 "SQL Debugger/RPC"
@echo =========  Puerto para Analysis Services ==============
@echo Habilitar por defecto la instancia SSAS Puerto 2383
netsh firewall set portopening TCP 2383 "Analysis Services"
@echo Habilitar el servicio SQL Server Browser puerto 2382
netsh firewall set portopening TCP 2382 "SQL Browser"
@echo ========= Aplicaciones Misc  ==============
@echo Habilitar HTTP port 80
netsh firewall set portopening TCP 80 "HTTP"
@echo Habilitar SSL port 443
netsh firewall set portopening TCP 443 "SSL"
@echo Habilitar puerto de SQL Server Browser Service's 'Browse'
netsh firewall set portopening UDP 1434 "SQL Browser"
@echo Permite  multicast broadcast response en UDP (Browser Service Enumerations)
netsh firewall set multicastbroadcastresponse ENABLE


Para server 2008 y nuevas versiones:
@echo =========  Puertos servidor SQL Server ===================
@echo ========= SQL Server Ports ===================
@echo Enabling SQLServer default instance port 1433
netsh advfirewall firewall add rule name="SQLServer" dir=in action=allow protocol=tcp localport=1433
@echo Enabling Dedicated Admin Connection port 1434
netsh advfirewall firewall add rule name="SQL Admin Connection" dir=in action=allow protocol=tcp localport=1434
@echo Enabling conventional SQL Server Service Broker port 4022 
netsh advfirewall firewall add rule name="SQL Service Broker" dir=in action=allow protocol=tcp localport=4022
@echo Enabling Transact-SQL Debugger/RPC port 135
netsh advfirewall firewall add rule name="SQL Debugger/RPC" dir=in action=allow protocol=tcp localport=135
@echo ========= Analysis Services Ports ==============
@echo Enabling SSAS Default Instance port 2383
netsh advfirewall firewall add rule name="Analysis Services" dir=in action=allow protocol=tcp localport=2383
@echo Enabling SQL Server Browser Service port 2382
netsh advfirewall firewall add rule name="SQL Browser" dir=in action=allow protocol=tcp localport=2382
@echo ========= Misc Applications ==============
@echo Enabling HTTP port 80
netsh advfirewall firewall add rule name="HTTP" dir=in action=allow protocol=tcp localport=80
@echo Enabling SSL port 443
netsh advfirewall firewall add rule name="SSL" dir=in action=allow protocol=tcp localport=443
@echo Enabling port for SQL Server Browser Service's 'Browse' Button
netsh advfirewall firewall add rule name="SQL Browser Browse Button" dir=in action=allow protocol=udp localport=1434
@echo Allowing multicast broadcast response on UDP (Browser Service Enumerations OK)
netsh advfirewall set currentprofile settings unicastresponsetomulticast enable


Para la creación del script se utilizaría el block de notas, se guardaría con extensión .txt, después se renombraría con la extensión .bat y se ejecutaría con la línea de comandos. No olvide que la línea de comandos debe ser ejecutada como administrador.  

Se debe tener en cuenta que en el caso de que algunos servicios deban publicarse al exterior de una red, se tiene que  habilitar la regla del servicio  en el sistema de seguridad perimetral que se tenga.
Referencias:

Por José A Cuartas M con No comentarios

miércoles, 16 de noviembre de 2011

Conexión remota al servidor PostgreSQL

Algunasveces, realizar las tareas de  conexión cliente servidor son un poco difíciles,esto generalmente ocurre por desconocimiento de los archivos de configuraciónde PostgreSQL. En muchos casos se recibe un error cuando uno trata deconectarse al servidor de PostgreSQL remotamente:
psql: could not connect to server: Connection refused
Is the server running on host host.domain.com and accepting
TCP/IP connections on port 5432?

Esto ocurregeneralmente porque falta adicionar información a los siguientes archivos deconfiguración de PostgreSQL.
-- pg_hda.conf
 -- postgresql.conf

Parapermitir la conexión que proviene de equipos remotos al servidor de base dedatos PostgreSQL  se le debe buscar en el archivo pg_hda.conf, lasiguiente sección.
-- #TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD


Debajo deesta sección o comentario se agregan  los equipos remotos o la red quepuede tener conectarse con el servicio de PostgreSQL.
host    all    all   192.168.1.0  255.255.255.0  trust
Adicionar esta regla, permite que todos los equipos de la red 192.168.1.0
con mascara de red 255.255.255.0 se puedan comunicar con el servidor.

host  all    all      172.16.48.189/24      md5
Adicionar esta regla, permite que solo el equipo con dirección IP
172.16.48.189 con mascara de red 255.255.255.0 se puedan comunicar
con el servidor.
También se debe especificar la dirección en el cual el servidor escucha las peticionesde los clientes, esto se realiza en el archivo postgresql.conf, en la siguientesección.


-- # CONNECTIONS AND AUTHENTICATION
En esta secciónse configura todo lo relacionado con la conexión del servidor, en este caso sedes-comenta lo siguiente:
 #listen_addresses = '*' 
Esto permiteque el servidor escuche en cualquier IP  que tenga asignada la interfaz dered del equipo.

En caso de que no halla comunicación es buenorevisar el puerto donde el servidor PostgreSQL está escuchando las peticiones,por lo general es el puerto 5432 o se puede ubicar en la misma sección
 # CONNECTIONS AND AUTHENTICATION
del archivo postgresql.conf.

No se debeolvidar revisar las reglas del Firewall o cortafuego local tanto del servidor y cliente ,como el firewall externo.
Los parámetros oreglas que se debe revisar en los diferentes cortafuegos son las  que  permitir conexiones a las IP ypuertos del servidor  postgreSQL.


  

Por José A Cuartas M con No comentarios

jueves, 10 de noviembre de 2011

El tiempo, la cuarta dimensión aplicada a las bases de datos

Nos cuesta determinar qué es exactamente el tiempo. Aunque  vivimos en un mundo dominado por el mismo, ysabemos  que el tiempo nos da forma anuestra vida, desde el nacimiento hasta la muerte, pero sigue siendo uno de losmisterios más grandes de la humanidad.

Aunque el tiempo está  en el centro de la existencia y se considerala cuarta dimensión,  es paradójico quehasta hace muy poco hemos podido entender cómo pensar en el tiempo yrepresentarlo en  los sistemas formales.

Hasta hace muy poco hemos llegado a comprender losconceptos fundamentales de los instantes, intervalos, períodos, los cambios enla secuencia, el tiempo de validez, el tiempo de transacción, y una vista debitemporal de la información.

En esta presentación se da una introducción deltiempo aplicado en las bases de datos.


Por José A Cuartas M con No comentarios
  • Popular
  • Categorias
  • Archivo