Rozdział 3. Życie z Virtual Qmail

Spis treści
3.1. Konfiguracja
3.1.1. Zmienne środowiska
3.1.2. Konfiguracja modułu Qmail
3.1.3. Konfiguracja modułu autoryzacyjnego PostgreSQL
3.1.4. Konfiguracja modułu autoryzacyjnego JDBC
3.1.5. Konfiguracja modułu logującego PostgreSQL
3.1.6. Konfiguracja modułu logującego JDBC
3.2. Bezpieczeństwo bez ściemniania
3.2.1. Kroki mające na celu uczynić system bezpieczniejszym
3.2.2. Ograniczanie dostępu do gniazd sieciowych
3.3. Integracja z zewnętrznym oprogramowaniem
3.3.1. Incredible Hosting System
3.3.2. Omail-webmail
3.3.3. bincimap

Rozdział opisuje konfiguracje oraz użytkowanie v-q. Zawiera również część poświęconą zabezpieczaniu systemu.

3.1. Konfiguracja

V-q jest wysoce konfigurowalnym systemem. Prawie wszystkie opcje można zmienić w czasie działania.

3.1.1. Zmienne środowiska

Niektóre programy korzystają ze zmiennych środowiska, poniżej znajduje się lista zmiennych obsługiwanych przez prawie wszystkie programy.

  • VQ_HOME jest jedną z najważniejszych zmiennych. Wskazuje na katalog, w którym zainstalowany został v-q. Domyślna wartość ustalana jest podczas kompilacji, zazwyczaj jest to /var/vq.

  • VQ_ETC_DIR wskazuje katalog, w którym zapisana jest konfiguracja systemu. Domyślna wartość ustalana jest podczas kompilacji, zazwyczaj jest to /var/vq/etc.

3.1.2. Konfiguracja modułu Qmail

Pliki konfiguracyjne przechowywane są w katalogu VQ_ETC_DIR/ivq/qmail/.

Tabela 3-1. Konfiguracja modułu Qmail

PlikDomyślna wartośćOpis
autoresp_ttl60 Czas liczony w minutach przez ile autoresp będzie pamiętał, że wysłał na dany adres wiadomość. Zazwyczaj nie chcesz odpowiadać na każdą wiadomość przychodzącą spod tego samego adresu. Jeżeli chcesz aby program odpowiadał na każdą wiadomość podaj 0.
backup_deleted1 Jeżeli wartość jest większa od 0 katalog użytkownika w czasie usuwania konta zostanie zachowany.

Notatka: Katalog użytkownika i katalog VQ_HOME/deleted muszą być na tym samym systemie plików ponieważ używane jest wywołanie systemowe rename.

iauth_importname_service#Auth.iauth Instrukcja określająca w jakiś sposób można się dostać do obiektu implementującego interfejs vq::iauth. Zobacz również corba_utils.pdf.
maildirMaildir Nazwa katalogu, w którym przechowywana jest poczta użytkownika. Katalog ten tworzony jest w czasie dodawania użytkownika.
split_dom1 Ilość podziałów, którym podlega ścieżka do domeny (wartość różna większa od 1 powoduje zmniejszenie liczby katalogów na tym samym poziomie). Możesz zmieniać tą wartość tylko jeżeli nie ma w systemie żadnych zarejestrowanych domen. Jeżeli zmienisz tą wartość w innej sytuacji domeny i użytkownicy nie będą widoczni w programach.
split_user3 Ilość podziałów, którym podlega ścieżka do skrzynki użytkownika. Tak jak w przypadku split_dom możesz zmieniać tą wartość tylko w przypadku braku użytkowników.
fmode0640 Prawa dostępu ustawiane tworzonym plikom.
mmode0750 Prawa dostępu ustawiane podkatalogom katalogu Maildir.
dmode0750 Prawa dostępu ustawiane tworzonym katalogom.
user_vq Nazwa użytkownika, który uruchamia usługi. Jest ona wstawiana do qmail/users/assign.
uidUID aktualnego procesu Wartość wstawiana do qmail/users/assign.
gidGID aktualnego procesu Wartość wstawiana do qmail/users/assign.
data/var/vq Katalog, w którym Virtual Qmail przechowuje domeny i skrzynki użytkowników.
qmail_home/var/qmail Katalog, w którym zainstalowany jest Qmail.
qmode0644 Prawa dostępu ustawiane plikom tworzonym w katalogu qmail.
dep_modfixed_ports_no_imr Deployment model opisany w corba_utils.pdf. Określa kontekst działania usługi CORBA.
policysingle_thread_model Określa politykę działania servanta CORBA - wykorzystanie wątków, trwałość obiektu, etc. Zobacz corba_utils.pdf.

3.1.3. Konfiguracja modułu autoryzacyjnego PostgreSQL

Pliki konfiguracyjne zapisywane są w VQ_ETC_DIR/iauth/pgsql/.

Tabela 3-2. Konfiguracja modułu autoryzacyjnego PostgreSQL

PlikDomyślna wartośćOpis
dep_modfixed_ports_no_imr Deployment model opisany w corba_utils.pdf. Określa kontekst działania usługi CORBA.
pgsqldbname=mail password=mail user=mail Łańcuch określający informacje niezbędne do połączenia. Pamiętaj aby zmienić hasło.
pgsql_pool1 Ilość połączeń do serwera bazy danych, które są tworzone podczas startu. Możesz spróbować użyć kilku połączeń jeżeli wybrana implementacja CORBA posiada obsługę wątków i wybrana polityka zezwala na wykorzystanie jej.
policysingle_thread_model Określa politykę działania servanta CORBA - wykorzystanie wątków, trwałość obiektu, etc. Zobacz corba_utils.pdf.
read_by_sql1 Jeżeli wartość jest różna od zera funkcje read_by_sql i count_by_sql są dostępne dla klientów. W innym wypadku dostęp jest zabroniony i odwołanie się do tych funkcjii zwraca błąd.
rm_by_sql0 Jeżeli wartość jest różna od zera funkcja rm_by_sql jest dostępna dla klientów. W innym wypadku dostęp jest zabroniony i odwołanie się do funkcji zwraca błąd.

3.1.4. Konfiguracja modułu autoryzacyjnego JDBC

Wszystkie opcje przekazywane są do programu za pomocą linii poleceń, nie ma żadnych plików konfiguracyjnych. Poniżej znajduje się lista obsługiwanych opcji. Oby przekazać je do programu podaj coś podobnego:

-Dcom.foo_baz.v_q.jdbcauthd.jdbc=jdbc:postgresql://localhost/mail

Tabela 3-3. Konfiguracja modułu autoryzacyjnego JDBC

WłaściwośćDomyślna wartośćOpis
com.foo_baz.v_q.jdbcauthd.jdbcbrak Łańcuch używany do inicjalizacji sterownika JDBC.
com.foo_baz.v_q.jdbcauthd.jdbc.usermail Użytkownik używany do łączenia się z bazą danych.
com.foo_baz.v_q.jdbcauthd.jdbc.passmail Hasło używane do autoryzacji.
com.foo_baz.v_q.jdbcauthd.dsbrak Źródło danych, które zostanie wykorzystane jako baza danych. Jeżeli posiadasz skonfigurowany serwer JNDI możesz go użyć bezpośrednio. Opcja ta wyklucza się z opcją com.foo_baz.v_q.jdbcauthd.jdbc.

Notatka: Ta opcja nie została przetestowana. Na dzień dzisiejszy nie wiem jak bezpośrednio korzystać z JNDI.

com.foo_baz.v_q.jdbcauthd.dep_modfixed_ports_no_imr Deployment model opisany w corba_utils.pdf. Określa kontekst działania usługi CORBA.
com.foo_baz.v_q.jdbcauthd.policysingle_thread_model Określa politykę działania servanta CORBA - wykorzystanie wątków, trwałość obiektu, etc. Zobacz corba_utils.pdf.

3.1.5. Konfiguracja modułu logującego PostgreSQL

Pliki konfiguracyjne znajdują się w VQ_ETC_DIR/ilogger/pgsql/.

Tabela 3-4. Konfiguracja modułu logującego PostgreSQL

PlikDomyślna wartośćOpis
pgsqldbname=mail password=mail user=mail Łańcuch określający informacje niezbędne do połączenia. Pamiętaj aby zmienić hasło.
pgsql_pool1 Ilość połączeń do serwera bazy danych, które są tworzone podczas startu. Możesz spróbować użyć kilku połączeń jeżeli wybrana implementacja CORBA posiada obsługę wątków i wybrana polityka zezwala na wykorzystanie jej.
dep_modfixed_ports_no_imr Deployment model opisany w corba_utils.pdf. Określa kontekst działania usługi CORBA.
policysingle_thread_model Określa politykę działania servanta CORBA - wykorzystanie wątków, trwałość obiektu, etc. Zobacz corba_utils.pdf.

3.1.6. Konfiguracja modułu logującego JDBC

Wszystkie opcje przekazywane są do programu za pomocą linii poleceń, nie ma żadnych plików konfiguracyjnych. Poniżej znajduje się lista obsługiwanych opcji. Oby przekazać je do programu podaj coś podobnego:

-Dcom.foo_baz.v_q.jdbclogd.jdbc=jdbc:postgresql://localhost/mail

Tabela 3-5. Konfiguracja modułu logującego JDBC

WłaściwośćDomyślna wartośćOpis
com.foo_baz.v_q.jdbclogd.jdbcbrak Łańcuch używany do inicjalizacji sterownika JDBC.
com.foo_baz.v_q.jdbclogd.jdbc.usermail Użytkownik używany do łączenia się z bazą danych.
com.foo_baz.v_q.jdbclogd.jdbc.passmail Hasło używane do autoryzacji.
com.foo_baz.v_q.jdbclogd.dsbrak Źródło danych, które zostanie wykorzystane jako baza danych. Jeżeli posiadasz skonfigurowany serwer JNDI możesz go użyć bezpośrednio. Opcja ta wyklucza się z opcją com.foo_baz.v_q.jdbclogd.jdbc.

Notatka: Ta opcja nie została przetestowana. Na dzień dzisiejszy nie wiem jak bezpośrednio korzystać z JNDI.

com.foo_baz.v_q.jdbclogd.dep_modfixed_ports_no_imr Deployment model opisany w corba_utils.pdf. Określa kontekst działania usługi CORBA.
com.foo_baz.v_q.jdbclogd.policysingle_thread_model Określa politykę działania servanta CORBA - wykorzystanie wątków, trwałość obiektu, etc. Zobacz corba_utils.pdf.
com.foo_baz.v_q.jdbclogd.rm_by_sql0 Wartość różna od 0 włącza funkcję rm_by_sql.
com.foo_baz.v_q.jdbclogd.read_by_sql0 Wartość różna od 0 włącza funkcję read_by_sql.
Hosted by: BerliOS Logo SourceForge.net Logo