Przekierowanie konsoli tty0 na RS-232 (port COM)
++ JeÅli ktoÅ zapoznaÅ siÄ, z materiaÅem o automatycznym odblokowywaniu + istniejÄ cych partycji LUKS, to wie że pozostawienie plików klucza tak + sobie na dysku nie jest zbyt dobrym rozwiÄ zaniem. Wystarczy, że ktoÅ nam + ten serwer/komputer ukradnie i nie bÄdzie przednim żadnych tajemnic. Co + wówczas można zrobiÄ tej sprawie. NajproÅciej rzecz ujmujÄ c, można + zaszyfrowaÄ dysk systemowy. Tylko w tym przypadku rodzi siÄ pytanie, bo + jeÅli jest to serwer, albo PC na którym pracujemy zdalnie? Można + wykorzystaÄ + drugi serwer lub też przy użyciu Raspberry Pi utworzyÄ sobie taki serwer + dostÄpowy. Natomiast komunikacja miÄdzy tymi hostami, a przynajmnie ta + tekstowa odbÄdzie siÄ za pomocÄ zapomniane już protokoÅu RS-232, + potocznie nazywanego COM-em lub poÅÄ czeniem szeregowym. PierwszÄ rzeczÄ + od której zaczniemy jest sprzÄt i kilka wyjaÅnieÅ hardware-owych. +
++ ChcÄ c zrealizowaÄ takie przekierowanie konsoli, abyÅmy przez SSH na + serwerze dostÄpowym mogli za pomocÄ poÅÄ czenia szeregowego odblokowaÄ + naszÄ partycjÄ systemowÄ musimy zaopatrzyÄ siÄ w odpowiednie przewody + kabel COM żeÅsko-żeÅski (adapter i PC maja mÄskie porty COM) + oraz adapter USB-RS232. Adaptery ostatnio potrafiÄ osiÄ gaÄ jakieÅ chore + kwoty. Nie mniej jednak, ta taÅsza wersja ze znanego portalu aukcyjnego + za 10 czy 15 zÅotych wystarczy w zupeÅnoÅci. JeÅli nie możemy dostaÄ + kabla COM, to możemy użyÄ Å¼eÅskich kabli stykowych. Do komunikacji + potrzebne bÄdÄ tylko 3 przewody, wówczas należy pamiÄtaÄ o skrosowaniu + przewodów. To znaczy pin nadawczy (Tx) nadawcy musi byÄ podÅaczony do + pinu odbiorczego (Rx) odbiorcy i na odwrót. Pin nadawczy (Tx) odbiorcy + musi byÄ podÅÄ czony do pinu odbiorczego (Rx) nadawcy. Należy pamiÄtaÄ + jeszcze o przewodzie masowym (GND). PodÅÄ czenia dokonujemy wg. poniższego + schematu. +
++ RS-232 +N O +A Tx -- -- Tx D +D X B +A Rx -- -- Rx I +W R +C GND ----- GND C +A A ++
+ Kable COM majÄ już ten przeplot w sobie. Po zaopatrzeniu siÄ w sprzÄt + możemy przejÅÄ do wÅaÅciwej konfiguracji systemu. +
++ Na poczÄ tek musimy dowiedzieÄ siÄ z jakiego portu COM korzysta nasz + serwer i jak siÄ on nazwya w systemie. W tym celu przeszukamy + komunikaty diagnostyczne jÄ dra. Przefiltrujemy pod zwglÄdem + wystÄpowania frazy tty. +
++xf0r3m@sc:~$ sudo dmesg | grep 'tty' +[ 0.059942] printk: console [tty0] enabled +[ 0.884573] 00:00: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A +[ 3.571786] systemd[1]: Created slice system-getty.slice - Slice /system/getty. ++
+ W moim przypadku jest /dev/ttyS0 i to to urzÄ dzenie + wykorzystam do konfiguracji. KonfiguracjÄ zaczynamy od GRUB-a. + UzupeÅniamy poniższe opcje, tak jak na przykÅadzie, opcji + GRUB_SERIAL_COMMAND, może nie byÄ w pliku wiÄc trzeba jÄ + dopisaÄ. Plik, który bÄdziemy edytowaÄ to /etc/default/grub. +
++GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,19200n8" +... +GRUB_TERMINAL=serial +GRUB_SERIAL_COMMAND="serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1" ++
+ Za pomocÄ pierwszej linii przekierowaliÅmy konsole na poÅÄ czenie + szeregowe. PozostaÅe opcje sÅuÅ¼Ä wyÅwietalniu menu GRUB-a na konsoli + szeregowej. Po zapisaniu zmian, musimy wygenerowaÄ nowe pliki + konfiguracyjne za pomocÄ poniższego polecenia: +
++xf0r3m@sc:~$ sudo update-grub +Generating grub configuration file ... +Found linux image: /boot/vmlinuz-6.1.0-22-amd64 +Found initrd image: /boot/initrd.img-6.1.0-22-amd64 +Found linux image: /boot/vmlinuz-6.1.0-18-amd64 +Found initrd image: /boot/initrd.img-6.1.0-18-amd64 +Warning: os-prober will not be executed to detect other bootable partitions. +Systems on them will not be added to the GRUB boot configuration. +Check GRUB_DISABLE_OS_PROBER documentation entry. +done ++
+ Teraz musimy uruchomiÄ program getty, który pozwoli nam + siÄ zalogowaÄ do systemu. W tym celu umieÅcimy w pliku + /etc/inittab poniższÄ liniÄ. Tutaj również mamy wybór + rodzaju terminala. Ja pozostawiam domyÅnie vt100. W + nowoczesnych dystrybucjach plik /etc/inittab, może nie + istnieÄ. Nic nie stoi na przeszkodzie, aby go utworzyÄ. +
++T0:23:respawn:/sbin/getty -L ttyS0 19200 vt100 ++
+ Teraz konfiguracja serwera jest już gotowa. Pozostaje skonfigurowanie + klienta - ustawienie odpowiednich parametrów poÅaczenia szeregowego + aby mogÅo dojÅÄ do transmisji. Jako klienta, użyjemy aplikacji + minicom. JeÅli nie jest dostÄpna w systemie to można jÄ + zainstalowaÄ z repozytorium. PodÅaczmy adapter i sprawdzamy pod jaka + nazwÄ wystÄpuje w systemie. TÄ nazwÄ należy zachowaÄ do celów + konfiguracji minicom-a. NastÄpnie wydajemy polecenie: +
++$ sudo minicom -s -c on ++
+ Ekran zostanie wyczyszczony, a nam zostanie wyÅwietlone okno + konfiguracja, przechodzimy do opcji + ustawienia portu szeregowego. Teraz bÄdzie zabawa bo + minicom konfiguruje siÄ w doÅÄ pokraczny sposób. Naciskamy + klawisz 'A' i przechodzimy do edycji urzÄ dzenia szeregowego, tam + wpisujemy Åcieżke do pliku pod którym wystÄpuje nasz adapter, + zatwierdzamy klawiszem Enter. NastÄpnie naciskamy klawisz 'E', + w kolejnym oknie wybieramy opcje poÅÄ czenia szeregowego. JeÅli zrobiÅmy + wszystko zgodnie z tym artykuÅem - to przedstawione tutaj ustawienia sÄ + standardowe wiÄc w tym oknie naciskamy klawisz 'B', do momentu aż pole + przy opcji 'B' nie bÄdzie wskazywaÄ: +
++B: <Aktualnie: 19200 8N1 ++
+ Zatwierdzamy klawiszem Enter i wartoÅÄ
+ 19200 8N1, powinna pojawiÄ siÄ w
+ gÅównym oknie konfiguracji, przy opcji E:. JeÅli tak, to
+ możemy
+ opuÅciÄ to okno Enter-em i wybieramy opcje:
+ Zapisanie konfiguracji jako dfl, dziÄki temu konfiguracja
+ zostanie wczytana od razu po uruchomieniu programu za pomocÄ
+ polecenia
+ sudo minicom -c on - opcja
+ -c on, wÅÄ
cza kolory. Po
+ przygotowaniu pliku, możemy uruchamiaÄ naszego minicoma
+ i restartowaÄ serwer. Konsola tty0 serwera powinna pojawiÄ siÄ w
+ oknie minicoma, na poczÄ
tku pokaże siÄ menu GRUB-a.
+
+$ sudo minicom -c on + + GNU GRUB version 2.06-13+deb12u1 + + +----------------------------------------------------------------------------+ + |*Debian GNU/Linux | + | Advanced options for Debian GNU/Linux | + | | + | | + | | + | | + | | + | | + | | + | | + | | + | | + +----------------------------------------------------------------------------+ + + Use the ^ and v keys to select which entry is highlighted. + Press enter to boot the selected OS, `e' to edit the commands + before booting or `c' for a command-line. + +Please unlock disk vda5_crypt: +cryptsetup: vda5_crypt: set up successfully +/dev/mapper/ccna--vg-root: clean, 185425/1213456 files, 2214800/4851712 blocks + +Debian GNU/Linux 12 ccna ttyS0 + +ccna login: ++
+ ŹródÅo: Debian Linux: Set a Serial Console +
++ ~xf0r3m +
+ +