¿Cómo creo un punto de acceso wifi no ad hoc?

13

Quería usar mi computadora de escritorio con una conexión de Ethernet con cable (eth0) para operar mi adaptador USB Wifi "TP-LINK TL-WN722N" (wlan0) como un punto de acceso no adhoc (modo de infraestructura) para que mi Android se conecte.

Después de MUCHA búsqueda, finalmente encontré un método (distribuido en muchos sitios web) que hace la mayor parte de lo que necesito ...

Dependencias:

 hostapd
 bridge-utils

Modifiqué "/ etc / network / interfaces"

sudo gedit /etc/network/interfaces

contener:

# This file describes the network interfaces available on your system
# and how to activate them.

auto lo br0
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet manual

# Bridge setup

# for dhcp address
iface br0 inet dhcp
bridge_ports eth0 wlan0

# for static ip
# iface br0 inet static
# bridge_ports eth0 wlan0
# adapt with your network settings
# address 192.168.1.250
# netmask 255.255.255.0
# network 192.168.1.0
# broadcast 192.168.1.255
# gateway 192.168.1.1
# dns-* options are implemented by the resolvconf package, if installed
# dns-nameservers 192.168.1.1
# dns-search localdomain

### Reference ###

# Creating a Wireless Access Point with Debian Linux « Agent Oss (October 31, 2011)
# https://agentoss.wordpress.com/2011/10/31/creating-a-wireless-access-point-with-debian-linux/

Mi "/etc/hostapd/hostapd.conf" (que de alguna manera logré armar yo mismo)

sudo gedit /etc/hostapd/hostapd.conf

contiene:

 ### Guts ###

 interface=wlan0
 bridge=br0
 driver=nl80211

 ### General ###

 ssid=____________________
 hw_mode=g
 channel=1

 ### Security ###

 macaddr_acl=0
 auth_algs=1
 ignore_broadcast_ssid=0     ## 0 visible # 1 hidden ##
 wpa=2
 wpa_passphrase=____________________
 wpa_key_mgmt=WPA-PSK
 wpa_pairwise=TKIP
 rsn_pairwise=CCMP

 ### Reference ###

 ## Created Tuesday, February 14, 2012 ## Ubuntu 11.10/12.04 ##

 # Hostapd Linux Documentation Page
 # http://linuxwireless.org/en/users/Documentation/hostapd

 # Creating a Network Bridge on Ubuntu (January 16th, 2011)
 # http://webserver.linuxportal.nl/?p=422

(He editado los bits de seguridad para esta publicación)

Todo eso me permite abrir una Terminal y ejecutar:

 sudo hostapd -B /etc/hostapd/hostapd.conf

tener un punto de acceso funcional al que mi Android y todos los demás dispositivos WiFi puedan conectarse.

Además de compartir este método con otros, ya que la información para esta configuración es muy escasa; Hay tres problemas que sería bueno solucionar:

  1. Esta configuración desactiva el administrador de red y todas sus funciones. Cuando hace clic en él, aparece el mensaje "dispositivo no administrado". (No es esencial, pero es un poco molesto para mí)
  2. Este método puede tener problemas con las direcciones IP de vez en cuando.
  3. Debo usar una terminal para activar Wifi. (Está bien para mí, pero no para familias). Descubrí cómo hacer un lanzador usando gksu y un script simple si alguien necesita uno ...

Lanzamiento de wifi / Hostapd sin terminal

  1. (¿Por qué el administrador de red no puede hacer esto de forma inmediata?)

¡Gracias por adelantado! Espero que todo esto pueda ayudar a alguien más; Nunca antes había escrito un tutorial y no sé prácticamente nada sobre redes ...

Quizás relacionado con el puente de red, sin destruir el administrador de red (entre otros).

Probado con Ubuntu 11.10, 12.04.

askuhn
fuente

Respuestas:

5

No estoy seguro de cómo hacer esto sin bloquear NM, pero es posible ejecutarlo automáticamente en el arranque y obtener direcciones IP para asignar fácilmente (al menos lo he logrado con la misma tarjeta inalámbrica). Esto requiere los paquetes hostapdy dnsmasq(no dnsmasq-base)

/etc/hostapd/hostapd.conf:

interface=wlan0
driver=nl80211 # This works on my TL-WN722N

ssid=______

channel=6
hw_mode=g

auth_algs=1
wpa=3
wpa_passphrase=_____
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=CCMP

/ etc / default / hostapd:

# Defaults for hostapd initscript
#
# See /usr/share/doc/hostapd/README.Debian for information about alternative
# methods of managing hostapd.
#
# Uncomment and set DAEMON_CONF to the absolute path of a hostapd configuration
# file and hostapd will be started during system boot. An example configuration
# file can be found at /usr/share/doc/hostapd/examples/hostapd.conf.gz
#
DAEMON_CONF="/etc/hostapd/hostapd.conf"

# Additional daemon options to be appended to hostapd command:-
#   -d   show more debug messages (-dd for even more)
#   -K   include key data in debug messages
#   -t   include timestamps in some debug messages
#
# Note that -B (daemon mode) and -P (pidfile) options are automatically
# configured by the init.d script and must not be added to DAEMON_OPTS.
#
#DAEMON_OPTS=""

/etc/dnsmasq.conf (diferencia con la versión del mantenedor)

--- /etc/dnsmasq.conf.dpkg-dist 2011-09-20 00:28:30.000000000 +0100
+++ /etc/dnsmasq.conf   2012-02-13 21:03:03.713554612 +0000
@@ -82,7 +82,7 @@
 # specified interfaces (and the loopback) give the name of the
 # interface (eg eth0) here.
 # Repeat the line for more than one interface.
-#interface=
+interface=wlan0
 # Or you can specify which interface _not_ to listen on
 #except-interface=
 # Or which to listen on by address (remember to include 127.0.0.1 if
@@ -133,7 +133,7 @@
 # a lease time. If you have more than one network, you will need to
 # repeat this for each network on which you want to supply DHCP
 # service.
-#dhcp-range=192.168.0.50,192.168.0.150,12h
+dhcp-range=192.168.3.10,192.168.3.49,12h

 # This is an example of a DHCP range where the netmask is given. This
 # is needed for networks we reach the dnsmasq DHCP server via a relay

/ etc / network / interfaces:

auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet static
    address 192.168.3.1/24
    broadcast 192.168.3.255

/etc/sysctl.conf parche (ejecutar sudo sysctl -p /etc/sysctl.confdespués de cambiar):

--- sysctl.conf 2012-05-14 18:06:57.514873009 +0100
+++ /etc/sysctl.conf    2012-05-14 18:09:27.122876525 +0100
@@ -25,7 +25,7 @@
 #net.ipv4.tcp_syncookies=1

 # Uncomment the next line to enable packet forwarding for IPv4
-#net.ipv4.ip_forward=1
+net.ipv4.ip_forward=1

 # Uncomment the next line to enable packet forwarding for IPv6
 #  Enabling this option disables Stateless Address Autoconfiguration

Finalmente, configure NAT en iptables:

sudo iptables -A FORWARD -o eth0 -i eth1 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A POSTROUTING -t nat -j MASQUERADE
sudo iptables-save | sudo tee /etc/iptables.sav

y agregue iptables-restore < /etc/iptables.savarriba exit 0en /etc/rc.local.

Esta configuración se implementó principalmente leyendo este tutorial y mirando las páginas de manual que me rascaban la cabeza.

holandesas
fuente
¡Gracias! Sé a qué te refieres con rascarte la cabeza; Esta cosa fue un dolor para empezar a trabajar. Probaré su configuración y le haré saber cómo va en los próximos días. :)
askuhn
En los últimos días, descubrí que el /etc/network/interfacesarchivo no funciona por alguna razón y mi teléfono no se conecta correctamente. Regresé a dar manualmente a wlan0 una dirección en el arranque por ahora.
dutchie
Mi configuración ha funcionado bastante bien siempre que no intente conectar más de un dispositivo (cuando lo hago, a veces funciona, a veces no). Todavía estoy jugando, así que si encuentro algo mejor, me aseguraré de publicar. :)
askuhn
3

La mayoría de los problemas se producen debido a los controladores Broadcom en las computadoras portátiles HP al menos. Si tiene un controlador de red broadcom Compruebe si su tarjeta es compatible con b43 (enlace 1). Si es así, increíble, sigue leyendo. El controlador predeterminado de Broadcom sta (wl) no admitirá el modo de punto de acceso. Instale b43 tomando medidas de precaución para estar en línea por cualquier medio necesario. Enciéndelo usando modprobe. Ahora siga las instrucciones e intente configurar el punto de acceso.

Finalmente tengo hostapd trabajando con esto y la parte dulce es que mi teléfono Nokia puede detectar el wifi creado (puede detectar cualquier cosa, ad hoc o no). Ahora tengo que jugar con su archivo y ver si puedo detectar mi libro de jugadas.

  1. http://linuxwireless.org/en/users/Drivers/b43
  2. http://pclinuxos.com/forum/index.php?topic=91991.0
Giridaran Manivannan
fuente
También esto funcionó cuando obtuve un dispositivo no administrado en el administrador de dispositivos. askubuntu.com/questions/71159/…
Giridaran Manivannan
¡Me alegra que esto haya sido útil para ti! Me llevó una eternidad descubrir qué necesitaba para conseguir algo que funcionara para mí. Gracias por el enlace sobre el administrador de red, me aseguraré de probarlo :)
askuhn
¡Y funciona! La parte sorprendente es que eth0 no tiene que ser estático por este método. ¡La IP adquirida será para todo eth0, el puente y el dispositivo que desea conectar!
Giridaran Manivannan
En el último párrafo, ¿quiso decir que se detectaría un libro de jugadas ?
tshepang
0

Excelentes respuestas anteriores, sin embargo, no son solo uno o dos conjuntos de chips que no admiten el modo hostapd o AP.

Aquí le mostramos cómo ver si su controlador y hardware son compatibles con el modo AP:

sudo iw list | less

Busque la sección "modos de interfaz compatibles". Si no incluye "AP", no tienes suerte. Si dice "AP", ¡continúe con las muchas buenas instrucciones ya proporcionadas por otros carteles!

Luno
fuente