Donnerstag, der 21. November 2024 - 09:01 Uhr

Linux

Linux

07.08.2017

Linux: VM klonen – eth0 kann nicht initialisiert werden

Nach verschieben einer Linux VM unter Hyper-V ändert sich die MAC Adresse der Schnittstelle.

Zuerst unter

vi /etc/udev/rules.d/70-persistent-net.rules

die ersten Zeilen löschen und eth1 auf eth0 ändern. Die MAC Adresse kopieren oder merken.

Danach in

vi /etc/sysconfig/network-scripts/ifcfg-eth0

die neue MAC Adresse unter HWADDR=00:00:00:00:00:00 eintragen

Den Netzwerkdienst neu zu starten, bringt meistens nichts. Die VM muss einmal komplett neu gestartet werden.

Quelle:
http://blog.edenhauser.com/virtuelle-centos-6-klonen-eth0-nicht-mehr-verfugbar/


Kommentar schreiben
Linux

12.07.2017

Linux: SSH Host Key verification failed

Situtation:

Jeder der zu dem Punkt kommt weiß, dass diese Probleme nur auftauchen wenn es mehr als einen Benutzer auf dem entsprechendem System gibt. Im folgendem Fall sieht es so aus:

Wir haben ein lokales System mit einem root user und einem Benutzer, nennen wir ihn "user".
Wir haben ein externes System, das nur über das Internet zu erreichen ist. Dort haben wir nur einen sudo Benutzer namens "admin".

Entsprechend könnte man nun meinen, dass eigentlich egal mit welchem User ich die Keys erstelle, es funktioniert. FALSCH!

Die Authentifizierung mit Schlüsselpaar funktioniert nur mit dem aktuell eingeloggten Benutzer. Darum funktioniert es lokal auch bei jedem Server, schließlich ist man faul und Sicherheit wird durch die Firewall geregelt und für diesen einen Zweck (zb lokaler Webserver mit nginx), wer braucht da schon andere Benutzer?

Genau da ist das Problem schließlich funktioniert es mit root ja immer.

Also nochmal von vorne: Wir möchten uns jetzt von unserem lokalen System mit dem Benutzer "user" auf dem externen System einloggen per Key Authentifizierung.
Vielleicht fragen sich einige, ja aber wofür dann die Erwähnung des Benutzers auf der anderen Seite? Haha ja natürlich geht es hier wieder in erster Linie um das Monitoring.

Am besten sollte ich wohl den Titel ändern. Das kopfzerbrechende Plugin für Noobs (wie mich) nennt sich nämlich check_by_ssh.
Dieser verlangt einen Benutzer mit der entsprechende Befehl auf dem externen System ausgeführt werden soll.
Aber das ist nur ein Grund und nicht Hauptbestandteil dieses Artikels.

Also gehen wir die einzelnen Schritte durch:

Voraussetzungen:
Any Linux-Based OS, OpenSSL

wir loggen uns am lokalen System als "user" ein.
Wir führen den folgenden Befehl aus und folgen den Anweisungen:

ssh-keygen -b 4096 -t rsa

Wenn der Schlüssel erstellt wurde wird nachfolgender Befehl ausgeführt:

ssh-copy-id -i $HOME/.ssh/id_rsa.pub admin@255.255.255.255

Wenn das dann erfolgreich ist versuchen wir uns folgendermaßen einzuloggen:

ssh admin@255.255.255.255

Hilfe es tut immer noch nicht?!?!?! Natürlich gibt es eine jede Menge Ursachen warum es denn nicht tun könnte. Ich verweiße einfach mal auf die folgenden Links:

https://www.cyberciti.biz/faq/how-to-set-up-ssh-keys-on-linux-unix/
https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a-linux-server

Die zeigen da ziemlich gut wie man die Keys auch manuell kopieren kann etc. Kommt aber bloß nicht auf die dumme Idee, die Passwortauthentifikation zu deaktivieren! Es werden auch eigentlich keine Agents oder Deamons benötigt, das wäre alles viel zu überdimensioniert für so ein einfaches unterfangen.

Alle Versuche manuell ein Verzeichnis zu erstellen und mit chmod und chown zu versehen haben bei uns nichts gebracht, am Ende war es ein kleiner Fehler in der Serverkonfiguration, der zum Erfolg führte:

Prüft nach ob in /etc/passwd/ der "admin" auch ein entsprechendes Homeverzeichnis hat zB: "/home/admin"

Ansonsten wüsste ich ums verrecken nicht, warum der Schlüsselaustausch nicht funktionieren sollte. Wurde auf mehreren Systemen erfolgreich getestet.

Der User root hat keine SSH Authentifizierung auf dem externen System, diese muss für jeden Benutzer separat eingerichtet werden.


Kommentar schreiben
Linux

05.04.2017

CentOS 6/7 Webserver mit nginx, php71 und vsftpd

Vorraussetzung: frisch aufgesetztes Basic Server CentOS 6.8 (el6) oder CentOS 7 (el7)

Zuerst simpel updates und upgrade durchführen. Dabei kommt es bei el6 erst mal zu problemen mit der Java SDK. Diese separat herunterladen bevor alles beginnt:

el6:

vi /etc/sysconfig/network-scripts/ifcfg-eth0 => ONBOOT=yes
ifconfig eth0 up
service network restart
wget ftp://195.220.108.108/linux/centos/6.8/updates/x86_64/Packages/java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64.rpm
yum install java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64.rpm
yum update -y

el7:

yum install net-tools -y
vi /etc/sysconfig/network-scripts/ifcfg-eth0 => ONBOOT=yes
ifconfig eth0 up
systemctl restart network

Weiterlesen


Kommentar schreiben
Linux

17.01.2017

Windows Netzwerktraffic mit Icinga überwachen

So nachdem wir nun unsere Windows Hosts ordentlich hinzugefügt haben, wird es nun Zeit einen Schritt weiter zu gehen. Dieses Mal befasse ich mich mit dem Thema, wie man den Netzwerktraffic der Windows Clients überwacht.

Bei meiner suche bin ich auf das Plugin von Claudio Künzler gestoßen: check windows network traffic

Da man hier leider keine warning und critical thresholds hat und auch keine entsprechenden exit codes vorhanden waren, habe ich das ein wenig modifiziert. Das modifizierte Script und wie man es am Ende nutzen kann erläutere ich nun hier:

Weiterlesen

Kommentar schreiben
Linux

07.12.2016

Icinga2 if/else und Custom Variablen

Nehmen wir mal an, wir haben ein Gerät, das hat besondere Eigenschaften.
Zum Beispiel der SQL Server der IMMER alles an RAM saugt oder der ping check auf den Google DNS, der über eine ausgelastete Leitung führt.

Ich nenne hier mal zwei Möglichkeiten, die das vereinfachen. Zum einen eine If/Else Frage (die auch ohne Else funktioniert) und einmal direkt in der Host definition.

Custom Variablen für Ping checks definiert unter /usr/share/icinga2/include/command-plugins.conf

# Custom Variablen direkt in der Hostkonfiguration

object Host "internet" {
		
	display_name = "Internet"
	import "generic-host"
		
	address = "8.8.8.8"
	vars.os = ""
		
	check_command = "ping"

	vars.ping_wrta = 150
	vars.ping_wpl = 5
	vars.ping_crta = 200
	vars.ping_cpl = 15

	vars.sla = "24x7"
}
# If/Else Anweisung in der Servicedefinition

apply Service "RAM-Auslastung" {
	import "wmi-service"

	vars.check_mode = "checkmem"
	
	if (host.name == "sqlserver") {
    
	vars.wmi_warn = "95"
	vars.wmi_crit = "98"
	}else {
  
        vars.wmi_warn = "90"
	vars.wmi_crit = "95"
	}

	assign where host.vars.os == "Windows"
	ignore where host.vars.disable_wmi
}

Wenn die Thresholds schon fest definiert im command sind, dann genügt die If-Anweisung im Service

apply Service "ping4" {
	import "generic-service"
	check_command = "ping4"

	assign where host.address

	if (host.name == "internet") {
	vars.ping_wrta = 150
	vars.ping_wpl = 5
	vars.ping_crta = 200
	vars.ping_cpl = 15
	}
}

Nehmen wir jetzt mal an wir haben nicht nur ne hohe last fürs internet, sondern auch zB. für ein bestimmtes Gerät dann am besten folgendermaßen lösen:

if (host.name == "internet" || host.name == "old_switch") {
	vars.ping_wrta = 150
	vars.ping_wpl = 5
	vars.ping_crta = 200
	vars.ping_cpl = 15
	}

Lieber so lösen, da es mit einem elseif wohl nicht so klappen wird.


Kommentar schreiben
Linux

05.12.2016

Icinga2 / Nagios – Agentless Monitoring von Windows

Bei diesem Thema werde ich ein bisschen auf Windows Monitoring mit Icinga2/Nagios eingehen. Getestet wurde hier auf Basis von CentOS 7 mit Icinga2.
Ich werde hier keine Anleitung schreiben, wie Icinga oder CentOS installiert oder konfiguriert wird, dafür gibts tolle Dokumentationen der Hersteller.

Mich interessierte eher die Frage, was kann ich mit Icinga alles machen, ohne viel schnickschnack auf meinen Clients einzurichten. Die kurze Antwort: seeeehr seeehr viel.

Weiterlesen

Kommentar schreiben

Themen:

55 Artikel in 6 Kategorien:

  • Exchange Server (16)
  • Linux (6)
  • Microsoft Server (7)
  • Scripting (3)
  • Tutorials (10)
  • Windows (13)