Archiv der Kategorie: Debian 8/9

Linux als Router

Bezugnehmend auf meine Anleitung zur Installation eines Samba4 AD Servers soll dieser neben seiner Aufgabe als AD-Domain Controller, DHCP und DNS Server noch zusätzlich als Gateway für die Clients dienen. Hierzu benötigt dieser zwei Netzwerkkarten. Bei mir ist die erste Karte (eth0) für das interne, private Netzwerk gedacht. Die zweite (eth1) hat die gewünschte Verbindung zum Internet.

Somit sieht die interfaces Datei bei mir wie folgt aus:

$ nano /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# Die Karte für das interne Netzwerk
allow-hotplug eth0
iface eth0 inet static
  address 10.101.42.1
  netmask 255.255.255.0
  broadcast 10.101.42.255
  network 10.101.42.0
  gateway 10.101.42.1
dns-nameservers 10.101.42.1

# Netzwerkschnittstelle zum Internet 
# in diesem Fall per DHCP konfiguriert
allow-hotplug eth1
iface eth1 inet dhcp
iface eth1 inet6 auto

Falls ihr auf eurem Server bislang weder DHCP noch DNS betreibt, muss als erstes DNSmasq installiert werden. Falls ihr vom vorherigen Tutorial zur Installation eines Samba4 Servers kommt, ist dies bereits erledigt und könnt euch Schritt 1. sparen. Der Vollständigkeit halber aber hier in kompakter Form:

  1. DNSmasq installieren:
    apt-get install dnsmasq

    Konfigurations Datei öffnen:

    $ nano -w /etc/dnsmasq.conf
    interface=eth0
    listen-address=127.0.0.1
    domain=my.own.dom
    dhcp-range=10.101.42.100,10.101.42.200,12h
  2. Ab hier gehts dann für alle weiter und das IP Forwarding im Linux Kernel muss zunächst aktiviert werden:
    $ nano /etc/sysctl.conf

    Dort die folgende Zeile auskommentieren:

    net.ipv4.ip_forward = 1

    Damit die Änderungen sofort greifen folgenden Befehl ausführen (oder rebooten):

    $ sysctl -p /etc/sysctl.conf
  3. Zuletzt IPTables installieren und eine Minimalkonfiguration eingeben:
    IPTables installieren

    $ apt-get install iptables-persistent

    Konfigurationsdatei öffnen und folgenden Inhalt einfügen:

    $ nano /etc/iptables/rules.v4
    *nat
    -A POSTROUTING -o eth1 -j MASQUERADE
    COMMIT
    
    *filter
    -A INPUT -i lo -j ACCEPT
    # ssh erlauben, damit wir uns nicht selbst aussperren
    -A INPUT -i eth1 -p tcp -m tcp --dport 22 -j ACCEPT
    # eingehende Pakete erlauben die zu den ausgehenden Verbindungen gehören
    # u.a. für Rechner aus dem Private-Netzwerk (eth0)
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    # alles andere eingehend verbieten
    -A INPUT -i eth1 -j DROP
    COMMIT

    Zuletzt die neue Konfiguration aktivieren:

    iptables-restore < /etc/iptables/rules.v4

Ab nun sollten alle Clients, die nur im internen Netzwerk hängen ins Internet geroutet werden.

SEH myUTN-50a USB Device Server auf Debian 9 installieren

Zur Installation des oben angegeben USB Device Servers auf einem Debian 9 sind folgende Schritte notwendig.

Aktuelle Software bei SEH herunterladen:

$ wget https://www.seh-technology.com/fileadmin/user/downloads/deviceserver/tools/sehutnmanager-ubuntu_linux_64bit-3.0.31.zip

Da die Software leider nur mit einer veralteten SSL Version klarkommt, muss diese bei Debian zunächst nachinstalliert werden, also auch erstmal herunterladen:

$ wget http://ftp.de.debian.org/debian/pool/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u6_amd64.deb

Nun die Version von libSSL installieren:

$ dpkg -i libssl1.0.0_1.0.1t-1+deb8u6_amd64.deb

Die von SEH heruntergeladene Software entpacken:

$ unzip sehutnmanager-ubuntu_linux_64bit-3.0.31.zip

Dann den Treiber, den Daemon und das Kommandozeilentool installieren:

$ cd sehutnmanager-ubuntu_linux_64bit-3.0.31/
$ dpkg -i seh-utn-driver_3.0.31-1dkms_all.deb
$ apt-get -f install
$ dpkg -i seh-utn-driver_3.0.31-1dkms_all.deb
$ dpkg -i seh-utn-service_3.0.31-1_amd64.deb
$ dpkg -i seh-utn-clitool_3.0.31-1_amd64.deb

Abschließend den Daemon starten:

$ /etc/init.d/seh-utn-srv start

Bei mir hat der USB Server vom DHCP-Server die IP 10.101.42.213 bekommen, daher verwende ich für die ersten einfachen Tests diese IP. Am USB-Server selbst ist ein USB Modem angeschlossen, welches nun für den Linux-Server aktiviert werden kann:

$ utnm -c "getlist 10.101.42.213"
Port VID    PID    Manufacturer                  Product
---- ------ ------ ----------------------------- -----------------------------
2    0x0baf 0x0303 U.S.Robotics                  USB Modem

Port State           Owner                     Class Port name
---- --------------- ------------------------- ----- -------------------------
2    Not activated                             0x02

Das Modem ist also am zweiten USB Port angeschlossen. Dann kann es auch lokal an die Linux Maschine „gestöpselt“ werden:

$  utnm -c "plugin 10.101.42.213 2"
Port VID    PID    Manufacturer                  Product
---- ------ ------ ----------------------------- -----------------------------
2    0x0baf 0x0303 U.S.Robotics                  USB Modem

Port State           Owner                     Class Port name
---- --------------- ------------------------- ----- -------------------------
2    Activated       root                      0x02

Das USB Modem kann nun so verwendet werden, als wäre es direkt mit dem Linux Server verbunden. Sehr praktisch zum Beispiel, wenn der Linux Server virtuell betrieben wird.

PHP7 auf Debian 8 (Jessie) installieren

PHP 7 bringt im Vergleich zu seinen Vorgängern viele Verbesserungen. Insbesondere signifikante Performance Verbesserungen, was für mich alleine schon Grund genug ist, um es zu nutzen, wo es technisch machbar ist. Leider ist php7 in den Repositorys des noch aktuellen Debian Releases 8 nicht enthalten, wohl aber Version 9 (Stretch)

Möchte man php7 aber auf dem noch aktuellen Release Debian8 einsetzen, so muss dies über einen kleinen Umweg installiert werden. Außerdem ist zuletzt noch die MySQLi Erweiterung in der php.ini zu aktivieren.

Zunächst also php 7 mit folgenden Befehlen installieren:

$ sudo apt-get install curl
$ curl https://www.dotdeb.org/dotdeb.gpg | sudo apt-key add -
$ echo 'deb http://packages.dotdeb.org jessie all' >> etc/apt/sources.list
$ echo 'deb-src http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list
$ sudo apt-get update
$ sudo apt-get install php7.0

In der Datei /etc/php/7.0/apache2/php.ini muss nun noch die Zeile extension=php_mysqli.dll auskommentiert werden.

Abschließend den Webserver neustarten:

$ sudo systemctl restart apache2.service

Viel Spaß mit php7!

 

root Zugriff per SSH aktivieren

Der root Zugriff per SSH ist seit Debian 8 standardmäßig nicht mehr erlaubt. Für meine Testumgebungen ist dies äußerst lästig. Aktivieren kann man den root Zugang wieder, indem man folgende Datei zB mit Nano öffnet:

$ nano /etc/ssh/sshd_config

Dort die folgende Zeile von

PermitRootLogin without-password

nach

PermitRootLogin yes

ändern.

Nun noch den SSH Server neustarten und dem root Login steht nichts mehr im Wege:

$ systemctl restart ssh