Archives For Linux

Nur einen Switch aber keine Kabel für eine Kundenschulung? Nur eine UMTS-Karte aber mit Laptop und Tablet surfen wollen? Informatiker-untypisch in der freien Natur und trotzdem mit mehreren Leuten ein Netzwerk aufbauen? Die Lösung für diese Probleme ist relativ einfach und nennt sich hostapd. Dieser kleine Daemon ist zumindest unter Fedora recht schnell mit yum install hostapd installiert, sollte aber auch auf allen anderen Distributionen nur ein Kommando entfernt sein.

Die Konfiguration muss dann nicht so kompliziert aussehen wie in der Beispieldatei. Meine Konfiguration sieht beispielsweise ungefähr so:

ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel

# Some usable default settings…
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0

wpa=3
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

wpa_passphrase=strenggeheim

# Most modern wireless drivers in the kernel need driver=nl80211
driver=nl80211

interface=wlan0
hw_mode=g
channel=11
ssid=mobile

Nach dem Start des Dienstes mit systemctl start hostapd.service findet man nun mein WLAN mobile mit beliebigen Geräten und kann sich mit Passwort strenggeheim anmelden. Hätte ich als Passwort geheim gewählt würde ich auch ganz schnell die Fehlermeldung in /var/log/messages finden, dass eine WPA-Passphrase mindestens 8 Zeichen lang sein muss. Auch würde der Dienst nicht laufen wenn der Standardtreiber oder der Mode nicht für die gewählte Hardware funktioniert.

Nun kann ich mich zwar an diesem WLAN anmelden, was aber noch fehlt ist ein DHCP-Server, der IP-Adressen und DNS-Konfiguration verteilt, sowie das Routing über meine UMTS-Verbindung ins Internet. Mein Setup wird an dieser Stelle etwas komplizierter da ich KVM zur Virtualisierung nutze und den DHCP-Socket für meine interne Infrastruktur benötige. Daher habe ich eine virtuelle Maschine, die diese Funktionen übernimmt, zum Glück beides schon vorbereitet für unsere Schulungen. In einem simpleren Setup würde ich einfach per DHCP IP-Adressen in einem privaten Adressbereich verteilen, der sich nicht mit dem meines Providers und eventueller VPN-Verbindungen überschneidet, und als DNS-Server 8.8.8.8 (den öffentlichen DNS-Server von Google). Für das Routing reichen neben aktiviertem Forwarding einfache iptables-Regel:

-A POSTROUTING -o wwan0 -j MASQUERADE
-A FORWARD -i wwan0 -o wlan0 -m state –state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wwan0 -o wlan0 -j ACCEPT

Ich hoffe dem ein oder anderen hilft diese kurze Anleitung.

Noch einfacher und graphisch soll so ein Setup mit aktuellen NetworkManager-Versionen möglich sein, aber momentan verhindert noch ein Bug bei mir das Upgrade auf Fedora 18.

64.thumbnail WLAN benötigt?   Kommt sofort!

Autor: Dirk Götz

Dirk ist Red Hat Spezialist und arbeitet bei NETWAYS im Bereich Consulting für Icinga, Nagios, Puppet und andere Systems Management Lösungen. Früher war er bei einem Träger der gesetzlichen Rentenversicherung als Senior Administrator beschäftigt und auch für die Ausbildung der Azubis verantwortlich.

isms top shop MultiTech iSMS – Firmware Version 1.51.9 verfügbarAb sofort ist eine neue Firmware für das MultiTech iSMS mit der Version 1.51.9 verfügbar, in der einige Probleme mit dem SMS-Modem sowie dem Acknowledgment behoben wurden. Wir empfehlen allen Nutzern des Geräts, die aktuell die Firmware Version 1.50.7 aufgespielt haben, ein Update durchzuführen.

Vorher wird noch empfohlen, Ihre aktuelle Konfiguration zu sichern, damit diese nach erfolgreichem Aktualisierungsvorgang wieder eingespielt werden kann.

Folgende Schritte sind für das Backup sowie die Aktualisierung durchzuführen:

  1. Laden Sie die Firmware Version 1.51.9 herunter
  2. Entpacken Sie das Archiv und legen die .bin File auf Ihrem Computer ab
  3. Melden sich über das Web-Frontend an Ihrem Gerät an
  4. Klicken Sie in der Navigationsleiste auf „Utilities
  5. Wählen Sie im linken Menü „Backup“ aus
  6. Klicken Sie rechts auf den Button „Export“ (es wird ein .tar Archiv mit Zeitstempel in Ihr Standard Download Verzeichnis des Browsers heruntergeladen)
  7. Klicken Sie im linken Menü auf den Punkt „Firmware Upgrade
  8. Klicken Sie in der Mitte auf den Button „Datei auswählen“ und wählen Sie anschließend die .bin Datei aus, die in Punkt 2 entpackt wurde
  9. Klicken Sie auf den Button „Upgrade
  10. Nach einigen Minuten ist das Gerät wieder betriebsbereit (Achtung: Es kann sein, dass die IP des Geräts zurückgesetzt wurde. Daher bei erfolglosem Verbindungsaufbau mit der Standard-IP 192.168.2.1 eine Verbindung herstellen und mit den Zugangsdaten Admin/Admin anmelden)
  11. Klicken Sie nach erfolgreicher Anmeldung wieder auf „Utilities“ in der Navigationsleiste
  12. Klicken Sie im linken Menü auf „Backup
  13. Wählen Sie das .tar Archiv aus (falls das Backup wie in Punkt 6 exportiert wurde)
  14. Klicken Sie auf „Import
  15. Nach einem kurzen Neustart des Geräts ist nun die aktuelle Firmware sowie Ihre Konfiguration installiert

Hinweis: Mit der Firmware Version 1.51.9 wurde ein Feature eingebaut, welches mehrere SMS, die an einen Server geschickt werden, in einer XML-Datei verschickt. Mit der aktuellen Version des sendsms.pl Scripts, kommt es hier zu einem PERL-Fehler. Im Webinterface unter dem Punkt “SMS Services” > “SMS API” ist daher ganz am Ende der Seite die Anzahl der zu versendenden SMS innerhalb eines XML-Dokuments auf 1 zu setzen.

Für die initiale Einrichtung sowie die Anbindung des Gerätes an Nagios / Icinga, haben wir die Kurzanleitung in unserem Online Shop ebenfalls angepasst.

Haben sie Fragen oder Interesse an anderen Produkten für Ihre Überwachung?

Dann besuchen Sie einfach unseren NETWAYS Online-Shop.

Für einen persönlichen Kontakt stehen wir Ihnen ebenfalls sehr gerne zur Verfügung – nutzen Sie hierfür einfach unser Kontaktformular, schreiben Sie uns eine E-Mail oder rufen Sie uns an! Alle Details zum Shop-Kontakt finden Sie hier.

60.thumbnail MultiTech iSMS – Firmware Version 1.51.9 verfügbar

Autor: Christian Stein

Christian kommt ursprünglich aus der Personalberatungsbranche, wo er aber schon immer auf den IT Bereich spezialisiert war. Bei NETWAYS arbeitet er als Account Manager und berät unsere Kunden in der vertrieblichen Phase rund um das Thema Monitoring. Gemeinsam mit Georg hat er sich Mitte 2012 auch an unserem Hardware-Shop "vergangen".

Neben den bei Linux-Admins allseits bekannten Permission-Bits (Read-, Write- und Execute-Berechtigungen für User, Gruppen bzw. World) gibt es noch weitere Möglichkeiten, die Berechtigungen von Dateien zu definieren. Eine davon ist die Verwendung von Access Control Lists, kurz ACLs.

Mit ACLs kann im Gegensatz zu traditionellen Unix-Berechtigungen für mehrere Benutzer und Gruppen definiert werden, wer Zugriff auf eine Datei erhalten soll. Um ACLs verwenden zu können, muss man ein Dateisystem verwenden, das diese unterstützt (z.B. ext3). Zusätzlich muss das Dateisystem mit der Option “acl” gemountet werden, wie folgendes fstab-Beispiel zeigt:

/dev/sda1     /           ext4    errors=remount-ro,acl	    0       1

Je nach verwendetem Dateisystem ist die “acl”-Option eventuell bereits standardmäßig aktiviert.

Zusätzlich müssen noch Tools installiert werden, um ACLs anzeigen und bearbeiten zu können. Bei Debian sind diese z.B. im Paket “acl” enthalten:

$ sudo aptitude install acl
The following NEW packages will be installed:
  acl 
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/70,8 kB of archives. After unpacking 264 kB will be used.
Selecting previously unselected package acl.
(Reading database ... 104211 files and directories currently installed.)
Unpacking acl (from .../acl_2.2.51-8_amd64.deb) ...
Processing triggers for man-db ...
Setting up acl (2.2.51-8) ...

Danach können wir auch schon damit anfangen, ACLs zu verwenden. Zunächst legen wir ein Verzeichnis und eine Test-Datei an, die in den folgenden Beispielen verwendet werden:

$ mkdir acl
$ touch acl/test

Mit Hilfe des Tools “getfacl” können wir uns die ACLs eines Verzeichnisses bzw. einer Datei anzeigen lassen:

$ getfacl acl
# file: acl
# owner: gunnar
# group: gunnar
user::rwx
group::rwx
other::r-x

Obwohl wir noch gar keine ACLs definiert haben, hat das Verzeichnis bereits 3 Einträge. Diese entsprechen den UNIX-Berechtigungen, die z.B. auch von “ls -l” angezeigt werden.

Mit folgenden Befehlen können wir nun die Berechtigungen so anpassen, dass der Benutzer “gunnar” lesend und schreibend auf das Verzeichnis zugreifen kann, während der Benutzer “www-data” nur-lesenden Zugriff hat:

$ chmod 700 acl
$ setfacl -m user:www-data:rx acl

Wenn wir uns das Verzeichnis danach mit ls anzeigen lassen, erkennen wir an dem “+” bei den Berechtigungs-Bits, dass für dieses Verzeichnis ACLs definiert wurde:

$ ls -l 
total 52
drwxr-x---+ 2 gunnar gunnar  4096 Mär 21 12:21 acl

Die ACLs können wir uns dann mit getfacl anzeigen lassen:

$ getfacl acl
# file: acl
# owner: gunnar
# group: gunnar
user::rwx
user:www-data:r-x
group::---
mask::r-x
other::---

ACLs von Verzeichnissen werden dabei nicht standardmäßig an Unterverzeichnisse oder Dateien vererbt. Hierzu können wir uns die Berechtigungen von “acl/test” anzeigen lassen:

$ getfacl acl/test 
# file: acl/test
# owner: gunnar
# group: gunnar
user::rw-
group::rw-
other::r--

Falls wir Berechtigungen vererben wollen, z.B. damit der “www-data”-Benutzer rekursiv auf alle Dateien in einem Verzeichnis zugreifen kann, müssen wir für das Verzeichnis eine sogenannte Default-ACL definieren. Hierzu gibt es beim Befehl setfacl den Parameter “-d”:

$ setfacl -d -m user:www-data:rx acl

Die Default-ACL gilt dabei ausschließlich für neu-angelegte Unterverzeichnisse und Dateien:

$ touch acl/test2
$ getfacl acl/test2
# file: acl/test2
# owner: gunnar
# group: gunnar
user::rw-
user:www-data:r-x		#effective:r--
group::---
mask::r--
other::---

Weiterführende Informationen zu Unix-ACLs gibt es in den Manpages der Befehle getfacl und setfacl bzw. in acl(5). Neben ACLs gibt es auch noch weitere Möglichkeiten, Berechtigungen zu vergeben, wie beispielsweise SELinux-Labels oder in neueren Versionen des Linux-Kernels NFSv4 ACLs (“Richacls“).

39.thumbnail Dateisystem ACLs unter Linux

Autor: Gunnar Beutner

Vor seinem Eintritt bei NETWAYS arbeitete Gunnar bei einem großen deutschen Hostingprovider, wo er bereits viel Erfahrung in der Softwareentwicklung für das Servermanagement sammeln konnte. Bei uns kümmert er sich vor allem um verschiedene Kundenprojekte, aber auch eigene Tools wie inGraph oder in Zukunft um Icinga2.

Jahrelalang habe ich ssh, wie wahrscheinlich die meisten von uns, nur zum administrieren und direkten Zugriff auf entfernte Server benutzt. Ab und zu vielleicht nochmal scp aber dann war’s das auch wirklich.
In den letzten Monaten habe ich aber so viele coole Funktionen von ssh kennengelernt, dass ich die hier jetzt nochmal sammeln möchte um nicht alles in der nächsten Woche wieder vergessen zu haben.

Authentifizierung

Ein Feature, das die tägliche Arbeit sehr erleichtert ist das authorized_keys file in ~/.ssh
Hier trägt man einfach den public key des users ein der sich auf diesen Host verbinden darf und alle Passworteingaben haben sich erstmal erledigt.

Portweiterleitung

Man kann ssh nicht nur für die direkte Kommunikation auf eine remote shell benutzen sondern alle Möglichen Dienste durch ssh tunneln und so Firewallgrenzen überspringen und sich die Arbeit erleichtern.

Ich benutze als Beispiel mal einen Webserver, der auf einem entfernten Host läuft und nur über einen weiteren Hop erreichbar ist. Die Firewall im Bild lässt bloß Port 22 auf HostA zu.

ssh blog 300x180 Wunderwelt ssh

ssh environment

Beispiel 1: Zugriff von HomeLaptop auf auf webserver.

Um dieses Szenarion zu realisieren kann man z.B. den Port 80 des webservers über HostA durch den ssh tunnel auf den lokalen Port 8080 des HomeLaptops weiterleiten.

Hierbei hat man zwei Möglichkeiten. Entweder man baut 2 Tunnel hintereinander, oder man sagt ssh wie es von LaptopHome zum webserver kommt.

1
2
3
4
5
# als erstes einen tunnel vom webserver zum HostA
user@LaptopHome:# ssh kalle@HostA
user@HostA:# ssh -L 8080:127.0.0.1:80 manfred@webserver
# als nöchstes in einem anderen terminal
user@LaptopHome:# ssh -L 8080:127.0.0.1:8080 user@HostA

Die Alternative finde ich persönlich viel schöner.
Man öffnet auf LaptopHome die ~/.ssh/config Datei und trägt folgenden Zeilen ein.

1
2
3
4
5
6
7
8
9
10
Host HostA
   User Kalle
   Hostname HostA
 
Host webserver
   User manfred
   # mit -a bewirkt dass der public key des gateway hosts auf dem Zielsystem sein muss
   ProxyCommand ssh -x -a -q HostA nc %h 22
   # kein -a bewirkt, dass der public key des initiierenden users auf dem Zielsystem sein muss
   ProxyCommand ssh -x -q HostA nc %h 22

Am Ende kann man mit einem kurzen Befehl den Tunnel aufbauen

1
user@LaptopHome:# ssh -L 8080:127.0.0.1:80 webserver

Einen Wunsch könnte man im Zweifelsfall noch haben. Eventuell möchte man vom HomePC auch auf den webserverzugreifen. Jetzt könnte man natürlich die .ssh/config Datei um ein weiteres ProxyCommand erweitern. Es gibt jedoch noch eine andere Möglichkeit. Mit Hilfe der ssh option -g kann man den lokalen Port allgemein Verfügbar machen.

1
user@LaptopHome:# ssh -L 8080:127.0.0.1:80 webserver -g

Und schon kann von HomePC auf http://LaptopHome:8080 zugegriffen werden.

Beispiel 2: Den Kollegen auf der Arbeit den Datenbankserver zur Verfügung stellen.

Der Datenbankserver HomeDB stellt im LAN eine mysql Datenbank auf Port 3306 bereit.

1
user@HomeDB:# ssh kalle@HostA -R 10000:HomeDB:3306

Das führt dazu, dass auf der man auf der Arbeit auf HostA, Port 10000 der mysql Dienst zur Verfügung steht.

magical bash

Das ProxyCommand Beispiel bedient sich, um die direkte Weiterleitung sicherzustellen, des Linux tools netcat alias nc. Es soll allerdings in der großen weiten Welt Systeme geben, auf denen kein netcat existiert. Im Beispiel müsste dieses auf HostA installiert sein. Sollte es sich bei diesem jedoch z.B. um ein älteres Solaris oder AIX System handelt so könnte es auch sein, dass dem nicht so ist.

Möchte man jetzt aber trotzdem das ProxyCommand nutzen gibt es noch eine Möglichkeit mit Hilfe der /dev/tcp Schnittstelle, die einem von BASH bereitgestellt wird, ein netcat nachzubilden.

1
2
3
4
5
6
Host HostA
   User Kalle
   Hostname HostA
Host HostA
   User Manfred
   ProxyCommand ssh webserver "/bin/bash -c 'exec 3<>/dev/tcp/HostA/22; cat <&3 & cat >&3;kill $!'"

Sollte ich noch weitere ssh magic herausfinden werde ich nicht zögern euch diese mitzuteilen.

38.thumbnail Wunderwelt ssh

Autor: Christoph Niemann

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinander gesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

Das Einrichten von Bonding unter Ubuntu ist ähnlich wie bei Debian. Allerdings gibt es unter Ubuntu beim Einrichten von Bonding mit DHCP ein paar Dinge die man beachten sollte.
Beim booten initialisiert  Ubuntu seine Netzwerkinterfaces gleichzeitig was mit statischer IP kein Problem ist, aber bei einer Konfiguration mit DHCP führt es dazu, das das Bonding Interface sehr oft nicht richtig startet.  Wenn man nicht direkt an der Konsole steht ist das etwas ungünstig. Deswegen muss man dafür sorgen,  dass das zweite Interface mit einer Verzögerung von min. 5 Sek startet. Die 5 Sekunden haben sich bei uns bewährt, da eine kürzere Zeitspanne keine Verbesserung gebracht hat. Zusätzlich sollte man dem Bonding Interface die Mac Adresse des gewünschten Interfaces zuteilen, damit das Interface immer mit der gleichen Mac Adresse beim DHCP Server anfragt.

Als erstes muss das Paket ifenslave-2.6 installieren (sudo apt-get install ifenslave-2.6) und danach die Interface Konfiguration anpassen:

/etc/network/interfaces

auto eth0
iface eth0 inet manual
bond-master bond0

auto eth1
iface eth1 inet manual
bond-master bond0
pre-up sleep 5

auto bond0

iface bond0 inet dhcp
bond-slaves eth0 eth1
bond-mode 1
bond-miimon 100
bond-downdelay 200
bond-updelay 200
hwaddress 00:11:22:33:44:55

11.thumbnail Bonding unter Ubuntu 12.04.1

Autor: Martin Schuster

Martin gehört zu den Urgesteinen bei NETWAYS und leitet zusammen mit Sebastian das Managed Services Team. Vorher war er bei 100world als Systems Engineer angestellt. Während er früher Nürnbergs Partykönig war, verbringt der frischgebackene Papa nun seine Freizeit damit das Haus zu renovieren.

Page 1 of 101234...10...>>