Search

Visitors Counter

TodayToday64
YesterdayYesterday70
This_WeekThis_Week265
This_MonthThis_Month1354
All_DaysAll_Days155648
Your_IP 3.233.242.204

Imapsync to wspaniałe narzędzie pozwalające na migrację poczty za pomocą protokołu IMAP. 

Chcąc zmigrować wiele kont dobrze jest wykorzystać w tym celu skrypt, pozwalający na automatyzację tego procesu.

Plik skryptu pozwalający na skopiowanie wiadomości do serwerów googla wygląda następująco:

 

echo

{ while IFS=';' read  u1 p1 fake

    do 

        { echo "$u1" | egrep "^#" ; } > /dev/null && continue

        echo "==== Start imapsync user $u1 ===="

      imapsync \

--host1 stary.serwer.pocztowy.com     \   #nasz stary serwer pocztowy - adres imap

        --user1 "$u1" \  #użytkownik pobrany z pliku plik.txt do starego serwera

        --password1 "$p1" \  #hasło pobrane z pliku plik.txt do starego serwera

        --ssl1\  #szyfrowanie połączenia ze starym serwerem 

        --host2 imap.gmail.com \  #adres serwerów google

        --user2 "$u1" \  #użytkownik pobrany z pliku plik.txt do serwera google

        --password2 "$p1" \  #hasło pobrane z pliku plik.txt do serwera google

        --ssl2 \  #szyfrowanie połączenia z nowym serwerem

        --maxsize 25000000 \  #limit wielkości wiadomości - 25MB

        --automap   \  #mapuje nazwy folderów lokalnych

        --expunge1  \  #nie synchronizuje elementów usuniętych

        --addheader \  #dodaje nagłówki wiadomością których im brakuje

        --exclude "\[Gmail\]$"      \   #zapobiega powstaniu błędu "Could not examine: 43 NO [NONEXISTENT] Unknown Mailbox: [Gmail] (now in authenticated state) (Failure)"

        --regextrans2 "s/[ ]+/_/g"  \  #zamienia spację których google nie obsługuje na podkreślnik

        --regextrans2 "s/['\^\"\\\\]/_/g" 

"$@"  

        echo "==== Koniec imapsync user $u1 ===="

        echo

    done 

} < plik.txt

 

Czyta on z pliku o nazwie plik.txt kolejne nazwy użytkowników oraz ich hasła.

Plik ten powinien wyglądać następująco:

 

Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.;hasloNowak;

Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.;hasloKowalski;

Imapsync to narzędzie pozwalające na przeprowadzenie migracji danych pocztowych pomiędzy serwerami wspierającymi protokół IMAP. 

Aby je zainstalować na Ubuntu w pierwszej kolejności aktualizujemy bazę pakietów i instalujemy wymagane pakiety

sudo apt-get install makepasswd rcs perl-doc libio-tee-perl git libmail-imapclient-perl libdigest-md5-file-perl libterm-readkey-perl libfile-copy-recursive-perl build-essential make automake libunicode-string-perl

Jeżeli w naszym systemie nie mamy pakiety GIT to dodatkowo instalujemy

apt-get install git-core git-doc git-svn git-gui gitk

Gdy przebrniemy przez powyższe kroki przechodzimy do instalacji imapsync

git clone git://github.com/imapsync/imapsync.git

Przed wykonaniem make install potrzebujemy jeszcze kilka pakietów o które instalator sam zapyta

W moim przypadku dostałem informację:

What you have to do before using imapsync:

Install Unicode/String.pm
Install Perl module AuthenL:NTLM
Install Perl module Data:Uniqid
Install Perl module JSON:WebToken
Install Perl module Readonly
Install Perl module Test::MockObject
Install Perl module Test::Pod

Więc wykonałem:

sudo cpan

cpan> cpanm install "Authen::NTLM Data:Uniqid JSON:WebToken Readonly Test::MockObject Test::Pod"

Po tym wszystkim pozostało 

cd imapsync
mkdir dist
sudo make install

Gdy wszystko przebiegnie dobrze sprawdzamy wersję zainstalowanego oprogramowania

imapsync -v

i zaczynamy synchronizację

imapsync --host1 server1 --user1 user1 --password1 user1password --ssl1 --host2 server2 --user2 user2 --password2 user2password --ssl2

Dziś spotkałem się z problem braku możliwości włączenia panelu sterowania. Przy próbie wejścia elementy panelu pojawiały się tylko na chwilę.

W podglądzie zdarzeń odczytałem "Ścieżka modułu powodującego błąd: C:\WINDOWS\system32\IDTNC64.cpl" 

Po usunięciu programu programu IDT audio problem znikł. 

Aby wejść do przystawki dodaj usuń programy z panelu sterowania możemy wywołać polecenie "control appwiz.cpl"

Aby dodać nasz system linux do domeny Windows, przede wszystkim instalujemy pakiety

ntpdate #odpowiedzialny za synchronizację czasu
krb5-user #pakiet odpowiedzialny za uwierzytelnianie przy użyciu systemu MIT Kerberos
libpam-krb5 #moduł do pakietu krb5 potrzebny do uzyskiwania ticketów
samba #serwer plików i drukarek
libpam-winbind #moduł do pakietu samba potrzebny do uzyskiwania ticketów
libnss-winbind #pakiet samby do wyszukiwania użytkowników, grup i nazw hostów w systemie.
winbind #pakiet odpowiedzialny za odwzorowanie nazw użytkowników, grup, hostów

 

Następnie modyfikujemy plik /etc/krb5.conf

Powinien on wyglądać następująco:

[libdefaults] #ustawienia używane przez bibliotekę Kerberos V5

        default_realm = NAZWA.DOMENY  #definiuje domyślną domenę

        #ticket_lifetime = 24000 #długość ważności ticketu w sekundach

        #forwardable = yes

         #dns_lookup_kdc = true #wskazuje czy rekordy DNS SVR powinny być użyte do lokalizaowania kontrolera domeny i innych serwerów

 

         #dns_lookup_realm = false

[realms] #informacje kontaktowe do kontrolerów domeny

        NAZWA.DOMENY = {

                kdc = nazwa_hosta_kontroler_domeny1 #wskazanie kontrolera domeny

                kdc = nazwa_hosta_kontroler_domeny2 #wskazanie drugiego kontrolera domeny

                default_domain = nazwa_hosta_kontroler_domeny1 #wskazanie domyślnego kontrolera domeny

        }

[domain_realm]  #mapowanie nazwy hostów do dziedzin Kerberos

        .nazwa.domeny = NAZWA.DOMENY

        nazwa.domeny = NAZWA.DOMENY

 

Ważnym jest aby w odpowiednich miejscach nazwę domenową wpisać wielkimi literami. W przeciwnym wypadku w następnym kroku, po wydaniu polecenia kinit otrzymamy komunikat:

"kninit: KDC reply did not match expectations while getting initial credentials"

 

Inicjalizujemy naszą konfigurację poprzez żądanie

sudo kinit -V Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.

Weryfikujemy poprawność żądania poleceniem

sudo klist

 Dodajemy komputer do domeny poleceniem

sudo net ads join -k

 

Zmiana portu nasłuchu w rejestrze:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStation\RDP-Tcp - klucz PortNumber - wartość dziesiętna numer portu

Zmiana adresu IP GroupWise na serwere Linux Suse

 

Zmianę adresów zaczynam od uruchomienia GroupWise Install. Wybieramy opcję "Upgrade an Existing Domain or Post Office to GroupWise 2014 R2"
Zmieniamy adres IP MTA dla Primary Domain oraz Post Office. Klikamy Next wpisujemy hasło administratora, Next i Finish
!!Uwaga - jeżeli adres IP dla Post Office jest zdefiniowany w pliku startowym POA należy dodać średnik przed linią zaczynającą się od --ip. W przeciwnym wypadku kreator nie zmieni adresu!!
W moim przypadku ścieżka do pliku startowego POA to /opt/gw/po/po.poa

 

Następnie zmieniamy adresy serwera Suse. W tym celu edytujemy pliki

 

/etc/sysconfig/network/ifcfg-eth0 odpowiedzialny a adres IP serwera

BOOTPROTO='static'
ONBOOT='yes'
BROADCAST='192.168.0.255'
ETHTOOL_OPTIONS=''
IPADDR='192.168.0.2'
MTU=''
NAME=''
NETMASK='255.255.255.0'
NETWORK='192.168.0.0'
REMOTE_IPADDR=''
STARTMODE='auto'

 

/etc/sysconfig/network/routes odpowiedzialny na bramę domyślną (gdy nie ma pliku to trzeba go utworzyć)

default 192.168.0.1 dev eth0

 

/etc/resolv.conf odpowiedzialny za serwery dns

nameserver 8.8.8.8
nameserver 8.8.4.4

 

/etc/hosts odpowiedzialny za mapowanie adresu IP do nazwy hosta

127.0.0.1 localhost
192.168.0.2 groupwise

 

/var/opt/novell/groupwise/webaccess/webacc.cfg odpowiedzalny za GroupWise WebAccess

Provider.SOAP.1.ip=192.168.0.2
Provider.DVA.1.ip=192.168.0.2
SOAP.Poll.host=192.168.0.2

 

Po tych krokach restartujemy serwer, uruchamiamy GroupWise Administration Console i sprawdzamy

Message Transfer Agents / Agent Settings - TCP/IP Address 192.168.0.2
Internet Agents / GroupWise / Agent Settings - TCP/IP Address 192.168.0.2
Post Office Agents / Agent Settings - TCP/IP Address 192.168.0.2

 

W grudniu, po aktualizacji certyfikatu Start SSL pojawił się problem z produktami firmy Apple. Na stronie tej firmy czytamy:

"Produkty Apple będą blokować certyfikaty głównych urzędów certyfikacji WoSign i StartCom, jeśli data „Not Before” (Nie wcześniej niż) to 00:00:00 1 grudnia 2016 r. czasu GMT/UTC lub późniejsza."

Blokowanie certyfikatów spowodował brak możliwości odbierania poczty na urządzeniach mobilnych.

Postanowiłem więc zmienić dostawcę zabezpieczeń SSL. Wybór padł na  Let's Encrypt. Podobnie do StartSSL certyfikat jest darmowy. Niestety jego okres ważności jest krótki i trwa tylko 3 miesiące. Wiąże się to z częstszą koniecznością jego aktualizacji.

Aby zainstalować ten certyfikat na sewerze Zimbry wykonujemy następujące czynności:

Jako user zimbra zatrzymujemy usługi:

  • zmproxyctl stop
  • zmmailboxdctl stop

Następnie (jeżeli nie mamy instalujemy git (apt-get install git)), instalujemy letsencrypt poprzez polecenia 

Uruchamiamy zainstalowany program

  • ./letsencrypt-auto certonly --standalone

Po uruchomieniu programu włączy się konfigurator, w którym zostaniemy zapytani o adres email przydatny w przypadku zgubienia klucza. Kolejnymi pytaniami będzie akceptacja umowy użytkowania oraz domena na którą chcemy wystawić certyfikat. Możemy podać kilka, rozdzielając je za pomocą przecinków lub spacji. Po tych operacjach certyfikat zostanie wygenerowany i ściągnięty na dysk. 

Certyfikat znajdziemy w katalogu /etc/letsencrypt/archive/[domena którą podaliśmy w kreatorze]

Powyższy katalog zawiera 4 pliki - cert.pem (nasz certyfikat), chaim.pem (ścieżka autoryzacji), fullchain.pem (połączenie cert.pem + chaim.pem), private.pem (klucz prywatny)

Brakuje jednak certyfikatu głównego. Potrzebujemy go dopisać do pliku chaim.pem. W tym celu edytujemy plik. Po linii -----END CERTIFICATE----- dopisujemy

-----BEGIN CERTIFICATE-----
MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
-----END CERTIFICATE-----

Certyfikat root jest ważny do roku 2021.

Przed docelową instalacją sprawdzamy, czy nasz cerfyfikat jest poprawny

  • mkdir /opt/zimbra/ssl/letsencrypt
  • cp /etc/letsencrypt/live/[nasza domena]/* /opt/zimbra/ssl/letsencrypt/
  • chown zimbra:zimbra /opt/zimbra/ssl/letsencrypt/*
  • ls -la /opt/zimbra/ssl/letsencrypt/
  • /opt/zimbra/bin/zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem 

Ostatnie polecenie wykonujemy w zależności od wersji Zimbry jako zimbra user (gdy wersja>=8,7) lub jako root (gdy wersja<=8,6)

Jako wynik poleceń powinniśmy otrzymać:

Certificate (cert.pem) and private key (privkey.pem) match.
Valid Certificate: cert.pem: OK

Gdy tak się stało możemy przystąpić do wdrożenia certyfikatu. W pierwszej kolejności wykonujemy kopię folderu zawierającego obecny certyfyfikat:

  • cp -a /opt/zimbra/ssl/zimbra /opt/zimbra/ssl/zimbra.$(date "+%Y%m%d")

Kopiujemy klucz prywatny do odpowiedniego folderu

  • cp /opt/zimbra/ssl/letsencrypt/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key

Wdrażamy certyfikat

  • /opt/zimbra/bin/zmcertmgr deploycrt comm cert.pem chain.pem 

Restartujemy usługi (zmcontrol restart) i uruchamiamy przeglądarkę aby sprawdzić poprawność instalacji.

postqueue -p /lista wszystkich wiadomości w kolejce

postsuper -d (Queue ID) /usuwa wiadomość o danym ID

postsuper -d ALL /usuwa wszystkie wiadomości z kolejki

postsuper -h (Queue ID) /zatrzymanie wiadomości w kolejce

postsuper -H (Queue ID) /przeniesienie wiadomości z powrotem do menadżera kolejek

postsuper -r ALL /zwraca wiadomości z powrotem do kolejki

postqueue -f /wypycha wiadomości

postqueue -s domain.com /wypycha wiadomości domeny

postcat -q /wyświetlanie zawartości kolejki

 

mailq -q /lista wiadomości w kolejce do obsłużenia

tail -f /var/log/maillog /log postfix-a

/etc/sysconfig/network

DHCP

BOOTPROTO='dhcp'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR=''
MTU=''
NAME=''
NETMASK=''
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='auto'
DHCLIENT_SET_DEFAULT_ROUTE='yes'

STATIC

BOOTPROTO='static'
ONBOOT='yes'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR='192.168.0.2'
MTU=''
NAME=''
NETMASK='255.255.255.0'
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='auto'

 

 /etc/resolv.conf

nameserver 8.8.8.8
nameserver 8.8.4.4

 

Jak uruchomić menadżer urządzeń z prawami administratora będąc zalogowany jako użytkownik domeny? Po otwarciu go z pozycji panel sterowania / system otrzymujemy informację, że użytkownik nie ma wystarczających praw. Nie wyświetla się okno w którym możemy te prawa zwiększyć poświadczeniami administracyjnymi. Aby nie trzeba było się przelogowywać, można uruchomić konsolę z prawami administratora a następnie wydać polecenie devmgmt.msc

Przy okazji inne aplikacje z panelu sterowania

Accessibility Options control access.cpl

Dodaj sprzęt control sysdm.cpl add new hardware

Dodaj/usuń programy control appwiz.cpl

Data i godzina control timedate.cpl

Ekran control desk.cpl

FindFast control findfast.cpl

Czcionki control fonts

Ustawienia Internetowe control inetcpl.cpl

Joystick Properties control joy.cpl

Klawiatura control main.cpl keyboard

Microsoft Exchange (Windows Messaging) control mlcfg32.cpl

Microsoft Mail Post Office / Poczta control wgpocpl.cpl

Ustawienia modemu control modem.cpl

Mysz control main.cpl

Dźwięki i urządzenia audio control mmsys.cpl

Połączenia sieciowe control netcpl.cpl

Zabezpieczenia control password.cpl

Karty PC control main.cpl pc card (PCMCIA)

Power Management (Windows 95) control main.cpl power

Opcje zasilania control powercfg.cpl

Drukarki i faxy control printers

Opcje regionalne control intl.cpl

Skanery i aparaty fotograficzne control sticpl.cpl

Dźwięki i urządzenia audio control mmsys.cpl sounds

System control sysdm.cpl