Instalacja OpenBSD
Eksperymentując długo przed poznaniem OpenBSD z GNU/Linux-owymi dystrybucjami przeznaczonymi na routery, głównie z IPCop, poźniej IPFire, następnie przesiadłem się na PFsense, który był oparty o firewall PF. Utworzywszy w PFsense kilka reguł okazało się że żadna z nich nie działa. Porzuciłem routery. Przyszedł czas mojej pierwszej pracy. Po ogarnięciu bałaganu sieciowego, firmowy router zaczał się wieszać... Wziąłem go na warsztat, był dosć ciekawie skonfigurowany, serwerowa płyta Intela z socketem 478. Był tak zakurzony, że po rozkręceniu było tyle syfu że można było pomyśleć że ktoś tam piachu nasypał, ale płyta cała. Wszystkie kondestatory sprawne, ram testowany memtestem - sprawny. Dobra, czyli zmieniamy system. Tylko jakoś niechciałem GNU/Linuxa i iptables. Przypomniałem sobie o PF. Wpisując "PF packet filter" w wyszukiwarkę, znalazłem na oficjalnej stronie OpenBSD świetną dokumentację PF, to pomyślałem o OpenBSD jako docelowym systemie. Można spróbować. Mam system operacyjny wraz z pakietem firewalla. Dokumentacja na stronie projektu była pierwszym moim przeczytanym ze zrozumieniem anglojęzycznym, technicznym tekstem. Po zapoznaniu się z PF trzeby by zainstalować sobie OpenBSD i trochę po go testować.
(I)nstall, (U)pgrade, (A)utoinstall, or (S)hell? I
Instalacje OpenBSD rozpoczynamy od wyboru trybu pracy w środowisku instalacyjnym. Wybieramy instalacje, czyli I
.
Następnym krokiem jest wybór layoutu klawiatury, możemy wybrać literę l
lub znak ?
co wyświetli nam dostępne układy, oczywiście wybieramy pl
.
Kolejną rzeczą do ustawienia podczas instalacji jest nazwa hosta. Na przykład foo.
System hostname (short form e.g. 'foo') foo
Następnie instalator wyświetli nam listę dostępnych w systemie interfejsów sieciowych. Zapyta czy chcemy je teraz konfigurować, jeśli nie, wystarczy wpisać done
. Tą wartością możemy również przerwać konfiguracje. Powiedzmy że mamy trzy interfejsy w systemie, ustawiliśmy jeden i to wystarczy. Kiedy instalator zapyta o następny, wpisujemy done
. Dla pierwszego interfejsu, konfiguracja wygląda w taki sposób że po podaniu (zaakceptowaniu) nazwy (podanej przez instalator), podajemy adres IP pod jakim będzie on dostępny w sieci lub jeśli ma pobrać adres z DHCP wpisujemy dhcp
. Jeśli wpisaliśmy adres, to następne pytanie będzie o maskę podsieci. System zasugeruje nam maskę, jeśli pasuje ona do naszej konfiguracji sieci to możemy ją zatwierdzić, jeśli nie to podajemy swoją.
IPv4 address for em0 ? (or 'dhcp' or 'none') [dhcp] 10.0.0.1 Netmask for em0 [255.255.255.0] 255.0.0.0
Możemy ją zaakceptować lub wpisać swoją. Następną konfiguracją będzie IPv6, konfigurujemy ją wedle własnego uznania, ja przeważnie wybieram opcje domyślną czyli none
.
IPv6 address for em0 ? (or 'autoconf' or 'none) [none]
Po tej konfiguracji przechodzimy do kolejnego interfejsu, tu możemy przerwać konfiguracje sieci, jeśli to zrobimy, to od razu przejdziemy do pytań o:
-
Bramę domyślną (o ile wybraliśmy statyczną konfigurację interfejsu)
Default IPv4 route ? (IPv4 address or none) [none]
-
Domenę (dla statycznej, jak i DHCP)
DNS domain name (e.g. 'example.com') [my.domain] morketsmerke.net
-
Adresy serwerów DNS (o ile wybraliśmy statyczną konfigurację)
DNS nameservers? (IP address list or none) 192.168.1.1
Po konfiguracji sieci, czas na ustawienia hasła użytkownika root.
Password for root account ? (will not echo)
Po tym zostaniemy zapytani o to czy domyślnie uruchamiać sshd oraz xenodm wraz ze startem systemu i czy zmienić domyślną konsole na port COM. Na pytania opowiadamy w zależności od potrzeb.
Na serwerach na pierwsze pytanie odpowiadamy yes
.
Start sshd(8) by default? [yes]
Na powyższym przykładzie nie ma odpowiedzi, ponieważ akceptujemy odpowiedź zasugerowaną przez instalator. Na drugie odpowiadamy no
(Jeśli instalujemy OpenBSD z zamiarem uruchamiania środowiska graficznego to możemy opowiedzieć yes
.)
Do you expect to run the X Window System? [yes] no
trzecie... Tu sprawa się komplikuje. Przepuszczanie konsoli, przez port COM to generalnie fajna sprawa jeśli mamy ograniczone miejsce, podpinamy kabelek USB do laptopa na następnie podpinamy kabel do ser... okazuje się że kable usb - rs232 (czy COM) mają złącze rs232 męskie i w serwerze prawdopodobnie złacze też jest męskie, potrzebujemy kabla rs232 żeńsko-żeńskiego. Jeśli ktoś posiada wymagane okablowanie oraz odpowiednie umiejętności może wybrać tutaj yes
, jednak do powszechnego użytku przekierowanie konsoli, nie będzie nam potrzebne (no
).
Po odpowiedzi na te trzy pytania, zostaniemy poproszeni o nazwę pierwszego użytkownika systemu. Jego będziemy wykorzystywać jako użytkownika do logowania się przez SSH do systemu.
Setup a user? (enter a lower-case loginname, or 'no') [no] admin
Po podaniu nazwy użytkownika, zostaniemy zapytani o jego pełną nazwę czyli imię i nazwisko. Pozostawiamy tę wartość domyślną, która jest równa nazwie uzytkownika.
Full name for user admin? [admin]
Następnie instalator zapyta nas o hasło dla nowopowstałego użytkownika.
Password for user admin? (will not echo)
Teraz zostaniemy powiadomieni o tym że użytkownik root, jest celem ataków odgadywania hasła, oraz że używanie w jego przypadku kluczy publicznych do logowania przez SSH jest bezpieczniejsze, po tej informacji zostajemy zapytani o to czy zezwolić na logowanie przez SSH użytkownika root? Do wyboru mamy yes
, no
lub prohibit-password
. Wybieramy wedle własnego uznania, chociaż warto wspomnieć że stworzony przed chwilą użytkownik będzie znajdować się w specjalnej grupie, która ma możliwość wykonania polecenia su root
.
Warning: root is targeted by password guessing attacks, pubkeys are safer. Allow root ssh login? (yes, no, prohibit-password) [no]
Pora na ustawienia właściwej strefy czasowej, znakiem zapytania ?
możemy wylistować sobie dostępne strefy. Może być wielce prawdopodobne że zostanie ona sama prawidłowo zasugerowana bazując na wybranym układzie klawiatury.
What timezone are you in? ('?' for list) [Europe/Warsaw]
Teraz możemy przejść do partycjonowania. Zostanie nam przedstawiona lista dostępnych w systemie dysków.
Available disks are: wd0
Zostaniemy poproszeni o wskazanie głównego systemu plików, system zasugeruje na dysk pierwszy na liście.
Which disk is the root disk? ('?' for details) [wd0]
Oczywiście możemy to zmienić. W tym momencie musimy wybrać pomiędzy całym wykorzystaniem dysku z tablicą MBR a tablicą GPT lub ręcznym wydzieleniem miejsca dla BSD, w zależności od tego czy nasz dysk
przekracza 2TB wybieramy G
PT a jeśli nie to whole
co oznacza MBR.
Use (W)hole disk MBR, whole disk (G)PT or (E)dit? [whole]
Po wybraniu trybu zostanie nam wyświetlona automatyczna alokacja miejsca na dysku (partycji) (dla powszechnego użytku jest wystarczająca). Możemy ją edytować lub utworzyć swoją własną. Utworzoną alokację potwierdzamy literką a
. Teraz następuję rzeczywiste ustawianie partycji.
Use (A)uto layout, (E)dit auto layout, or create (C)ustom layout? [a]
Po tej czynności nadchodzi czas na instalacje systemu, na początku wybieramy źródło plików do instalacji, systemy BSD są systemami które mogą wystartować z instalacją z dyskietki 3,5" a następnie pobrać pakiety systemowe z Internetu. My wybieramy cd0
lub disk
Instalator zasugeruje nam nośnik z plikami, z którego został uruchomiony lub http
.
Location of sets? (cd0 disk http or 'done') [cd0]
W przypadku uruchomienia z dysku USB wybramy opcję disk
będziemy musieli odpowiedzieć na pytanie czy dysk został zamontowany. Zasugerowana odpowiedź będzie yes
, ale my wpisujemy no
.
Is the disk partition already mounted? [yes] no
Następnie zostanie nam wyświetlona lista dysków (jak do wyboru dysku systemowego) wraz z zapytaniem, który z dysków zawiera pliki instalacjyne.
Available disk are: wd0 wd1. Which disk contains the install media? (or 'done') [wd0]
W moim przypadku z racji tego iż uruchamiam to na QEMU obraz dysku instalacjnego jest pierwszym dyskiem na mojej maszynie. Po wybraniu dysku zostanie wyświetlona nam list partycji
a: 1358848 1024 4.2BSD 2048 16384 16142 i: 960 64 MSDOS Available wd0 partitions are: a i. Which wd0 partition has the install sets? (or 'done') [a]
Partycja z plikami instalcyjnymi jest sformatowana jako 4.2BSD, i zgodnie z sugestią instalatora wybierzemy partycję oznaczoną literą 'a'. Teraz partycja zostanie przeszukana pod kątem plików instalacyjnych, o znalezieniu plików instalcyjnych zostaniemy poinformowani w sugestii instalatora na odpowiedź poniższego pytania.
Pathname to the sets? (or 'done') [6.5/amd64]
Akceptujemy znalezioną ścieżke. Jeśli instalujemy system z płyty instalator od razu zacznie szukać ścieżki, co spowoduje przeskok do powyższego pytania.
Teraz możemy wybrać jakie pakiety chcemy zainstalować. Warto wszystkie. Dlaczego? Otóż, nie które z programów uruchamianych w konsoli mogą używać czcionek, które dostępne są w pakietach ze środowiskiem graficznym. Nikt nam nie każe uruchamiać środowiska ze startem systemu jak i ręcznie, ale te pakiety warto posiadać. Czasami uruchomienie środowiska może usprawnić pracę.

Po zatwierdzeniu zbioru pakietów, zostaniemy poinformowani o tym że na ścieżce nie znaleziono pliku z podpisem oryginalności plików instalacyjnych (dla paranoików). Na tym etapie możemy to zignorować i odpowiedzieć
czy chcemy kontynuować bez weryfikacji yes
.
Directory does not contain SHA256.sig. Continue without verification? [no] yes
Po zakończonej instalacji, instalator znów zapyta nas o położenie plików instalacyjnych, teraz będzie sugerować done
, warto posłuchać tej sugestii.
Location of sets? (cd0 disk http or 'done') [done]
Ostatnimi komunikatami są miedzy innymi pytanie o ustawienie poprawnej daty oraz czasu.
Time appears wrong. Set to 'Fri Apr 24 22:04:05 CEST 2020'? [yes]
Na sam koniec otrzymamy gratulacje odnośnie poprawnie zainstalowanego systemu oraz pytanie czy chcemy system zatrzymać (tak jak kiedyś na startych Windowsach, po zatrzymaniu systemu należy nacisnąć lub przytrzymać wyłącznik komputera tak samo jest z OpenBSD, kiedy wybierzemy polecenie halt
), przejść do powłoki albo z resetować komputer wybieramy sugerowany restart.
reboot
.
Exit to (S)hell, (H)alt or (R)eboot? [reboot]
Usuwamy nośnik i możemy cieszyć się nowym system OpenBSD.
Odnośnie instalacji OpenBSD, to nie zawsze wszystko wygląda tak różowo. Instalacja na starych firmowych systemach takich jak Dell Optiplex GX620 przynosi rezultaty. Ale np. instalacja na komputerze PC, ktory był budowany przeze mnie od podstaw już nie. Na płycie Gigabyte z podstawką 1156, to włożnie pendrive-a do gniazda USB potrafi zawiesić cały komputer już na procedurze POST. Przy np. płycie MSI z podstawką 1150 system może się zainstalować ale po zainstalowaniu komputer zawiesza się na procedurze POST, odpięcie dysku SSD powodowało że komputer uruchamiał się poprawnie, jednak jeśli chciałem coś zrobić z tym komputerem musiałem wymontować dysk oraz podłączyć go na USB do innego systemu wyzerować początek i podłączyć z powrotem, bardzo irytujące. Nie wiem czy to jest wina tylko tej wersji bo próbowałem z wersją 6.8 na dzień dziejszy (23.02.2021) najnowszą. Jednak na laptopach nie ma takich problemów, dlatego laptop wydaje się najlepszym rozwiązaniem. Jednak te słowa pisze na Laptopie z OpenBSD wykorzystującym środowisko graficzne Fluxbox, chciałem mieć tu XFCE jednak podczas działania XFCE grafika (ATI Radeon) strasznie "glitch'owała", to nie wina sprzetu (bo xenodm, czy wymieniony wcześniej Fluxbox działają wyśmienicie) ale wydaje mi się że jest to wina wadliwego sterownika a te środowiska wykorzystują grafikę w znikomy sposób. Wnioskując dla OpenBSD nalepszy jest poleasingowy laptop z procesorem drugiej lub trzeciej genereacji oraz grafiką Intel HD Graphics.
~xf0r3m