Linux Firewall (iptables) automatisch laden und speichern

Wer Linux mit der Firewall iptable verwendet, möchte die Regeln bei Systemstart automatisch geladen haben.

1. Firewall Regeln automatisch laden

sudo vim /etc/network/if-pre-up.d/iptablesload

#!/bin/sh
iptables-restore < /etc/iptables.rules
exit 0

sudo chmod +x /etc/network/if-pre-up.d/iptablesload

2. Firewall Regeln automatisch speichern

sudo vim /etc/network/if-post-down.d/iptablessave

#!/bin/sh
iptables-save > /etc/iptables.rules
if [ -f /etc/iptables.downrules ]; then
   iptables-restore < /etc/iptables.downrules
fi
exit 0

sudo chmod +x /etc/network/if-post-down.d/iptablessave

Jetzt werden alle Einstellungen vor dem Herrunterfahren gespeichert und nach einem Start automatisch geladen.

Die aktuellen Firewall Regeln kann man sich hiermit ansehen.

iptables -L -n -v

Ubuntu Paket mit fixer Version installieren

Manchmal ist es notwendig eine bestimmte Version von einem Programm zu verwenden und nicht automatisch auf die neuste Version zu wechseln.

1. Alte Version entfernen

sudo apt-get remove firefox

2. Versionen anzeigen lassen

sudo apt-cache madison firefox
apt-cache show firefox | grep Version

Version: 40.0+build1-0ubuntu0.14.04.1
Version: 38.0+build2-0ubuntu2

3. Version installieren

sudo apt-get install firefox=38.0\*
sudo apt-get install firefox=38.0+build2-0ubuntu2

4. Updates auf neue Version verhindern

sudo apt-mark hold firefox

Sollte man sich doch entscheiden auf die aktuelle Version zu wechseln, kann man den Vorgang auch rückgängig machen.

sudo apt-mark unhold firefox
sudo apt-get upgrade

Eigene Ubuntu / Debian – Pakete erstellen

1. Paketverzeichnis erstellen

mkdir -p /tmp/myproject/DEBIAN/

1.1. HTML (Test) Seite erstellen

cd /tmp/myproject/
mkdir -p ./var/www/
echo "Test" > ./var/www/test.html

2. Kontrolldatei erstellen

cd /tmp/myproject/
vim ./DEBIAN/control

Package: myserver
Version: 0.0.1
Section: server
Priority: optional
Architecture: all
Essential: no
Installed-Size: 1024
Maintainer: User [snap.in@gmail.com]
Description: Statische Seite für den Webserver

2.1. Post-Install und Pre-Uninstall

cd /tmp/myproject/
echo "service apache2 restart" > ./DEBIAN/postinst
chmod +x ./DEBIAN/postinst

3. DEB Packet erstellen

cd /tmp/
dpkg-deb --build myproject

3.1. Debian Packet ansehen

dpkg-deb --contents myproject.deb

3.2. Debian Packet installieren

sudo dpkg -i myproject.deb

3.3. Debian Packet Auflisten

sudo dpkg --list |grep myproject

3.4. Debian Packet de-installieren

sudo dpkg --remove myproject

Ubuntu Update Steuerung mit Alias

Debian und Ubuntu verwenden als Paketverwaltung das Tool „apt-get“. Um ein System auf den aktuellen Stand zu bringen sind immer folgende Schritte notwendig.

1.) Änderungen der Paketliste laden

sudo apt-get update

2.) Ubuntu Distribution updaten

sudo apt-get dist-upgrade

3.) Aufräumen

sudo apt-get --purge autoremove
sudo apt-get autoclean

Diese drei Schritte kann man in einem Kommando als Alias zusammen fassen.

vim ~/.bash_aliases

alias update="sudo apt-get update && sudo apt-get dist-upgrade -y && sudo apt-get --purge autoremove && sudo apt-get autoclean"

Nach einem Re-Login in die BASH kann man alle Schritte mit einem Befehl update starten.

Linux Schreibzugriffe reduzieren

Linux speichert bei jedem Aufruf eines Programm die Uhrzeit von Zeitpunkt. Wer diese Information nicht benötigt kann es beim Mounten ab schalten. Das Verlängert die Anzahl der Schreibzugriffe und wirkt sich positiv auf die Lebenszeit von Flash Speichern wie SSD (Solid State Drive) Laufwerken aus.

Hierfür ist eine kleine Änderung in einer Datei notwendig. Durch hinzufügen der Einträge noatime und nodiratime wird das Speichern von Zeitänderungen für Dateien und Verzeichnisse deaktiviert.

sudo vim /etc/fstab

/dev/mmcblk0p2  / ext4 defaults,noatime,nodiratime  0 1

SSH durch HTTP Proxy und Firewall

Wer nur durch einen HTTP Proxy Server in das Internet kommt, hat ein Problem mit SSH Verbindungen.

Durch einen kleinen Trick kann man sich trozdem verbinden. Man ändern der Port vom SSH Server von Port 22 auf 443. Der Port 443 ist für SSL Verbindungen reserviert und wird vom Proxy Server ohne Prüfung durchgelassen.

Den Port kann man am SSH-Server ändern oder am Router die NAT Einstellung.

Jetzt wird Port 22 und 443 für SSH verwendet.

sudo vim /etc/ssh/sshd_config

Port 22
Port 443

Einen Neustart von Dienst nicht vergessen.

sudo service ssh restart

Wenn man sich jetzt mit dem SSH Client verbindet, so gibt man den Proxy Server und den SSH Server an. Will man seinen Traffik über die SSH Verbindung tunnel, so kann man SOCKS5 (Port 1080) verwenden.

sudo vim ~/.ssh/config

Host *
  ProxyCommand corkscrew proxy.hostname.de 8080 %h %p ~/.ssh/proxyauth

Wenn der Proxy Server ein Login und Passwort benötigt, dann hinterlegen Sie es im Benutzerverzeichnis.

echo „login:password“ > ~/.ssh/proxyauth

Jetzt können Sie die Verbindung mit SSH von Client durch den Proxy zum SSH Server via Port 443 auf bauen.

$ ssh -D 1080 user@domain.de -p 443

Mit einem Browser (Firefox,Chrome,etc.) können Sie den Tunnel via SOCKS5 Port 1080 verwenden und kommen so in das Internet. Ein Test mit der Seite http://www.netip.de/ zeigt Ihnen die Remote Adresse an. Die IP Adresse sollte jetzt dem SSH Server entsprechen.

Das Betriebsystem Microsoft Windows enthält keinen SSH Client. Ein kostenloser SSH Client ist PuTTY. Die Einstellungen für PuTTY lauten.

    Session

  • Host Name: domain.de
  • Port: 443
    Connection / Proxy

  • Proxy hostname: proxy.hostname.de
  • Port: 8080
  • Username: login
  • Password: password
    Connection / SSH / Tunnels

  • Source por: 1080
  • Destination: Dynamic / Auto

Linux Swap Dynamische Auslagerungsdatei

Unter Linux ist es möglich nicht nur eine Statische Partition für die Auslagerung von RAM zu verwenden, sondern auch eine Datei im Dateisystem.

Für die Installation ist ein extra Dienst notwendig.

sudo apt-get install dphys-swapfile

Die Größe der Auslagerungsdatei können Sie anpassen über die Einstellungen.

sudo vim /etc/dphys-swapfile

Nach dem Start von dem Dienst wird die Datei /var/swap erstellt.

sudo service dphys-swapfile start

Aktiviert wird der zusätzliche Speicher mit diesem Befehl.

sudo swapon -a

Damit der Dienst auch nach einem Neustart automatisch geladen wird, müssen die Runlevel geändert werden.

sudo update-rc.d dphys-swapfile enable

Kommt SystemD zum Einsatz, verwenden Sie das SystemCtl Tool.

sudo systemctl enable dphys-swapfile

Für die Deinstallation gehen Sie in umgedrehter Reihenfolge vor. Auslagerung (Swap) „Deaktivieren“, Dienst „Stoppen“ und „Deinstallieren“.

Eine andere Alternative ist der Dienst „swapspace“. Die Größe der Auslagerungsdatei wird von Ihm dynamisch erstellt.

sudo apt-get install swapspace

Die Swap Datei werden in dem Verzeichnis /var/lib/swapspace/ abgelegt.

Prüfen kann man die Auslagerungsdatei mit dem Befehl.

sudo swapon --show

Firefox mit „Proxy“ Konfigurationsdatei

Die „Proxy“ Einstellung im Firefox Browser kann man über das Menü „Extras / Einstellungen / Erweitert / Netzwerk / Einstellungen“ vornehmen. Hier gibt es die Möglichkeit eine „Manuelle Proxy-Konfiguration“ oder eine „Automatische Proxy-Konfigurations-URL“ zu definieren.

Diese URL kann auch lokal auf der Festplatte im Laufwerk C:\Verzeichnis liegen.

Hier ein Beispiel für die URL: file:///C:/Verzeichnis/proxy.pac

Der Inhalt der Datei „proxy.pac“ sieht wie folgt aus.

function FindProxyForURL(url, host) {
 
	// NO-PROXY = localhost, 127.0.0.1, 10.0.0.0/8
	// isInNet: URLs innerhalb dieses Netzwerkes werden : (macht Nameserver Anfrage)
	// shExpMatch: Adressen, die auf intranet liegen, brauchen keinen Proxy
	if (isInNet(host, "127.0.0.1", "255.255.255.255") || shExpMatch(host,"localhost")
	|| isInNet(host, "10.0.0.0", "255.0.0.0")
	|| shExpMatch(host,"*.intranet")) {
		return "DIRECT";
	}
 
	// Adressen, die auf "domain.de" liegen, brauchen einen SOCKS5 Proxy Port 1080:
	if (shExpMatch(host,"*.domain.de") ) {
		return "SOCKS 127.0.0.1:1080; DIRECT";
	}
 
	// Alle anderen Anfragen gehen über Proxy proxy.domain.de mit Port 8080.
	// sollte das fehlschlagen, verbinde direkt ins Netz:
	return "PROXY proxy.domain.de:8080; DIRECT";
}

MySQL Kompression pro Tabelle aktivieren

Seit MySQL 5.5 besteht in der InnoDB Datenbank die Möglichkeit eine Tabelle zu komprimieren.

Zu erst müssen wir einige Einstellung ändern, damit wir die Komression nutzen können.

sudo vim /etc/mysql/conf.d/mm_mysql.cnf

[mysqld]
innodb_file_per_table = 1
innodb_file_format = Barracuda
open-files-limit = 2048
table_cache = 512

Nach einem Neustart von MySQL sind die Einstellungen aktiv.

sudo service mysql restart

Jetzt kann man pro Tabelle die Kompression einstellen. Das bringt bei Tabellen mit Blob Felder eine Ersparnis von 50% Speicherplatz.

ALTER TABLE 'tabellen_name' ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;

Mit dem Befehl kann man prüfen, welche Einstellung pro Tabelle vorgenommen wurde.

SELECT TABLE_NAME, ENGINE, VERSION, ROW_FORMAT, TABLE_ROWS, DATA_LENGTH, CREATE_OPTIONS
FROM information_schema.tables
WHERE TABLE_SCHEMA='schema_name';

Das Ergebnis der Dateiänderung kann man hiermit prüfen.

mysql> \! ls -l /var/lib/mysql/schema_name/*.ibd

Linux Swap – Auslagerungsspeicher

Um Linux mehr Speicher zur Verfügung zu stellen, kann man eine Auslagerungsdatei oder eine Partiotion erstellen.

Den aktuellen Zustang anzeigen.

sudo swapon -s

Auslagerungsdatei von 500 MByte im Filesystem erstellen.

sudo dd if=/dev/zero of=/var/cache/swapfile bs=100M count=5
sudo chmod 600 /var/cache/swapfile
sudo mkswap /var/cache/swapfile
sudo swapon /var/cache/swapfile

Nach einem Neustart, soll die Auslagerungsdatei automatisch eingebunden werden.

sudo vim /etc/fstab

/var/cache/swapfile   none    swap    sw    0   0

Weiterhin kann man noch Optimierungen am System durchführen.

Der Wert „swappiness“ zeigt uns in Prozenz (0-100) wie oft das System die Auslagerung durchführen soll. Null Prozent bedeutet, das System verwendet die Auslagerung nur wenn es wirklich notwendig ist. Ein Wert von 100 veranlasst das System so viel wie möglich in die Auslagerung zu verlagern.

Prüfen Sie den Wert mit cat /proc/sys/vm/swappiness.

Um den Wert zu Ändern verwenden Sie den Befehl sysctl.

sudo sysctl vm.swappiness=10

Wenn Sie sich für einen Wert entschieden haben, können Sie den Wert auch Fest eintragen.

sudo vim /etc/sysctl.conf

vm.swappiness=10

Weitere Informationen finden Sie hier: https://wiki.ubuntuusers.de/Swap/