it:jednodeskove-pocitace:bananapi

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
it:jednodeskove-pocitace:bananapi [2024/01/30 22:09] Petr Nosekit:jednodeskove-pocitace:bananapi [2025/02/11 17:44] (aktuální) – [Konfigurace /etc/network/interfaces] Petr Nosek
Řádek 510: Řádek 510:
  
 Pokud se rozhodnu, že změním IP adresu zařízení, které už je zapsané v tomto souboru, často se děje, že se ještě nějakou dobu přiděluje stará IP adresa. Je proto potřeba vymazat starý záznam v tomto souboru.  Pokud se rozhodnu, že změním IP adresu zařízení, které už je zapsané v tomto souboru, často se děje, že se ještě nějakou dobu přiděluje stará IP adresa. Je proto potřeba vymazat starý záznam v tomto souboru. 
 +
 +Ještě mi pomohlo vypnout systemd-resolvd:
 +
 +<code bash>
 +systemctl stop systemd-resolvd
 +systemctl disable systemd-resolvd
 +systemctl daemon-reload
 +</code>
 +
 +Ukázalo se, že tento způsob není trvalý. Po aktualizaci systemd došlo k přepsání soubor **/lib/systemd/system/dnsmasq.service** a problém se opakoval. 
 +
 +=== Trvalá změna v dnsmasq.service ===
 +
 +Aby se změny v `dnsmasq.service` nepřepisovaly po aktualizacích systému, je potřeba vytvořit přepsání systemd jednotky namísto úpravy souboru v `/lib/systemd/system/`.
 +
 +Prvním krokem je vytvoření přepisovacího souboru pro systemd. Spusť:
 +
 +<code bash>
 +sudo systemctl edit dnsmasq
 +</code>
 +
 +Tento příkaz otevře editor pro přepsání konfigurace služby, aniž by byl upraven původní soubor.
 +
 +Do editoru vlož tento obsah:
 +
 +<code ini>
 +[Unit]
 +After=
 +After=network-online.target
 +</code>
 +
 +Tímto způsobem se přepíše původní hodnota `After=network.target` na `After=network-online.target`, ale hlavní jednotkový soubor v `/lib/systemd/system/` zůstane beze změny. Po vložení konfigurace ulož soubor a ukonči editor.
 +
 +Aby se změny projevily, je nutné načíst novou konfiguraci:
 +
 +<code bash>
 +sudo systemctl daemon-reexec
 +sudo systemctl daemon-reload
 +sudo systemctl restart dnsmasq
 +</code>
 +
 +Od této chvíle už žádná aktualizace nepřepíše tuto změnu.
 +
 +Ověření, zda se změna skutečně uplatnila, provedeme příkazem:
 +
 +<code bash>
 +systemctl cat dnsmasq
 +</code>
 +
 +Pokud je změna správně aplikována, měl by výstup obsahovat:
 +
 +<code ini>
 +# /etc/systemd/system/dnsmasq.service.d/override.conf
 +[Unit]
 +After=
 +After=network-online.target
 +</code>
 +
 +📌 **Prázdný řádek `After=` je důležitý!**  
 +Systemd tímto způsobem nejprve odstraní všechny existující `After=` direktivy a poté nastaví pouze `After=network-online.target`.
 +
 +Nyní se `dnsmasq.service` už nebude přepisovat při aktualizacích, protože úprava je bezpečně uložena v `override.conf`.
 +
 ==== Nastavení vm.min_free_kbytes ==== ==== Nastavení vm.min_free_kbytes ====
 Defaultní nastavení virtuální paměti v Armbianu je malé. Stávalo se mi pak, že po čase systém havaroval a hledal jsem příčinu. Defaultní nastavení virtuální paměti v Armbianu je malé. Stávalo se mi pak, že po čase systém havaroval a hledal jsem příčinu.
Řádek 901: Řádek 964:
 </code> </code>
  
-Musel jsem zakomentovat jeden řádek v souboru:+Musel jsem zakomentovat jeden řádek v souboru pro ignoraci všech zařízení a přidal jsem ignoraci pouze wifi:
  
 <code bash> <code bash>
Řádek 907: Řádek 970:
 [keyfile] [keyfile]
 #unmanaged-devices=interface-name:eth*,interface-name:wan*,interface-name:lan*,interface-name:br* #unmanaged-devices=interface-name:eth*,interface-name:wan*,interface-name:lan*,interface-name:br*
 +unmanaged-devices=interface-name:wlp*
 </code> </code>
  
Řádek 932: Řádek 996:
 </code> </code>
  
 +
 +Pak jsem experimentoval se zařízením eth0. Chtěl jsem ho také dát ignorovat, ale nefungovala mi síť. Nerozumím úplně vazbě, proč musí být eth0 spuštěné. V log souboru se mi vypisovala hlášení, že se snaží každých 5 minut připojit a neúspěšně. Tak jsem do souboru **/etc/NetworkManager/system-connections/eth0.nmconnection** přidal řádek **autoconnect=false**. Takto vypadá celý soubor:
 +
 +<code bash>
 +[connection]
 +id=eth0
 +uuid=7f2fe052-fe35-4c10-ac16-a09e12d8b7f6
 +type=ethernet
 +autoconnect=false
 +interface-name=eth0
 +
 +[ethernet]
 +
 +[ipv4]
 +method=disabled
 +
 +[ipv6]
 +addr-gen-mode=default
 +method=auto
 +
 +[proxy]
 +
 +</code> 
  
 ==== Dnsmasq ==== ==== Dnsmasq ====
Řádek 938: Řádek 1025:
  
 ==== SSMTP ==== ==== SSMTP ====
 +
 +<code bash>
 +apt install ssmtp
 +</code>
  
 Stačilo překopírovat původní nastavení. Stačilo překopírovat původní nastavení.
Řádek 980: Řádek 1071:
 </code> </code>
  
-Na začátku propadnu podmínkou kvůli systemd. Když jsem podmínku odstraniltak mi to také nepomohloProto jsem překopíroval starší verzi aide z Debianu Bulseyekterá mi fungovala.+Na začátku propadnu podmínkou kvůli systemd. Zjistil jsem, že je tato konfigurace žádoucí a o AIDE se v Debian Bookworm stará systemd.  
 + 
 +<code bash> 
 +systemctl status dailyaidecheck.service 
 +</code> 
 + 
 +Případně editace: 
 + 
 +<code bash> 
 +systemctl edit dailyaidecheck.service 
 +</code> 
 + 
 +Zdá se, že AIDE check se díky systemd spouští mimo Cron a v defaultní instalaci kolem 4 hodiny ranní.Zatím jsem nezkoumaljak to přenastavit, ale přes Cron cesta nepovede. 
 + 
 +Vynutit kontrolu lze restartem služby: 
 + 
 +<code bash> 
 +systemctl restart dailyaidecheck.service 
 +</code> 
 + 
 + 
 +Bohužel AIDE check mi pořád nefungoval a pak jsem našel v logu tohle: 
 + 
 +<code bash> 
 +Jan 31 04:25:10 bananapir2 dailyaidecheck[12877]: ln: pevný odkaz '/var/log/aide//aide.log.0' na '/var/log/aide/aide.log' nebylo možné vytvořit: Operace není povolena 
 +Jan 31 04:25:10 bananapir2 dailyaidecheck[12868]: Error hardlinking /var/log/aide/aide.log to /var/log/aide//aide.log.0 
 +Jan 31 04:25:10 bananapir2 systemd[1]: dailyaidecheck.service: Main process exited, code=exited, status=8/n/
 +Jan 31 04:25:10 bananapir2 systemd[1]: dailyaidecheck.service: Failed with result 'exit-code'
 +Jan 31 04:25:10 bananapir2 systemd[1]: Failed to start dailyaidecheck.service - daily AIDE check. 
 +</code> 
 + 
 +Ve zkratce je to tak, že systemd nechce spouštět AIDE s právy roota, ale spouští pod uživatelem **_aide**. Testoval jsem sice práva zápisu, že uživatel **_aide** může do složky /var/log/aide zapisovat a vytvářet symlinky, ale problém stále etrvával. Nekonec jsem to vyřešil takže spouštím AIDE s právy roota.  
 + 
 +<code bash> 
 +systemctl edit dailyaidecheck.service 
 +</code> 
 + 
 +<code bash> 
 +[Service] 
 +User=root 
 +Group=adm 
 +</code> 
 + 
 +A nezapomenout na: 
 + 
 +<code bash> 
 +sytemctl daemon-reload 
 +</code> 
 + 
 + 
 +==== změna velikosti zRAM na logování ==== 
 + 
 +V armbianu je zapnuta funkce, že se ukousne kousek paměti RAM a do ní se loguje, aby nedocházelo k zatěžování SD karty. Jakmile dojde k naplnění tohoto kousku do 75%, tak se jednorázově přenesou logy na SD kartu a uvolní se RAM paměť. 
 + 
 +Můj systém loguje docela dost. Defaultně je nastavena velikost této logovací RAM na 50 MB. Když jsem ji chtěl zvětšit, tak je potřšeba editova záznam v souboru **/etc/default/armbian-ramlog**. 
 + 
 +<code bash> 
 +#SIZE=50M 
 +SIZE=150M 
 +</code> 
 + 
  
 ==== Instalace Logcheck ==== ==== Instalace Logcheck ====
Řádek 991: Řádek 1143:
  
 Narazil jsem ale na problém. Hodně mnou nadefinovaných pravidel přestalo fungovat. Při podrobnějším zkoumání jsem zjistil, že mám časovou značku ve formátu: "**2024-01-30T22:02:11.658801+01:00**". Logcheck ale očekává formát:  "**Jan 30 23:05:07**". I když jsem se snažil pravidla přespat a v [[https://regex101.com/|regex101]] fungovala, tak mi stále propadávala a nemohl jsem přijít jak na to. Nakonec jsem problém vyřešil úpravou syslogu, kdy jsem změnil formát časové značky na standardní, jak je popsáno níže. Narazil jsem ale na problém. Hodně mnou nadefinovaných pravidel přestalo fungovat. Při podrobnějším zkoumání jsem zjistil, že mám časovou značku ve formátu: "**2024-01-30T22:02:11.658801+01:00**". Logcheck ale očekává formát:  "**Jan 30 23:05:07**". I když jsem se snažil pravidla přespat a v [[https://regex101.com/|regex101]] fungovala, tak mi stále propadávala a nemohl jsem přijít jak na to. Nakonec jsem problém vyřešil úpravou syslogu, kdy jsem změnil formát časové značky na standardní, jak je popsáno níže.
 +
 +Pro otestování konfigurace jsou pak informace zde: [[it:server:monitoring:logcheck|]]
  
  
  • it/jednodeskove-pocitace/bananapi.1706652595.txt.gz
  • Poslední úprava: 2024/01/30 22:09
  • autor: Petr Nosek