Universidad
de Costa Rica
Escuela
de Ingeniería Eléctrica
Programación
bajo plataformas abiertas IE0117
Primer
Modulo Linux
Implementación
de una aplicación de red para la gestión de recursos compartidos,
en conjunto con una herramienta de seguridad frente al trafico en la
web.
Profesor Guia:
Federico
Ugalde
Autores:
Jean
Carlos Chavarría Hughes
Javier
Pacheco Brito
Introducción
El
presente proyecto nace bajo la iniciativa de buscar una alternativa
para la administración de sistemas de archivos compartidos en una
red. Respondiendo a la necesidad que se pueda tener cualquier
compañía que necesite del uso de archivos compartidos o bien un
administrador de “café Internet” entre otros.
Hoy
en día las personas tienen la necesidad de transferir a tiempo real
documentos por la red, principalmente en empresas. Para ello es muy
viable la instalación de un servidor que cumpla con esta función.
Por ser una necesidad constante para las empresas, existen
alternativas en servidores.
Enfocádos
en lo anterior es cuando se inicia la búsqueda de una alternativa a
un sistema utilizado muy comúnmente en redes privadas como lo es el
Windows Server, el trabajo no consiste en despreciar esta herramienta
como tal, sino buscar una propuesta en Linux que cumpla con funciones
muy similares y que además tenga ventajas sobre este sistema
operativo.
La
idea de implementar un servidor con software libre radica en
progresar y evitar de esta manera, las desventajas del software
privativo antes mencionado, como es de esperarse, el costo de
licencias de aplicaciones de la familia Microsoft es su principal
desventaja, en ocasiones el uso de estos
servers
requiere un personal para el manejo y mantenimiento por los
constantes fallos que ocurren en el servidor, lo cual al final de
cuentas resulta poco económico esto porque la idea de las empresas
es invertir en equipo informático pero de igual manera reducir
costos de operación es por ello que Windows Server deja de ser una
opción economicamente viable para las empresas.
La
seguridad de este sistema operativo no es la más óptima y esto es
reflejado en muchos foros en Internet (que si bien es cierto no son
100% confiables, si aportan suficientes argumentos como para ser
tomados en cuenta), añadiéndole a todo esto la cantidad de
actualizaciones que pueden ser tediosas para el usuario porque y
esto no ofrece una estabilidad en el sistema ya que lo sigue llenando
de configuraciones que el usuario en la mayoría de las ocasiones no
saben que contienen tales y esto no es seguro a la hora de
administración de servidores.
Se
propone implementar una herramienta para mejorar la seguridad del
servidor que se valla a utilizar para compartir archivos, por lo cual
nace la idea de colocar un firewall. Un firewall es un dispositivo
que funciona como cortafuegos entre redes, permitiendo o denegando el
trafico y trasmisiones de una red a la otra, como dispositivo de
seguridad es evitar que los intrusos puedan acceder a información
confidencial, es decir actúa como filtro de comunicación de lo que
entra y sale de una red.
Objetivo General
Implementar
una alternativa a Windows Server para la administración de sistemas
de archivos compartidos en una red en conjunto de una herramienta de
seguridad robusta para denegar y aceptar el trafico de red por medio
de utilización de software libre.
Objetivos específicos
-
Proponer y poner en funcionamiento un servidor para la administración y compartimiento de archivos mediante el uso de software libre.
-
Efectuar la configuración de un servidor que funcione como firewall para controlar el trafico de información entrante y saliente de una red privada.
-
Demostrar la funcionalidad de los servidores por medio de una pequeña red por dos computadoras.
-
Presentar una alternativa gráfica para la configuración de los servidores, para demostrar las facilidades del software libre.
Metodología
El
propósito principal es realizar una investigación discursiva, de
textos relacionados con los servidores descritos, basandose en los
conceptos claves vinculados con las diferentes configuraciones que
ofrecen los servidores. Para ello se consultaran fuentes
bibliograficas digitales que podemos encontrar en Internet.
Después
de indagar y analizar el material bibliográfico, se dispondrá a
ejecutar la parte analítica y operativa del proyecto. Lo cual en
términos generales, consiste en una comparación entre las
aplicaciones existentes para determinar cuales servidores se deben
implementar.
Para
concluir el proyecto se hara una demostración de los servidores,
esta sera necesaria para generar resultados y tomar en cuenta el
objeto de estudio en su totalidad, presentando una alternativa
totalmente funcional y documentada para su uso.
Shoreline Firewall (Shorwall)
Shorewall
es una herramienta de alto nivel de software libre, para la
configuracion de muros de cortafuego.
Para
su funcionamiento se necesita que se le proporcionen datos a ciertos
ficheros para crear las reglas a través de iptables, este es el
nombre de la herramienta mediante la cual el administrador puede
definir políticas de filtrado del tráfico que circula por la red.
Shorewall
es una herramienta bastante robusta que se adapta adecuadamente a el
objetivo del proyecto, para su elección destacamos cuatro
caracteristicas importantes:
-
Flexible
-
Extensamente documentado.
-
Se puede manejar desde un entorno no gráfico tanto como gráfico
-
En constante desarrollo
Con
forme se avance en la configuración del servidor se irán ampliando
la descripción de las características antes mencionadas.
A
continuación se describira de manera documentada una configuración
basica para implementar esta herramienta.
El
primer paso importante antes de iniciar con la configuración del
Shorewall es conocer las interfaces de red del equipo, si es
necesario la instalación de una tarjeta de red por ejemplo se debe
realizar preferiblemente antes de la configuración del servidor.
Para
conocer las interfaces actuales del equipo y modificar la
configuración de la red se puede ir al archivo en el se encuentra la
configuraciones de la red.
/etc/network/interfaces
Para
este tutorial utilizaremos dos interfaces de red el archivo de
configuración quedara con una ip por dhcp ( eth0 ) y la otra
interfaz con una dirección estática ( eth1 ).
##################################
auto
lo eth0 eth1
iface
lo inet loopback
allow-hotplug
eth0
allow-hotplug
eth1
iface
eth0 inet dchp
iface
eth1 inet static
adress
10.0.0.1
netmask
255.255.255.0
###################################
Después
de tener la configuración de la red que deseamos, podemos iniciar la
instalación de Shorewall lo instalamos mediante el comando
#apt-get
install Shorewall
Una
vez finalizada la instalación procedemos a cambiar la configuración.
Shorewall posee unos “esqueletos” de configuración para 1 , 2 y
hasta 3 interfaces debemos copiar la configuración que mas se adapte
a la red que deseamos administrar, a la carpeta /etc/shorewall para
esto ejecutamos los siguientes comandos:
$
cd /usr/share/doc/shorewall/examples/two-interfaces
$
cp -p interfaces rules zones policy params /etc/shorewall
nota:
la palabra two aparece subrayada porque puede cambiar según las
necesidades de las interfaces deseadas.
Archivos
de configuración
El
primer cambio al Shorewall que se debe de realizar se encuentra en
el archivo de configuración principal de Shorewall accedemos a el
para su modificacion mediante el comando:
$
sudo nano /etc/shorewall/shorewall.conf
Una
vez ingresado al archivo buscaremos la opción “STARTUP_ENABLED”
y si aparece como “No” la cambiaremos a “Yes” o “yes”,
este cambio es sumamente necesario de realizar o el firewall no se
configurara.
El
archivo después se vera algo similar al siguiente (solo se tomo la
porción del archivo necesaria para ilustrar ).
######################################################################
# S T A R T U P E N A B L E D
#######################################################################
STARTUP_ENABLED=Yes
######################################################################
Zonas
Shorewall
trabaja atravez de un concepto de zonas, estas serán las encargadas
de definir los sitios o ubicaciones en que se divide nuestro entorno
a administrar.
Las
zonas serán el primer archivo de configuración especifica a editar
para ello utilizamos el comando:
$
sudo nano /etc/shorewall/zones
Obtendremos
un archivo similar al siguiente:
############################################################################
#ZONE
TYPE OPTIONS IN OUT
#
OPTIONS
OPTIONS
fw
firewall
net
ipv4
loc
ipv4
###########################################################################
Zona
“fw”
La
zona fw siempre debe existir sera la zona que reconoce el Shorewall
como suya es decir sera la zona especifica que definida al servidor.
Zona
“net”
La
zona net es la que se utilizara para la comunicación directa con
Internet y con protocolo ipv4.
Zona
“loc”
La
zona loc sera la red local a la que le queremos dar una protección
mediante el firewall, utilizamos un protocolo ipv4.
Las
zonas se pueden ampliar a muchas mas dependiendo de la topologia de
red requerida, también se puede agregar un tipo de zona llamada zona
desmilitarizada definidas como “dmz” en las zonas de el
shorewall, esta zona se utiliza principalmente para que contenga
servidores por lo cual no esta ni en el área de net tampoco la local
para filtrar de mejor manera el trafico de red proveniente de las
anteriores.
Params
Para
facilitar la administración de los parámetros y reglas del
firewall, Shorewall permite el uso de variables de shell para hacer
referencia a información de uso común entre los diferentes
componentes del firewall. Las variables pueden ser referenciadas en
los otros archivos de configuración anteponiendo el símbolo $ antes
del nombre de la variable. Las variables de shell se definen en el
archivo
$
sudo nano /etc/shorewall/params
Se
mostrara muy similar a la “IMAGEN 1”, en ella se muestra un
ejemplo de la configuración que se podría realizar explicaremos
linea por linea las primeras cuatro lineas que poseen un “ * ”
antes de cada expresión son un ejemplo de la eventual configuración
de params , las siguientes dos lineas que poseen un símbolo “ % ”
seria como quedaría configurado el archivo interfaces siguiendo los
parámetros “ * ” y las ultimas dos lineas que poseen “**”
seria el mismo archivo interfaces sin utilizar parámetros.
Definiremos una configuración mas fácil de entender y manejar en la
imagen 2 mostrada posteriormente a la 1.
IMAGEN
1
##########################################################################
#
* Example:
#
* NET_IF=eth0
#
* NET_BCAST=130.252.100.255
#
* NET_OPTIONS=routefilter,norfc1918
#
% Example (/etc/shorewall/interfaces record):
#
% net $NET_IF $NET_BCAST $NET_OPTIONS
#
** The result will be the same as if the record had been
written
#
** net eth0 130.252.100.255
routefilter,norfc1918
############################################################################
La
imagen numero dos muestra una configuración que recomendamos ademas
es la que se utilizo para el servidor, para ello borramos todo lo que
contenga el archivo params y simplemente agregamos las siguientes
lineas se explicaran luego de la imagen.
IMAGEN
2
##########################################################################
LOC_IF=eth1
EXT_IF=eth0
ADMIN_IPS=<ips_para_administrar_red>
SMTP=<smtp_del_cliente>
##########################################################################
LOC_IF=eth1
sera el parámetro definido para la red local y le asociaremos la
interfaz eth1 que anteriormente habíamos configurado al inicio del
tutorial con la ip 10.0.0.1.
EXT_IF=eth0
sera el parámetro que define la red externa es decir la red que se
comunica con el Internet directamente.
Las
otras dos configuraciones son ejemplos que se podrían seguir la
primera para las ip que tendrán acceso al servidor desde la red
publica de Internet y el otro si el usuario tuviera un servidor de
correos para que no exista conflictos de permisos.
Interfaces
En
este archivo asociaremos las interfaces configuradas al inicio y que
ahora están contenidas en un parámetro con las zonas. Este archivo
es elemental para las configuraciones siguientes, el tener
configurado el archivo “params” permitirá una mejor compresión
de la configuración que se realizara a continuación, ingresamos al
archivo por medio del comando:
$
sudo nano /etc/shorewall/interfaces
Buscamos
las siguiente linea del archivo:
############################################################################
#ZONE
INTERFACE OPTIONS
net
eth0 dhcp,tcpflags,logmartians,nosmurfs,sourceroute=0
############################################################################
Cambiamos
“INTERFACE” por “PARAMS” y configuramos el archivo como
muestra la siguiente imagen. Se debe respetar el símbolo “$” el
cual llama al parámetro que se indica.
###########################################################################
#ZONA
PARAMS BROADCAST OPTION
loc
$LOC_IF detect
net
$EXT_IF detect dhcp
###########################################################################
En
esta configuración lo que tenemos es lo siguiente la “zona loc”
va estar definida por el parámetro $LOC_IF , esto simboliza que la
zona loc tendrá configurada la interface eth1 , no tiene activo el
dhcp porque esta configurada estaticamente. Esta misma lógica se
sigue para net , para este caso es necesario dejar la opción dhcp.
Como vimos resulto fácil la configuración e interpretación de este
archivo.
Policy
En
este archivo describiremos las políticas a seguir para paquetes que
viajan entre una zona a otra. Una breve descripción del formato
utilizado para realizar las política es:
ZonaOrigen
ZonaDestino Politica
Ademas
las políticas mas utilizadas son tres existen mas pero son para una
configuración mas especifica de un servidor.
-
ACCEPT: Se acepta la conexión.
-
DROP: Se ignora la conexión
-
REJECT: Se rechaza explicitamente la conexión
Para
configurar las políticas accedemos al archivo una vez en el lo
editamos para que quede de la siguiente manera.
$
sudo nano /etc/shorewall/policy
############################################################################
#SOURCE
DEST POLICY
fw
all ACCEPT
loc
net REJECT
loc
all ACCEPT
all
all REJECT
############################################################################
Esta
política lo que contiene es lo siguiente.
1-Todo
lo que vaya del firewall a cualquier lado acéptelo
2-Todo
lo que vaya de loc a la red rechácelo
3-Todo
lo que valla de loc a todo acepte
4-Cualquier
otra política no establecida rechácelo
Rules
El
archivo rules contiene excepciones a las políticas que se definieron
anteriormente , si no modificáramos estas políticas no podríamos
navegar ni a Internet. Se puede considerar como el archivo mas
importante a la hora de configurar el formato para configurar las
reglas sigue el siguiente patrón.
Accion
Origen Destino Protocolo Puerto Destino
Accedemos
al archivo mediante el comando.
$
sudo nano /etc/shorewall/rules
########################################################################
#RULES ORIGIN DEST PROTO
PORT
ACCEPT net:$ADMIN_IPS
fw tcp 22
#envio
de emails
ACCEPT loc
net:$SMTP tcp
25,110,143,993,995
#dns
ACCEPT loc
net tcp 80
ACCEPT loc
net icmp
ACCEPT
loc net dns
ACCEPT
loc net http
ACCEPT
loc net
https
###########################################################################
Lo
anterior en la imagen es una configuración recomendada. La primera
configuración que aparece es una regla que permite a ips que se
encuentran fuera de la red local acceder al servidor esto es muy útil
para monitorear la red fuera del lugar. Para que funcione esta regla
se tuvo que haber definido el parámetro de ips permitidas en el
archivo params.
La
siguiente es una regla que permite el envió de correos del servidor
de la empresa agregado anteriormente en params.
Las
cinco configuraciones siguientes le permiten a la zona local una
estricta conexión con la red externa estas son las que permiten la
navegación de Internet por ejemplo.
Otros
archivos de configuración
Shorewall
ofrece otros archivos de configuración para mayor control del
firewall en uso, pero ellos ya son para un uso especifico de una
determinada red a continuación los mencionaremos y daremos una
pequeña descripción de su uso.
masq
:Este archivo se utiliza para definir masquerading y SNAT. Es
esencial para las redes no enunciables que desean conectarse a la
Internet a través de un firewall.
modules
:En este archivo se incluyen los módulos del kernel que se desean
cargar (o descargar) cuando se inicial el firewall
hosts:
Se utiliza para asociar grupos de hosts a una zona. Es esencial para
definir múltiples zonas sobre una interfaz.
tunnels:
Se utiliza para configurar automáticamente reglas de Netfilter para
distintos tipos de tuneles (IPSEC, OpenVPN, etc.)
Existen
otros archivos de configuración se debe buscar para la configuración
deseada.
Terminando
la configuración
Después
de realizar la configuración, nos vamos al fichero
$
sudo nano /etc/default/shorewall
modificar
la opción “startup=0” a “startup=1”.
Antes
de ejecutar el programa por primera vez, se debe hacer un chequeo
como recomendación. por lo tanto se debe hacer como root.
$
sudo shorewall check
Si
no nos da error podemos seguir por reiniciar el shorewall este sera
el ultimo paso, como root digitamos el siguiente comando.
$
sudo shorewall restart.
Samba
Samba
al ser un software libre y gratuito lo podemos obtener sin ningún
costo y modificar sus configuraciones a gusto personal y enfocarlo a
las necesidades especificas de una empresa. Se puede manejar desde un
entorno no gráfico lo que permite de manera más rápida realizar
sus funciones ya que necesita correr menos procesos y un entorno tan
pesado como WS2003 produce mas problemas.
Es
precisamente por esta razón que se elige este software como el
servidor de archivos.
¿Que
es Samba?
Específicamente,
samba es una aplicación de red que se ejecuta en sistemas UNIX e
implementa el Server Message Block (SMB) como protocolo de red,
actualmente conocido como Common Internet
Filesystem (CIFS). Lo cual permite que maquinas con Linux o Unix
aparezcan dentro del “entorno de red de Windows”.
Entre
sus características principales esta que permite compartir archivos,
directorios, impresoras, etc. Además, la actual versión, samba v.3
entre sus opciones se encuentra la posibilidad de validar usuarios
actuando como Controlador Primario de Dominio, lo cual no se abarca
en este proyecto. Es muy importante advertir que si lo que se
requiere es una herramienta solamente para compartir recursos entre
maquinas con Linux, se puede optar por el NFS. Sin embargo, en este
caso se quiere explotar una red al máximo y samba nos proporciona
multitudes de características y configuraciones.
Esencialmente
Samba consiste en dos programas denominados smbd y nmbd, y
haciendo uso de estos programas, samba permite:
-
Servicios de acceso remoto a ficheros e impresoras.
-
Autenticación y autorización.
-
Resolución de nombres.
-
Anuncio de servicios.
Historia
de Samba
Samba
nació de la idea de Andrew Tridgell, quien es hoy en día en líder
y principal desarrollador de esta herramienta. Al inicio fue
simplemente un protocolo, pero debido a su impacto, fue implementado
por la empresa Microsoft y por esta razón se le tuvo que cambiar el
nombre al actual.
Hasta
la fecha, se encuentra en constante desarrollo y actualización por
medio de una comunidad dedicada a mejor el entorno de red, y bajo la
licencia GNU/GPL.
¿Qué
puede hacer Samba por mí?
Como
se dijo anteriormente, Samba puede ayudar a las máquinas Windows y
Unix a coexistir en la misma red. Sin embargo, existen algunas
razones específicas por las cuales podrías desear instalar un
servidor Samba en tu red:
• No
quieres pagar un servidor Windows NT para obtener las funcionalidades
que este proporciona.
• Puedes
querer proporcionar un área común para datos o directorios de
usuarios en orden a realizar una transición desde un servidor NT
hacia un Unix, o viceversa.
• Puede
que desees compartir impresoras a entre clientes Windows y Unix.
• Puede
que quieras acceder a ficheros NT desde un servidor Unix.
Protocolos
y demonios
El
programa smbd (puerto TCP 139), se encarga de ofrecer los
servicios de acceso remoto a ficheros e impresoras, así como de
autorizar usuarios. Ofrece dos modalidades para compartir los
recursos existentes en Windows: basado en usuarios o basado en
recursos.
-
Basado en usuarios: la autorización del acceso a los recursos se realiza en función de nombres de usuarios registrados.
-
Basado en recursos: a cada recurso se le asigna una contraseña.
El
programa nmbd (puertos UDP 137, 138) permite que el sistema
UNIX participe en los mecanismos de resolución de nombres propios de
Windows. De esta manera el sistema logra aparecer en el “entorno de
red”, publicando la lista de recursos que ofrece al resto, además
que soporta el servicio de nombres NetBIOS y WINS.
Protocolo
SMB (Server Message Block)
Este
en un protocolo de comunicación de alto nivel, y se ha convertido en
el estándar para compartir recursos entre sistemas “Linux y
Windows”. Este es un protocolo del tipo cliente/servidor donde el
'servidor' ofrece recursos que pueden ser utilizados remotamente por
los ordenadores 'cliente'.
Protocolo
NetBIOS
Este
es un protocolo de comunicación entre ordenadores que permite el
registro de nombres de computador, aplicación y otros. Utiliza los
tres puertos antes mencionados.
Niveles
de seguridad
Uno
de los aspectos mas importantes a la hora de diseñar samba es la
selección del nivel de seguridad. Se puede decir que samba ofrece
dos modos de seguridad básicos:
-
Share: Cada vez que el cliente quiere utilizar un recurso ofrecido por Samba, debe suministrar una contraseña de acceso asociada a dicho recurso.
-
User: el cliente debe establecer en primer lugar una seccion con el servidor samba, para lo cual se le suministra un nombre de usuario y contraseña. Una vez validado entonces el cliente ya obtiene permisos para acceder a los recursos disponibles.
-
Server: mediante este método de seguridad se delega la validación de usuarios desde otro ordenador, normalmente con un sistema Windows NT. Entonces cuando el cliente desee iniciar sección en Samba, Samba intenta iniciar sesión en el ordenador correspondiente y así las contraseñas no necesitan estar sincronizadas entre los sistemas Unix y Windows.
-
Domain: idéntico al anterior, pero en este caso el ordenador donde se delega la autorización debe ser un ordenador PDC.
La
seguridad se selecciona con la opción security como severa mas
adelante.
Opciones
de los recursos
Opción
|
Significado
|
Valor
por defecto
|
read
only
|
Recurso
de solo lectura
|
Yes
|
browseable
|
El
servicio aparece en la lista de recursos
|
yes
|
path
|
Directorio
asociado al servicio
|
|
guest
ok
|
Permitir
los accesos en modo invitado.
|
no
|
guest
account
|
Si
un acceso se realiza como invitado, se utiliza el usuario
especificado
|
nobody
|
guest
only
|
Cualquier
acceso se realiza como invitado
|
no
|
hosts
allow
|
Lista
de ordenadores a los que se les permite acceder
|
-Lista
vaciá- implica todos
|
Hosts
deny
|
List
de ordenadores a los que se les prohíbe el acceso
|
-Lista
vaciá-
|
Valid
users
|
Lista
de usuarios que pueden acceder a este recurso
|
-lista
vaciá- implica todos
|
La
tabla anterior muestra las opciones básicas que posee cualquier
recurso compartido. Cabe la posibilidad de establecerlas en la
sección global, en este caso serian las opciones por defecto.
Desde
una conexión a Internet, y preferiblemente con Debian instalado sin
entorno grafico. se deben instalar los siguientes dos paquetes
<samba> y <samba-client>, con el siguiente comando:
apt-get
install samba samba-client
El
paquete samba contiene el servidor SMB
El
paquete samba-client contiene diversos paquetes para el protocolo
SMB.
A
partir de este momento se puede suponer que ya el paquete se
encuentra instalado en el ordenador. El sitio principal se encuentra
en
http://www.samba.org.
Aspectos
básicos del fichero smb.conf
La
configuración de Samba es bastante particular en relación con la
mayoría de las aplicación complejas, pues se realiza únicamente
mediante un solo fichero, el cual se encuentra ubicado en
“/etc/samba/smb.conf”. Antes de comenzar con la edición, se debe
tener presente que cada vez que se modifique este fichero, se debe
reiniciar en servicio mediante la linea:
/etc/init.d/samba
restart
Además,
para evitar errores de sintaxis, después de editar el fichero,
utilizando en la linea de comandos:
testparm
Para
un manejo mas efectivo del fichero de configuración, este se
encuentra divido por secciones, las cuales de identifican con títulos
entre corchetes. Posee tres secciones:
-
[global]
Define
los parámetros generales de todo el servidor así como los
parámetros por defecto en las siguientes secciones.
-
[homes]
Define
la forma de compartir un directorio personal. Por defecto esta
asociado con el directorio de conexión de cada usuario y
automáticamente define un recurso de red por cada usuario conocido
por Samba.
-
[printers]
Define
un recurso compartido por cada nombre de impresora conocido por
samba.
Una
acción muy importante y de carácter obligatorio es verificar que el
nombre del dominio/grupo de trabajo es el correcto. Determinado como
workgroup.
En
cuanto a los recursos, por defecto samba suele traer predefinidos
tres recursos básicos: directorio de cada usuario (home), impresoras
(printers) y el recurso oculto donde se encuentran los controladores
(print$).
Cuando
esta aplicación se instala posee una ventaja, y es que la mayoría
de las configuraciones generales ya se encuentran dentro del fichero
de configuración, donde lo que se debe hacer es ajustarlo a las
necesidades propias del lugar y arquitectura en donde se valla a
poner en ejecución Samba.
Configuración
avanzada del fichero smb.conf
workgroup
= PHOENIX
#Es
el nombre del grupo de trabajo. En este caso se puso PHOENIX pero se
puede poner el que se desee.
#Además
agregar la siguiente linea sobre netbios aliases.
netbios
name=pyxis
#El
nombre del equipo con que aparecerá en la red.
server
string = %h server
#una
frase identificadora como referencia únicamente para el servidor.
wins
support = yes
#lo
que significa que samba actuara como servidor WINS sin necesidad de
otro tipo de servidor.
#Servidor
WINS quiere decir que el servidor DHCP puede proveer información
sobre otros servidores WINS que haya en la red. (Windows Internet
Name Service).
Es
posible configurar Samba de manera que pueda utilizare un servidor
WINS colocado en algún otro lugar de la red, mediante el comando:
wins server = ip.ip.ip.ip.
Nota:
ambas opciones son mutuamente excluyentes, o se usa wins support =
yes. O se utiliza wins server = ip.ip.ip.ip
name
resolve order = lmhost host wins bcast
#la
linea anterior indica el orden de resolución de host names. Esto es
muy importante pues si samba esta actuando como un servidor WINS, se
necesita especificar un orden de resolución de nombres NetBIOS.
-
Lmhosts: Usa un fichero como base de administrador LAN.
-
Hosts: Uses the standard name resolution methods of the Unix system, /etc/hosts, DNS, NIS, or a combination (as configured for the system)
-
winsador: Uses the WINS server
-
bcast: Uses a broadcast method
dns
proxy = no
#la
linea anterior solo se activa en caso de contar con un proxy.
#en
la parte de autentication. se debe des comentar, es decir aceptar la
siguiente linea que generalmente viene por defecto.
security
= users
#De
esta manera le decimos al servidor que solo los usuarios samba tienen
acceso a los recursos compartidos
#Este
es uno de los parámetros mas importantes, pues la seguridad de un
servidor radica en sus configuraciones internas, hay diferentes
niveles de seguridad. Las cuales fueron explicadas con detalle
anteriormente.
#nivel
share: cada cliente validad su usuario separadamente con el uso de su
contraseña
#estas
dos opciones son mas avanzadas
#nivel
server: el usuario se valida utilizando un servidor externo de
contraseñas
#nivel
domain: permite utilizar una base de datos de cuentas de usuarios y
requiere tener activado el parámetro encrypt passwords
encrypt
passwords = true
#activación
del encriptado de contraseñas
#Para
conseguir que usuarios ajenos al dominio NT se consideren invitados,
es necesario activar la siguiente opción en la sección [global] :
map
to guest = Bad User
Configuración
de cuentas de usuarios
Después
de configurar los recursos, sera necesario crear los grupos y
usuarios que van a usar el servidor Samba. Primero en el sistema, y
luego activar las cuentas de Samba, ya que van por separado tanto las
cuentas como las contraseñas. Partiendo del supuesto que no se
cuenta con ningún grupo ni usuario, se especificaran los pasos
necesarios.
Para
crear un grupo se sigue la siguiente linea:
addgroup
<nombre del grupo>
adduser
<nombre del usuario>
Para
agregar el usuario a algún grupo creado:
adduser
<usuario> <grupo>
Para
activar y asignar una contraseña:
smbpasswd
-a -U <usuario>
Nota:
el comando anterior
smbpasswd
es el que se encargar de añadir los usuarios a la base de datos de
samba, de esta manera, es posible agregar usuarios ya existentes a
la base de datos, o crearlos y agregarlos. Y no es necesario contar
con grupos.
Configuración
de directorios compartidos
A
continuación se creara un directorio, para poder compartir ficheros
y demostrar lo mas importante, vamos a crear una carpeta y la
llamaremos shared samba. A esta carpeta en especifico se le darán
todos los permisos de escritura, ejecución y lectura.
[Shared_samba]
comment=carpeta
compartida
path=/home/public
browseable
= yes
read
only = no
guest
ok = yes
create
mask = 775
directory
mask = 777
force
user = adminsupport #esto solo se lleva a cabo la primera ves que
persona desea entrar a la red.
force
group = adminsupport
Se
puede observar que es relativamente sencillo la configuración de los
recursos. En cuanto a los parámetros create mask, y directory mask,
force user and force group.
-
El primero implica que la creación (o eliminación) de máscaras de archivos para ayudar a definir los permisos que un archivo o directorio recibirá en el momento de ser creado. En Unix, esto significa que puedes controlar qué permisos no va a tener un archivo o directorio cuando este sea creado. Para archivos accesibles desde Windows, esto significa que puedes desactivar los atributos de sólo lectura, archivo, sistema y oculto de un archivo. Por ejemplo, la opción create mask forzará que los permisos de un archivo creado por un cliente Windows sean, como mucho 775. y de cursos básicos se sabe a que es equivalente (todos los permisos). Lo cual evidentemente no se recomienda pero, por ser un caso de prueba, se ejemplificara de esta manera.
-
Igualmente el parámetro directory mask contiene un argumento en valor octal, indicando qué permisos pueden asignarse a la creación de directorios por parte de un usuario en un recurso. El valor por defecto es 0755, lo cual implica que se pueden leer y recorrer los directorios, pero sólo permite modificarlos al propietario. Se usara un argumento de 777 por razones practicas, para ejemplificar el funcionamiento con todos los permisos, pero no se recomienda en lugares hostiles.
-
Force user es la opción de configuración que asigna un ID estático de usuario que será usado en todas las conexiones a un servicio, una vez que el cliente se haya autentificado. Esto asigna un usuario específico a cada nuevo archivo o directorio creado desde un cliente SMB.
-
Force group es el parámetro que asigna un ID estático de grupo que será usado en todas las conexiones para un servicio, una vez que el cliente se haya autentificado. Esto asigna un grupo específico a cada nuevo archivo o directorio creado desde un cliente SMB.
Conclusiones y Recomendaciones
Al
finalizar el presente trabajo se ha llegado a las siguientes
conclusiones
La
utilización de una herramienta Shorewall permite reforzar las
vulnerabilidades de nuestra red, aumentando así la seguridad de
ella, de esta forma evitar que personas ajenas a la empresa tengan
acceso a información confidencial de la compañiía.
Se
logro implementar y así mismo demostrar una alternativa a Windows
Server, utilizando una herramienta de software libre como lo es Samba
para la administracion de archivos compartidos en una red .
La
utilización de software libre traera enormes ventajas economicas a
la compañía como el no tener que pagar enormes cantidades de dinero
por actualizaciones y pagos de antivirus para la protección de
nuestro servidor.
De
manera satisfactoria, se logro demostrar la funcionalidad de ambos
servidores por medio de una red de tres ordenadores, además que se
determino la funcionalidad de las configuraciones respectivas.
Existen
múltiples herramientas gráficas, como auxiliares en el proceso de
la configuración de los parámetros para ambos servidores. Estas
herramientas gráficas representan una excelente opción a aquellos
usuarios que están comenzando a incursionar en el ambiente Linux.
Por otra parte, para usuarios expertos, con avanzada experiencia, se
recomienda realizar la configuración mediante la linea de comandos,
pues de esta manera le van a poder sacar el máximo provecho a dicha
herramientas.
Se
recomienda el uso de SWAT(Samba
Web Administration Tool)
como herramienta para la configuración grafica de samba por medio de
la web su interfaz es sencillo. Y como herramienta grafica al
Shorewall se recomienda el uso de webmin. Los anteriores son software
altamente documentados en Internet.


No hay comentarios.:
Publicar un comentario