In unserem Podcast diskutiert Thomas Bahn über Nutzen, Anwendungen und Erfahrungen aus den Bereichen Chatbots und Künstliche Intelligenz. Mehr erfahren

OpenVPN-Server in VM unter CentOS 6.2 (Minimal install)

von Thomas,
assono GmbH, Standort Kiel,

Wenn es dem Esel zu gut geht...

In einem Anfall von mittlerem Wahnsinn kam ich auf die Idee, einen neuen OpenVPN-Server zu installieren. Es sollte eine virtuelle Maschine werden - auf einem ESXi-Server (VMware Hypervisor) 5.0 - als Betriebssystem habe ich CentOS in der aktuellen Version 6.3 ausgewählt, weil wir in letzter Zeit sehr erfolgreich einige Domino-Server unter diesem Betriebssystem installiert haben (CentOS ist binärkompatibel zum offiziell unterstützen Red Hat Enterprise Linux (RHEL)-Server). Und als sicherheitskritischer Server sollte der Server möglichst schlank bleiben, also insbesondere ohne grafischen Desktop. Als Startpunkt sollte daher die Minimal-Installation dienen.

Was soll ich sagen? Ich habe viel gelernt... wink.gif

Herausforderung Nummer 1:
Das Netzwerk ist deaktiviert.
Ich persönlich komme eher aus der Ecke Debian und (K)Ubuntu, da kenne ich die entsprechenden Konfigurationsdateien. CentOS ist anders...

Hier findet man die wesentlichen Dateien etwas tiefer versteckt unter /etc/sysconfig/network-scripts/ifcfg-{ifn}, wobei ifn für das jeweilige Interface, wie z. B. eth0, steht.
Was hier auf alle Fälle fehlt, ist die Zeile:
ONBOOT=?YES?

Die Zeile
BOOTPROTO=DHCP
führt zu sinnvollen Einstellungen, aber beim Server möchte man da vielleicht doch etwas statischer bleiben:
BOOTPROTO=none
IPADDR=192.168.0.33
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.1
DNS2=192.168.0.2

So sind die wichtigsten Dinge schon mal gut konfiguriert.

Network Configuration in minimal Linux installs
http://diznix.com/2011/07/11/network-configuration-in-minimal-linux-installs/

Mehr Details zu diesen Konfigurationsdateien gibt es natürlich auch in der CentOS-Dokumentation:
https://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-networkscripts-interfaces.html


Jetzt kann man auch das System endlich aktualisieren (yum update).

Und anschließend installiere ich noch nano (yum install nano), einen kleinen Texteditor, den ich klar gegenüber vi favorisiere.


Und jetzt noch schnell das OpenVPN-Paket installieren:
yum install openvpn

Aber das Paket gibt es nicht?! Zumindest nicht in den Standard-Repositories.

Naja, es gibt ja die Quellen zum Herunterladen bei openvpn.net und diese Anleitung:

OpenVPN and CentOS 5 Installation and Configuration Guide
www.throx.net/2008/04/13/openvpn-and-centos-5-installation-and-configuration-guide/

Aber eine weitergehende Recherche ergibt: Es gibt ein (recht vertrauenserweckendes) Repository für weitere Pakete namens RPMForge, das auch OpenVPN-Binary-Installationspakete enthalten soll.

Gut, aber wie und wo installiere ich unter CentOS ohne den grafischen Desktop weitere YUM-Repositories. Hatte ich schon erwähnt, das ich eher von Debian und (K)Ubuntu komme? Beim APT wüsste ich schon, wo und wie.

Aber auch das ist ganz einfach - wenn man weiß wie (oder Google bedienen kann).

Installing RPMforge
http://wiki.centos.org/AdditionalResources/Repositories/RPMForge

richtiges RPM-Paket herunterladen
i686: http://packages.sw.be/rpmforge...
x86_64: http://packages.sw.be/rpmforge...

Signatur-Schlüssel importieren
rpm --import http://apt.sw.be/RPM-GPG-KEY.d...

RPM testen
rpm -K rpmforge-release-0.5.2-2.el6.rf.*.rpm

RPM installieren
rpm -i rpmforge-release-0.5.2-2.el6.rf.*.rpm

Und jetzt klappt es auch mit dem OpenVPN.

Die Konfiguration bietet kaum Besonderheiten, aber als ich aus Sicherheitsgründen ("Security by Obscurity") wink.gif den UDP-Port geändert habe (weg vom Standardport UDP 1194), lässt sich der OpenVPN-Server nicht mehr starten.

Anleitungen zur Konfiguration von OpenVPN gibt es u.a. hier:

OpenVPN Server On CentOS 5.2
http://www.howtoforge.com/openvpn-server-on-centos-5.2

Install OpenVPN on CentOS 5
http://wiki.centos.org/EdHeron/CentOS5OpenVPN?highlight=(openvpn)

Wiki des OpenVPN e.V.
http://wiki.openvpn.eu/index.php/Hauptseite

HOWTO-Bereich auf openvpn.net
http://openvpn.net/index.php/open-source/documentation/howto.html


Diesmal habe ich aber schon einen konkreten Verdacht: Standardmäßig ist bei CentOS das Security Enhanced Linux (SELinux) aktiviert.
Man könnte es jetzt einfach ausschalten, indem man in der Datei /etc/selinux/config die Einstellung von enforcing auf disabled stellt. Aber das wäre jetzt doch zu einfach. wink.gif

Außerdem möchte ich ja ein möglichst sicheres System. Aber wo kann man dann die SELinux-Regeln für Programme wie OpenVPN anpassen. Eine erste Suche im /etc/-Verzeichnis liefert keine heißen Kandidaten.

Suchmaschine, ... Suchmaschine ... auf dem Monitor...

Im CentOS-Wiki werde ich fündig zum Thema SELinux.
http://wiki.centos.org/HowTos/SELinux?highlight=(selinux)

Mit semanage port -l kann ich mir die für die einzelnen Programme freigeschalteten Ports ansehen und mit semanage port -a -t openvpn_port_t -p tcp 11194 auch ändern (hier: neuen TCP-Port 11194 hinzufügen).

Kann? Könnte, wenn das semanage-Paket installiert wäre. Wo bekommt man das schon wieder her?

Das Programm findet man natürlich im Paket policycoreutils-python, wo denn sonst? wink.gif

Also kurz das Paket installiert, der zusätzliche Port erlaubt, Neustart und glücklich sein.


Last but not least: Die installierten Pakete sollen automatisch aktualisiert werden.
Bei der Desktop-Installation sind das nur wenige Mausklicks, aber wo oder wie macht man das mit ohne Desktop?
Die Antwort ist das Paket yum-cron.

CentOS Yum Automatic Updates
http://scottlinux.com/2010/12/16/centos-yum-automatic-updates/

  1. yum install yum-cron
  2. chkconfig yum-cron on
  3. /etc/init.d/yum-cron start

Alternativ gibt es auch yum-updatesd,
mit dem es wohl aber öfter mal Probleme gibt.



Ein Thema, das ich noch nicht lösen
konnte, ist, dass ich den OpenVPN-Server eigentlich im Bridging-Modus konfigurieren
wollte (mit tap-Device). Ich hatte die Bridge aufgebaut, alles konfiguriert,
die Verbindung wurde problemlos aufgebaut, nur kam ich vom VPN-Client (OpenVPN
GUI 1.0.3 unter Windows 7 Professional x64, mit Admin-Rechten gestartet)
nirgendwo hin. Den letzten Hinweis, den ich dazu fand, war, dass man beim
ESXi-Server auf dem Netzwerk-Adapter den Promiscous-Modus erlauben müsse,
was ich auch getan habe. Aber falls noch jemand eine Idee hat...

Fachbeitrag Linux Administration

Sie haben Fragen zu diesem Artikel? Kontaktieren Sie uns gerne: blog@assono.de

Sie haben Interesse an diesem Thema?

Gerne bieten wir Ihnen eine individuelle Beratung oder einen Workshop an.

Kontaktieren Sie uns

Weitere interessante Artikel

Sie haben Fragen?

Wenn Sie mehr über unsere Angebote erfahren möchten, können Sie uns jederzeit kontaktieren. Gerne erstellen wir eine individuelle Demo für Sie.

assono GmbH

Standort Kiel (Zentrale)
assono GmbH
Lise-Meitner-Straße 1–7
24223 Schwentinental

Standort Hamburg
assono GmbH
Bornkampsweg 58
22761 Hamburg

Telefonnummern:
Zentrale: +49 4307 900 416
Vertrieb: +49 4307 900 402

E-Mail-Adressen:
kontakt@assono.de
bewerbung@assono.de