Archive: Month 8, Year 2016

CentOS 7 mit Two-Factor-Authentication absichern

11.08.2016 yahe administration legacy linux security

Nach meiner Migration zu CentOS 7 wollte ich Two-Factor-Authentication für SSH-Logins einrichten. Allerdings musste ich feststellen, dass es für CentOS 7 keine aktuellen Pakete des entsprechenden PAM (Pluggable Authentication Module) gibt. So musste ich wohl oder übel das ganze selbst kompilieren. Bevor man jedoch loslegen kann, benötigt man zuerst einmal ein paar zusätzliche Pakete:

sudo yum install autoconf automake libtool make pam-devel unzip wget zip

Nun können wir mit der eigentlichen Installation beginnen:

wget https://github.com/google/google-authenticator/archive/master.zip
unzip ./master.zip
cd ./google-authenticator-master/libpam
./bootstrap.sh
./configure

Bis hierhin sollte alles funktioniert haben. Leider enthält die erstellte Konfiguration einen kleinen Fehler. Deshalb müssen wir händisch an den Anfang der Datei "./Makefile" folgende Zeile einfügen:

LDFLAGS="-lpam"

Nun kann es mit dem Kompilieren weitergehen:

make
sudo make install
sudo cp /usr/local/lib/security/pam_google_authenticator.so /lib64/security
make clean
cd ../..
rm ./master.zip
rm -R ./google-authenticator-master

Um die Nutzer zu markieren, für die die Two-Factor-Authentication aktiviert werden soll, legen wir eine Gruppe "google-auth" an:

sudo groupadd google-auth

Zudem ändern wir in der Datei "/etc/ssh/sshd_conf" eine Einstellung:

ChallengeResponseAuthentication yes

Danach schreiben wir folgendes in die Datei "/etc/pam.d/sshd" (z.B. unter die restlichen "auth"-Einträge):

auth [success=1 default=ignore] pam_succeed_if.so user notingroup google-auth
auth required pam_google_authenticator.so

Mit einem Restart des SSH-Servers sind die Änderungen aktiv:

sudo systemctl restart sshd.service

Nun müssen die Nutzer, für die die Two-Factor-Authentication aktiviert werden soll, das Skript zur Einrichtung der Two-Factor-Authentication in ihrem Account aufrufen:

google-authenticator

Abschließend müssen diese Nutzer noch in die Gruppe "google-auth" aufgenommen werden:

sudo usermod -a -G google-auth <username>

Das war's! Mit diesen Schritten lässt sich unter CentOS 7 eine Two-Factor-Authentication einrichten.


PHP 7 unter CentOS 7 installieren

09.08.2016 yahe administration legacy linux

Ich bin inzwischen mit allen Servern zu CentOS migriert. Das Gute an CentOS ist, dass es eine recht stabile Distribution ist und jedes Major Release 10 Jahre lang Support erhält. Das Schlechte an CentOS ist, dass viele Pakete dadurch in einer recht alten Version vorliegen, die lediglich mit Bug- und Security-Fixes versorgt werden. Bei meinen Webserverinstallationen möchte ich hingegen lieber neue Versionen betreiben, um neue Features zu erhalten.

Bei der Installation einer neueren Version hat man mehrere Möglichkeiten. Entweder, man kompiliert PHP 7 selbst oder man setzt ein Dritt-Repository ein, in dem bereits vorkompilierte Pakete für PHP 7 enthalten sind. In diesem Fall habe ich mich für zweiteres entschieden. Mit ius.io gibt es für CentOS 7 ein Repository, in dem die wichtigsten Pakete enthalten sind und das aufgrund der Unterstützung durch den Hoster Rackspace lange erhalten bleiben sollte. Um das Repository von IUS verwenden zu können, muss man im ersten Schritt deren RPM-Paket installieren, das sich darum kümmert, das Repository im System einzukonfigurieren:

wget "https://centos7.iuscommunity.org/ius-release.rpm"
sudo rpm -i ./ius-release.rpm
rm ./ius-release.rpm

Zusätzlich muss noch der öffentliche Schlüssel importiert werden, mit dessen Hilfe die Signaturen der heruntergeladenen Pakete überprüft werden können:

sudo rpm --import /etc/pki/rpm-gpg/IUS-COMMUNITY-GPG-KEY

Wenn man es noch nicht getan hat, sollte man weiterhin das EPEL-Repository mit einbinden, das weitere hilfreiche und meist aktuellere Software enthält. Das lässt sich durch die Softwareverwaltung realisieren:

sudo yum install epel-release

In meinem Fall installiere ich neben PHP auch immer gleich MariaDB und NGINX. Das IUS-Repository enthält auch eine aktuellere Version von MariaDB. Damit man diese installieren kann, müssen jedoch vorher die bereits vorhandenen "mariadb-libs" entfernt werden. Im Zuge dessen wird auch Postfix deinstalliert. Wir werden es einfach im Anschluss erneut installieren:

sudo yum remove mariadb-libs

Nun können wir die gewünschte Software über die Softwareverwaltung installieren. Pakete, die über IUS installierten werden, enthalten immer den Suffix "u", um sie leichter erkennen zu können und Kollisionen mit Standardpaketen zu vermeiden:

sudo yum install mariadb101u-server nginx php70u-cli php70u-fpm php70u-gd php70u-imap php70u-intl php70u-json php70u-ldap php70u-mbstring php70u-mcrypt php70u-mysqlnd php70u-pdo php70u-pear php70u-pgsql php70u-process php70u-pspell php70u-recode php70u-soap php70u-xml php70u-xmlrpc postfix

Search

Links

RSS feed

Categories

administration (40)
arduino (12)
calcpw (2)
code (33)
hardware (16)
java (2)
legacy (113)
linux (27)
publicity (6)
review (2)
security (58)
thoughts (21)
windows (17)
wordpress (19)