Richten Sie die Linux-Box als WAP für MyBookLive ein?

4

Ich habe eine alte Linux-Box sowie ein MyBookLive geerbt und möchte das MyBookLive über mein WLAN verfügbar machen, wobei ich im Wesentlichen die Linux-Box als Gateway verwende.

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

       (192.168.0.1
    Netzmaske 255.255.255.0)     
ISP --- WLAN-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, dieser wird jedoch vom Computer meines Mitbewohners verwendet, sodass ich das MyBookLive nicht direkt daran anschließen kann.

Im Moment kann ich MyBookLive.local und MacBook.local von zu Hause aus anpingen, aber ich habe Probleme beim Verstehen und Herausfinden der richtigen iptables-Befehle, damit mein MacBook MyBookLive über das Bonjour-Netzwerk sieht. Ich bin mir 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 MyBookLive enthält) an eine einzelne IP-Adresse weiterzuleiten:

sysctl net.ipv4.ip_forward = 1
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp -j DNAT --to 192.168.0.66
iptables -t nat -A PREROUTING -i eth0 -p udp -j DNAT --to 192.168.0.66

Ich kann diese Adresse von meinem MacBook aus nicht anpingen. Das ist wahrscheinlich furchtbar falsch, aber ich bin ein absoluter Neuling beim Einrichten dieser Art von Netzwerk und könnte Hilfe von Experten zum richtigen Einrichten gebrauchen.

Jiahao Chen
quelle

Antworten:

0

Am einfachsten wäre es hier, ein NAT einzurichten und die erforderlichen Ports von der wlan0-Schnittstelle von zu Hause an die entsprechenden Ports auf der Schnittstelle der externen Festplatte weiterzuleiten.

Das folgende Skript ist ein Beispiel, mit dem NAT so eingerichtet wird, dass die Geräte, die zu Hause mit eth0 verbunden sind (über einen Switch oder ein Cross-Over-TP), Zugriff auf das drahtlose Netzwerk erhalten.

#! / bin / sh
INTERNAL_IP = home.lan
INTERNAL_NM = 255.255.255.0
INTERN = eth0
EXTERN = 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 $ EXTERN -o $ INTERN -m state \
    --Bezogen, festgestellt -j AKZEPTIEREN
iptables -A FORWARD -i $ INTERN -o $ EXTERN -j ACCEPT

Damit die beschriebene Situation funktioniert, müssen Geräte aus dem drahtlosen Netzwerk aktiviert sein, damit sie in das NAT-Netzwerk "zurückblicken" können (das sich hinter home.lan verbirgt). Der Ansatz, den Sie in der Frage ausprobiert haben, ist grundsätzlich korrekt, außer dass er in die falsche Richtung übersetzt wird. Sie möchten Pakete, die an bestimmten Ports der home.lan-Schnittstelle eingehen, an die lokale, versteckte NAT'ed-IP von mbl.lan weiterleiten

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

Dieses Setup würde es unmöglich machen, einen Samba-Server auf dem Home-Host auszuführen, da der Datenverkehr, der zu den Standard-Samba-Ports gelangt, an die externe Festplatte gesendet wird. Dies ist nicht Teil der Frage, aber eine mögliche Lösung wäre, den Samba-Dienst von home auf einem anderen Port auszuführen oder einen --dport-Wert wie 4455 zu verwenden und die Clients manuell so einzurichten, dass sie sich bei einem anderen Port verbinden Live auf mein Buch zugreifen.

Beachten Sie, dass in dieser Antwort davon ausgegangen wird, dass Samba auf dem Laufwerk verwendet wird und dass die Ports angepasst werden müssen, wenn ein anderes Protokoll verwendet wird.

Eine bemerkenswerte Einschränkung dieser Methode besteht darin, dass alle Verbindungen zum externen Laufwerk so aussehen, als ob sie von home.lan stammen.

Netzwerk-Aliase:
mbl.lan (IP-Adresse meines Buches; 192.160.0.66)
home.lan ( IP-Adresse des privaten WLAN0; 192.168.0.12)

Referenzen:
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

Ярослав Рахматуллин
quelle
0

Ich denke , dass einfache Lösung einzurichten Brücke Gerät br0Schnittstellen auf Linux-Box und fügen eth0und wlan0zu ihm.

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

Dadurch wird eine virtuelle br0Schnittstelle erstellt, die sich so verhält, als wären sowohl wlan0 als auch eth0 eine Schnittstelle in einem Netzwerk. Auf diese Weise können Sie von jedem PC aus Ihrem Netzwerk auf Ihre Netzwerkfestplatte zugreifen.

BEARBEITEN:

Dies funktioniert, wenn Sie Ihren wlan0als AP in verwenden master mode. Ich nehme an, Sie verwenden hostapd, um diesen AP auf Linux-Box zu erstellen.

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

Eine großartige Ressource für hostapdkabellose Linux-Netzwerke: http://linuxwireless.org/en/users/Documentation/hostapd

Woche
quelle
Haben Sie dies tatsächlich mit einer WLAN-Karte versucht? Bitte nennen Sie eine oder mehrere Funkkarten (Treiber), die dies unterstützen.
Ярослав Рахматуллин
Nun ja, ich benutze dies manchmal, um mein Telefon mit Netzwerken ohne WLAN 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.
Woche
Ich stimme zu, dass dies der richtige Weg sein sollte. Ich habe die Überbrückungsmethode zuvor ausprobiert, aber meine schrecklich integrierte WLAN-Karte unterstützte den Master-Modus nicht.
Jiahao Chen
0

Ich habe eine ähnliche Konfiguration für Kurzzeittests.

Installieren Sie hostapd folgendermaßen: (hostapd ist ein Daemon für drahtlose Zugangspunkte.)

sudo apt-get install hostapd

Hier ist eine wirklich minimale Konfigurationsdatei für hostapd.conf (beachten Sie, dass Sie mehr Konfiguration 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 ihn folgendermaßen 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 auf meinem Client eine statische IP (zB 172.20.99.2 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 an drahtloser Sicherheit und DHCP mangelt, aber es sollte funktionieren und Sie können je nach Ihren Anforderungen darüber hinaus bauen.

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

  • ath9k funktioniert in den meisten Fällen
  • RTL8187 funktioniert nicht AFAIK

EDIT: Ich habe Ihren Satz "Verwenden der Linux-Box als WLAN-Zugangspunkt" falsch verstanden. Ich dachte, Sie wollten Ihre Linux-Box drahtlos mit Ihrem MyBookLive verbinden. Bitte ignorieren Sie meine Lösung.

BorisHajduk
quelle