Polska Strona Freesco

System z wirtualnymi użytkownikami

W repozytorium testing (stan na 16.09.2008) znajdują się nowe pakiety. Zestaw exim-sql, tpop3d-sql, proftpd-sql oraz mailadmin służy do wdrożenia użytkowników poczty i ftp zawartych w bazie MySQL i nie mających dostępu do systemu. Jest to dobre rozwiązanie na serwerach, które różnym osobom udostępniają usługi pocztowe i ftp, a administartor chciałby wykluczyc negatywne następstwa dla serwera wynikające z niefrasobliwości uzytkowników.

Wymieniony zestaw pakietów można zainstalować w całości lub w części. jeden administrator będzie potrzebował tylko pocztę, a inny wyłącznie ftp. Pakietem łączącym wszystkie element w całość jest mailadmin. Zawiera on łatwy panel www do administrowania wirtualnymi kontami. Można dodawać i kasować użytkowników, aktywować i dezaktywować pocztę lub ftp. Pakiet ten nie jest objęty zależnościami, ale warto go zainstalować, aby ułatwić sobie zadanie.

Instalacja pakietów
Potrzebne pakiety instalujemy poleceniem pacman -S nazwa-pakietu. Jeśli w systemie jest już exim, tpop3d lub proftpd, najpierw lepiej usunąć stare pakiety.

Konfiguracja ProFTPd z bazą użytkowników w MySQL
Po instalacji należy w katalogu /etc plik proftpd.conf.sql zmienić na proftpd.conf. W tym pliku znaleźć linię:
SQLConnectInfo  poczta@localhost poczta twoje-haslo
i wpisać własne hasło, jakie ustaliliśmy dla swojego użytkownika poczta po instalacji exima lub panelu mailadmin.
Panel Mailadmin tworzy użytkowników i nadaje im UID 5001 oraz GID 50, a także ustawia ich katalog domowy na /home/virtual/nazwa.domeny/nazwa.użytkownika.
Zatem przykładowy użytkownik Janek Kowalski mający konto pocztowe o nazwie i loginie j.kowalski@moja.domena.pl, będzie miał swój domowy katalog w /home/virtual/moja.domena.pl/j.kowalski. Tego katalogu jednak na razie nie ma. Pojawi się on dopiero, gdy użytkownikowi odblokujemy usługę FTP w panelu administracyjnym, lecz wcześniej musimy założyć użytkownika virtual, który będzie służył do wszystkich wirtualnych  kont. Wcześniej należy sprawdzić, czy mamy grupę ftp z GID 50, a jeśli nie, to też ją założyć.

[root@serwer ~]# adduser
Login name for new user []: virtual
User ID (’UID’) [ defaults to next available ]: 5001
Initial group [ users ]: ftp
Additional groups (comma separated) []:
Home directory [ /home/virtual ]
/…/
Creating new account…

Dalej wciskamy tylko enter i nie zakładamy hasła temu użytkownikowi, ponieważ nie będzie on miał żadnych praw poza własnością katalogu /home/virtual. Dla zachowania porządku wyczyścić należy wszystkie wpisy w /home/virtual – założone automatycznie tam pliki nie będą potrzebne.
Teraz kiedy użytkownik, któremu odblokowaliśmy konto FTP, zaloguje się pierwszy raz, jego katalog zostanie utworzony automatycznie.
Jeśli prawo do własnego FTP ma być związane z prezentowaniem własnej strony www przez danego użytkownika, to oczywiście trzeba jeszcze odpowiednio skonfigurować apache. Przykładowo można danemu użytkownikowi założyć wirtualnego hosta, jeśli posiada on jakąś swoją domenę. Można założyć subdomenę dla wszystkich użytkowników wirtualnych n.p users.moja.domena.pl i umiejscowić ją dyrektywa VirtualHost na katalog /home/virtual/moja.domena.pl. Wtedy strony naszego przykładowego użytkownika będą widoczne pod adresem users.moja.domena.pl/j.kowalski. dodatkowo możemy w katalogu nadrzędnym zakładać pliki .htaccess, w których ograniczymy możliwości wykonywania kodu php -np wpiszemy dyrektywę Safe_mode = On. Może mieć to znaczenie w szkole, gdzie w celach ćwiczeniowych rozdajemy konta uczniom, ale jednocześnie nie chcemy psuć bezpieczeństwa serwera.

Konfiguracja serwera smtp i pop3 (exim i tpop3d)
Konfiguracja jest prosta i nieskomplikowana. Obydwu programów można używać bez wsparcia mysql – czyli tradycyjnie (choć MySQL jest w zależnościach i musi zostać zainstalowany). Do konfiguracji exima w takim przypadku można użyć nndconf. Jeśli jednak chcemy korzystać z wersji z użytkownikami wirtualnymi, trzeba zacząć od konfiguracji pliku exim.conf.sql. Edytujemy go ręcznie przeglądając dokładnie. Nasze wpisy będą zależały od konfiguracji domeny. Jeśli nie mamy skonfigurowanego rekordu MX, to promary_hostname i qualify_domain zawierać muszą to samo. W przypadku posiadania MX w postaci mail, primary_hostname to mail.moja.domena.pl, a qualify_domain to moja.domena.pl. Trzeba też wpisać hasło do bazy w linii zawierającej hide mysql_servers = „localhost/poczta/poczta/twoje-haslo”. W pliku tym znajdziemy jeszcze wpisy MY_IP oraz MY_DOM, służą one do wpisania własnego IP oraz domeny, po to by w sekcji ACL odrzucać spamerów, którzy łącząc się z naszym serwerem przedstawiają się jako on sam (jest to opisane na stronie w osobnym artykule i można taki dodatek umieścić w pliku konfiguracyjnym każdej innej instalacji exima).
Należy jeszcze zmienić swój tzw. baner, zmienić nazwę pliku na exim.conf  i można już uruchomić exima.
W pliku tpop3d.conf.sql znajdujemy linię auth-mysql-password: twoje-haslo i wpisujemy własne, następnie w /etc/conf.d/tpop3d musimy mieć linię (zamiast standardowej):
TPOP3D_ARGS=”-f /etc/mail/tpop3d.conf.sql -p /var/run/tpop3d.pid”
i tpop3d również można uruchomić.

Konfiguracja panelu Mailadmin
Jednak poczta nie będzie działać zgodnie z naszymi oczekiwaniami, jeśli nie założymy użytkowników. Wchodzimy na naszym serwerze www do katalogu mailadmin (oczywiście przez przeglądarkę) – http://moja.domena.pl/mailadmin. Podczas pierwszego uruchomienia zostaniemy poproszeni o podanie hasła, które zostanie zapisane do bazy. Będzie to hasło administracyjne, gdy już je podamy, za chwilę pokaże nam się okno logowania. Wpisujemy login admin i wymyślone przed chwilą hasło. Teraz czeka nas zakładanie domen i kont użytkowników. Najpierw zakładamy domenę podstawową, jeśli mamy jeszcze inne to zakładamy je również (uwaga! muszą one istnieć). Potem zakładamy użytkowników. Każdy użytkownik będzie miał teraz login taki sam jak adres poczty, czyli np. j.kowalski.moja.domena.pl. Dobrze jest zlikwidować całkowicie obsługę poczty dla kont systemowych. W tym celu w /etc/mail/aliases wpisujemy:
nazwa: nowy.user@moja.domena.pl
i w ten sposób, jeśli mieliśmy już istniejące konta, poczta nadal będzie dochodzić, tak też ustalamy użytkownika, który będzie dostawał pocztę roota (np. komunikaty systemowe).

UWAGA! Pakiety są w fazie testów, więc w najbliższym czasie mogą się jeszcze zmieniać i zyskiwać nowa funkcjonalność.
Od 19.09.2008 jest mailadmin z zarządzaniem biała i czarną listą, a w eximie dodano skrypt czyszczący czarną listę.

autor: W.Trąmpczyński (Maciek) przy współpracy Bartka Czerwińskiego i Jakuba Cichockiego


Dodaj komentarz