Linux-Box als WAP für MyBookLive einrichten?

933
Jiahao Chen

Ich habe eine alte Linux-Box sowie ein MyBookLive geerbt und möchte das MyBookLive über meine drahtlose Verbindung verfügbar machen, wobei die Linux-Box im Wesentlichen als Gateway verwendet wird.

Ich habe gerade die Linux-Box (zu Hause) gelöscht und Ubuntu 12.04 darauf installiert. Mein Netzwerk-Setup sieht derzeit so aus:

 (192.168.0.1 Netzmaske 255.255.255.0)  ISP --- Wireless Router --- Wlan0 zu Hause (192.168.0.12) | eth0 zu Hause --- MyBookLive MacBook (192.168.0.11)  

Damit ist das MyBookLive im Grunde eine verherrlichte externe Festplatte. Der Router verfügt zwar über einen Ethernet-Anschluss, wird jedoch vom Computer meines Mitbewohners verwendet, sodass ich das MyBookLive nicht direkt daran anschließen kann.

Im Moment kann ich von zu Hause aus MyBookLive.local und MacBook.local anpingen. Ich habe jedoch Probleme, die richtigen iptables-Befehle zu verstehen und herauszufinden, ob mein MacBook mein MyBookLive über das Bonjour-Netzwerk sehen kann. Ich bin auch nicht sicher, ob ich DNS einrichten muss, um xxx.local Bonjour / Zeroconf-Adressen weiterzuleiten.

Ich habe folgendes versucht, um mein gesamtes kabelgebundenes Netzwerk (das nur mein MyBookLive enthält) an eine einzige IP-Adresse weiterzuleiten:

sysctl net.ipv4.ip_forward = 1 iptables -A VORWÄRTS -i wlan0 -o eth0 -j AKZEPTIEREN iptables -A FORWARD -i eth0 -o wlan0 -j AKZEPTIEREN iptables -t nat -A PREROUTING -i eth0 -p tcp -j DNAT - bis 192.168.0.66 iptables -t nat -A PREROUTING -i eth0 -p udp -j DNAT - bis 192.168.0.66 

Ich kann diese Adresse jedoch nicht von meinem MacBook aus anpingen. Dies ist wahrscheinlich furchtbar falsch, aber ich bin ein absoluter Noob beim Aufbau dieser Art von Netzwerk und könnte einige fachkundige Hilfe bei der Einrichtung dieses Netzwerks gebrauchen.

4

3 Antworten auf die Frage

0
week

Ich denke, diese einfache Lösung besteht darin, ein Bridge-Gerät br0auf einer Linux-Box einzurichten und Schnittstellen eth0und Schnittstellen hinzuzufügen wlan0.

  1. bridge-utilsAuf ubuntu herunterladen
  2. Brücke hinzufügen brctl addbr br0
  3. Fügen Sie Netzwerkgeräte zur Bridge brctl addif br0 eth0und hinzubrctl addif br0 wlan0
  4. IP auf Ihre br0Schnittstelle setzen (IPs nicht auf eth0 oder wlan0 setzen)
  5. Löschen Sie diese DNAT-Regeln aus iptables
  6. Bearbeiten Sie Ihre iptablesKonfiguration und ersetzen Sie die Parameter -iund -omit -m physdev --physdev-inund-m physdev --physdev-out

Dadurch wird eine virtuelle br0Schnittstelle erstellt, die so wirkt, als wären sowohl Wlan0 als auch Eth0 eine Schnittstelle in einem Netzwerk. Auf diese Weise können Sie von jedem PC aus auf Ihr Netzwerklaufwerk zugreifen.

BEARBEITEN:

Dies funktioniert, wenn Sie Ihren wlan0AP in verwenden master mode. Ich nehme an, Sie verwenden hostapddiesen AP auf einer Linux-Box.

Eine andere Sache, die ich erwähnen sollte, ist, dass das Hinzufügen der wlan0-Schnittstelle in meinem Fall erst möglich ist, nachdem ich exec ausgeführt habe hostapd.

Große Ressource für hostapdund drahtloses Linux-Netzwerk: http://linuxwireless.org/de/users/Documentation/hostapd

Haben Sie das tatsächlich mit einer WLAN-Karte versucht? Bitte nennen Sie eine oder mehrere Funkkarten (Treiber), die dies unterstützen. Ярослав Рахматуллин vor 11 Jahren 0
Nun ja, manchmal benutze ich dies, um mein Handy ohne WLAN mit Netzwerken zu verbinden. Meine WLAN-Karte ist `Intel Centrino Advanced-N 6205`. Ich benutze auch "hostapd", was ich in meinem Beitrag erwähnen sollte und mein Wlan0 ist im Master-Modus eingestellt. week vor 11 Jahren 0
Ich stimme zu, dass dies der richtige Weg sein sollte. Ich habe die Überbrückungsmethode zuvor ausprobiert, aber meine schreckliche integrierte WLAN-Karte unterstützte den Master-Modus nicht. Jiahao Chen vor 11 Jahren 0
0
Ярослав Рахматуллин

The easiest thing to do here would be setting up a NAT and forwarding the required ports from the wlan0 interface of home to the equivalent ports on the interface of the external hard drive.

The following script is an example that would set up NAT such that the devices connected to eth0 on home (via a switch or a cross-over TP) would gain access to the wireless network.

#!/bin/sh INTERNAL_IP=home.lan INTERNAL_NM=255.255.255.0 INTERNAL=eth0 EXTERNAL=wlan0 ifconfig $INTERNAL $INTERNAL_IP netmask $INTERNAL_NM up echo 1 >/proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o $EXTERNAL -s 192.168.0.0/24 -j MASQUERADE iptables -A FORWARD -i $EXTERNAL -o $INTERNAL -m state \ --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i $INTERNAL -o $EXTERNAL -j ACCEPT 

For the described situation to work, devices from the wireless network must be enabled to "look back" into the NAT'ed network (which is hidden behind home.lan). The approach you tried in the question is basically correct, except it translates in the wrong direction. You want to forward packets incoming at specific ports on the home.lan interface into the local hidden NAT'ed ip of mbl.lan

#(continued) iptables -t nat -A PREROUTING -i $EXTERNAL -p tcp --dport 445 -j DNAT \ --to mbl.lan:445 iptables -t nat -A PREROUTING -i $EXTERNAL -p tcp --dport 139 -j DNAT \ --to mbl.lan:139 

This setup would make it impossible to run a samba server on the home host, because traffic coming to the default samba ports is sent to the external hard drive. This is not part of the question, but a possible solution would be to run the samba service of home on a different port, or to use a --dport value such as 4455 and manually setting up the clients to connect to a different port when accessing my book live.

Note that this answers assumes samba is being used on the drive and that the ports will need adjusting if a different protocol is used.

A notable limitation of this method is that all connections coming to the external drive will look like they originated at home.lan.

Network aliases:
mbl.lan (my book live ip address; 192.160.0.66)
home.lan (home wlan0 ip address; 192.168.0.12)

References:
http://www.centos.org/docs/4/html/rhel-sg-en-4/s1-firewall-ipt-fwd.html
http://www.netfilter.org/documentation/HOWTO//NAT-HOWTO-6.html#ss6.2

0
BorisHajduk

Ich habe ein ähnliches Setup für Kurzzeittests.

Installieren Sie hostapd folgendermaßen: (hostapd ist ein Daemon für den Wireless Accesspoint)

sudo apt-get install hostapd 

Hier ist eine wirklich minimale hostapd.conf-Konfigurationsdatei (beachten Sie, dass Sie mehr Konfigurationsdateien benötigen, um Ihr Netzwerk mit WPA / WPA2 zu schützen).

interface=wlan0 driver=nl80211 ssid=AcidFlask channel=9 hw_mode=g country_code=NO auth_algs=1 wpa=0 ignore_broadcast_ssid=0 

Dann starte ich den hostapd-Daemon und leite diesen Weg weiter:

sysctl net.ipv4.ip_forward sysctl -w net.ipv4.ip_forward=1 ifconfig wlan0 172.20.99.1 netmask 255.255.255.0 iptables -t nat -A POSTROUTING -s 172.20.99.0/24 -o eth0 -j MASQUERADE hostapd -d hostapd.conf 

Zuletzt definiere ich eine statische IP auf meinem Client (172.20.99.2 zum Beispiel mit Netzmaske 255.255.255.0, Gateway 172.20.99.1 und DNS 8.8.8.8).

Dies ist wirklich eine Barebone-Lösung, da es keine drahtlose Sicherheit und kein DHCP gibt, aber es sollte funktionieren und Sie können je nach Ihren Anforderungen darüber aufbauen.

Beachten Sie auch, dass für diese Lösung der WLAN-Adapter den AP-Modus unterstützt:

  • ath9k wird in den meisten Fällen funktionieren
  • rtl8187 funktioniert nicht AFAIK

EDIT: Ich habe Ihren Ausdruck "die Linux-Box als drahtlosen Zugangspunkt verwenden" falsch verstanden. Ich dachte, Sie wollten Ihre Linux-Box drahtlos mit Ihrem MyBookLive verbinden. Bitte ignorieren Sie meine Lösung.