čtvrtek 7. prosince 2023

Jak funguje base64?

Všichni to používají ale zda vůbec vědí jak se tato textová reprezentace binárních dat v ASCII vlastně převádí?

Binární data převedeme na 24 bitové číslo a to rozdělíme na skupiny o 6 bitech. Níže uvedená tabulka nám pomůže při kódování.

Máme binární data 01 02 03, 24 bit číslo bude 0x010203, to binárně zapsané vypadá 00000001 00000010 00000011. Nyní si data rozdělíme na šesti bitové skupiny, 000000 010000 001000 000011 (desítkové soustavě 1 16 8 3). Podle tabulky získáme AQID.

Pro data nesoudělná čtyřmi to funguje takto:

01 02, bude číslo 0x0102, tedy 00000001 00000010 binárně. Rozdělíme na šesti bitové skupiny, 000000 010000 0010, zprava přidáme nuly a vyjde nám AQI. Aby bylo možné detekovat padding, tak se doplní za každé dva bity znak =.


Příklad 01 02 03 04.

000000 010000 001000 000011 000001 000000

AQIDBA==

Dekódování se provádí opačně, jen se podle počtu znaků = data od konce oříznou. AA== je tedy 000000 00 0000 což je 00.

HexBinaryDecimalBase64
000000000A
010000011B
020000102C
030000113D
040001004E
050001015F
060001106G
070001117H
080010008I
090010019J
0A00101010K
0B00101111L
0C00110012M
0D00110113N
0E00111014O
0F00111115P
1001000016Q
1101000117R
1201001018S
1301001119T
1401010020U
1501010121V
1601011022W
1701011123X
1801100024Y
1901100125Z
1A01101026a
1B01101127b
1C01110028c
1D01110129d
1E01111030e
1F01111131f
2010000032g
2110000133h
2210001034i
2310001135j
2410010036k
2510010137l
2610011038m
2710011139n
2810100040o
2910100141p
2A10101042q
2B10101143r
2C10110044s
2D10110145t
2E10111046u
2F10111147v
3011000048w
3111000149x
3211001050y
3311001151z
34110100520
35110101531
36110110542
37110111553
38111000564
39111001575
3A111010586
3B111011597
3C111100608
3D111101619
3E11111062+
3F11111163/

Za vygenerování tabulky děkuji AI.

středa 18. října 2023

Nastavení SSH přihlášení ke GitHubu

Upravíme soubor nano ~/.ssh/config

Host github.com

        HostName github.com
        User _jméno_
        IdentityFile _cesta_k_prvátnímu_klíči_

Vygenerujeme si klíč

ssh-keygen -t ed25519 -C "e-mail"

Veřejnou část dáme na GitHub

A otestujeme
ssh -T git@github.com

čtvrtek 31. srpna 2023

EMS-ESP

Příklady pro zápis hodnot do EMS-ESP:

Telnet: call analogsensor relais1 on

Mqtt: Topic analogsensor/relais1, Payload: on (or json {"value":"on"})

Webapi: http://emsesp/api/analogsensor/relais1, Body: {"value":"on"}

Scheduler syntax is Command:boiler/relais1 Value:on

curl http://192.168.2.11/api/analogsensor/relais1 \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ8.eyJ1c2VybmFtZSI6ImFkbWluIiwiYWRtaW4iOnRydWUsInZlcnNpb24iOiIzLjEuMWIwIn0.qeGT53Aom4rDYeIT1Pr4BSMdeWyf4_zN9ue2c51ZnM0' \
-d '{ "value":"on"}'

Zapojení vysavače werk..

 Zapojení kabelu je:

Červená - komunikace s vysavačem

Modrá - Nula

Hnědá - 230 V

Černá, žlutá - Mikrospínač snímající "parkovací polohu" - v našem případě byl problém zde



Zleva: ploché - Hnědá, modrá, kulatý - červená



čtvrtek 3. srpna 2023

WSL a USB

 Ve WSL nainstalovat:

sudo apt install linux-tools-generic hwdata sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/*-generic/usbip 20

Ve Windows 

winget install --interactive --exact dorssel.usbipd-win

V PowerShelu

vypíše seznam zařízení:

usbipd list

usbipd bind --busid 4-4

připojíme zařízení:

usbipd wsl attach --busid <busid>

Novější verze:

usbipd attach -w --busid 1-4

na konci odpojíme:

usbipd wsl detach --busid <busid>


https://learn.microsoft.com/en-us/windows/wsl/connect-usb

sobota 28. ledna 2023

VLANy

Když je potřeba do jednoho kabelu dát dva a více ethernetů. :-) Vytvoříme VLAN.

Příklad PC + RPi:

RPi zakomentovat /etc/network/interface.d/eth0

vytvořit /etc/network/interface.d/vlan

auto eth0.10
iface eth0.10 inet static
 address 192.168.1.195
 netmask 255.255.255.0

 na druhé straně podobně: 

 auto eth0.10
iface eth0.10 inet static
 address 192.168.1.195
 netmask 255.255.255.0

Výpis ip addr:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether b8:27:eb:7d:d1:76 brd ff:ff:ff:ff:ff:ff
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 36:1c:f9:d9:85:ae brd ff:ff:ff:ff:ff:ff permaddr b8:27:eb:28:84:23
7: eth0.10@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether b8:27:eb:7d:d1:76 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.195/24 brd 192.168.1.255 scope global secondary eth0.10
       valid_lft forever preferred_lft forever
    inet6 fe80::ba27:ebff:fe7d:d176/64 scope link 
       valid_lft forever preferred_lft forever
8: eth0.1@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether b8:27:eb:7d:d1:76 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.191/24 brd 192.168.1.255 scope global eth0.1
       valid_lft forever preferred_lft forever
    inet6 fe80::ba27:ebff:fe7d:d176/64 scope link 
       valid_lft forever preferred_lft forever

Příklad logu komunikace:



neděle 22. ledna 2023

Testování Firewallu

 Wiresharkem (tcpdumpem) jsem udělal pcap a nyní potřebuji změnit adresy a výsledek poslat zpět.

tcprewrite --srcipmap=192.168.1.156:8.8.8.8 --infile=TCP_8081_Replay.pcapng --outfile=output.pcap

tcprewrite --dstipmap=192.168.1.1:4.4.8.8 --infile=output.pcap --outfile=output.pcap


srcpipmap - měníme zdrojovou IP 192.168.1.156 na 8.8.8.8


čtvrtek 11. srpna 2022

AT - plánování v Linuxu

 Pro plánování jednorázových útolů je možné využít AT.

takto naplánujeme spuštění  "curl --user username:heslo http://<IP>/settings/relay/0?schedule=1" na 14.8.2022 15:00 zadáme následující:

echo "curl --user username:heslo http://<IP>/settings/relay/0?schedule=1" | at -t 2208141500

Nebo pomocí interaktivního režimu:

Zadávání skriptu se ukončí stiskem CTRL+D, zruší stiskem CTRL+C.

Naplánované úlohy se zobrazí takto:




středa 11. května 2022

mdadm

 cat /proc/mdstat #status

mdadm --detail /dev/md0 # také status

mdadm --create /dev/md0 -n2 -l1 /dev/sda1 /dev/sdb1 # vytvoření nového pole z sda1 a sda2

mdadm --add /dev/md0 /dev/sdc1 # přidání sdc1 do pole

mdadm --detail --scan # zobrazení parametrů pole

Pokud se pole rozpadne, tak to poznáme takto:

root@MB:~# mdadm --detail /dev/md1 # také status
/dev/md1:
           Version : 1.2
     Creation Time : Thu May  5 16:24:29 2022
        Raid Level : raid1
        Array Size : 4882680832 (4656.49 GiB 4999.87 GB)
     Used Dev Size : 4882680832 (4656.49 GiB 4999.87 GB)
      Raid Devices : 2
     Total Devices : 1
       Persistence : Superblock is persistent
 
     Intent Bitmap : Internal
 
       Update Time : Sun Nov 27 11:48:42 2022
             State : clean, degraded
    Active Devices : 1
   Working Devices : 1
    Failed Devices : 0
     Spare Devices : 0
 
Consistency Policy : bitmap
 
              Name : MB.JFila.cz:1  (local to host MB.JF)
              UUID : db6464ea:3b6ac1a1:3a3f26ec:20cb5e65
            Events : 70585
 
    Number   Major   Minor   RaidDevice State
       -       0        0        0      removed
       1       8       17        1      active sync   /dev/sdb1

Nejprve si zjistíme, který disk vypadl:

root@MB:~# blkid  | grep MB.JFil
/dev/sda1: UUID="db6464ea-3b6a-c1a1-3a3f-26ec20cb5e65" UUID_SUB="f85690c7-00b4-bdaf-9678-ba49025766ce" LABEL="MB.JF:1" TYPE="linux_raid_member" PARTUUID="8e221fd9-1b67-4b6c-8dad-6fb1f6a3e420"
/dev/sdb1: UUID="db6464ea-3b6a-c1a1-3a3f-26ec20cb5e65" UUID_SUB="3af1ed68-00dd-c355-40cf-ad836f0a3647" LABEL="MB.JF:1" TYPE="linux_raid_member" PARTUUID="d3360b04-a4f3-764c-82ec-da41c5dd5d30"

a druhý HDD přidáme následujícím příkazem:

root@MB:~# mdadm /dev/md1 -a /dev/sda1

mdadm: re-added /dev/sda1
root@MB:~# mdadm --detail /dev/md1 # také status
/dev/md1:
           Version : 1.2
     Creation Time : Thu May  5 16:24:29 2022
        Raid Level : raid1
        Array Size : 4882680832 (4656.49 GiB 4999.87 GB)
     Used Dev Size : 4882680832 (4656.49 GiB 4999.87 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent
     Intent Bitmap : Internal
       Update Time : Sun Nov 27 11:52:39 2022
             State : clean, degraded, recovering
    Active Devices : 1
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 1
Consistency Policy : bitmap
    Rebuild Status : 2% complete
              Name : MB.JFila.cz:1  (local to host MB.JF)
              UUID : db6464ea:3b6ac1a1:3a3f26ec:20cb5e65
            Events : 70587
    Number   Major   Minor   RaidDevice State
       3       8        1        0      spare rebuilding   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1

A nyní již probíhá obnova:

root@MB:~# cat /proc/mdstat #status
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]
md1 : active raid1 sda1[3] sdb1[1]
      4882680832 blocks super 1.2 [2/1] [_U]
      [>....................]  recovery =  2.9% (144065984/4882680832) finish=453.6min speed=174080K/sec
      bitmap: 27/37 pages [108KB], 65536KB chunk

A hotovo, vše ok:
root@MB:~# mdadm --detail /dev/md1 # také status
/dev/md1:
           Version : 1.2
     Creation Time : Thu May  5 16:24:29 2022
        Raid Level : raid1
        Array Size : 4882680832 (4656.49 GiB 4999.87 GB)
     Used Dev Size : 4882680832 (4656.49 GiB 4999.87 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Sun Nov 27 11:56:15 2022
             State : clean
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : bitmap

              Name : MB.JFila.cz:1  (local to host MB.JF)
              UUID : db6464ea:3b6ac1a1:3a3f26ec:20cb5e65
            Events : 70639

    Number   Major   Minor   RaidDevice State
       3       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1