Kleine und große Linux AHAs
Beiträge getaggt mit rpm
Owned: Meine Gnome3 “Ausflüge”
02. Mai
Da steh ich nun, ich armer Tor,
und bin so klug als wie zuvor.
Naja, so oder so ähnlich. So wie auch viele meiner Kollegen bin ich jemand, der – gerade was meinen Desktop angeht – sehr gerne immer das neueste an Software hat. Gnome3 sollte da keine Ausnahme sein. Aber wie? Wie siehts denn aus mit Ubuntu? Oder muss ich was anderes nehmen?
Für maverick hatte ich schon öfter mal nach einen funktionierenden, aktuellen PPA gesucht und nichts richtiges gefunden. Was dann? LMDE (Linux Mint Debian Edition) habe ich mittlerweile zu Hause installiert, da mir Ubuntu mit Unity nicht so recht passt (strategisch möchte ich das nicht unterstützen). Aber auch dafür gibt es noch kein Gnome3
Naja, machen wir es rund. Was hab ich getan?
zu Hause
Zu Hause hab ich Fedora 15 (beta) installiert. Da ich über einige Jahre mit RedHat gearbeitet habe, konnte ich mich da recht schnell zurecht finden. Und ich muss sagen es funktioniert prima. Auch die Sache mit meinem ISCSI Laufwerk auf der NAS-Box (s. hier) habe ich ohne Probleme ans Laufen gebracht. Gnome3 funktioniert und bisher gab es keine Abstürze.
Ich muss auch einigen anderen Bloggern oder Berichten Recht geben, dass man sich sehr schnell daran gewöhnt und es dann auch mag. Persönlich finde ich die Oberfläche sehr modern und von der Bedienung her fortschrittlich. Einziges Manko sehe ich darin – wie auch viele andere – dass es zu wenig Tools gibt um den Desktop anzupassen. Selbst einen Menüeintrag kann man nur über Umwege realisieren.
Das Aussehen der Shell kann man anpassen – mit Hilfe des Tools Gnome-Tweak. Aber auch das ist noch ausbaufähig
Arbeitsplatz
Nachdem Natty dann letzte Woche das Licht der Welt erblickte wurde es Zeit auch in der Firma den Rechner in die neue Welt zu hieven. Also erst ein Update auf Natty und mit Natty sollte es ja – laut diversen Beschreibungen – möglich sein Gnome3 zu installieren. Nach dem Update auf Natty waren schon mal die Desktop Effekte nicht mehr nutzbar. Also Treiber deinstalliert und neu installiert, reboot und gut – ging wieder. Dann Gnome3? Ja.
Gedacht, getippt und es erschien ein Gnome3 Desktop. Sah soweit ganz gut aus, aber … Naja, das Theme passte alles nicht mehr. Diverse Menüeinträge funktionierten einfach nicht (Systemeinstellungen).
Naja, ging ja noch.
Dann hab ich Empathy eingerichtet. Wollte doch unbedingt die neue Benachrichtigungsleiste mit der man auch direkt auf Chats antworten kann ausprobieren. Sah soweit gut aus. Bis zur 5 Nachricht – mit der sich dann der komplett Desktop verabschiedete. Das passierte dann auch nach einen Neustart noch öfter.
Ok, das war am Freitag Nachmittag. Also erst mal übers Wochenende so stehen lassen.
Nach dem Wochenende gabs dann Updates aus dem Gnome3 PPA. Also voller Hoffnung installiert. Danach war dann alles futsch. Der GDM funktionierte gar nicht mehr. Das System fror ein bevor der Anmeldebildschirm erschien. Das wars dann.
Also Ubuntu 10.10 Stick genommen und das ganze neu installiert. Home zurückgesichert und mein guter Gnome 2 Desktop ist wieder da. Alles gut.
Fazit
Gnome3 gefällt – wenn auch noch einiges an Arbeit ist. Den Ubuntu Test kann ich nicht wirklich empfehlen – mit Fedora sieht das um einiges besser aus.
Generell fehlt dem neuen Desktop noch einiges an Tools, die den persönlichen Desktop konfigurieren lassen. Auch Dinge die eigentlich logisch erscheinen sind meiner Meinung nach erst Ansatzweise umgesetzt. So sucht die Suche in Gnome3 (das Suchfeld rechts oben) nur in den zuletzt geöffneten Dateien, bzw. in den Anwendungen. Warum bringt man dort nicht direkt die Funktionalität rein die Gnome-Do, Kupfer oder Synapse auf den Desktop bringen? Des Weiteren gibt es zu Zeit kein Tool um das Menü zu editieren, bzw. eigene Menüeinträge anzulegen (das geht manuell über .desktop Einträge in .local/share/apps/).
Ich hoffe Ubuntu wird auch eine Version mit vernünftig integriertem Gnome3 anbieten. Ansonsten muss ich mir eine Alternative suchen. Bis dahin wird auf meinem Heimrechner Fedora mit Gnome3 laufen und das Arbeitsgerät mit Ubuntu 10.10 mit Gnome2.
SSH authorized_keys mal anders verwalten
15. Jun
Wir haben viele Admins, die sich über ihre SSH Schlüssel per root an unsere RHEL Server direkt anmelden wollen. Das root Passwort ist keinem bekannt. Durch geeignete Log Optionen in der sshd_config können finger prints der Schlüssel, die sich anmelden protokolliert werden.
Die Verwaltung der authorized_keys auf so vielen Servern war aber immer etwas mühselig, bis wir auf die Idee gekommen sind, das ganze per RPM verwalten zu lassen. Den öffentlichen Schlüsselteil verpacken wir in ein RPM mit sprechendem Namen und verteilen dieses auf die entsprechenden Systeme.
Das Verfahren hat folgende Vorteile:
- Wenn ein Admin einen neuen Schlüssel erzeugt (weil Passphrase vergessen, Schlüssel kompromittiert, …), ist die Verteilung des neuen Schlüssels durch ein neues RPM mit höherer Versionsnummer sehr einfach über die Standard System Update Mechanismen (Satellite usw.) zu realisieren.
- Wer direkten Root Zugriff hat ist leicht über die RPM Paketliste zu erkennen.
- Scheidet ein Kollege aus, muss nur sein RPM überall deinstalliert werden und schon hat er keinen root Zugriff mehr auf die Systeme.
So funktionierts:
Das Spec File für das ssh rootkey RPM findet ihr hier: ssh-rootkey-_USERNAME_.spec
Einfach überall _USERNAME_ in einen sprechenden Namen austauschen, z.B. ssh-rootkey-hsimpson.spec und die SSHKEY_-Variablen mit den Schlüsselinformationen bestücken und das Spec file ist fertig.
Ein rpm -bb erzeugt dann das entsprechende RPM. Ab ins System Management Tool, auf die Systeme installiert und schon hat der Admin mit seinem Schlüssel Zugriff auf das System.
sftp Server Teil II – “Jail made easy”
08. Feb
Im ersten Teil haben wir das aktuelle openssh Paket für RHEL gebaut und sollten das auch mittlerweile installiert haben. Die Konfiguration des SSH-Servers hat sich nur wenig geändert. Es gibt eigentlich auch nur wenig neue Stellen die hier für uns interessant sind. Aber wir beginnen am Anfang:
Gruppe für sftp
Die Steuerung ob ein Benutzer in einer “gechrooteten” Umgebung landet wird über eine Gruppe gesteuert. Diese könnte man beispielsweise “sftpchroot” nennen. Diese Gruppe wird also angelegt:
groupadd sftpchroot
Benutzer anlegen
Als nächstes muss der Benutzeraccount angelegt werden, der sich auch in der Gruppe sftpchroot befindet:
useradd testuser -G sftpchroot
(Passwort setzen oder disablen, je nach dem ob sich per Key oder Passwort eingeloggt werden soll. Eine Shell benötigt der User auch nicht unbedingt.)
Benutzerhome anpassen
Das Benutzerhome (/home/testuser) muss von den Rechten her angepasst werden, damit das “chrooten” funktioniert. Gleichzeitig legen wir ein Verzeichnis (exchange) an, in welches der Benutzer über sftp schreiben darf.
chown root:sftpchroot /home/testuser mkdir /home/testuser/exchange chown testuser:testuser /home/testuser/exchange
Möchte man die Authentifizierung per Key machen, so muss folgendes ebenfalls eingerichtet werden:
mkdir /home/testuser/.ssh chown testuser:testuser /home/testuser/.ssh
Der Key kommt dann in die authorized_keys; die Rechte werden auf 0600 gesetzt und fertig.
Logging
Wir möchten genau sehen, welche Befehle auf dem SFTP Server abgesetzt werden. Daher muss auch das Logging aufgesetzt werden. Dazu ist es nötig, dass in jedem Home ein dev Verzeichnis angelegt wird (-> mkdir /home/testuser/dev). Dort wird dann vom dem Syslog Server des Vertrauens eine Pipe angelegt und damit ist das Logging im System.
Wir verwenden den syslog-ng (syslog-ng). Die Konfiguration dafür sieht wie folgt aus:
source s_sftpchroot {
# Please add each chrooted environment here
# These logs stay on the local machine; not sended to the syslog-server
unix-stream ("/home/testuser/dev/log");
};
destination d_sftplog { file("/var/log/sftp_chrooted.log"); };
log { source(s_sftpchroot); destination(d_sftplog); };
Jede Chroot Umgebung muss hier im Abschnitt “source” eingetragen werden. Damit fließen alle sftp logs in eine Datei. Alternativ kann natürlich auch für jeden Benutzer ein eigenes Log geschrieben werden. Welche Konfigteile dazu angepasst werden müssen sollte ersichtlich sein
Openssh Chroot
Nun zu dem früher schwierigsten, heute jedoch einfachsten Teil. Das Openssh Chroot. Ich zeige einfach die Konfiguration – it`s that easy !
Subsystem sftp internal-sftp Match group sftpchroot X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp -l VERBOSE ChrootDirectory /home/%u
Mit dieser Konfiguation am Ende der sshd_config (/etc/ssh) bekommt jeder Benutzer, der sich in der Gruppe sftpchroot befindet, besondere Optionen. Unter anderem wird lediglich der interne sftp-server (internal-sftp) zugelassen, der mit dem Parameter “-l VERBOSE” sämtliche Befehle des Benutzers loggt. Fertig.
sftp Server Teil I – RPM bauen “made easy”
04. Feb
Ein SFTP Server ist heutzutage eigentlich nichts besonderes mehr – kommt auf die Anforderungen an. Ich möchte in zwei Teilen erklären, wie man einen sicheren “SFTP only” Server aufbaut. Das ist an sich auch wirklich nicht so schwierig.
Wenn googelt wird man schnell sehen, dass es wahnsinnig viele Anleitungen gibt um sowas zu machen. “chrooted sftp” ist da das Stichwort und es sind diverse Patches notwendig. Allerdings sind die meisten dieser Anleitungen hinfällig, da die aktuellen Version von Openssh (5.3p) bereits alles mitbringt, was man benötigt.
Unter RHEL 5 gibt es zur Zeit Openssh Version 4.3p2 als aktuellstes Package. Damit kann man weder ein “Gefängnis” (Jail -> chrooted User) bauen, noch ist das Logging so, dass man damit auch im Problemfall etwas nachvollziehen kann. Da es sehr einfach ist, das Paket selbst zu bauen, bin ich auch gar nicht erst auf die Suche gegangen um irgendwo ein fertiges zu finden.
Quellen besorgen
Die Quellen für Openssh gibt es natürlich unter openssh.org – bzw. die Mirrorliste hier. Bei Erstellung war die aktuelle Version openssh-5.3p1.tar.gz
Prerequisites
yum install gcc openssl-devel pam-devel rpm-build
Auspacken und los
tar zxvf openssh-5.2p1.tar.gz cp openssh-<VERSION>/contrib/redhat/openssh.spec /usr/src/redhat/SPECS/ cp openssh-<VERSION>.tar.gz /usr/src/redhat/SOURCES/ cd /usr/src/redhat/SPECS # askpass wird nicht benoetigt perl -i.bak -pe 's/^(%define no_(gnome|x11)_askpass)\s+0$/$1 1/' openssh.spec rpmbuild -bb openssh.spec
Fertige RPMs
Die fertigen RPMs sind dann unter
cd /usr/src/redhat/RPMS/`uname -i`
zu finden.
Vor der Installation sollten die alten (alle !) Pakete deinstalliert werden oder die neuen mit “rpm -U” als Update installieren.
RPM und 64bit Systeme
05. Mai
Eieieiei, immer wieder muss ich nachschauen und aufs neue den rpm Befehl zusammen basteln. Jetzt schreibe ichs mal auf:
RPMs inklusive Architektur auf einem 64bit RHEL System auflisten lassen:
rpm -qa --qf "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n"
Wenn ein Paket für mehrere Architekturen installiert ist, kann man mittels .
rpm -qi glib2.x86_64
Und deinstallieren des 64Bit Paketes:
rpm -e glib2.x86_64



