W lipcu stałem się szczęśliwym posiadaczem RaspberryPI. Od tamtego momentu maszynka służy dzielnie w domu jako mały NAS, monitoring (Nagios) oraz klient bittorrenta (transmission z konsolą www). Do pełni szczęścia jeszcze brakowało jakiegoś LDAP-a albo AD.

Ale LDAP + Samba to nic nadzwyczajnego. Dlatego postanowiłem spróbować uruchomić pakiet Samba 4 na Raspberry PI. Na moim mam zainstalowaną Fedorę 17. Szkopuł w tym, że w repozytoriach nie ma gotowego pakietu dla architektury ARM. Przekompilowanie SRPM-a też niewiele dało, bo jak się okazuje Fedora nie generuje części serwerowej samby, ze względu na implementację kerberosa, który jest używany w oprogramowaniu. Dlatego na szybko pozostało tylko ściągnięcie aktualnej wtedy wersji rc1 i skompilowanie jej ze źródeł.

Aby się powiodło potrzebujemy pakietów, które zapewnia nam poniższa komenda:

yum install gcc gcc-c++ make automake autoconf ctdb-devel cups-devel docbook-style-xsl e2fsprogs-devel gawk iniparser-devel krb5-devel libacl-devel libaio-devel libattr-devel libcap-devel libuuid-devel libxslt ncurses-devel openldap-devel pam-devel perl(ExtUtils::MakeMaker) perl(Parse::Yapp) popt-devel python-devel python-tevent quota-devel readline-devel sed zlib-devel libbsd-devel

Do konfiguracji możemy użyć opcji:

./configure –with-ads –with-swat

Dzięki temu będziemy mieli kontroler domeny AD oraz panel SWAT do administracji bez użycia windowsów. Teraz najważniejsza i najdłuższa część: kompilacja. Do tego polecam użyć screen, czyli:

screen make

Teraz wciskamy Ctrl+a, d i kompilacja będzie kontynuowana w tle. Można do niej wrócić poprzez polecenie screen -r . Całość trwa około 12h, więc polecam zostawić na noc :)

Dwanaście godzin później…

Jak się skończy poprawnie to zostają nam trzy rzeczy:

1. Przywracamy screen -r i wykonujemy make install (jako root lub poprzez sudo)

2. Jak się wszystko zainstaluje poprawnie, trzeba przygotować domenę poleceniem:

/usr/local/samba/bin/samba-tool domain provision –realm=home.drazyk.com –domain=home –adminpass=’hasło administratora’ –server-role=dc

Polecenie trwa trochę czasu, ale całe szczęście dużo krócej niż kompilacja ;) Jeśli chcemy skorzystać z wbudowanego serwera dns, to musimy dodać opcję

dns forwarder = 8.8.8.8

do pliku /usr/local/samba/etc/smb.conf w części [global]. Jeśli wszystko się udało to możemy przygotować skrypt startowy (np: w /etc/init.d/samba4):

#! /bin/bash

#
# samba4 Bring up/down samba4 service
#
# chkconfig: – 90 10
# description: Activates/Deactivates all samba4 interfaces configured to \
# start at boot time.
#
### BEGIN INIT INFO
# Provides:
# Should-Start:
# Short-Description: Bring up/down samba4
# Description: Bring up/down samba4
### END INIT INFO
# Source function library.
. /etc/init.d/functions

if [ -f /etc/sysconfig/samba4 ]; then
. /etc/sysconfig/samba4
fi

CWD=$(pwd)
prog=”samba4″

start() {
# Attach irda device
echo -n $”Starting $prog: „
/usr/local/samba/sbin/samba
sleep 2
if ps ax | grep -v „grep” | grep -q /samba/sbin/samba ; then success $”samba4 startup”; else failure $”samba4 startup”; fi
echo
}
stop() {
# Stop service.
echo -n $”Shutting down $prog: „
killall samba
sleep 2
if ps ax | grep -v „grep” | grep -q /samba/sbin/samba ; then failure $”samba4 shutdown”; else success $”samba4 shutdown”; fi
echo
}
status() {
/usr/local/samba/sbin/samba –show-build
}

# See how we were called.

case „$1” in
start)
start
;;
stop)
stop
;;
status)
status irattach
;;
restart|reload)
stop
start
;;
*)
echo $”Usage: $0 {start|stop|restart|status}”
exit 1
esac

exit 0

3. Uruchamiamy sambę przez service samba4 start (jeśli stworzyliśmy skrypt startowy) i możemy dodać pierwszego użytkownika poprzez

/usr/local/samba/bin/samba-tool user add użytkownik

/usr/local/samba/bin/samba-tool user enable użytkownik

Teraz możemy dodać maszynę kliencką do domeny i później sprawdzić czy logowanie jako nowo stworzony użytkownik działa. Jeśli tak to wszystko mamy gotowe. Jak na razie sprawdziłem dodanie maszyny linuksowej poprzez winbind. 

Podsumowując za około 200 PLN mamy:

– platformę sprzętową RaspberryPI do instalacji kontrolera AD – 150 PLN

– kartę pamięci (polecam kartę SD o pojemności 8 GB i klasie 10)  – 35 PLN

– zasilacz do RaspberryPI (10W w zupełności wystarcza) – około 15 PLN

Nie musimy płacić za licencje serwerowe, klienckie i inne związane z AD od strony Microsoftu. Podstawowe funkcje AD są dostępne w sambie 4 (centralna baza użytkowników i grup, GPO, zasoby dyskowe, DNS), całość działa stabilnie. Jeśli nie potrzebujemy obsługi więcej niż 5 – 10 użytkowników to instalacja na Raspberry PI może mieć sens, głównie ze względu na bardzo małe zużycie prądu i niski koszt całości. Dla mnie to po prostu kolejny eksperyment z nowym oprogramowaniem i sposób na centralne przechowywanie profili użytkowników z domowych laptopów :)