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 12:51] 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 957: Řádek 1048:
 ==== AIDE ==== ==== AIDE ====
  
-Instalaci jsem prováděl podle dřívjšího návodu [[it:server:monitoring:aide|]]. Všechno se mi podařilo, až na jednu věc. Skript  /etc/cron.daily/aide se nespouštěl. Po dalším náhledu jsem zjistil, že se spouští, ale neprobíhá dle očekávání.+Instalaci jsem prováděl podle dřívějšího návodu [[it:server:monitoring:aide|]]. Všechno se mi podařilo, až na jednu věc. Skript  /etc/cron.daily/aide se nespouštěl. Po dalším náhledu jsem zjistil, že se spouští, ale neprobíhá dle očekávání.
  
 Takto vypadá obsah: Takto vypadá obsah:
Řá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 990: Řádek 1142:
 A pak jsem si přenesl jeden soubor, ve kterém mám uživatelskou konfiguraci. A pak jsem si přenesl jeden soubor, ve kterém mám uživatelskou konfiguraci.
  
 +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|]]
 +
 +
 +==== Rsyslog ====
 +
 +Musel jsem změnit čsaovou značku při logování, aby byla v klasickém formátu "**Jan 30 23:05:07**". Vycházel jsem z [[https://www.baeldung.com/linux/syslog-change-date-format|článku]] a přidal jsem do **/etc/rsyslog.conf** dle instrukcí řádek **$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat**:
 +
 +<code bash>
 +sudo cat /etc/rsyslog.conf
 +...truncated...
 +##########################
 +#### GLOBAL DIRECTIVES ####
 +###########################
 +...truncated...
 +$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
 +...truncated...
 +</code>
 +
 +
 +<code bash>
 +systemctl restart rsyslog
 +</code>
  
 ==== Logwatch ==== ==== Logwatch ====
Řádek 1001: Řádek 1177:
 root@bananapir2:~# apt install softether-vpnserver root@bananapir2:~# apt install softether-vpnserver
 </code>  </code> 
 +
 +Po dalším zkoumání jsem zjistil, že softether jsou 2 vývojové větve. Jedna je stable a druhá je develop. V rámci debian balíčku jsem nainstaloval verzi 5.01 Developer Edition - build 9674. Byla sestaven 16.10.2022. Paradoxně je starší, než verze Stable edition aktuálně verze 4.43, Build 9799 z data 31.8.2023. 
 +
 +Nepochopil jsem, proč stable a develop edition mají rozdílné číslování, které podle mě způsobuje zmatek. Třeba časem přijdu na to, jakou to má logiku.
 +
 +Každopádně jsem se rozhodl verzi ze správce balíčků odinstalovat a zkompilovat si vlastní z verze stable podle návodu [[it:software:softether|]].
  
  
Řádek 1018: Řádek 1200:
  
  
-**KLient**+**Klient**
 <code bash> <code bash>
 root@bananapir2:/etc/wireguard# wg genkey | sudo tee /etc/wireguard/client_private.key | wg pubkey | sudo tee /etc/wireguard/client_public.key root@bananapir2:/etc/wireguard# wg genkey | sudo tee /etc/wireguard/client_private.key | wg pubkey | sudo tee /etc/wireguard/client_public.key
Řádek 1028: Řádek 1210:
 root@bananapir2:/etc/wireguard# touch wg0.conf root@bananapir2:/etc/wireguard# touch wg0.conf
 </code> </code>
- 
  
  
  • it/jednodeskove-pocitace/bananapi.1706619078.txt.gz
  • Poslední úprava: 2024/01/30 12:51
  • autor: Petr Nosek