====== Debian Server aufsetzen ====== In diesem Artikel geht es darum einen Debian Server (Jessie) aufzusetzen, der den typischen Anforderungen gerecht wird. Es gibt genug Anleitungen wie man die Grundinstallation macht, daher wird das hier nicht beschrieben. ===== Typische Pakete mit aptitude nachinstallieren ===== Folgende Pakete installieren wenn noch nicht vorhanden * openssh-server * sudo * screen * vim Mit ''su -'' zum root werden und dann ''aptitude'' aufrufen. In ''aptitude'' kann man mit ''/'' eine Suche starten und mit ''+'' das entsprechende Paket auswählen. Sollte die erste Suche noch nicht das richtige Paket aufrufen, kann man mit ''n'' zum nächsten Ergebnis springen und mit ''N'' rückwärts suchen, sollte man etwas übereifrig gewesen sein. Mit ''g'' (wie "go") und nach Prüfung der Pakete auf der folgenden Seite kann man mit erneutem ''g'' dann das Paket installieren. ==== sudo ==== Damit ein Benutzer ''sudo'' verwenden darf, muss er in der Gruppe ''sudo'' sein. Dies erledigt man als root mit ''adduser benny sudo'' (wobei "benny" natürlich mit dem entsprechenden Benutzer zu ersetzen ist). Diese Änderung ist erst ab dem nächsten Login des Benutzers gültig. ==== openssh-server ==== Eine kleine Nacharbeit beim openssh-server mit ''benny@debian-logstash:~$ sudo vi /etc/ssh/sshd_config'' Es geht darum die Zeilen für ''PermitRootLogin'' und ''AuthorizedKeysFile'' entsprechend anzupassen. PermitRootLogin no AuthorizedKeysFile %h/.ssh/authorized_keys Nach der Änderung ('':wq'' zum Speichern!) den openssh-server neu laden mit ''benny@debian-logstash:~$ sudo service ssh reload''. ===== Java (Oracle) installieren ===== Da wir für einige Programme Java brauchen, müssen wir es installieren. Debian hat [[https://wiki.debian.org/JavaPackage|hier]] Dokumentation dazu. ''sudo vi /etc/apt/sources.list'' und "contrib" hinzufügen. deb http://ftp.de.debian.org/debian/ jessie main contrib deb-src http://ftp.de.debian.org/debian/ jessie main contrib deb http://security.debian.org/ jessie/updates main contrib deb-src http://security.debian.org/ jessie/updates main contrib # jessie-updates, previously known as 'volatile' deb http://ftp.de.debian.org/debian/ jessie-updates main contrib deb-src http://ftp.de.debian.org/debian/ jessie-updates main contrib Danach mit '':wq'' abspeichern. Durch "contrib" stehen eine Reihe neuer Pakete zur Verfügung, wir suchen ''java-package'' und installieren es. (java-package hat eine Reihe von Abhängigkeiten.) Nun brauchen wir von Oracle als nächstes die aktuelle Java-Version, wir suchen [[http://www.oracle.com/technetwork/java/javase/downloads/index.html|hier]] nach dem aktuellen x64 .tar.gz (derzeit "jdk-8u77-linux-x64.tar.gz", **nicht** die RPM Versionen!). **Wichtig: Es wird das JDK benötigt, nicht das JRE!** Mit ''wget'' bekommt man die Datei leider nicht, da Oracle der Meinung ist dass man ihre Software besser nicht runterladen sollte. Ein Weg ist diese über einen Client mit grafischer Oberfläche herunterzuladen und dann per scp in die VM zu übertragen. (Oracle, setzen 6.) Bevor man nun ein DEB Paket bauen kann, müssen leider noch ein paar weitere Abhängikeiten erfüllt werden: benny@debian-logstash:~$ sudo apt-get install libgl1-mesa-glx libxslt1.1 libxtst6 libxxf86vm1 Nach der Installation dieser Pakete (und ihrer Abhängigkeiten) kann man nun das Java-DEB-Paket erstellen: benny@debian-logstash:~$ make-jpkg jdk-8u77-linux-x64.tar.gz Creating temporary directory: /tmp/make-jpkg.DSZ3zeak9i Loading plugins: /usr/share/java-package/common.sh /usr/share/java-package/javase.sh /usr/share/java-package/jdk-doc.sh /usr/share/java-package/jdk.sh /usr/share/java-package/jre.sh /usr/share/java-package/oracle-jdk-doc.sh /usr/share/java-package/oracle-jdk.sh /usr/share/java-package/oracle-jre.sh Detected Debian build architecture: amd64 Detected Debian GNU type: x86_64-linux-gnu Detected product: Java(TM) Development Kit (JDK) Standard Edition, Version 8 Update 77 Oracle(TM) Is this correct [Y/n]: Checking free diskspace: done. In the next step, the binary file will be extracted. Probably a license agreement will be displayed. Please read this agreement carefully. If you do not agree to the displayed license terms, the package will not be built. Press [Return] to continue: Testing extracted archive... okay. dpkg-deb: building package `oracle-java8-jdk' in `../oracle-java8-jdk_8u77_amd64.deb'. dpkg-genchanges -b >../oracle-java8-jdk_8u77_amd64.changes dpkg-genchanges: binary-only upload (no source code included) dpkg-source --after-build package dpkg-buildpackage: binary-only upload (no source included) copy oracle-java8-jdk_8u77_amd64.deb into directory /home/benny/ The Debian package has been created in the current directory. You can install the package as root with: dpkg -i oracle-java8-jdk_8u77_amd64.deb Removing temporary directory: done Der Aufforderung kommen wir natürlich gerne nach: benny@debian-logstash:~$ sudo dpkg -i oracle-java8-jdk_8u77_amd64.deb benny@debian-logstash:~$ java -version java version "1.8.0_77" Java(TM) SE Runtime Environment (build 1.8.0_77-b03) Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode) ===== VirtualBox Guest Additions (für Server mit GUI!) ===== Dies braucht man auf einem Server nicht, aber der Vollständigkeit halber möchte ich hier trotzdem kurz dokumentieren wie man die erfolgreich installiert. (Dies wird erst interessant wenn man eine grafische Oberfläche installiert!) Das Team von VirtualBox / Oracle beschreibt [[https://www.virtualbox.org/manual/ch04.html#idp46457703730512|hier]] unter Punkt 4.2.2.1.7 wie die Installation für Debian zu erfolgen hat. * sudo apt-get update * sudo apt-get upgrade * sudo apt-get install make gcc * Der vorherige Befehl installiert noch eine ganze Menge zusätzliches Zeug mit Mit ''uname -a'' kann man nun überprüfen welche Linux-Kernel-Sources man sich noch installieren muss. benny@debian-logstash:~$ uname -a Linux debian-logstash 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-1 (2016-03-06) x86_64 GNU/Linux * sudo apt-get install linux-headers-3.16.0.4-amd64 * Der vorherige Befehl installiert noch einige weitere Pakete mit Im nächsten Schritt wird nun die "Guest Additions"-ISO eingelegt (das geht über VirtualBox: Devices -> Insert Guest Additions CD Image) Da wir kein grafisches System benutzen das mit automount-Fähigkeiten daher kommt, müssen wir die CD noch manuell mounten: sudo mount /dev/sr0 /media/cdrom Im folgenden Schritt wechselt man in das Verzeichnis und installiert die Guest Additions: benny@debian-logstash:/media/cdrom$ sudo sh ./VBoxLinuxAdditions.run Verifying archive integrity... All good. Uncompressing VirtualBox 5.0.16 Guest Additions for Linux............ VirtualBox Guest Additions installer Copying additional installer modules ... Installing additional modules ... Removing existing VirtualBox non-DKMS kernel modules ...done. Building the VirtualBox Guest Additions kernel modules The headers for the current running kernel were not found. If the following module compilation fails then this could be the reason. Building the main Guest Additions module ...done. Building the shared folder support module ...done. Building the OpenGL support module ...done. Doing non-kernel setup of the Guest Additions ...done. Starting the VirtualBox Guest Additions ...done. Installing the Window System drivers Could not find the X.Org or XFree86 Window System, skipping. Sollte man später einen WindowManager / grafisches System nachinstallieren, **müssen die Guest Addtions neu gebaut werden!** ===== Logstash installieren ===== In diesem Schritt installieren wir Logstash. benny@debian-logstash:~$ java -version java version "1.8.0_77" Java(TM) SE Runtime Environment (build 1.8.0_77-b03) Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode) benny@debian-logstash:~$ wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - [sudo] password for benny: OK benny@debian-logstash:~$ echo "deb http://packages.elastic.co/logstash/2.3/debian stable main" | sudo tee -a /etc/apt/sources.list deb http://packages.elastic.co/logstash/2.3/debian stable main benny@debian-logstash:~$ sudo apt-get update ... benny@debian-logstash:~$ sudo apt-get install logstash Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: logstash 0 upgraded, 1 newly installed, 0 to remove and 6 not upgraded. Need to get 75.8 MB of archives. After this operation, 133 MB of additional disk space will be used. Get:1 http://packages.elastic.co/logstash/2.3/debian/ stable/main logstash all 1:2.3.2-1 [75.8 MB] Fetched 75.8 MB in 15s (4,841 kB/s) Selecting previously unselected package logstash. (Reading database ... 50870 files and directories currently installed.) Preparing to unpack .../logstash_1%3a2.3.2-1_all.deb ... Unpacking logstash (1:2.3.2-1) ... Processing triggers for systemd (215-17+deb8u4) ... Setting up logstash (1:2.3.2-1) ... Processing triggers for systemd (215-17+deb8u4) ... benny@debian-logstash:~$ WIP