m4-1.4.16

GNU M4 jest implementacją tradycyjnego UNIXowego procesora makr. Jest w większości kompatybilny z SRV4, ale posiada pewne rozszerzenia (np. przekazywanie więcej niż 9 pozycjonowanych parametrów do makr). GNU M4 posiada również wbudowane funkcje do włączania plików, wykonywania poleceń powłoki, robienia arytmetyki itp. Jednym z największych beneficjentów GNU M4 jest projekt GNU Autoconf.

Konfiguracja i kompilacja przy użyciu skryptu (w załączeniu):

tar-1.26

Solarisowy tar ma trochę braków w stosunku do programu GNU Tar. Na przykład nie rozpoznaje skompresowanych archiwów. Warto więc zainstalować jego odpowiednika GNU. Ja dla rozróżnienia dodaję do GNU Tar przedrostek 'g’ (opcja –program-prefix=g przy kompilacji).

Konfiguracja i kompilacja z użyciem skryptu (w załączeniu):

Automatyczne usuwanie i tworzenie nowych snapshotów

Oto kolejny jednowierszowiec do usuwania starych i tworzenia nowych snapshotów. Już bez rozwodzenia się po co, jak i dlaczego tak. Można dopisać do crona.


# for a in `zfs list -t snapshot -H -o name`; do
    zfs destroy $a && zfs snapshot `echo $a|sed "s/@.*//"`@`date +%Y%m%d`;
done

Uwaga: Tworzony jest tylko jeden snapshot i tylko dla tych filesystemów, dla których były już utworzone wcześniej snapshoty, które zostaną najpierw usunięte.

Usuwanie starych i tworzenie nowych snapshotów ZFS

Niedawno pisałem o masowym tworzeniu snapshotów ZFS. Tam robiłem to rekursywnie dla całej puli używając zpool list -H i przekierowując wyjście do zfs snapshot -r. Tym razem zrobimy to inaczej.

Jeśli mamy stare snapshoty to możemy je wyświetlić poleceniem:


# zfs list -t snapshot
NAME                                   USED  AVAIL  REFER  MOUNTPOINT
dappserv@20101130                         0      -  28.0K  -
dappserv@20110107                         0      -  28.0K  -
dappserv/etc@20101130                 61.3K      -   382K  -
dappserv/etc@20110107                     0      -   382K  -
dappserv/var@20101130                  170M      -  2.03G  -
dappserv/var@20110107                 1.07M      -  2.15G  -
...

Masowe snapshoty ZFS

ZFS to taki fajny filesystem, w którym szybko można zrobić migawkę (snapshot).

Na przykład mając ZFS o nazwie tank, robimy snapshot o nazwie snap1:


# zfs snapshot tank@snap1

Załatwione, operacja szybka i bezbolesna. Ale jak w systemie jest kilka zpool i na każdej kilka filesystemów ZFS to już trzeba by się trochę naklepać. Ja to załatwiam takim jednowierszowcem:


# for a in `zpool list -H -o name`; do zfs snapshot -r $a@20110109; done

Ta instrukcja spowoduje rekursywne utworzenie snapshotów dla wszystkich zpool w systemie, oczywiście ciąg 20110109 jest przykładowy i reprezentuje aktualną datę.

Instalacja skanera AV/AS do poczty

Instalacja skanowania Antywirusowego (AV) i Antyspamowego (AS) do systemu poczty

Przełączamy się na roota i insalujemy potrzebne oprogramowanie:


sudo -i
aptitude update
aptitude install amavisd-new
aptitude install clamav-daemon
aptitude install spamassassin

SpamAssassin jest domyślnie wyłączony, o czym nas informuje przy instalacji, aby go włączyć należy wyedytować plik /etc/default/spamassassin i ustawić:


vi /etc/default/spamassassin
ENABLED=1
CRON=1

Usuwanie poczty z kolejki

Czasem trzeba wyrzucić kilka maili z kolejki albo wykonać jakąś inną operację wymagającą złożenia kilku poleceń do kupy.

Dla starych wyjadaczy to żaden problem i pewnie zrobiliby to bardziej optymalnie, ale ja właśnie postanowiłem rozpocząć cykl pod tytułem „Jednowierszowce„, gdzie będę wrzucał jednowierszowe skrypty shellowe (i inne), które mam nadzieję będą przydatne i zrozumiałe dla szerszego grona użytkowników.

Konfiguracja dostarczania poczty w oparciu o LDAP

Ostatnio pisałem o konfiguracji uwierzytelniania użytkowników w katalogu LDAP aby mogli odbierać i wysyłać pocztę. Teraz czas na konfigurację Postfixa aby tę pocztę dostarczał do właściwych domen i skrzynek.

Jeśli kompilujecie/instalujecie Postfixa samodzielnie, to należy pamiętać o wkompilowaniu wsparcia dla LDAP oraz wskazaniu ścieżki do bibliotek LDAP. Ja pójdę na łatwiznę i zrobię to na Ubuntu:


$ sudo -i
# apt-get install postfix-ldap

To dołoży nam do postfixa wsparcie dla map typu ldap:

Teraz możemy zabrać się za konfigurację serwera Postfix:


# cd /etc/postfix
# vi main.cf

Konfiguracja uwierzytelniania poczty w LDAP

Zakładam, że Dovecot i Postfix już działają i można odebrać i wysłać pocztę logując się na użytkownika systemowego (patrz poprzednie wpisy). Nadszedł zatem czas na uruchomienie uwierzytelniania w naszym katalogu LDAP (patrz konfiguracja LDAP).

Wykorzystanie LDAPa do uwierzytelniania użytkowników pozwala na elastyczne zarządzanie hostingiem poczty i nie tylko. LDAP jest już przyjętym standardem w zakresie uwierzytelniania i autoryzacji, praktycznie każde szanujące się oprogramowanie wymagające uwierzytelnienia ma wsparcie dla tego protokołu.

Zaczniemy od serwera POP3/IMAP, który również dostarcza mechanizmu uwierzytelniania dla Postfixa czyli od Dovecota:


/usr/bin/sudo -i
cd /etc/dovecot
vi dovecot-ldap.conf

W tym pliku musimy zdefiniować parametry serwera lub serwerów LDAP, metodę uwierzytelnienia oraz filtry i atrybuty, wymienię te, które trzeba ustawić:


hosts = localhost
auth_bind = yes
base = o=hosting,dc=example,dc=com
scope = subtree
user_attrs = homeDirectory=home
user_filter = (&(objectClass=mailUser)(mail=%u))
pass_attrs = mail=user,userPassword=password
pass_filter = (&(objectClass=mailUser)(mail=%u))

Kowersja schematu LDAP do LDIF

Potęgą usługi katalogowej LDAP jest możliwość definiowania własnych atrybutów, klas obiektów, reguł itp. i grupowania ich w tzw. schematy, które można dodawać do konfiguracji.

Na dzień dzisiejszy jednak większość schematów, które znajdziecie w sieci jest zorganizowana w bloki zawierające definicje atrybutów i klas obiektów, wygląda to mniej więcej tak:

definicja typu atrybutu:


attributetype ( 1.3.6.1.4.1.32349.1.2.2.9 NAME 'accountStatus'
    DESC 'The status of a user account: active, disabled'
    EQUALITY caseIgnoreIA5Match
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
    SINGLE-VALUE )