yaifo und OpenBSD 4.2

wie installiere ich ein System remote 🙂

Man benötigt dafür ein installiertes OpenBSD 4.2 System und die entpackten BSD Sourcen unter /usr/src.
Zuerst yaifo aus dem CVS auschecken,
mkdir /usr/local/src && cd /usr/local/src
cvs -d:pserver: anonymous@yaifo.cvs.sourceforge.net:/cvsroot/yaifo login
cvs -z3 -d:pserver: anonymous@yaifo.cvs.sourceforge.net:/cvsroot/yaifo co -P yaifo
dann in das yaifo Verzeichnis wechseln
cd yaifo
und dort das „config“ File anpassen. Möchte man ein System upgraden, benötigt man von diesem System die ssh_host_* keys und das authorized_keys File des root Users aus dessen „/root/.ssh“. Diese Files einfach in das „yaifo“ Verzeichnis kopieren. Auch die IP Adresse, das Netzwerkdevice, Gateway und Nameserver sollte man in „config“ eintragen. Es gibt dort auch eine „boot.conf“, in dieser Datei könnte man auch die Umleitung auf com0 der Konsole angeben, schön für Soekris Boxen 😉
Danach einfach,
make cleanall && make obj && make
ausführen und nach kurzer Wartezeit hat man ein yaifo.rd und ein yaifo.fs. Das yaifo.fs könnte man per dd direkt auf eine CF Karte, Harddisk oder Ähnliches schreiben. Oder man kopiert die yaifo.rd auf ein laufendes System, verschiebt den Original Kernel,
cd / && mv bsd bsd_orig && mv yaifo.rd bsd
und bootet neu.
Danach ein
ssh root@eingetragene.IP.in_config und es erwartet einen das übliche
(I)nstall, (U)pgrade or (S)hell?
Danach ist eigentlich klar wo es lang geht …
Leider hat sich in der aktuellen Version ein kleiner Flüchtigkeitsfehler eingeschlichen was die ssh_host_* keys betrifft. Am Ende einer yaifo Installation wird danach gefragt ob die ssh_host_* Keys aufs Filesystem übetragen werden sollen. Dort kann man mit „yes“ beantworten, aber man muss es danach noch per Hand ausführen,

cp /etc/ssh/ssh_host_* /mnt/etc/ssh/

hostname.pppoe0 OpenBSD 4.1

Hier die aktuelle Syntax:

/etc/hostname.pppoe0

inet 0.0.0.0 255.255.255.255 0.0.0.1 pppoedev IF authproto pap authname „USER“ authkey „PASSWORD“ up
!/sbin/route add default 0.0.0.1

/etc/hostname.IF

up

SSH an bad ownership

Sollte der SSH-Login via Public-Private-Key Auth mit oben genannter Meldung fehlschlagen stimmen die Rechte auf bestimmte Verzeichnisse nicht:

# chmod go-w .ssh
# chmod 600 .ssh/authorized_keys

beheben dies:

Exchange ActiveSync durch OpenBSD Proxy

Kein Problem, wenn man sein MobilePhone mit einem Exchange-Server synchronisieren und MS nicht direkt mit dem Internet verbinden will:

# cd /var/www
# mkdir etc cert
# cd cert
# openssl req -new > cert.csr
# openssl rsa -in privkey.pem -out cert.key
# openssl x509 -in cert.csr -out cert.cert -req -signkey cert.key -days 1095
# cd ..
# vi conf/httpd.conf

LoadModule proxy_module /usr/lib/apache/modules/libproxy.so

VirtualHost *:443
ServerName host.extern.dom
SSLEngine on
SSLCertificateFile /var/www/cert/cert.cert
SSLCertificateKeyFile /var/www/cert/cert.key
ProxyRequests Off
ProxyPass /Microsoft-Server-ActiveSync https://host.extern.dom/Microsoft-Server-ActiveSync
ProxyPassReverse /Microsoft-Server-ActiveSync https://host.extern.dom/Microsoft-Server-ActiveSync
NoCache *
/virtualhost

Listen 443
Listen 80

# vi etc/hosts

InterneIpExchangeServer host.extern.dom

# mkdir -p usr/lib/apache/modules/
# cp /usr/lib/apache/modules/libproxy.so usr/lib/apache/modules/
# vi /etc/pf.conf

pass in on $ext_if proto tcp to ($ext_if) port https keep state

# pfctl -f /etc/pf.conf

Nun das Zertifikat via IE in eine x.509 codierte Datei speichern, auf das MobilePhone kopieren und dort durch Ausführen in den lokalen Zertifikatspeicher importieren. Jetzt kann das Teil sich mit dem Exchange Server durch das öffentliche Netz synchen.