Virtualmin to panel do zarządzania domentamii. Szczególnie przydatny gdy mamy wiele stron, często dodajemy nowe lub modyfikujemy aktualne.

Sama instalacja pakietu jest dość banalna, np. instalujemy czystego Debiana - bez żadnych aplikacji i serwerów. Gdy już to jest gotowe sugerują zainstalowanie screena. Następnie pobieramy instalagot virtulmina ze strony: https://www.virtualmin.com/download.html

Uruchamiamy instalator i po pewnym czasie mamy system przygotowany z serwerem WWW, bazą danych, serwerem FTP czy DNS. Wszystko co tylko jest nam potrzebne do zarządzania naszymi stronami.

I wszystko też działa pieknie, do momentu gdy okazuje się, że jest nowa wersja Debiana. Sama aktualizacja nie jest zbyt straszna, szczególnie mając dobry poradnik. Np.: http://www.linuxveda.com/2015/04/28/upgrade-from-debian-7-to-debian-8/

jednak z nowym debianem pojawia się nowa wersja PHP i kilku innych pakietów. Skupiam się na PHP, bo co jeżeli jakieś strony nie współpracują z nową wersją?

Oczywiście, powinny być dawno zaktualizowane. Ale z drugiej strony jest taka piękna wymówka jak Business continuity, czyli powód dla którego ktoś decyduje i ważności utrzymania strony/systemu w aktualnej wersji nad aktualizacją. Bo nie ma czasu lub pieniędzy na aktualizację, a strona musi działać bo przynosi zyski.

Wtedy nie pozostaje nam nic innego jak doinstalować wcześniejsze wersje PHP i uruchomić je dla tych kilku wybranych stron. Czytamy i trafiamy na artykół https://www.virtualmin.com/documentation/web/multiplephp

Brzmi pięknie, jednak jest to opis dla CentOSa, a przycież my mamy Debiana. Ale jak to się da zrobić dla jednego Linuxa - to na drugim też musi być możliwe. Więc zaczynamy szukać.

1) Wg opisu z ww. strony aby nasz panel Virtualmina zauważył nową wersję PHP musimy wybrać "System settings -> Re-check configuration". Po adresie URL widzimy że uruchamiany jest skrypt /virtual-server/check.cgi

Otwieramy więc plik

/usr/share/webmin/virtual-server/check.cgi

Następnie trafiamy do pliku php-lib.pl gdzie natrafiamy na fragment

                          $phpn ||= &has_command("php$nodotv-cgi") ||
                          &has_command("php-cgi$nodotv") ||
                          &has_command("/opt/rh/php$nodotv/root/usr/bin/php-cgi") ||
                          &has_command("/opt/rh/rh-php$nodotv/root/usr/bin/php-cgi") ||
                          &has_command("/opt/atomic/atomic-php$nodotv/root/usr/bin/php-cgi") ||
                          &has_command("/opt/atomic/atomic-php$nodotv/root/usr/bin/php") ||
                          &has_command("/opt/rh/php$nodotv/bin/php-cgi") ||
                          &has_command("/opt/remi/php$nodotv/root/usr/bin/php-cgi") ||
                          &has_command("php$nodotv") ||
                          &has_command("/opt/rh/php$nodotv/root/usr/bin/php");
                          &has_command("/opt/rh/rh-php$nodotv/root/usr/bin/php");
                          &has_command("/opt/rh/php$nodotv/bin/php") ||
                          &has_command(glob("/opt/phpfarm/inst/bin/php-cgi-$v.*"));

I już wszystko jest jasne bo okazuje się, że VIrtualmin sprawa czy plik o odpowiedniej ścieżce istnieje. Więc aby się do tego dopasować pobieamy ze strony http://php.net/downloads.php ostatnią możliwą paczkę z wybranej wersji. Musimy ją rozpakować, skonfigurować:

./configure \
--prefix=/opt/rh/php5 --enable-fpm

 zbudować i zainstalować. Czyli

make

make install

Teraz pozostaje nam odswieżyć konfigurację Virtualmina i mamy kilka wersji PHP na Debianie:

The following PHP versions are available : 5.6.20 (/usr/bin/php5-cgi), 5.4.45 (/opt/rh/php54/bin/php-cgi)

Serwery HP często wyposarzone są w kontroler Smart Array - sprzętkowy kontroler RAID.

Od dłuższego czasu nie miałem potrzeby z niego korzystać, dzisiaj jednak nastąpił znów taki dzień. Zarządzanie nim jest jednak dość specyficzne, o tyle że po czasie przerwy nie wiedziałem jak do niego się zalogować. Po 4 restarcie komputera i wypróbowaniu wszystkich kombinacji od F9 do F12 przyszedł czas na http://duckduckgo.com.

Okazało się, że nie ja jedyny miałem taki problem i szybko trafiłem na rozwiązanie: http://serverfault.com/questions/419858/cant-enter-hp-smartarray-p410-raid-orca-set-up-on-hp-proliant-dl320g6

Otóż najpierw wciskamy dowolny klawisz, co powoduje wyświetlanie dodatkowych informacji. Wtedy pojawia się opcja F8 i wejście do ROMu kontrolera RAID. Wszystko pięknie tylko tam nie ma żadnych ciekawych opcji, nie widze nawet poprawnego statusu. Na dole strony jest jednak komunikat o dodatkowej aplikacji - aplikacji pod system Windows. Wspaniale, ale co jak mamy systemu Linux zainstalowany?

Jeżeli jest to np. Debian, instalacja jest dośc prosta: https://oitibs.com/install-hp-acu-cli-on-debian/

Korzystamy z powyższego opisu i mamy  piekne narzędzia CLI.

A co nasz Debian jest zwirtualizowany? Wtedy instalacja na maszynie nic nie da bo powinna zostać dokonana na Dom0

Poniżej znadzieje więc opis jak tego dokonać na aktualnej wersji XENa czyli 6.5. Instrukcja została przygotowana na podstawie strony: http://www.penninkhof.com/2012/06/how-to-install-hp-array-config-utility-acu-on-xenserver-6/

z małymi poprawkami, jak modyfikacja URLa. Czy tez zastąpienie VIMa programem NANO.

1. Poprawne linki znajdziecie poniżej i za pomocą WGETa możecie je pobrać

wget http://downloads.linux.hpe.com/downloads/ManagementComponentPack/CentOS/5.0Server/x86_64/9.40/hpsmh-7.2.2-8.x86_64.rpm

wget http://downloads.linux.hpe.com/downloads/ManagementComponentPack/CentOS/5.0Server/x86_64/9.40/cpqacuxe-9.40-12.0.x86_64.rpm

2. Teraz czas na instalację, na XENie macie do tego RPMa

# rpm -ihv hpsmh-7.2.2-8.x86_64.rpm
ostrzeżenie: hpsmh-7.2.2-8.x86_64.rpm: Nagłówek V3 Podpis DSA: NOKEY, key ID 2689b887
Przygotowywanie...          ########################################### [100%]
Detected Xen Server 6.5.0-90233c
Created hpsmh user and group...
Adding hpsmh user to the root group
   1:hpsmh                  ########################################### [100%]

**********************************************************
* System Management Homepage installed successfully with *
* default configuration values.   To change the default  *
* configuration values,  type the following command at   *
* the root prompt:                                       *
*                                                        *
* /opt/hp/hpsmh/sbin/smhconfig                           *
*                                                        *
**********************************************************

# rpm -ihv cpqacuxe-9.40-12.0.x86_64.rpm
ostrzeżenie: cpqacuxe-9.40-12.0.x86_64.rpm: Nagłówek V3 Podpis DSA: NOKEY, key ID 2689b887
Przygotowywanie...          ########################################### [100%]
   1:cpqacuxe               ########################################### [100%]

DOWNGRADE NOTE: To downgrade this application to any version prior to 9.10.x.x, the current RPM must be manually uninstalled using the "rpm -e" command before any prior versions can be installed.

LOCKING NOTE: The locking mechanism starting with versions 9.10.X.X, are not compatible with prior versions of the applications. Therefore, mixing older and newer versions of the various applications (ACU, HPACUCLI, HPACUSCRIPTING) is not recommended.

3. Po instalacji musimy wedytować konfigurację iptables, czyli

nano /etc/sysconfig/iptables

i w 3 linijce od dołu dodajemy wpis

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 2381 -j ACCEPT

tóż przed zavlokowanie połączeń

Zostaje nam restart usługi iptables i uruchomienie serwera za pomocą:

/etc/init.d/hpsmhd start
cpqacuxe -R

Teraz już tylko korzystamy z narzędzia gdzie możemy kontrolować status systemu RAID:

https://xenserver:2381/ACU-XE/ACU.htm

 

Tendencja w systemach operacyjnych jest raczej do wykorzystywania już czegoś gotowego, do powielania dobrego rozwiązania.

Tak też MacOSX powstał na bazie Unixa, Android to Linux, bardzo popularne robi się Raspberry Pi i wiele innych rozwiązań typu embeded. Mam wrażanie że tylko Windows stoi po drugiej stronie trzymając się własnych pomysłów. Co prawda wprowadzili PowerShella, od Windows Vista mamy klasyczny katalog domowy użytkownika itp - ale dalej to nie przypomina Unixa. Co przez to traci gigan z Redmond? Moim zdaniem bardzo wiele, bo ja segregując zdjęcia korzystam tylko z DigiKam, którego próżno szukać na Windowsa (a szkoda). Mogę tak wymieniać kolejne narzędzia typowo Unixowe, tym razem jednak to Windows wygrywa.

Poza oczywistym powodem że jest też wiele aplikacji typowych pod Windowsa, jak np. Adobe Photoshop, mamy teraz w większości rozwiązań opartych na Unixie doczynienia z poważną luką w bashu. Nie dość że bash jest bardzo popularny (bo większość potwierdza że jest wygodny, przyjazny i lepszy niż sh), to nawet jak my z niego nie korzystamy to nie znaczy że nie jest używany przez innych użytkowników systemu. A może nawet usługi systemowe.

Co mogę polecić? Przeczytajcie o co chodzi http://www.vox.com/2014/9/25/6843949/the-bash-bug-explained i jak najszybciej aktualizujcie wszystko co wam wpadnie w ręce, zaczynając od komputerów, przez odtwarzacze multimedialne a kończąc na routerach.

 

Kilka tygodni temu pojawiła się nowa wersja systemu Debian. Tym razem o nazwie Jessie nawiązując do kowbojki z bajki Toy Story (podobnie zresztą jak kolejne edycję, które nawiązywały również do postaci z tej animacji).

Pierwsze wrażenia z obsługi temu systemu były bardzo pozytywne. Mam wrażenie, że zarówno uruchamianie jak i zamykanie systemu wykonuje się zdecydowanie szybciej. Informacje dla użytkowników, szczególnie z procesu uruchamiania systemu też wyglądają trochę lepiej, jakoś bardziej przejrzyste. Decydowałem się na aktualizację jednak głównie ze względu na nowe oprogramowanie, jak Apache 2.4 zamiast 2.2 które w końcu umożliwia uruchomienie Forward Secrecy i zwiększenie bezpieczeństwa stron. Nowa wersja PHP bo aż 5.6 zamiast 5.4 więc sporo nowych możliwości dla programistów. No i kilka innych dodatków. 

Skupiłem się jednak na serwerze pocztowym, czyli stara dobra konfiguracja: Postfix + Dovecot + MySQL + Postfixadmin. Ogólnie konfiguracja wygląda tak, że bazą użytkowników zajmuje się panel postfixadmin i przetrzymuje ją w bazie MySQL. Oryginalna baza jest umieszczona na serwerze bazodanowym, aby przyspieszyć zapytania korzystam z konfiguracji Master-Slave wg. opisu: https://www.digitalocean.com/community/tutorials/how-to-set-up-master-slave-replication-in-mysql
Dodawanie i edycję kont dodajemy na głównym serwerze, ten automatycznie zmiany kopiuje do serwera slave. Więc sama baza jest potrzebna tylko podczas aktualizacji danych, a do normalnej pracy serwer pocztowy korzysta z własnej kopii danych. Dzięki temu możemy w prosty sposób uruchomić kilka serwerów pocztowych korzystających z tych samych informacji o użytkownikach.

Do wysyłania poczty wykorzystywany jest Postfix, oczywiście połączenie jest zabezpieczone przez TLS i uruchamiamy submission aby umożliwić działanie klientom Orange (Orange od kilku lat blokuje połączenia na port 25 aby ograniczyć SPAM). Do odbierania używamy Dovecota, który obsługuje POP3 i IMAP, także w wersji szyfrowanej. Jednak użytkownicy POSTFIXa są autentykowany przez Dovecota.

Na początku wszystko wyglądało bardzo dobrze, ale w trakcie testów okazało się, że niektórzy klienci (np. Outlook 2003 albo Poczta usługi Windows Live) nie mogli wysyłać wiadomości. Aby sprawa była trudniejsza, np. nowszy Outlook 2013 czy Thunderbird działały bez problemu.

Sprawdziłem opcje typu:
pop3_uidl_format = %08Xu%08Xv
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
No ale POP3 nie ma nic do autentykacji użytkowników.

Po kilku godzinach analizowania konfiguracji i logów nie było innej możliwości jak przedebugowanie całego procesu. Z pomocą przyszedł mi dobrze znany opis z Redmond https://technet.microsoft.com/en-us/library/aa995718%28v=exchg.65%29.aspx
i już po wpisaniu polecenia EHLO wszystko było jasne. Serwer Dovecot w domyślenj konfiguracji nie obsługiwał metody autentykacji typu LOGIN. Wystarczyło w /etc/dovecot/conf.d/10-auth.conf zaktualizować jedną linijkę:
auth_mechanisms = plain login

I jak ręką odjął wszystko zaczęło działać. Mam nadzieję że opis ten zaoszczędzi Wam trochę czasu i przyda się przy aktualizacji Debiana, Ubuntu lub Dovecota na innym systemie.