Download: Sysadmin

Transkrypt

Download: Sysadmin
SYSADMIN
Warsztat admina
Z poradnika administratora: imapsync
Przenosimy skrzynki
Niewielkie narzędzie imapsync ułatwia przenosiny zawartości różnego
typu skrzynek IMAP-owych na nowy
serwer pocztowy.
CHARLY KÜHNAST
W
doskonałym świecie użytkownicy nie zauważają nawet migracji na nowy system pocztowy.
Na nieszczęście, w środowisku produkcyjnym doskonałość jest rzadkim gościem. Jeden z problemów polega na tym, że proces
migracji może zresetować flagi określające,
czy dana wiadomość została przeczytana, co
prowadzi do sytuacji, w której użytkownik
zastaje skrzynkę pełną „nowych” wiadomości. W tym wypadku pomocny okazuje się
perlowy skrypt imapsync[1], który synchronizuje konta IMAP między serwerami.
Przechodzimy do praktyki
Mam stary, trzeszczący w szwach serwer
poczty o adresie IP 10.0.0.5 i nowy o adresie 10.0.0.10. Moja nazwa użytkownika na
starym serwerze brzmi charly, a na nowym
– ckuehnast. Rozpoczynamy od symulacji
procesu migracji za pomocą opcji --dry
imapsynca:
imapsync --dry --host1 10.0.0.5U
--user1 charly --password1 U
0r1and0 -- host2 10.0.0.10 U
--user2 ckuehnast --password2 U
10nd0n
Opcja --dry nakazuje imapsyncowi, by wy-
62
Listopad 2004
konał wszystkie niezbędne kroki, nie zapisując jednak danych na dysk. Jeśli okaże
się, że podczas wykonywania polecenia nie
wystąpiły błędy, mogę uruchomić powyższe polecenie bez opcji --dry, dzięki czemu
migracja zostanie faktycznie przeprowadzona.
Powyższa metoda ma jedną wadę: przekazując hasła poleceniu imapsync, narażam się na niebezpieczeństwo przechwycenia ich przez wścibskiego współużytkownika. Ktoś zalogowany w systemie mógłby
poznać je po wpisaniu polecenia ps axwww
i przejrzeniu listy procesów. Lepszym rozwiązaniem jest więc przechowanie haseł w
pliku o restrykcyjnych prawach dostępu
(chmod 400nazwa_pliku). W tym wypadku
zmieniona wersja poprzedniego polecenia
miałaby postać:
imapsync --dry --host1 10.0.0.5U
--user1 charly --passfile1 U
/etc/charly-pass --host2 U
10.0.0.10 --user2 ckuehnast U
--passfile2 /etc/ckuehnast-pass
Niestety, podczas logowania imapsync będzie musiał przekazać hasło w postaci tekstowej. Ponieważ skrypt ten nie obsługuje
jeszcze protokołu IMAP przez SSL, istnieje
www.linux-magazine.pl
niebezpieczeństwo przechwycenia hasła za
pomocą sniffera.
Spryciarz
imapsync nie przenosi całego konta IMAP,
lecz wcześniej sprawdza, czy na serwerze docelowym nie znajduje się jakaś poczta. Jeśli
ją znajdzie, dokonuje migracji różnicowej,
synchronizując oba konta. Jeżeli z jakiegoś
powodu transfer danych zostanie przerwany,
narzędzie jest uruchomiane ponownie i zaczyna od punktu, w którym przerwało.
Jeśli jesteśmy pewni, że stary serwer nie
będzie nam już potrzebny, możemy imapsyncowi przekazać opcję --delete, która usuwa wiadomości z serwera źródłowego po pomyślnym zakończeniu migracji.
Co ciekawe, autor imapsynca stworzył
również użyteczne narzędzie zwane Pop2imap [2]. Ułatwia ono migrację kont POP3
na IMAP. Jeśli potrafimy obsługiwać imapsync, Pop2imap nie powinien sprawić nam
problemu.
■
INFO
[1] imapsync:
http://www.linux-france.org/prj/imapsync/
[2] Pop2imap: http://www.linux-france.org/
prj/pop2imap/