Mittels Nullmodem auf eine Alix mit OpenBSD

Ich habe mir ja vor einer Ewigkeit diesen hübschen Embeddded-Computer zugelegt. Gegenüber damals bin ich aber irgendwann von Net- auf OpenBSD umgestiegen. Weil ich aber inzwischen der Auffassung bin, möglichst wenig Ballast anzusammeln und herum zuschleppen, habe ich mich weitestgehend von unnötiger Peripherie-Hardware wie Ein- und Ausgabegeräte und anderem Zeug getrennt. Nun betreibe ich diese Box in einer Umgebung, wo es weder Monitor oder Tastatur gibt. Da sie aber noch über eine hinausgeführte serielle RS-232-Schnittstelle verfügt, sollte man den Kram eigentlich auch nicht benötigen. Wenn der Rechner gerade aus Gründen nicht über ein Netzwerk erreichbar ist, so hat man dennoch die Möglichkeit via USB-Seriell-Adapter und Nullmodemkabel sich auf dem Gerät einzuloggen. Folgende Einstellungen müssen Betriebssystemseitig unter OpenBSD gemacht werden.

In der Datei /etc/ttys die Zeile:

tty00   "/usr/libexec/getty std.9600"   unknown off

nach

tty00   "/usr/libexec/getty std.9600"   vt220   on  secure

abändern.

Die Datei /etc/boot.conf erstellen oder bearbeiten und folgende Zeile hinzufügen:

set tty com0

Damit wird auch der Boot-Prozess über die serielle Leitung übertragen. Leider funktioniert das bei mir noch nicht, weil die Boot-Loader Input-/Output-Fehler wirft, denen ich bisher nicht auf den Grund gekommen bin.

Was ich aber ziemlich advanced finde, dass selbst die Initialisierung der Hardware und auch der Zugriff auf das BIOS-Setup über die Serielle Konsole erfolgen kann. Dafür muss lediglich im „BIOS Advanced Features“-Menü die Option „Console Redirection“ auf Enabled gestellt werden. Die Baudrate sollte natürlich identisch mit der des Betriebssystems und dem Terminal-Emulators sein.

Serial-Boot_BIOS_0

Serial-Boot_BIOS_1

Serial-Boot_BIOS_2

Serial-Boot_BIOS_3

Anders als hier aufgeführt, kann man die Baudrate natürlich auch bis auf 115200 Baud herauf setzen, da auf Dauer die 9600 sehr langsam erscheinen – auch wenn es einen gewissen Nerd-Faktor und fast einen meditativen Charakter besitzt, dem Bildschirm beim zeilenweisen Aufbau zu zusehen.

Ob das Ganze auch mit den moderneren UEFI’s geht, weiß ich jetzt nicht. Cool wäre es!

Quelle im OpenBSD FAQ:
http://www.openbsd.org/faq/faq7.html#SerCon

SIGINFO

Durch eine der letzten FreakShow-Podcastfolgen bin ich auf ein tolles Feature hingewiesen worden. Wenn sich im Terminal ein laufender Prozess befindet, so kann man durch Drücken der Tastaturkombination <Ctrl> + <T> eine Abfrage an diesen sich seinen aktuellen Status anzeigen lassen.
Ursprünglich unter DEC’s VMS implementiert, wurde diese Funktion später in den Terminaltreiber von 4.3BSD übernommen.
Wie in dem folgendem Screenshot zu sehen, besitzt das Unix-Programm dd für SIGINFO sogar einen eigenen Handler.

dd mit SIGINFO

dd mit SIGINFO

Leider gibt es die Funktion nur auf allen BSD-Systemen, bzw. deren Derivaten wie OpenBSD und Mac OS X, aber nicht unter Linux.

Anleitung zum Erstellen eines bootbaren USB-Stick als Installationsmedium unter OpenBSD – Teil 2

Vor etwas geraumer Zeit hatte ich hier ein HowTo erstellt, welches beschreibt wie man einen bootfähigen USB-Stick als Installationsmedium für OpenBSD erstellt. Seit Version 5.6 werden vom Projekt neben dem ISO-Image für die CD auch eine install56.fs zum Download angeboten. Es reicht lediglich, die Datei mit dd auf den USB-Stick hinüber zu kopieren.

dd if=install56.fs of=/dev/sd0

Im Beispiel ist die Laufwerkskennung des Sticks von OpenBSD mit sda angegeben. Je nach Betriebsssystem kann diese auch anders sein.
Statt der 56 im Dateinamen kann auch eine andere Kennung für die jeweilige Version stehen. Zum Beispiel install58.fs für die aktuelle Version 5.8.

Tor-Server unter OpenBSD

Da ich schon seit längerer Zeit meine Irssi-Instanz von meinem ALix-Homeserver auf einem V-Server verlegt habe, kann man die ungenutzte Bandbreite zu Hause für andere gemeinnützige Dienste nutzen. Deswegen habe ich mal auf den Rechner einen Tor-Server aufgesetzt um den Privacy-bewussten Computernutzer zu unterstützen.

Anbei erst einmal die Installationsanleitung unter OpenBSD.:

1. mit pkg_add installieren:

   # pkg_add tor

2. Tor beim Booten starten:

Dazu muss die /etc/rc.local editiert werden

if [ -x /usr/local/bin/tor ];
then
echo -n ' tor';
/usr/local/bin/tor -f /etc/tor/torrc
fi

3. Konfigurieren

Damit Tor beim booten in den Hintergrund forked, muss folgendes in der /etc/etc/tor/torrc aktiviert werden:

   RunAsDaemon 1

Als nächstes muss ein Verzeichnis für Tor’s Daten in der torrc festgelegt werden:

   DataDirectory /var/spool/tor

Weiterhin muss ein Verzeichnis für Tor’s Logfiles in der torrc festgelegt werden:

   Log notice syslog /var/log/tor

Dann müssen diese Verzeichnise noch erstellt und den Benutzern tor und root müssen die Rechte dafür gegeben werden:

# mkdir /var/spool/tor
# chmod 40700 /var/spool/tor
# chown _tor:_tor /var/spool/tor
# mkdir /var/log/tor
# chmod 40700 /var/log/tor
# chown _tor:_tor /var/log/tor

Die ganze Server-Geschichte lasse ich erst einmal weiterhin als Entry-Node laufen, bis ich mir eventuell mal ein paar Gedanken dazu gemacht habe, wie ich den Dienst für bestimmte Services weiterhin öffnen kann, ohne in Konflikt mit Ermittlungsbehörden zu kommen.
Entsprechend sieht der Abschnitt zur Exit-Policy in der /etc/tor/torrc wie folgt aus.:

   ExitPolicy reject *:* # no exits allowed

Anleitung zum Erstellen eines bootbaren USB-Stick als Installationsmedium unter OpenBSD

Nachdem ich nun sehr lange meine Alix mit NetBSD in der Version 4.0 betrieb und sie aber im letzten Jahr für die meiste Zeit doch nicht im Betrieb wahr, dachte ich mir, man könnte doch mal bei der Reaktivierung eine neue OS-Version installieren. Allerdings ist es mir absolut nicht gelungen, unter NetBSD einen neuen entsprechend bootfähigen USB-Stick als Installationsmedium zu erstellen.

Nach ein wenig Suchen im Web bin ich allerdings auf ein HowTo gestossen, wie man dies unter OpenBSD mit etwas knapp-eleganten Befehlen löst. Also habe ich dieses selber mit Erfolg versucht und stattdessen mal ein aktuelles OpenBSD auf mein Maschinchen geworfen.

Dieses HowTo habe hier mal übernommen und ein wenig erweitert:

 

1 Securelevel herabsetzen

Zuerst als root anmelden und in der Datei /etc/rc.securelevel den securelevel auf -1 setzen.

securelevel=-1

Danach erst einmal das System neu booten.

 

2 Ermitteln der Geometrie des Sticks

Bei dem einstecken des USB-Stick in einen Slot werden folgende Parameter angezeigt:

sd0 at scsibus1 targ 1 lun 0: <USB, Flash Disk, 3000> SCSI0 0/direct removable

sd0: 247MB, 247 cyl, 64 head, 32 sec, 512 bytes/sec, 506880 sec total

Sie teilen einem die Geometrie des verwendeten Sticks mit.

 

3 Schreiben des Master Boot Record (MBR)

# fdisk -i -c 247 -h 64 -s 32 sd0

 

4 Partitionieren des Mediums

# disklabel -f /tmp/fstab -E sd0

Um die vorhandenen Partionen sich anzuzeigen zu lassen:

>p

Nun die vorhandenen Partionen löschen:

>d a

Neue Partionen erzeugen:

>a a

offset: <enter>

size: <enter>

FS type: <enter>

mount point: /<enter>

Sichern und Beenden:

>q

 

5 Formatieren des Mediums

# newfs sd0a

 

6 Mounten des Devices

# mount /dev/sd0a /mnt

 

7 Kopieren des Kernels

# cp /bsd /mnt/

 

8 Schreiben des Partition Boot Record (PBR)

# cp /usr/mdec/boot /mnt/

# /usr/mdec/installboot /mnt/boot /usr/mdec/biosboot sd0

 

9 Mounten und kopieren der Daten der Orginal-Installations-CD

# mkdir /image

# mount -t cd9660 /dev/cd0a /image

# cp -R /image/4.8 /mnt

# cp -R /image/etc /mnt

 

10 Unmounten der Devices

# umount /mnt

# umount /image

 

11 Securelevel wieder heraufsetzen

In der der Datei /etc/rc.securelevel den Wert von securelevel=-1 wieder auf einen seiner Wahl setzen. Standardmässig ist 1 eingestellt. Am Ende das System neu starten.