Instalación
segura de Firebird en Win 2003 Server
Por Simon
Carter
TECT Software Ltd
Instala Firebird 1.5.x. (para más información sobre
si instalar la versión clásica o superserver puedes mirar este link http://ibphoenix.com/main.nfs?a=ibphoenix&l=;PAGES;NAME='ibp_ss_vs_classic' ).
Por defecto FB viene con una cuenta
llamada SYSDBA. La clave de La clavepor defecto para el usuario SYSDBA
es masterkey.
Cambia la clave de SYSDBA a alguna otra
cosa más segura. Para cambiar la clave
inicia una sesión de DOS, cambia la carpeta a FB_Install y escribe lo
siguiente:
gsec –user
SYSDBA –pa masterkey –modify SYSDBA –pw <new password>
Donde <new password> es el password que te
gustaría aplicar a la cuenta SYSDBA.
Nota: Sólo son
relevantes los primeros 8 dígitos del password, si cuando cambies el tamaño del
password el tamño del nuevo password es más grande que 8 dígitos verás el
siguiente aviso:
Warning –
maximum 8 significant bytes of password used
Este warning se puede ignorar.
Por defecto FB usa el Puerto 3050, si
estás usando un firewall entonces necesitarás abrir este puerto para que tus
usuarios puedan acceder a sus bases de datos externamente.
FB tiene la capacidad de usar Alias, esto
te dará más seguridad pues no es necesario que los usuarios sepan el nombre del
directorio y su path y de esta forma pueden usar el alias del nombre para
conexión.
Los Alias se guardan en ‘aliases.conf’
que se puede encontrar dentro del path de instalación de FB. Las entradas tienen el siguiente formato:
AliasName
= drive:\path to database\databasename.fdb
Seguridad
Para asegurar Firebird necesitarás primero correr el servicio dentro
del contexto del usuario y cambiar los permisos de la carpeta. Esto conlleva crear una cuenta de usuario en
Windows y modificar los permisos de una unidad NTFS o de una carpeta.
Seguridad de Usuario
Es important crear un usuario para
ejecutar Firebird, esto ter permitirá asegurar al servidor mediante permisos
NTFS.
Ve al Panel de Control > Herramientas
Administrativas > Computer Management, selecciona ‘Usuarios Locales y
Grupos’, y a continuación selecciona
‘Users’ desde el arbol de la izquierda dentro de la pantalla de Administración.
Haz clic con el botón derecho del ratón
en ‘Usuarios’ y selecciona ‘Nuevo Usuario’,
se te presentará la siguiente ventana de diálogo. Create un usuario, para este ejemplo
crearemos un usuario con el nombre ‘FB_USER’.
Asignale un password y selecciona el ‘Password nunca espira’ y pulsar en
Crear.
Click Cerrar para cerrar la ventana de nuevo usuario.
Dentro de la ventana de Administración de usuarios, haz click en la cuenta
recientemente creada de FB_USER, esto te abrirá la ventana de propiedades del
usuario. Selecciona la pestaña de ‘Member Of’ y quita todos los grupos de
usuarios.
Ahora selecciona la pestaña de ‘Terminal Services Profile’.
Asegurate de que está
desmarcado el check box ‘Allow logon to
terminal server’, y haz click en OK.
Para evitar que los usuarios puedan crear Bases de
Datos en cualquier lugar del servidor
necesitarás asegurar los permisos NTFS de todos los discos duros. Para
hacer esto, primero tendrás que establecer los permisos para cada unidad.
Desde dentro de windows explorer, se debería hacer right click en la unidad c y
seleccionar propiedades. Selecciona la
pestña de ‘Seguridad’ y quita el usuario ‘Everyone’.
Repite el proceso para todas las unidades en el
servidor.
Ahora necesitamos activar la cuenta de usuario
‘FB_USER’ dentro de la carpeta específica donde se requieren los permisos de
acceso para leer y escribir. First of all, select
the install folder for Firebird itself, right click the folder and select
properties.
Añade la cuenta ‘FB_USER’ y asegura que se establecen
los siguientes permisos:
·
·
Read
& Execute
·
·
List
Folder Contents
·
·
Read
·
·
Write
Repite este proceso para cada carpeta donde quieras
que se localicen las Bases de Datos.
Nota: NTFS usa
herencia para los permisos, así cada carpeta y archivo hereda los permisos de
la carpeta donde se encuentran.
FB puede ser más seguro mediante el uso del archivo
firebird.conf. Cualquier cambio hecho a este archivo de configuración requiere
que el Servicio de Firebird se reinicie antes de que los cambios tomen efecto.
Si no te
sientes a gusto modificando el archivo firebird.conf puedes bajarte una
utilidad de (http://prdownloads.sourceforge.net/firebird/FbConfigManager.zip)
que se diseño para manipular el archivo.conf.
Esta entrada se puede usar para restringir los paths
que se pueden usar para guardar los archivos de las Bases de Datos. Son válidos los siguientes valores:
·
Full. Allows unlimited access to
local drives.
·
Restrict. Restricts paths to specific list of paths.
·
None. Restricts to only those files
listed in Aliases.conf.
Define donde se guardan las tablas externas. Son
válidos los siguientes valores:
·
·
Full. External tables can be
stored anywhere on local drives.
·
·
Restrict. Restricts external table locations to a
specified list of paths.
·
·
None. Does not allow external tables.
Por razones de seguridad, se recomienda que se
especifique None.
Define si las funciones definidas por el usuairo
(UDF) se pueden localizar. UDF’s son
archivos tipo dll que se linkan dinámicamente en el proceso de FB en tiempo de
ejecución. FB viene con una librería
udf que se instala dentro $(FIREBIRD)\udf.
Son válidos los siguiente valores:
·
·
Full. Las librerías UDF se pueden localizar en cualquier
lugar dentro del disco local.
·
·
Restrict. Las
librerías UDF se restringen a paths específicos.
·
·
None. No se permite el uso de librerías UDF.
Por seguridad se recomienda que uses Restrict seguido
por UDF por ejemplo
UdfAccess = Restrict UDF
Esto permitirá a los usuarios tener acceso total a
las librerías UDF estándares, pero no les permite upload sus propias librerías
UDF.
Define el puerto usado por FB para las comunicaciones
TCP. FB1.5 introduce la posibilidad de
configurar qué puerto se usa. El puerto
por defecto es el 3050. Los siguientes
valores son válidos cuando se cambia el puerto:
·
· RemoteServiceName = gds_db. Specifica el puerto dentro del Services
File.
·
· RemoteServicePort = 3050. Se puede cambiar a
cualquier puerto no usado.
Cambiando este valor se romperá la compatibilidad con
vijos programas que no se configuran para usar puertos alternativos.
Define que dirección IP se vinculada a FB. Por defecto, se vincula a todas las
direcciones IP disponibles. Se puede
establecer el siguiente valor:
·
· RemoteBindAddress = [IP ADDRESS]
e.g. RemoteBindAddress
= 192.168.0.1
La Remote Bind Address e útil cuando se instalan
múltiples servidores FB, o cuando quieras controlar que interfaces se usan para
las comunicaciones externas.
Por defecto Firebird se ejecuta como un Servicio
dentro de Windows 2003, y viene con una
aplicación de servicio Guardian para asegurar que siempre se está
ejecutando. Sin embargo, un problema
con el Guardian es que cuando el usuario que está ejecutando no tiene permisos
para iniciar un servicio (como sucede en el contexto de la cuenta FB_USER que
se ha creado previamente) entonces no funcionará. Para combatir esto necesitarás cambiar las propiedades para el
Servicio FB.
Para cambiar las propiedades del Servicio ‘Firebird
Server – DefaultInstance’ dentro del Services applet (Control Panel). Haz Doble click en el servicio para mostrar
las propiedades y selecciona la pestaña de Recovery.
Asegura que las respuesta de error reinician el
servicio (Restart the Service), como está indicado en la foto.
Ahora selecciona la pestaña de Log On y cambia el Log
on para que se ejecute el servicio
mediante el uso de la cuenta FB_USER
que se ha creado previamente.
Asegurate de que el password y el password de confirmación se establecen
correctamente pues de otra forma el servicio no se iniciará..
A continuación cambia el tipo de Inicio dentro de la
pestaña de General a Automático
Finalmente, haz click en OK para guardar los cambios
y repite los pasos anteriores sobre el FB Guardian. Cuando estén completos restaura ambos servicios.
FB mantiene un archivo de log dentro de la carpeta
FB_Install; esto se puede usar en conjunción con Windows Event Viewer para
disgnosticar cualquier problema dentro del proceso de instalación.
Firebird
debería ahora estar instalado de forma segura para su uso por los
clientes.
Los siguientes
links contienen información sobre Firebird y podría ser útil:
http://firebird.sourceforge.net/ff/foundation/
- Firebird foundation es una organización sin ánimo de lucro oriendtada al
desarrollo y mejora de Firebird.
http://www.ibphoenix.com
– IBPhoenix es una web y organización que facilita información recursos sobre
Firebird.
http://www.volny.cz/iprenosil/interbase/ip_ib_isc4.htm
- Security Enahanced users database.
FoxPress – Enero de 2005