UniFi als Linux Service

Die UniFi WLAN Access Points gelten aktuell als das Nonplusultra wenn es um günstige Enterprise Hardware geht.

Doch diese erfordern zum konfigurieren eine java Webapplikation, welche offiziell nur als Desktopanwendung unterstützt wird – Und dort nicht gerade gut, bei einigen Konfiguration läuft es, bei anderen nicht.

Doch es gibt eine inoffizielle Version der Software, welche man ganz einfach auf einem Linux Server installieren kann und die gut läuft! Dies ist meiner Meinung nach auch die bessere Variante, da man in der Regel das Konfigurations-Webinterface ohnehin immer Abrufbar haben will.

Mit ein paar einfachen Schritten lässt isch die Software als CentOS/RHEL service installieren und mit ein paar kleinen Anpassungen passt sie auch auf andere Linux Systeme wie debian oder ubuntu.
Continue reading UniFi als Linux Service

ipv6 iptables firewall

Die „normale“ IPv4 Firewall wird von den Administratoren gut gepflegt, doch dass man dieselbe, mithilfe des Kommandos ip6tables tun sollte, daran denken die wenigsten.

Dies kann dann fatal sein, wenn der Internetprovider des Servers auf IPv6 umstellt, denn die Standard Einstellungen für die IPv6 Firewall sind bei vielen Distribution weit offen.
Continue reading ipv6 iptables firewall

IMAP/POP3 Server für lokale System Benutzer

Manchmal möchte man nur ein- oder zwei mailboxen auf einem Linux System auch über einen lokalen IMAP/POP3 Server abrufbar machen (z.B. für ein Ticketing System).

In diesem Fall braucht man kein komplexes Mailserver-Setup zu machen. Beim RHEL/CentOS dovecot Paket reicht es ein paar Zeilen in der dovecote-Konfiguration zu erstellen.

Continue reading IMAP/POP3 Server für lokale System Benutzer

bugzilla: Welche CentOS/RHEL Perl-Module braucht es?

Bugzilla braucht viele perl-module um zu laufen.

Wenn man diese lieber über yum anstatt über CPAN installieren möchte sind folgende nötig:

yum install --enablerepo=rpmforge-extras --disablerepo=base mod_perl mod_perl-devel perl-Apache-SizeLimit perl-Authen-SASL perl-CGI perl-Chart perl-Class-Inspector perl-Daemon-Generic perl-DateTime perl-DateTime-TimeZone perl-DBD-mysql perl-DBI perl-Digest-SHA perl-Email-MIME perl-Email-MIME-Attachment-Stripper perl-Email-Reply perl-Email-Send perl-Encode-Detect perl-File-MimeInfo perl-GD perl-GDGraph perl-GDTextUtil perl-HTML-FormatText-WithLinks perl-HTML-Parser perl-HTML-Scrubber perl-IO-stringy perl-JSON perl-JSON-RPC perl-JSON-XS perl-LDAP perl-libwww-perl perl-List-MoreUtils perl-Math-Random perl-MIME-tools perl-Net-SMTP-SSL perl-PatchReader perl-RadiusPerl perl-SOAP-Lite perl-Template-GD perl-Template-Toolkit perl-Test-Taint perl-TheSchwartz perl-TimeDate perl-URI perl-XML-Twig perl-YAML

Um alle dependencies auflösen zu können ist das rpmforge repository (und ggf. sogar das rpmforge extras repo) zu installieren/aktivieren.

Allerdings sind einige bei neueren Bugzilla-Versionen zu alt und müssen über CPAN installiert werden.

Die perl-module welche (Stand CentOS 6) unbedingt per CPAN installiert werden müssen sind:

perl-Date-Format perl-Email-MIME perl-List-MoreUtils perl-Math-Random-ISAAC

Weitere Info: [https://wiki.mozilla.org/Bugzilla:Prerequisites|Bugzilla:Prerequisites]

vmware web-konsole stürzt nach CentOS-Upgrade ab

Achtung
Ab CentOS 5.6 ist das Problem mit der glibc zwar wieder behoben; doch dann stürzt die vmware-konsole ab (vmware-hostd mit einem „Segemnation fault“), wenn der hack aktiv ist!

Um das Problem dann wieder zu lösen muss man lediglich in /usr/sbin/vmware-hostd die zweitletzte Zeile

export LD_LIBRARY_PATH=/usr/lib/vmware/lib/libc.so.6:$LD_LIBRARY_PATH

auskommentieren oder löschen.

Diese Beschreibung bleibt deshalb nur noch als Referenz hier und für solche welche den Hack früher schon mal gemacht hatten. – Falls der Hack noch nicht ausgeführt wurde, sollte man ab jetzt gleich auf CentOS 5.6 upgraden.

Nach dem upgrade von CentOS 5.3 auf 5.4 oder eine höhere Version stürzt die vmware web-konsole mit einem "HTTP error code" ab.

Grund ist ein bug in vmware, der mit der aktuellen glibc nicht zurecht kommt.

Glücklicherweise lässt sich dies aber sehr einfach lösen, indem man die alte glibc herunter lädt und diese mit vmware verlinkt.

Folgendes script löst das Problem automatisch:

#!/bin/bash
###########################################
# This may help using the vmware-server2  #
# on a CentOS 5.4 x86_64 Host.            #
# There is a problem with the the libc    #
# More informations:                      #
# <a href="http://bugs.centos.org/view.php?id=3884" target="blank">http://bugs.centos.org/view.php?id=3884</a> #
#-----------------------------------------#
# Version 0.1                             #
# This script will get the 'old' libc     #
# from the CentOS 5.3 repositories and    #
# configures vmware-server2 to use this   #
# The original libc (for the 5.4-system)  #
# will not be replaced or touched.        #
#-----------------------------------------#
# License: Do with the code whatever you  #
# want. This came without any warrenty.   #
###########################################
 
LIBC_DIR="/usr/lib/vmware/lib/libc.so.6"
TEMP_DIR="/tmp/vmw_glibc"
VMWARE_CONFIGFILE="/usr/sbin/vmware-hostd"
VMWARE_CONFIGFILE_BAK=$VMWARE_CONFIGFILE.bak
 
# Checking for root
if <span class="keys"> $EUID -ne 0 </span>; then
    echo "This script must be run as root"
    exit 1
fi
 
# We test for the commands  we need:
echo "Looking for some commands I need..."
which wget
if [ $? != 0 ]; then
    echo "I can't find wget but need it to download the files. Please install."
fi
which rpm2cpio
if [ $? != 0 ]; then
    echo "I can't find rpm2cpio but need it to extract Files from a .rpm-file. Please install."
fi
 
# Creating a directory for the 'old' glibc
mkdir -p $LIBC_DIR
if [ $? != 0 ]; then
    echo "Can't create directory $LIBC_DIR"
    exit 2
fi
 
# Removing and creating a temporary directory for the rpm,
# downloading it, extracting the old glibc and copy
# the them to our new directory
rm -rf $TEMP_DIR
mkdir -p $TEMP_DIR
if [ $? != 0 ]; then
    echo "Can't create directory $TEMP_DIR"
    exit 2
fi
cd $TEMP_DIR
wget <a href="http://vault.centos.org/5.3/os/x86_64/CentOS/glibc-2.5-34.x86_64.rpm" target="blank">http://vault.centos.org/5.3/os/x86_64/CentOS/glibc-2.5-34.x86_64.rpm</a>
if [ $? != 0 ]; then
    echo "Something was wrong while downloading"
    exit 2
fi
rpm2cpio glibc-2.5-34.x86_64.rpm | cpio -ivd
mv lib64/libc-2.5.so $LIBC_DIR/libc.so.6
if [ $? != 0 ]; then
    echo "Can't move the libc into directory $LIBC_DIR"
    echo "Removing temporary files..."
    echo -rf $TEMP_DIR
    exit 2
fi
echo "The file libc-2.5.so from the centOS 5.3 rep. was saved in: $LIBC_DIR as libc.so.6"
 
echo "Removing temporary files..."
rm -rf $TEMP_DIR
 
# Now we editing the start-config of the vmware-server
echo "I must change $VMWARE_CONFIGFILE now, you will find a backup in $VMWARE_CONFIGFILE_BAK"
mv $VMWARE_CONFIGFILE $VMWARE_CONFIGFILE_BAK
cat $VMWARE_CONFIGFILE_BAK | grep -v 'eval exec "$DEBUG_CMD" "$binary" "$@"' > $VMWARE_CONFIGFILE
echo export LD_LIBRARY_PATH=$LIBC_DIR/libc.so.6:'$LD_LIBRARY_PATH' >> $VMWARE_CONFIGFILE
echo '' >> $VMWARE_CONFIGFILE
echo 'eval exec "$DEBUG_CMD" "$binary" "$@"' >> $VMWARE_CONFIGFILE
 
# Ensuring the script is executable
chmod 555 $VMWARE_CONFIGFILE
 
echo "Everything is done, please restart your vmware-server2"

Troubleshooting

Nach dem ausführen des scriptes sollte überprüft werden ob das file: /usr/sbin/vmware-hostd ausführbar ist.

Weiter öffnet man am besten mal: /usr/sbin/vmware-hostd und prüft die unterste export Zeile; dabei muss man darauf achten, dass LD_LIBRARY_PATH auf das Verzeichnis zeigt wo die "libc.so.6" liegt und nicht das File selbst!

So ist es falsch:

export LD_LIBRARY_PATH=/usr/lib/vmware/lib/libc.so.6/libc.so.6:$LD_LIBRARY_PATH

So sieht die korrekte export-Zeile aus:

export LD_LIBRARY_PATH=/usr/lib/vmware/lib/libc.so.6:$LD_LIBRARY_PATH

(Dies wird manchmal vom script durcheinander gebracht)

Nach einem vmware-neustart sollte sich dann die Konsole wieder öffnen lassen.

Hinweis
Seit der Firefox-Version 3.6 lässt sich die vmware Web-Konsole nicht mehr korrekt öffnen; dies ist jedoch nicht mit diesem bug relevant, sondern ein Bug im Firefox-Plugin.

Related Links