christian667
Anmeldungsdatum: 5. April 2006
Beiträge: 160
Wohnort: Hamburg
|
Hallo, ich bin zur Zeit dabei, meinen W-Lan Router durch einen PC mit Ubuntu Karmic zu ersetzen. Hierzu habe ich mir einen W-Lan USB-Stick von D-Link besorgt (DWL-G122), da dieser auch in der Lage ist, mit Ubuntutreibern im AP-Modus betrieben zu werden. Mein Ziel ist es, schlussendlich den PC direkt nachdem Booten ohne Anmeldung dazu zu bringen, sich (A) automatisch ins DSL einzuwählen (pppoe), (B) W-Lan über den Stick WPA2-Verschlüsselt als AP zur Verfügung zu stellen (mit hostapd), und (C) einen DHCP-Server (dnsmasq) zum automatischen Verteilen der IP Adressen zu starten. Jetzt stellen sich für mich folgende Fragen: 1. Wie und in welcher Reihenfolge sollte das alles initialisieren, ohne mich dafür Anmelden zu müssen? Ich könnte theoretisch alles mit Init oder Upstart einbinden, aber was ist die eleganteste Lösung und welche Reihenfolge wäre empfehlenswert? 2. Wie bekomme ich Ubuntu dazu, die pppoe Verbindung mittels IP-Tables an das W-Lan zu routen? Ich habe es bereits so probiert: sudo iptables -t nat -A POSTROUTING -o pppoe -s 192.168.2.0/24 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o ppp0e -j ACCEPT
sudo iptables -A FORWARD -i pppoe -o wlan0 -j ACCEPT Nach dem erfolgreichem Verbinden, wird einen IP Adresse vergeben, aber leider ist keine Verbindung ins Internet möglich! 3. Wenn ich Ubuntu ohne X-Server und NetworkManager starten möchte, reicht es die Dateien "network-manager.conf" und "gdm.conf" aus "/etc/init/" zu entfernen? Im Voraus schonmal danke ☺
|
elektronenblitz63
Anmeldungsdatum: 16. Januar 2007
Beiträge: 29307
Wohnort: NRW
|
Hallo, ich bin zur Zeit dabei, meinen W-Lan Router durch einen PC mit Ubuntu Karmic zu ersetzen. Hierzu habe ich mir einen W-Lan USB-Stick von D-Link besorgt (DWL-G122)
das ist nur mit Gerätevariante DWL-G122 H/W Rev B1, Ralink rt2500-Chipsatz möglich. Zeige mal die Ausgabe von
lsusb Konfiguration normalerweise über die interfaces. hostapd und die wpa_supplicant.conf (optional) muss entsprechend konfiguriert sein. Beispiel:
auto lo
iface lo inet loopback
# hier stehen sicherlich die Befehle für pppoe
# und die Konfiguration für eth0
auto wlan0
iface wlan0 inet static
address 192.168.1.1
netmask 255.255.255.0
broadcast 192.168.1.255
wpa-ssid christian667
wpa-key-mgmt WPA-PSK
wpa-passphrase Dein Schlüssel
# optional wenn die Einträge nicht hier in der interfaces stehen
# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
# NAT und Portforwarding starten
up iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
up sysctl -w net.ipv4.ip_forward=1
up /etc/init.d/dnsmasq restart
Basiskonfiguration der /etc/dnsmasq.conf
# DHCP-Server aktiv für Interface
interface=wlan0
# DHCP-Server nicht aktiv für Interface
no-dhcp-interface=eth0
no-dhcp-interface=ppp0
# IP-Adressbereich / Lease-Time
dhcp-range=192.168.1.10,192.168.1.100,infinite
In der /etc/default/hostapd
RUN_DAEMON=yes
Beispiel /etc/hostapd/hostapd.conf (Einträge müssen ggf. angepasst werden)
# WLAN-Interface
interface=wlan0
# Treiber
driver=hostap
#Logging-Optionen
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
debug=0
dump_file=/tmp/hostapd.dump
# Standardeinstellungen
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
# Deine WLAN-ESSID
ssid=christian667
# MAC-Adressen abgeschaltet
macaddr_acl=0
# PSK Authentifizierung
auth_algs=2
# Standardeinstellungen
eap_authenticator=0
eap_message=hello
eapol_key_index_workaround=0
own_ip_addr=127.0.0.1
# WPA1/WPA2 erlauben
wpa=3
# PSK
wpa_passphrase=Dein Schlüssel
# WPA
wpa_key_mgmt=WPA-PSK
# CCMP/AES Verschlüsselung
wpa_pairwise=CCMP
Starte das Netzwerk dann einfach neu und beobachte die Terminalausgabe:
sudo /etc/init.d/networking restart Ob das mit einem USB-Stick und PC sinnvoll ist, halte ich für fragwürdig (Stromaufnahme, einfache Konfigurierbarkeit, WLAN-Reichweite). Ich hätte mir für ein paar Euronen einen einfachen Router in der Bucht gekauft. Z.B. Speedport W500v (mit etwas Glück für ~10 €) und mit Bitswitcher Firmware ausgestattet. Weitere Info in: Router - Dnsmasq - Personal Firewalls - iptables2 - Skripte/nathelper
|
christian667
(Themenstarter)
Anmeldungsdatum: 5. April 2006
Beiträge: 160
Wohnort: Hamburg
|
Hi!
Also der Stromverbrauch sollte sicher hier in Grenzen halten, es handelt sich um
ein BeagleBoard (ARM Entwicklerboard von TI). Da ich dort nur einen Mini-USB Anschluss hab,
der mit einem USB-Hub verbunden ist, suche ich nach einer USB-Stick Lösung, die einen AP-Modus
unterstützt. Dabei hab' ich auf www.linuxwireless.org eine schöne Tabelle gefunden und bin auch auf
den von dir erwähnten Chipsatz gestoßen. Dieser Stick: http://www.amazon.de/D-Link-DWL-G122-Wireless-Adapter-802-11-G/dp/B000EXDQDQ/ref=sr_1_1?ie=UTF8&s=ce-de&qid=1268612596&sr=1-1 Sollte doch mit diesem ausgestattet sein, oder?
Ich habe ihn noch nicht bestellt und setze die Routerkonfiguration zum Test zunächst auf einem
Notebook um, das einen integrierten ath9k Chip ausgestattet ist.
Aber erstmal WOW und danke für die Konfiguration ☺ Diesen Teil:
wpa-ssid christian667
wpa-key-mgmt WPA-PSK
wpa-passphrase Dein Schlüssel Kann ich doch aus der interfaces rauslassen, wenn ich hostapd verwende, oder?
Wenn ich in der /etc/default/hostapd
RUN_DAEMON=yes bedeutet das dann, dass der hostapd "immer" läuft, auch direkt nach dem Start des Routers?
Wird die Netzwerkkonfiguration so auch ohne lokaler Anmeldung aktiviert? Danke ☺ Gruß, Christian EDIT: Hier:
# WPA1/WPA2 erlauben
wpa=3 Meintest du doch sicher # WPA1/WPA2 erlauben
wpa=2 oder? Ist damit dann eine WPA2 Verschlüsselung gegeben, oder ist das WPA1? Viele Grüße ☺
|
elektronenblitz63
Anmeldungsdatum: 16. Januar 2007
Beiträge: 29307
Wohnort: NRW
|
Hallo, meine Konfiguration ist schon was älter und muss in einigen Punkten bestimmt noch etwas angepasst werden. Eine gute Anleitung findet sich auch unter http://www.linuxwireless.org/en/users/Documentation/hostapd
# WPA1/WPA2 erlauben
wpa=3
Ist richtig so wie es da steht. WPA1 und WPA2 ist bei dieser Konfiguration erlaubt, muss man natürlich nicht verwenden. Dieser Stick: ... Sollte doch mit diesem ausgestattet sein, oder?
Das kann man anhand der Bestellnummer nicht sagen. Es ist aber eher unwahrscheinlich, dass noch neue Geräte mit dem veralteten rt2500-Chipsatz verkauft werden. Wahrscheinlich handelt es sich um Restbestände und das Nachfolgemodell rt73 ist verbaut. Die Typbezeichnung ist ja identisch, auf die Revision kommt es an. Das Etikett auf der Rückseite des Sticks gibt oft Aufschluß, ganz sicher nur die Geräte-ID (Abfrage lsusb). Siehe auch WLAN/Karten/D-Link. Was man genau für ein Gerät bekommt ist Glücksache.
|
christian667
(Themenstarter)
Anmeldungsdatum: 5. April 2006
Beiträge: 160
Wohnort: Hamburg
|
Hi!
Also meine Testkonfiguration läuft jetzt prima, danke ☺ Ich musste deine hostapd.conf noch etwas anpassen, einige Punkte wurden in der neuen Version geändert.. Meine /etc/network/interfaces sieht jetzt so aus:
auto lo
iface lo inet loopback
auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider
auto eth0
iface eth0 inet manual
auto wlan0
iface wlan0 inet static
address 192.168.1.1
netmask 255.255.255.0
broadcast 192.168.1.255
# NAT und Portforwarding starten
up iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
up sysctl -w net.ipv4.ip_forward=1
up /etc/init.d/dnsmasq restart
Das einzige und letzte Problem das besteht ist, dass sich die Interfaces nicht automatisch nach dem Systemstart aktivieren, d.h. ich muss mich immer noch Anmelden, und
sudo /etc/init.d/networking restart
ausführen, damit die DSL Verbindung aktiviert wird ☹ Gibts es da nicht eine Möglichkeit, das zu automatisieren? Ich habe gdm.conf und network-manager.conf aus /etc/init/ entfernt. Christian
|
elektronenblitz63
Anmeldungsdatum: 16. Januar 2007
Beiträge: 29307
Wohnort: NRW
|
Hallo, Hi! Also meine Testkonfiguration läuft jetzt prima, danke
👍 Ändere die Reihenfolge etwas, so wie die Schnittstellen benötigt werden:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider
... Das System arbeitet die Einträge bei Systemstart entsprechend ab. Funktioniert das nicht, trage den Befehl einfach in das Startskript rc.local ein.
|
christian667
(Themenstarter)
Anmeldungsdatum: 5. April 2006
Beiträge: 160
Wohnort: Hamburg
|
Hi! Also läuft beides leider nicht, zunächst hatte ich die Reihenfolge verändert und neugestartet, -kein Effekt. Dann in "/etc/rc.local" /etc/init.d/networking restart eingetragen, ebenfalls leider kein Effekt! Gruß Christian
|
elektronenblitz63
Anmeldungsdatum: 16. Januar 2007
Beiträge: 29307
Wohnort: NRW
|
Wenn es manuell funktioniert, sollte es natürlich auch mit dem selben Befehl automatisch ablaufen. Was passiert nach manueller Eingabe des Befehls (Terminalausgabe)?
|
christian667
(Themenstarter)
Anmeldungsdatum: 5. April 2006
Beiträge: 160
Wohnort: Hamburg
|
Also das USB-Stick Problem ist gelöst, ich habe mir von einem Bekannten einen TL-WN321G von TP-LINK ausgeliehen, den dieser gerade frisch von Amazon für 7€ erstanden hat. Kurz ins Notebook geschoben und siehe da, hostapd kann einen WPA2 verschlüsselten AP erstellen. Gruß, Christian EDIT: Ich bin noch unterwegs, Terminalausgabe kommt später ☺ Aber ich weiß soweit, dass dort nur etwas vom Restart des DNSMASQ gepostet wird. Wenn ich sudo /etc/init.d/networking restart eingebe, funktioniert alles. Aber bei sudo /etc/init.d/networking start tut sich nichts!
|
elektronenblitz63
Anmeldungsdatum: 16. Januar 2007
Beiträge: 29307
Wohnort: NRW
|
Bekannten einen TL-WN321G von TP-LINK ausgeliehen ...
Den gibt es bekanntermaßen nur in einer Version mit rt2500-Chipsatz, passt also. Die int. Karte war deaktiviert, bzw. der Treiber auch entladen, weil der Stick ja eine andere Schnittstelle zugewiesen bekommt?
|
christian667
(Themenstarter)
Anmeldungsdatum: 5. April 2006
Beiträge: 160
Wohnort: Hamburg
|
Kurios: Das Autostart Problem hat sich scheinbar von alleine gelöst, nach dem Boot steht die Verbindung und funktioniert einwandfrei ☺ Aber schon tritt das nächste Misterium auf: Ich hab jetzt den Stick an meiner Testkonfiguration und entsprechend die Konfiguration auf wlan1 (nach iwconfig) angepasst. Nach dem Boot steht die pppoe Verbindung und ich bin online, aber der Stick wird nicht automatisch initialisiert, obwohl ich nur wlan0 durch wlan1 ausgetauscht habe. Kann es sein, dass die USB Geräte nicht automatisch initialisiert werden? Wenn ich mich anmelde und dann sudo hostapd /etc/hostapd/hostapd.conf eingebe, fängt der Stick wie wild an zu blinken und alles funktioniert, ich kann mich per Wlan einloggen und bin online. Seltsam ^^ EDIT: Das Misterium wird immer seltsamer, jetzt nach mehreren Neustarts (Updates, grub-config) funktioniert alles einwandfrei. Kann es sein, dass die Konfiguration immer erst nach mehreren (!) Neustarts übernommen werden? Gruß Christian
|
elektronenblitz63
Anmeldungsdatum: 16. Januar 2007
Beiträge: 29307
Wohnort: NRW
|
Sperre mal den Treiber (ath9k) für die interne Karte. Die Schnittstelle des Sticks (wahrscheinlich wlan1) muss sowohl in der interfaces als auch in der dnsmasq.conf und der hostapd.conf entsprechend eingetragen sein. Vielleicht irgendwo einen Eintrag übersehen?
Kann es sein, dass die USB Geräte nicht automatisch initialisiert werden?
Der Treiber muss automatisch geladen werden, die Initialisierung erfolgt gemäß Reihenfolge in der interfaces. Manchmal gibt es ein Problem mit der Hardwareerkennung. Beispiel für eine fehlerhafte Hardwareerkennung der USB-Geräte (WLAN-Sticks) durch das udev-System.
Kann es sein, dass die Konfiguration immer erst nach mehreren (!) Neustarts übernommen werden?
Eigentlich nicht. Möglicherweise muss hostapd, so wie dnsmasq/iptables, über die interfaces erneut gestartet werden nachdem wlan initialisiert wurde. Ist aber nur eine Vermutung.
|
christian667
(Themenstarter)
Anmeldungsdatum: 5. April 2006
Beiträge: 160
Wohnort: Hamburg
|
Hi! Nein, ich hab kein Konfig-File übersehen ☺ Wie gesagt, jetzt funktioniert alles wunderbar, sowohl über den Stick, als auch zunächst über das interne Wlan. Danke für die viele Mühe! Viele Grüße Christian
|
elektronenblitz63
Anmeldungsdatum: 16. Januar 2007
Beiträge: 29307
Wohnort: NRW
|
Prima ☺ Hast ja alles selber hin bekommen, habe ja nur einen kleinen Schubs in die passende Richtung gegeben. Mich würde später noch interessieren wie gut (oder schlecht) das mit dem Beagle-Board und dem Stick funktioniert. Also die Performance wenn mehrere Rechner angedockt sind. Vielleicht kannst Du ja mal eine Rückmeldung geben. Danke. Einen entsprechenden Beitrag im Wiki zur Konfiguration (AP, hostaptd) gibt es auch noch nicht. 😉
|
christian667
(Themenstarter)
Anmeldungsdatum: 5. April 2006
Beiträge: 160
Wohnort: Hamburg
|
Hi! Also zur Performance kann ich noch keine Aussage treffen, da das Beagleboard noch nicht eingetroffen ist. Aber vorerst soviel: Mein altes Macbook (Intel Core Duo, Single Core, 1GB Ram) übernimmt dem gesammten Routingvorgang mit allem drum und dran jetzt bei durchschnittlich 0,3-1% Prozessorlast, bei 2 über Wlan verbundenen Rechnern 😀 Einen Wikieintrag zur gesamten Konfiguration, also Ubuntu als Wlan-Routersystem, kommt noch, sobald ich die Zeit dafür finde.. Jetzt allerdings noch eine Frage, das BeagleBoard wird mit 2 USB-Ethernet Adaptern ausgestattet, sodass ein Rechner über Ethernet dort Internetzugang erhalten soll. Welche Konfiguration muss ich dafür anpassen? Würde folgendes reichen: In /etc/network/interfaces
auto lo
iface lo inet loopback
# hier stehen sicherlich die Befehle fuer pppoe
# und die Konfiguration fuer eth0
auto wlan0
iface wlan0 inet static
address 192.168.1.1
netmask 255.255.255.0
broadcast 192.168.1.255
auto eth1
iface eth1 inet static
address 192.168.1.2
netmask 255.255.255.0
broadcast 192.168.1.255
# NAT und Portforwarding starten
up iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
up sysctl -w net.ipv4.ip_forward=1
up /etc/init.d/dnsmasq restart Bei /etc/dnsmasq.conf
# DHCP-Server aktiv fuer Interface
interface=wlan0
interface=eth1
# DHCP-Server nicht aktiv fuer Interface
no-dhcp-interface=eth0
no-dhcp-interface=ppp0 Oder hab ich da etwas übersehen? So sollte doch eth1 als weitere Ethernetschnittstelle automatisch starten mit der IP 192.168.1.2 und DNSMASQ dort auch IP-Adressen verteilen, oder? Gruß, Christian
|