NetworkManager übernimmt leider erstmal die Herrschaft über alle Network-Interfaces, das führt also vermutlich immer zu Spannungen, wenn du ihm nicht irgendwie beibiegen kannst, das WLAN-Interface zu ignorieren.
Einfacher wäre es IMO, wenn du NetworkManager deaktivierst und für eth0 entweder netctl oder einfach den rohen dhcpcd verwendest. Das gibt dann keine Interferenzen mit anderen Interfaces.
Ansonsten brauchst du für ein WLAN einen Netzwerkchip, der im master-Modus laufen kann und dessen Linux-Treiber (!) das unterstützt. Leider ist das nicht so häufig, wie man sich das wünschen würde... linuxwireless.org hat eine
Liste der Treiber. Wenn dein Chip mit einem Treiber läuft, der laut der Seite "AP" kann, stehen die Chancen gut.
Danach musst du dir überlegen, wie restriktiv das ganze sein soll. Natürlich kann man mit iptables eine Firewall einrichten, aber wenn du das nur persönlich verwendest, käme man auch ohne aus. Zumal der Router am anderen Ende des Ethernet-Kabels vermutlich ohnehin NAT macht. Auch dnsmasq (das im übrigen eine wirklich tolle Software ist) brauchst du nicht zwingend — dein Laptop kann einfach den Datenverkehr zwischen eth0 und wlan0 durchreichen. Dann können deine Clients ihr DHCP-Lease ganz einfach direkt vom Router bekommen. Die wesentliche Software, die du in jedem Falle benötigst, ist hostapd. Die Beispielkonfiguration von hostapd enthält leider eine ganze Menge Zeug, das man für ein "normales" WLAN nicht braucht. Eine einfache Konfiguration sieht aber vielleicht schon so aus:
# Interface
interface=wlan0
# Name und Kanal
ssid=Mein WLAN-Name
channel=7
country_code=DE
# Sicherheit (WPA2 stark empfohlen)
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
wpa_passphrase=DeineSupergeheimePassphraseHier
# Treiber-Zeugs
auth_algs=3
driver=nl80211
hw_mode=g
# Logging
logger_syslog=-1
logger_syslog_level=2
# Misc
# Maximale anzahl Clients
max_num_sta=60
rsn_pairwise=CCMP
Frag mich nicht, was die Settings alle bedeuten. Insbesondere den Teil unter "Treiber-Zeugs" habe ich mir aus dem Internet zusammengesucht...
Dann solltest du noch das IP-Forwarding einschalten:
# /etc/sysctl/90-ipforwarding.conf
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
Zur tatsächlichen Datenweiterleitung gibt es mehrere Möglichkeiten... Wenn deine WLAN-Karte es unterstützt, kannst du eth0 mit wlan0 brücken. Dein Laptop wird damit effektiv zum Switch (WLAN-Clients kriegen ihre IP dann per DHCP direkt vom Router). Du könntest auch eth0 und wlan0 separat halten und ihnen statisch IP-Adressen aus unterschiedlichen Subnetzen zuweisen. Für dieses Setup würde sich tatsächlich dnsmasq auf dem Laptop anbieten, der dann für wlan0 Adressen aus dem zweiten Subnetz (also z.B. 192.168.2.0/24) verteilt.
Dann müsstest du im Router nur eine statische Route anlegen, die dem Router sagt, worüber er das zweite Subnetz erreichen kann. Sowas à la
$ ip route add 192.168.2.0/24 via 192.168.1.2
oder so (wobei 192.168.1.2 die IP-Adresse von eth0 auf deinem Laptop ist). "Ordentliche" Router wie etwa Fritz!Boxen bieten irgendwo im Webinterface normalerweise eine Möglichkeit, statische Routen zu hinterlegen, wenn du schon keinen Shell-Zugriff auf deinen Router hast.
Das waren jetzt ein paar schnelle Überlegungen, keine Gwähr für die Richtigkeit und Vollständigkeit 🙂
Vale.