Archiv pro štítek: ssh

Linux mini-howto: Postfix MTU lost connection

Linux mini-howto?
Krátce o nástrojích ze života sysadmina.

Postfix MTU a lost connection after …

Podivné chování poštovního serveru Postfix nemusí být nutně způsobené chybnou konfigurací služby samotné, problémy s velikostí MTU jsou o to zákeřnější díky své relativně skryté povaze a “chaotickému” chování, na problém s doručování pošty ve vztahu k MTU jsme nedávno narazili u zákazníka a proto tento mikro-post, ať to neztratíme a třeba to i pomůže někomu dalšímu. Pokračování textu Linux mini-howto: Postfix MTU lost connection

Linux mini-howto: SSH login notifikace emailem

Linux mini-howto?
Krátce o nástrojích ze života sysadmina.

SSH login notifikace emailem

Krátké a jednoduché, chcete info(oznámení) do emailu po přihlášení uživatele na SSH server? Jednoduchý script ukazuje jak na to, nejde o náhradu za komplexní systémy s logování na centrání vzdálený server, ale pro malé použití a případně další čarování s sshrc se může hodit.

Kde spouštět SSHrc script?

  • ~./ssh/rc – lokální konkrétní uživatel
  • /etc/ssh/sshrc – globálně pro všechny uživatele

SSHrc script

Napsán pro Vás jednoduchý ukázkový script v bashi, použijte ho, upravujte dle potřeby.

mail=alertemail@mojeservery.cz
user=/usr/bin/whoami
ip=/usr/bin/last | head -1 | awk '{print $3}'
#read -d " " ip <<< $SSH_CONNECTION
date=$(date "+%d.%m.%Y %Hh%M")
reverseIP=$(dig -x $ip +short)
hostname=$(hostname)

mail -s "SSH Login: $USER@$hostname" $mail <<EOF
From: root@$hostname
User: $USER
Host: $hostname
From IP: $ip
Reverse: $reverseIP
Date: $date
EOF

A to je vše! (! script opravdu není uvozen #!/bin/bash )

Na serveru musí být v provozu mail subsystém, alespoň jako stmp relay, tak aby email mohl odejít, navíc může být zpracování sshrc potlačeno konfigurací (ForceCommand, ssh -N apod.).

Užívejte moudře, mějte přehled o přístupech na Váš SSH server.

Díky za pozornost. František Havel, MOJEservery.cz

Linux: Automatický restart kernel panic a notifikace

Linux jako každý komplexní operační systém se může dostat do stavu kdy přestane dělat co je po něm požadováno, v lepším připadě zhavaruje (kernel panic) v horším se dostane do nepredikovaného stavu, kdy něco dělá nevím bohužel co nebo to není možné zjistit, např. vysoký load (zátěž) systému znemožňuje navázení ssh, systém laguje apod.

Vetšina moderních serverů je dnes vybavena systémem KVM(klavesnice-video-myš) pro přístup přes IP síť (bez ohledu na stav operačního systému, umožňuje to tak řešit havarijní stavy), v případě virtualizace je naopak často možné připojit se ke konsoli systému bez ohledu na jeho stav či poslat povel reboot přímo z hypervisoru.

Co dělat v případě, že Váš fyzický server má problém a k dispozici nemáte žadné uvedené možnosti?

Lenivý admin nechodí do serverovny :-).

Pokud máte štěstí a funguje SSH lze leco řešit, může se ovšem stát, že SSH poslouchá, ale už není schoné vytvořit celý proces shellu (např. proto, že jiný proces sežral celou pamět a server divoce swapuje), mužete zkusit tento trik a poslat příkazy k rebootu stroje přímo, pokud to klapne máte stěstí a po rebootu budete zkoumat co se dělo.

ssh root@mojeservery.cz \
'echo 1 > /proc/sys/kernel/sysrq; echo b > /proc/sysrq-trigger'

V druhém terminálu si nejlépe spusťte ping na problémový server, v případě rebootu dojte k výpadku ICMP echo reply odpovědí, počkejte, je možné, že se bude např. provádět kontrola filesystému (fsck), buďte trpělivý.

Druhá variace je odpovědí na havarijní stav, jádro systému zastavilo svůj běh po neopravitelné chybě a skončilo pádem v unix světe pojmenovaném příznačně “kernel panic”, takže server prostě stojí, nic nedělá a čeká, až ho někdo (admin) rebootuje, z tohoto stavu lze ovšem také “vybruslit” a vynutit automatický reboot po kernel panic.

# echo 30 >/proc/sys/kernel/panic

Toto nastavení na běžícím systému způsobí reboot po 30 vteřinách pokud nastane kernel panic (hodnota 0 je vypnutí rebootu, výchozí), nastavení je vhodné uložit do systému pokud je chcete mít implicitně zapnuté.

Vložte řádek kernel.panic = 30 do souboru /etc/sysctl.conf a zavolejte příkaz pro aktualizaci parametrů běžícího jádra.

# sysctl -p

Patrametry ze sysctl.conf budou načteny, i po rebootu bude vše dle nastavení.

Notifikace po rebootu? Byla by více než vhodná, malá třešnička na dortu, démon cron na to má speciální flag @reboot, přidejte do svého crontabu tento řádek (upravte dle svého SMTP serveru a emailu).

@reboot date | mailx -S smtp=smtp://smtp.mojeservery.cz -s "hostname Rebootovan server!" -r server@mojeservery.cz admin@mojeservery.cz

Přejeme hodně vysoký uptime a co nejméně podobných problémů.

František Havel, MOJEservery.cz