[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
Próxima revisiónAmbos lados, revisión siguiente
es:howtos:network_services:running_an_access_point_from_a_slackware_box [2019/06/15 03:24 (UTC)] – [4.1 Hostapd] antares_alfes:howtos:network_services:running_an_access_point_from_a_slackware_box [2019/06/17 05:39 (UTC)] – [4.4 Cortafuegos] antares_alf
Línea 159: Línea 159:
         wiphy 0         wiphy 0
         channel 6 (2437 MHz) NO HT         channel 6 (2437 MHz) NO HT
-===== 4.2 Bridging ===== +===== 4.2 El puente ===== 
-Now it's time to bridge together wired and Wireless NICsIt's possible to use the native bridge setup from rc.inet1.conf but you may need to restart bridge after starting hostapd so here are the commands necessary to set it up manually.+Ahora es el momento de unir las NIC inalámbricas y por cableEs posible usar la configuración nativa del puente desde rc.inet1.conf, pero es posible que deba reiniciar el puente después de iniciar hostapd, por lo que aquí están los comandos necesarios para configurarlo manualmente.
  
   /usr/sbin/brctl addbr br0   /usr/sbin/brctl addbr br0
Línea 171: Línea 171:
  
  
-===== 4.3 DNS and DHCP Servers ===== +===== 4.3 Servidores DNS DHCP ===== 
-Now it's time to start dnsmasq. You can actually leave it running from boot if you like or even run specific servers at your choiceI now run separate dnsmasq instances for each AP so I've abandoned Slackware'rc.dnsmasq and start it from my custom network scripts which requires separate config files for each interface (like /etc/dnsmasq/br0.conf and /etc/dnsmasw/wlan1.conf). +Ahora es el momento de comenzar dnsmasq. Si lo desea, puede dejarlo ejecutándose desde el arranque o incluso ejecutar servidores específicos a su elección.Ahora ejecuto instancias dnsmasq separadas para cada AP, así que abandoné rc.dnsmasq de Slackware y lo inicio desde mis scripts de red personalizados que requieren archivos de configuración separados para cada interfaz (como /etc/dnsmasq/br0.conf /etc/dnsmasw/wlan1.conf). 
-Configuring it is something you should look into to suit best your networking needs ... let's just look at some of the most common tings. +La configuración es algo que debe considerar para adaptarse mejor a sus necesidades de red... Echemos un vistazo a algunos de los tings más comunes
-Supposing that you want to assign ip addresses belonging to 192.168.0.0/24 and this are the options you will need:+Suponiendo que desea asignar direcciones IP que pertenecen a 192.168.0.0/24 y estas son las opciones que necesitará:
  
   * interface=br0   * interface=br0
Línea 184: Línea 184:
   * conf-dir=/etc/dnsmasq.d   * conf-dir=/etc/dnsmasq.d
  
-The options except-interface bind-interfaces and listen-address are particularly useful if you want to run more then one instance of dnsmasq. +Las opciones except-interface bind-interface y listen-address son particularmente útiles si desea ejecutar más de una instancia de dnsmasq. 
-For the bridge to work correctly don't forget to allow forwarding either by using rc.ip_forward or by executing +Para que el puente funcione correctamente, no olvide permitir el reenvío utilizando rc.ip_forward o ejecutando
   /bin/echo 1 > /proc/sys/net/ipv4/ip_forward   /bin/echo 1 > /proc/sys/net/ipv4/ip_forward
-See section 3.1.1 for the other useful run-time kernel parameters. +Mirar la sección 3.1.1 para los otros parámetros útiles del kernel en tiempo de ejecución.
- +
-===== 4.4 Firewalling ===== +
-Now is a good time to configure your firwall protection. +
-Supposing that the box will be routing packages thought it I'll show some rules that you might find helpfull. +
-This is the output of iptables-save, you can edit it to make the changes you require and then pipe your edited file to iptables-restore. +
-The iptables-save/iptables-restore is a handy way of keeping configuration for easy firewall activation and editing.+
  
 +===== 4.4 Cortafuegos =====
 +Ahora es un buen momento para configurar su protección de firewall.
 +Suponiendo que la caja estará enrutando paquetes, creo que le mostraré algunas reglas que le pueden resultar útiles.
 +Esta es la salida de iptables-save, puede editarla para realizar los cambios que necesita y luego canalizar su archivo editado a iptables-restore.
 +Iptables-save / iptables-restore es una forma práctica de mantener la configuración para una fácil activación y edición del cortafuegos.
      
   *mangle   *mangle
Línea 225: Línea 224:
   COMMIT   COMMIT
  
-NOTE *: Clamping MSS to PMTU can get internet browsing from your LAN working but can brake VPN packetsThe proposed workaround has been made necessary by the increasing tendency of failing to find PMTU. It is not always necessary for you to activate the workaround but be warned that it can equally inadvertently stop working leaving you with an intermittent  problem that is difficult to debugIt can be intermittent because the path your packets take to arrive to any destination on internet is not always the same dew to the necessity of fault tolerance. This note could become whole article on it's own so [[https://blog.cloudflare.com/path-mtu-discovery-in-practice/|here's]] an intresting read on the issue+NOTA *: La fijación de MSS PMTU puede hacer que la navegación por Internet funcione desde su LAN, pero puede frenar los paquetes VPN. La solución propuesta se ha hecho necesaria por la creciente tendencia a no encontrar PMTU. No siempre es necesario que active la solución alternativa, pero tenga en cuenta que también puede dejar de funcionar de manera inadvertida, lo que le deja un problema intermitente que es difícil de depurarPuede ser intermitente porque la ruta que toman sus paquetes para llegar cualquier destino en Internet no siempre es la misma necesidad de tolerancia a fallas. Esta nota podría convertirse en un artículo completo por sí mismo, por lo que [[https://blog.cloudflare.com/path-mtu-discovery-in-practice/|here]] es una lectura interesante sobre el tema.
  
-I generally put the content above in /ect/firewall.cf and add "/usr/sbin/iptables-restore < /etc/firewall.cf" to rc.local.+Generalmente pongo el contenido arriba en /ect/firewall.cf y agrego "/usr/sbin/iptables-restore < /etc/firewall.cf" rc.local. 
  
-If you want to manage your AP via ssh now is good time to restart sshd that did not appreciate taking down the interfaces it was binding on (back in section 4.2).+Si desea administrar su AP a través de ssh ahora es un buen momento para reiniciar sshd que no estaba de acuerdo en eliminar las interfaces con las que estaba enlazado (en la sección 4.2).
   /etc/rc.d/rc.sshd restart   /etc/rc.d/rc.sshd restart
-If you're going to share internet connection you might want to stop ssh access from internet by adding a firewall rule to regulate it or making sshd bind only to the address assigned to br0. The config shown above will not allow incoming ssh traffic from the internet link (by the connection tracking rulebut you may want to back that up with further safety+Si va compartir la conexión a Internet, es posible que desee detener el acceso a ssh desde Internet agregando una regla de firewall para regularlo o haciendo que sshd se enlace solo a la dirección asignada a br0. La configuración que se muestra arriba no permitirá el tráfico ssh entrante desde el enlace de Internet (según la regla de seguimiento de la conexión), pero es posible que desee realizar una copia de seguridad con mayor seguridad
-Longer iptabls chains generally have bad impact on firewall performance so you might want to add something like this to /etc/ssh/sshd_config:+Las cadenas de iptabls más largas generalmente tienen un impacto negativo en el rendimiento del firewall, por lo que es posible que desee agregar algo como esto a /etc/ssh/sshd_config:
   ListenAddress 192.168.0.1   ListenAddress 192.168.0.1
 +En este punto, debe poder asociar clientes al AP.
 +Con las reglas de iptables anteriores, el cliente con MAC 0a:0b:0c:0d:0e:0f puede asociarse y acceder al AP en sí, pero no puede enrutar a través del AP (con la excepción de las consultas dns que son enviadas por dnsmasq),el cliente con MAC 00:01:02:03:04:05 puede enrutar el AP pero no acceder al AP en sí. El ejemplo fue simplemente para mostrar claramente la diferencia de tener paquetes que van a la caja y enrutar paquetes a través de la caja ya que este comportamiento fue radicalmente diferente en las ip_chains.
 +Otra forma de implementar MAC ACL aún más compleja para decidir quién administra AP, quién solo puede enrutar y quién puede hacer ambas cosas se puede hacer mediante ebtables (es necesario agregar eso a la lista de software que no está presente en Slackware) y jugar con el cadena de broute En todos los casos, puede encontrar interesante el [[http://en.wikipedia.org/wiki/Iptablesmediaviewer/File:Netfilter-packet-flow.svg | diagrama de flujo de filtros de red]].
  
-At this point you should be able to associate clients to the AP. +Si no desea la ACL de la dirección MAC o solo implementa la ACL de MAC para el AP, puede reemplazar
-With the above iptables rules client with MAC 0a:0b:0c:0d:0e:0f can associate and access the AP itself but not route trough the AP (with the exception of dns querys that get forwarded by dnsmasq), +
-client with MAC 00:01:02:03:04:05 can route thought the AP but not access the AP itself. The example was just to show clearly the difference of having packets go into the box and routing packets trough the box as this behavior was radically different in the ip_chains.  +
-An other way to implement even more complex MAC ACL to decide who manages AP, who can only route trough and who can do both can be done by using ebtables (nee to add that to the software list not present in Slackware) and fiddle with the broute chain. In all cases you might find interesting the [[http://en.wikipedia.org/wiki/Iptables#mediaviewer/File:Netfilter-packet-flow.svg | netfilter flow diagram]].+
  
- 
- 
-If you don't want MAC address ACL or you only implement MAC ACL for the AP you could replace  
-   
   -A INPUT -p icmp -s 192.168.1.0/24 -j ACCEPT   -A INPUT -p icmp -s 192.168.1.0/24 -j ACCEPT
   -A INPUT -p tcp --dport 53 -s 192.168.0.0/24 -j ACCEPT -m comment --comment "allow dns from LAN"   -A INPUT -p tcp --dport 53 -s 192.168.0.0/24 -j ACCEPT -m comment --comment "allow dns from LAN"
Línea 252: Línea 247:
   -A FORWARD -m mac --mac-source 00:01:02:03:04:05 -j ACCEPT -m comment --comment "some other comment"   -A FORWARD -m mac --mac-source 00:01:02:03:04:05 -j ACCEPT -m comment --comment "some other comment"
  
-With something like this +Con algo como esto
      
   -A INPUT -p all -i br0 -j ACCEPT   -A INPUT -p all -i br0 -j ACCEPT
   -A FORWARD -p all -i br0 -j ACCEPT   -A FORWARD -p all -i br0 -j ACCEPT
  
-Most off the shelf AP also let you do a number of port forwardingthis is also an iptables jobRemember that we are masquerading all outgoing traffic to look like it's coming from the AP itself so we only need to create rules of the incoming trafficSupposing you want to run a web server on 192.168.0.2 you might want to add a rule like this in the FORWARD chain of the filter table+La mayoría de los AP disponibles también le permiten hacer una cantidad de reenvío de puertosesto también es un trabajo de iptables. Recuerde que estamos enmascarando todo el tráfico saliente para que parezca que viene del propio AP, por lo que solo necesitamos crear reglas del tráfico entranteSuponiendo que desea ejecutar un servidor web en 192.168.0.2 es posible que desee agregar una regla como esta en la cadena FORWARD de la tabla de filtro
-  +
   -A FORWARD -p tcp -d 192.168.0.2 -m multiport --dports 80,443 -j ACCEPT -m comment --comment "allow http traffic to be routed thought the box only to the correct server"   -A FORWARD -p tcp -d 192.168.0.2 -m multiport --dports 80,443 -j ACCEPT -m comment --comment "allow http traffic to be routed thought the box only to the correct server"
  
-and a rule like this in the PREROUTING chain of the nat table:+y una regla como esta en la cadena PREROUTING de la tabla nat:
      
   -A PREROUTING -p tcp -m multiport --dports 80,443 -j DNAT --to-destination 192.168.0.2 -m comment --comment "nat incomming http requests to local destination before routing"   -A PREROUTING -p tcp -m multiport --dports 80,443 -j DNAT --to-destination 192.168.0.2 -m comment --comment "nat incomming http requests to local destination before routing"
  
-To understand how this works you need to look at the [[http://en.wikipedia.org/wiki/Iptables#mediaviewer/File:Netfilter-packet-flow.svg | netfilter flow diagram]]: +Para entender cómo funciona esto, debe consultar el [[http://en.wikipedia.org/wiki/Iptablesmediaviewer/File:Netfilter-packet-flow.svg | diagrama de flujo de filtro de red]]: 
-As a http request arrives to the AP from the internet link it will first have the DNAT changed in the nat prerouting stagebut it would get dropped by the filter policy if we don't find a way to let it inthat's where the forward filter rule comes in to play.+Cuando una solicitud http llega al AP desde el enlace de Internet, primero se cambiará el DNAT en la etapa de pre-enrutamiento nat, pero la política de filtro la eliminará si no encontramos una manera de déjalo entrarahí es donde entra en juego la regla de filtro de avance.
  
-If you start going crazy over transferring large files over fast networks for problem that seems like mtu related but is not you might want to consider turning net.ipv4.tcp_sack off.+Si comienza volverse loco con la transferencia de archivos grandes a través de redes rápidas para un problema que parece estar relacionado con mtu pero no es posible que desee considerar la posibilidad de desactivar net.ipv4.tcp_sack.
  
-If your ISP gives you some sort of traffic quota you may want to add some quotas to your firewall configurationYou may fully understand the consequences of streaming on your ISP quota but maybe the rest of the family may notgiving them quota might save you a fit when you need to do an urgent job that requires internet connectionThere a re various ways you could go about putting quotas on specific clients on your LAN just keep in mind a few things: +Si su ISP le da algún tipo de cuota de tráfico, es posible que desee agregar algunas cuotas a la configuración de su firewall. Es posible que entienda completamente las consecuencias de la transmisión en su cuota de ISP, pero tal vez el resto de la familia no lo hagadarles una cuota podría ahorrarle un ajuste cuando necesite hacer un trabajo urgente que requiera conexión InternetHay varias maneras en las que podría establecer cuotas en clientes específicos en su LAN, solo tenga en cuenta algunas cosas:
-  * rules with quotas stop matching once quota is exceeded  +
-  * flushing your tables will reset all quota counters +
-  * quota counters do not reset themselves whenever your ISP resets your internet quota+
  
-Here's an example of how you could go about putting a quota on the FORWARD chain to stop client using more then 300Mb daily:+  * las reglas con cuotas dejan de coincidir una vez que se excede la cuota 
 +  * el lavado de sus tablas reiniciará todos los contadores de cuotas 
 +  * los contadores de cuota no se reinician cuando su ISP restablece su cuota de Internet 
 + 
 +Este es un ejemplo de cómo podría poner una cuota en la cadena FORWARD para detener un cliente que usa más de 300Mb diarios:
      
   -A FORWARD -p all -m conntrack --ctstate ESTABLISHED,RELATED ! -d 192.168.0.200 -j ACCEPT -m comment --comment "allow related traffic but not for 192.168.0.200 that has a quota"   -A FORWARD -p all -m conntrack --ctstate ESTABLISHED,RELATED ! -d 192.168.0.200 -j ACCEPT -m comment --comment "allow related traffic but not for 192.168.0.200 that has a quota"
Línea 284: Línea 279:
   -A FORWARD -s 192.168.0.200 -d 192.168.0.0/24 -j ACCEPT -m quota --quota 314572800 -m comment --comment "allow LAN traffic anyway for 192.168.0.200"   -A FORWARD -s 192.168.0.200 -d 192.168.0.0/24 -j ACCEPT -m quota --quota 314572800 -m comment --comment "allow LAN traffic anyway for 192.168.0.200"
  
-Or you could use a user-defined chain to group all your quoted traffic into a single quota like this+O puede usar una cadena definida por el usuario para agrupar todo su cuota de tráfico en una sola cuota como esta:
      
   -A FORWARD -d 192.168.1.0/24 -m conntrack --ctstate RELATED,ESTABLISHED -m comment --comment "allow quota related traff. to quoted LAN" -j QUOTA   -A FORWARD -d 192.168.1.0/24 -m conntrack --ctstate RELATED,ESTABLISHED -m comment --comment "allow quota related traff. to quoted LAN" -j QUOTA
Línea 291: Línea 286:
   -A QUOTA -m comment --comment "when quota is exceeded start rejecting" -j REJECT --reject-with icmp-port-unreachable   -A QUOTA -m comment --comment "when quota is exceeded start rejecting" -j REJECT --reject-with icmp-port-unreachable
  
-Along with this you need to flush the iptables counters every day (or every how often you wnat the quota counters to resetwith something like this+Junto con esto, debe vaciar los contadores de iptables todos los días (o cada vez que quiera reiniciar los contadores de cuotascon algo como esto
   iptables -Z   iptables -Z
-I generally do this with an AT job because AT has less adverse effects then CRON on readonly systems+ 
-Here's one possible way of making an AT job re schedule itself every day at 00:30:+Generalmente hago esto con un trabajo de AT porque AT tiene menos efectos adversos que CRON en sistemas de solo lectura
 +Aquí hay una manera posible de hacer que un trabajo de AT se programe todos los días a las 00:30:
   # cat /usr/local/bin/flush_iptables_counters    # cat /usr/local/bin/flush_iptables_counters 
   /usr/sbin/iptables -Z   /usr/sbin/iptables -Z
   /usr/bin/at -f /usr/local/bin/flush_iptables_counters "0030 tomorrow"   /usr/bin/at -f /usr/local/bin/flush_iptables_counters "0030 tomorrow"
   #   #
-Just run it once and it should then re schedule itself. On a readonly system you will need to have atjobs directory on tmpfs and run it the first time from rc.local. 
  
 +Simplemente ejecútelo una vez y luego debería volver a programarse. En un sistema de solo lectura, deberá tener el directorio atjobs en tmpfs y ejecutarlo la primera vez desde rc.local.
  
  
 es:howtos:network_services:running_an_access_point_from_a_slackware_box ()