LinuxParty
En este artículo, aprenderá acerca de estos conceptos:
- Configurar el acceso desde y hacia un servidor Samba en el nivel de cortafuegos
- Solucionar problemas del cortafuegos con el servidor de Samba
- Lee también nuestro artículo sobre la configuración más reciente y extenso: Cómo configurar un servidor Samba en Linux
Para obtener el máximo resultado, usted debería tener un conocimiento avanzado acerca de Linux y un sistema de trabajo Linux en el que se pueden practicar los comandos incluidos en este artículo. Además, usted debe tener acceso a un entorno Windows para que pueda utilizar y probar la configuración de seguridad.
Cortafuegos
La Red de control de nivel se logra cuando se puede identificar qué dispositivos se conectan a un servidor, como por ejemplo los que pertenecen a una red interna o incluso a una subred o un grupo de servidores. Se trata de una primera línea de defensa: si un atacante no puede conectarse a un dispositivo, el dispositivo es más seguro.
El control de acceso de red en el demonio Samba puede sonar como la solución perfecta, pero hay mejores maneras. Para determinar si una conexión remota es razonablemente segura, Samba debe primero aceptar la conexión, ya que Samba no recibe ningún detalle acerca de la conexión entrante hasta que se haya completado esa conexión. Si la idea era evitar que las personas indeseables se conecten a Samba, tendría más sentido evitar que incluso viera la conexión Samba. Cualquier configuración de Samba en el interior sólo afecta a Samba, y, a continuación, debe encontrar soluciones similares para otros demonios, tales como servidores web y de transferencia de archivos.
En un típico ambiente de seguridad de red que se controla por los administradores de sistemas, o por otros miembros del personal TI. Se controlan el acceso a nivel de host, en lugar de el nivel de aplicación proporcionando la separación de las preocupaciones y reduciendo los errores causados por los cambios en smb.conf.
El primer concepto importante detrás de iptables es la de las propias tablas. Una tabla es una lista autónoma de reglas y acciones. Cuando el núcleo necesita filtrar un paquete, consulta la tabla de filtros. Cuando la traducción de direcciones de red (NAT) que se pide, la tabla nat se utiliza. Otras tablas pueden existir dependiendo de las características de la red que se han cargado en el núcleo. Un paquete puede atravesar las tablas, por ejemplo, para realizar el filtrado de paquetes antes de la traducción de direcciones.
Dentro de cada tabla hay un conjunto de cadenas. Cada tabla tiene algunas cadenas predefinidas, y usted puede agregar las cadenas personalizadas a esta lista. Las cadenas predefinidas se utilizan en diferentes puntos del ciclo de vida de un paquete. Por ejemplo, la tabla de filtro tiene tres cadenas predefinidas:
- INPUT (ENTRADA). Se utiliza para determinar qué hacer con los paquetes que están destinados a la propia anfitriona.
- OUTPUT (SALIDA). Aplica a los paquetes procedentes de la máquina.
- FORWARD (ADELANTE). Sólo para los paquetes que pasan de una interfaz a otra, como cuando el ordenador está actuando como un router.
Una cadena tiene una lista ordenada de cero o más reglas, cada regla consiste en una cláusula de equivalencia y un destino. La cláusula de adaptación puede ser casi cualquier cosa, desde una dirección IP o el puerto a los estados límite de velocidad que sólo tienen efecto cuando se produce una acción en particular con demasiada frecuencia. El objetivo puede ser otra cadena o una acción, tal como una instrucción para aceptar o soltar el paquete. Puede crear tanto de las cláusulas correspondientes y las metas a través de los módulos del kernel, por lo que las posibilidades son ilimitadas.
El núcleo elige que hacer en base al orden de las reglas de la cadena. Tras el primer partido, el núcleo salta a la meta. En la mayoría de los casos, se detiene el proceso de reglas, aunque algunos objetivos, se consideran no darlo por terminado, por lo que el núcleo continua con la tramitación, con la siguiente regla. Si ninguna regla coincide, el objetivo de la cadena por defecto se utiliza.
La protección de Samba con un servidor de seguridad
Hay muchas formas de diseñar una política de firewall para Samba, con la elección que se hizo sobre los temas como el diseño de la red y quién o qué necesita el acceso a su servidor Samba. En un nivel alto, usted puede elegir para proteger a todo el ejército o simplemente centrarse en la Samba.
Si desea proteger a toda la hueste, entonces no tienen que ver con los puertos que utiliza Samba. El código siguiente muestra una simple política de permitir sólo el tráfico privado de la red 10.0.0.0 / 8 con el servidor local:
iptables -A INPUT -s 10.0.0.0/8 -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -P INPUT DROP |
El primer comando agrega una regla a la cadena INPUT si se añade a la lista actual de las normas. La norma especifica que cualquier cosa que venga de la red de origen ( -s ) 10.0.0.0 / 8 salta a la meta de aceptar, lo cual acepta el paquete. El segundo comando permite que los paquetes que provienen de una sesión existente, logrado mediante una llamada al comparador estado con -m state . Este comparador realiza un seguimiento de las conexiones que salen del huésped. Los paquetes de respuesta a las conexiones de salida son considerados established o related , por lo que el resto de la regla acepta los paquetes.
El último comando establece la política por defecto de la cadena INPUT para descartar el paquete. Si el paquete no viene de la red 10.0.0.0 / 8 o no es parte de una conexión que inició el anfitrión, no será permitido.
Usted puede obtener más granular mediante el filtrado a nivel de puerto. El ejemplo anterior se filtra en la dirección de origen, por lo que todos los servicios sería bloqueado. Si tuvieras un servidor web en el host que quería abrir el acceso a Internet en general, la política anterior no lo haría.
- 137 UDP. Sistema básico de entrada / salida (NetBIOS) de servicios de nombres.
- 138 UDP. Servicios de datagrama NetBIOS.
- 139 TCP. Servicios de sesión NetBIOS.
- 445 TCP. Directo alojamiento (Common Internet File System [CIFS] a través de TCP).
El Listado 1 muestra una política que permite la conexión de la red 10.0.0.0 / 8 a los servicios de Samba y también permite que un servidor web para funcionar sin restricciones.
Listado 1. Una política que opera a nivel de puerto
|
La política de la Lista 1 es más compleja que la anterior política, ya que especifica varias aplicaciones diferentes, cada uno con diferentes políticas. Las dos primeras reglas han encontrado paquetes TCP entrantes ( -p tcp ) que forman parte de una nueva sesión ( -m state --state NEW ) y se envía al puerto 80 o el puerto 443 ( --dport 80 , --dport 443 ) . No hay restricciones en la dirección de origen, por lo que cualquiera será permitido.
Las siguientes dos líneas coincide con ninguna de paquetes UDP ( -p udp ) procedente de la red interna ( -s 10.0.0.0/8 ) para el puerto 137 o el puerto 138 ( --dport 137 , --dport 138 ). UDP es sin supervisión, por lo que no tiene que preocuparse acerca de si la conexión es nuevo o establecido.
Líneas 5 y 6 combinar el comparador Estado y la dirección de la fuente de filtro para permitir que sólo las nuevas conexiones en los puertos 139 y 445 si proceden de la red interna.
Finalmente, las dos últimas líneas operan de la misma como en la política anterior. Si el paquete está relacionado con una conexión actual, se permite. Todo lo demás se cae.
Solución de problemas de firewall
Problemas de cortafuegos son comunes, a menudo porque te encuentras con un requisito inesperado o encontrar una aplicación no se ejecuta de la manera que usted espera. Los errores en las reglas mismas son comunes, especialmente cuando se trata de largas listas de números de puertos y direcciones IP. No todos los problemas están relacionados con servidor de seguridad, sin embargo, por lo que aún debe conocer sus pasos básicos de solución de problemas de red.
Puede utilizar los iptables comando para ver la política. La -L opción muestra la política, y el detallado ( -v ) opción agrega detalles adicionales, tales como contadores de paquetes. Listado 2 muestra la política de la Lista 1 .
Listado 2. Visualización de la política detallada
# iptables -L -v Chain INPUT (policy DROP 47 packets, 5125 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp -- any any anywhere anywhere state NEW tcp dpt:http 0 0 ACCEPT tcp -- any any anywhere anywhere state NEW tcp dpt:https 0 0 ACCEPT udp -- any any 10.0.0.0/8 anywhere udp dpt:netbios-ns 0 0 ACCEPT udp -- any any 10.0.0.0/8 anywhere udp dpt:netbios-dgm 0 0 ACCEPT tcp -- any any 10.0.0.0/8 anywhere state NEW tcp dpt:139 0 0 ACCEPT tcp -- any any 10.0.0.0/8 anywhere state NEW tcp dpt:445 214 15216 ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 292 packets, 35009 bytes) pkts bytes target prot opt in out source destination |
Las estadísticas muestran detallado el número de paquetes y bytes que se han coincidan una regla en las dos primeras columnas. Desde el Listado 2, se puede ver que los paquetes sólo han igualado la última regla. Mirando más de cerca en la primera línea de salida, verá que el destino predeterminado también tiene una cantidad de paquetes. Cuarenta y siete paquetes se han eliminado porque no cumple una regla, lo que indicaría que, o bien que alguien no autorizado intenta acceder a la máquina o el tráfico legítimo se está bloqueada por una incorrecta política de firewall.
Otro uso para la visualización de la directiva de firewall es obtener una comprensión de la política en su totalidad. Debido a que el procesamiento se detiene después de que el primer partido, usted debe comenzar en la parte superior de la política y su forma de trabajo a través de determinar si una norma es dejar caer su tráfico.
Una situación común es cuando una regla menos específica antes de que una regla más específica. Para evitar problemas, poner sus reglas más específicas hacia la parte superior de su política para que las excepciones son atendidos primero. Sin embargo, esta convención no siempre funciona, y usted podría encontrarse con los usuarios que no pueden conectarse a su servidor.
El Listado 3 muestra la directiva en un servidor en la red de Ingeniería. Los usuarios de la misma red no puede conectarse al servicio.
Listado 3. Una política con una regla que prevalece sobre otra
El servidor en el Listado 3 pertenece a la red de Ingeniería, que es 10.2.3.0/24. El acceso desde el resto de la compañía, que es 10.0.0.0 / 8, debe ser bloqueado. La red 10.2.3.0/24 es una subred de la red más grande, por lo que la regla para bloquear todo el 10.0.0.0 / 8 de la red se presenta ante el Server Message Block (SMB) de reglas específicas, y como resultado, incluso los usuarios de ingeniería estarán capturado por el DROP regla, porque iptables utiliza un primer partido, no un partido más, el concepto.
La solución al problema anterior es bloquear la red corporativa después de que las reglas específicas han sido procesados. De esta manera, los paquetes de la red de Ingeniería se aceptarán en primer lugar.
Solución avanzada de problemas
A menudo, no se puede estar seguro de si el servidor de seguridad es el culpable o los problemas están en otro sitio en la red. La prueba más simple consiste en desactivar el firewall y ver si la conexión se realiza correctamente. Por supuesto, ello no siempre es posible, así que si usted no puede dejar caer el servidor de seguridad, la mejor cosa siguiente es buscar el paquete de venir al servidor.
El tcpdump utilidad muestra los paquetes de red que el servidor ve, incluso si la directiva de firewall descarta el paquete. Si usted puede ver el intento de conexión desde el servidor, entonces usted sabe que el paquete se está en el servidor. Suponiendo que el servicio se está ejecutando, se puede concluir razonablemente que el firewall está bajando el paquete. Listado 4 muestra el tcpdump utilidad en la acción.
Listado 4. Paquete rastro de una conexión SMB bloqueado
# tcpdump -i eth0 tcp port 445 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 20:24:18.392106 IP CLIENT.search > SERVER.microsoft-ds: S ... 20:24:21.358458 IP CLIENT.search > SERVER.microsoft-ds: S ... 20:24:27.393604 IP CLIENT.search > SERVER.microsoft-ds: S ... |
Las opciones a tcpdump son las siguientes:
- -i eth0 . escuchar en la interfaz eth0.
- tcp port 445 . Esté pendiente de los paquetes en el puerto TCP 445.
Los resultados del listado 4 muestran que tres paquetes que realiza en el servidor. La flecha indica la dirección del flujo: Estos tres paquetes van desde el cliente al servidor en el puerto de microsoft-ds, que es 445. El S cerca del final de la línea indica un intento de conexión, y la falta de respuesta indica que el servidor no responde.
Otra indicación de una conexión no es la diferencia creciente entre los paquetes sucesivos. Las marcas de tiempo de la izquierda muestran que el segundo paquete llegó cerca de 3 segundos después de que el primero, luego el tercero llegó 6 segundos después de eso. La mayoría de los protocolos de red aplicar un aumento exponencial de back-off, lo que significa que el tiempo entre los sucesivos intentos se duplica cada vez.
-
Samba
- Cómo configurar el servidor Samba en RHEL, Rocky Linux y AlmaLinux
- 8 formas de montar SMBfs (SISTEMA DE ARCHIVOS SAMBA) en Linux.
- Cómo navegar Samba o Windows compartido, de forma remota, finalmente segura.
- Montar recursos con smbclient en Linux para SAMBA
- Cliente Web para SAMBA con: smbwebclient.php
- Un cliente Samba Web, en un servidor Web para todos los ordenadores de una LAN
- Sencillo Ejemplo de Configuración para Servidor Samba Linux
- Ejemplo Configuración Servidor Samba.
- Samba: Cómo compartir archivos en tu LAN
- Servidor de Archivos Samba con SWAT en Fedora.
- Ubuntu Linux 10.10: Servidor Samba independiente con tdbsam Backend
- SAMBA en un Controlador de Dominio. Mini-COMO (Linux)
- Seguridad en Samba, con un firewall iptables en Linux
- Servidor Samba independiente CentOS 6.3 con Backend tdbsam
- Samba 4.0 lanzado: el primer servidor de Active Directory compatible con el Software Libre y Linux