jueves, 16 de octubre de 2014

Implementacion de Samba y Shorewall.


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


  1. Proponer y poner en funcionamiento un servidor para la administración y compartimiento de archivos mediante el uso de software libre.
  2. 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.
  3. Demostrar la funcionalidad de los servidores por medio de una pequeña red por dos computadoras.
  4. 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
###########################################################################
Zonafw
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.
Zonanet
La zona net es la que se utilizara para la comunicación directa con Internet y con protocolo ipv4.
Zonaloc
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.
  1. ACCEPT: Se acepta la conexión.
  2. DROP: Se ignora la conexión
  3. 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.
Instalación de Samba
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