Bądź na bieżąco - RSS

Dovecot, Postfix, IMAP – Operation not permitted

19 lipca, 2014 | Brak Komentarzy | Kategoria: Linux, Porady

ThuderbirdDzisiaj krótki, wakacyjny wpis dotyczący błędu związanegoz konfiguracją obsługi IMAP za pomocą Dovecot. W tandemie ze standardowo skonfigurowanym Postfixem, gdy zdecydowaliśmy się przechowywać pocztę w formacie mbox w katalogu /var/mail/ przy próbie pobrania poczty za pomocą dowolnego programu pocztowego (np. Thunderbird) w pliku /var/log/mail.log mogą pojawić się następujace błędy:

 

dovecot: imap(...):
Error: chown(...) failed: Operation not permitted
Error: mkdir(...) failed: Operation not permitted
Error: fchown(...) failed: Operation not permitted
Error: file_dotlock_create(...) failed: Permission denied

Jest to związane z niewystarczającymi uprawnieniami w katalogu użytkownika. Zgodnie z dokumentacją powinniśmy zajrzeć na stronę z opisem roziwązania http://wiki2.dovecot.org/Errors/ChgrpNoPerm. Ponieważ dla mnie obydwa omawiane tam rozwiązania wyglądają niedobrze, proponuję zastosować w pliku /etc/dovecot/conf.d/10-mail.conf zastosować następującą łatkę, w miejsce linijki:

mail_location = mbox:~/mail:INBOX=/var/mail/%u

podstawić:

mail_location = mbox:~/mail/mailboxes:INBOX=/var/mail/%u:→
DIRNAME=mBoX-MeSsAgEs:INDEX=~/mail/index:CONTROL=~/mail/control

Sprawdziłem… pomaga. Tak jak obiecałem – krótko i na temat136.

MG

Tagi: , , , , , ,

Konfiguracja blacklist za pomocą Shorewalla – ciąg dalszy

21 czerwca, 2014 | Brak Komentarzy | Kategoria: Linux, Porady

Czarna listaDawno, dawno temu opublikowałem wpis na temat blokowania ruchu przychodzącego za pomocą czarnej listy w Shorewallu. Artykuł kończy się adresem pliku blacklist z listą podsieci, z których pochodzi najwięcej ataków. Minęło dużo czasu i adres tej aktualizowanej co tydzień listy stał się nieaktualny. Obecnie plik można pobrać z pod adresu:

https://dl.dropboxusercontent.com/u/545869/Config/blacklist

Jak pisałem jest to gotowy do wykorzystania spis. W zasadzie wystarczy umieścić go /etc/shorewall. Jednak tym razem chciałem pokazać jak tworzyć samemu podobne listy. Generalnie wystarczy w tym celu uważna analiza logów systemowych w poszukiwaniu prób włamania. Przykładowy wpis wygląda tak:

Jun 21 06:22:13 server sshd[9820]: pam_unix(sshd:auth): →
authentication failure; logname= uid=0 euid=0 tty=ssh →
ruser= rhost=32.96.49.39  user=root
Jun 21 06:22:15 server sshd[9820]: Failed password for → root from 32.96.49.39 port 1061 ssh2

Jak łatwo zauważyć adres IP zdalnego hosta (rhost) jest jawny. Można zatem wykorzystać tę informacje do jego zablokowania. Można też posunąć się dalej i zablokować całą podsieć. Jak zamienić pojedynczy adres na adres podsieci? Po pierwsze trzeba zainstalować narzędzie whois. Instalacja w Debianie wygląda następująco:

apt-get install whois

Po drugie warto znaleźć dobry, ogólnodostępny serwer whois. Mogę z czystym sumieniem polecić serwer whois.cymru.com. Zwraca precyzyjne odpowiedzi, więc nie spowoduje, że przypadkiem zablokujemy dostęp dla połowy sieci. Polecenie whois jest dosyć proste w obsłudze:

whois -h whois.cymru.com -v 32.96.49.39

W odpowiedzi, w kolumnie BGP Prefix znajdziemy adres podsieci w notacji CIDR. Tak uzbrojeni możemy rozpocząc prace nad własną czarną listą.

MG

Tagi: , , , ,

Heartbleed, Shorewall i czarne listy

19 kwietnia, 2014 | Brak Komentarzy | Kategoria: Linux, Porady

SystemDzisiaj, krótki świąteczny wpis dla adminstratorów codzienie zmagających się ze skryptami skanującymi porty naszych serwerów. Rozgłos jaki zyskał Heartbleed, w rzeczy samej jedna z najpoważniejszych luk w bibliotece OpenSSL, zaowocował zwiększoną aktywnością tzw. script-kiddies, którzy natychmiast ruszyli do 'ataku’. W logach systemowych zaczęły pojawiać się w dużej ilości ostrzeżenia dotyczące błedów sesji TLS. Niezależnie o typu usługi tj. SMTPS, POP3S, HTTPS, każda może zostać zaatakowana. Jak zauważyłem większość tego typu starań ma swoje źródła w państwach powszechnie znanych z sieciowych parktyk siłowych, mam na myśli metodę brute-force. Znudzony nieustannym zalewaniem informacją o nieudanych połączeniach postanowiłem pójść na całość i dosłownie wyciąć ruch pochodzący z najbardziej aktywnych sieci IP. W jaki sposób? Z pomocą przychodzi jak zwykle niezawodny Shorewall, który znacznie upraszcza zarządzanie iptables. W tym przypadku w pliku blacklist podajemy adres sieci w notacji CIDR bez żadnych opcji, np. po prostu:

10.10.10.0/24

W ten sposób blokujemy cały ruch. Trzeba jednak pamiętać, żeby przypadkiem nie odciąć swoich użytkowników. Zatem ostrożnie!

MG

Tagi: , , ,

Partition 1 does not end on cylinder boundary

15 marca, 2014 | Brak Komentarzy | Kategoria: Linux, Porady

HDD

 

 

 

Tym razem chciałbym opisać błąd, który wprawił mnie w niemałe zdumienie. Na jednym z serwerów z Debianem macierz RAID1 odmówiła posłuszeństwa. Jeden z dysków należało wymienić. Po zainstalowaniu nowego, zabrałem się za przygotowanie partycji z pomocą narzędzia fdisk. Jednak po wyświetleniu listy partycji na pierwszym dysku okazało się, że zawiera ona błędy:

fdisk -l /dev/...
...
Partition ... does not end on cylinder boundary.

Było to o tyle dziwne, że dysk pracował prawidłowo i macierz pracowała prawidłowo. Nigdy nie otrzymałem komunikatów o błędach, na co jestem szczególnie wyczulony! Pobieżne przejrzenie materiałów w sieci również niewiele pomogło. Dopiero po jakimś czasie trafiłem na wyjaśnienie. Wbrew pozorom to nie jest błąd! W niektórych implementacjach fdisk uruchamia się z domyślnie włączoną opcją kompatybilności z DOS. Obecnie zaś praca z DOS chyba zdarza się już bardzo rzadko. Dlatego jeśli widzimy komunikat jak w tytule należy użyć opcji:

OPTIONS
[...]
       -c     Switch off DOS-compatible mode. (Recommended)
[...]

Wówczas wynik wyświetlenia listy partycji będzie już prawidłowy. Zatem powinno być np.:

fdisk -l -c -u /dev/sda

Obecnie rzecz jasna powoli zastępujemy fdisk narzędziem parted (ze względy na obsługę dysków powyżej 2TB). Jednak jeśli ktoś przez lata używał fdiska…

Tagi: , ,

Konfiguracja pakietu vacation dla konta z aliasami pocztowymi

15 lutego, 2014 | Brak Komentarzy | Kategoria: Linux, Porady

WakacjeWłączanie autoodpowiedzi w czasie urlopu stało się obecnie praktyką powszechną. Większość największych systemów pocztowych oferuje taką funkcję. Co mają jednak zrobić administratorzy dedykowanych serwerów pocztowych, przygotowanych na potrzeby własne lub firmy? Jeśli korzystają z Linuksa, który jest bardzo wygodnym i elastycznym systemem operacyjnym dla serwera poczty, na pewno prędzej czy później trafią na pakiet vacation. Nie chcę się w tym momencie skupiać na jego konfiguracji, gdyż jest ona dosyć prosta, dobrze opisana oraz podparta szczegółowymi przykładami dostępnymi w sieci. Chciałbym natomiast omówić jeden z przypadków konfiguracji, z którym ostatnio się zetknąłem.

Zawyczaj użytkownicy serwera pocztowego korzystają z jednej nazwy konta pocztowego. Jednak czasami trzeba administrować w środowisku, nazwijmy to hmm… mocno eksperymentalnym, gdzie użytkownicy potrafią zażądać 2, 3 i więcej aliasów. Pakiet vacation standardowy obsłuży tylko jeden. Co zrobić aby można było ustawić automatyczną odpowiedź dla kilku aliasów przypisanych do jednego użykownika? W przypadku konfiguracji w wykorzystaniem pliku .forward trzeba skorzystać z opcji – a, która oznacza nie mniej, nie więcej jak odpowiadaj także na wiadomości dla aliasów konta pocztowego. Przykładowy wpis dla dwóch dodatkowych aliasów w pliku .forward będzie miał postać:

\nazwa_konta, "|/usr/bin/vacation -a alias1 alias2 nazwa_konta"

Rzecz jasna nie odkryłem tutaj Ameryki, wszystko jest opisane na stronach man, ale z drugiej strony kto czyta manuale…

MG

 

Tagi: , , , ,

Pomiar szybkości łącza internetowego

18 stycznia, 2014 | Brak Komentarzy | Kategoria: Android, Linux, Porady, Windows

HTML 5Każdy kto miał do czynienia z administrowaniem sieciami komputerowymi, świadczył usługi lub po prostu trochę zna się na rzeczy i pomaga znajomym, na pewno spotkał się ze stwierdzeniem „mój Internet wolno działa…”. Na dobrą sprawę powodów takiego stanu rzeczy może być wiele. Począwszy od wirusa na komputerze klienta a skończywszy na problemach z łaczem dostępowym. Nie mniej aby przejść szybko do działania, typowy użytkownik zaczyna mierzyć „prędkość Internetu”. Metod pomiaru jest bardzo dużo. W sieci można znaleźć multum programów służących w tym celu. Wystarczy zainstalować i możemy korzystać. Istnieją rówież strony z technologią Flash lub Java, które obiecują wiarygodny pomiar pasma. Osobiście korzystam ze sprawdzonego narzędzia iperf. Lecz nie w tym rzecz. Czasami nie mamy dostępnych pod ręką swoich ulubionych narzędzi. Pamiętajmy, że nawet, żeby skorzystać ze stron typu numion.com  trzeba mieć zainstalowane odpowiednie dodatki. W takiej sytuacji z pomocą przychodzi nowy serwis internetowy, którego autorzy zdecydowali się wykorzystać HTML 5 do stworzenia aplikacji pomiarowej. Rozwiązanie to uniezależnia nas od wielu problemów. Ponadto pomiar nie jest obarczony wydajnością implementacji np. Javy. Zatem serdecznie zapraszam do sprawdzenie swojego łącza za pomocą serwisu speedof.me!

Tagi: , , ,

Jak naprawić URL po przeniesieniu witryny WordPress pod nowy adres

7 grudnia, 2013 | Brak Komentarzy | Kategoria: Bez kategorii, Linux, Porady, Windows

WordPressWordPress jest jednym z najbardziej popularnych systemów zarządzania treścią tzw. CMS. Sam używam wyłącznie WordPressa i wysoko go sobie cenie. Nie chciałbym rozpisywać się o zaletach tego oprogramowania, jak również tworzyć kolejnego poradnika instalacji czy konfiguracji. Materiałów w sieci jest wystarczająco dużo. Tym razem chciałbym pokazać jak rozwiązać bardzo konkretny problem, związany z przenoszeniem, tworzeniem kopii testowych itp. witryn utworzonych za pomocą opisywanego CMSa.

Generalnie, wykonywanie kopii witryn WordPressa to przede wszystkim:

  • kopiowanie i przenoszenie bazy danych oraz
  • kopiowanie i przenoszenie całej struktury katalogów i plików

Niemniej, nawet jeżeli całkiem nieźle radzimy sobie z powyższymi zadaniami to trzeba pamiętać, że nasza strona WordPress jest widoczna jako adres URL w sieci np. 'www.strona-wp.pl’. Tworząc jej kopie albo przenosząc pod nowy adres trzeba pamiętać o uaktualnieniu bazy danych. WordPress zapisuje bowiem wyświetlane elementy typu grafiki, dokumenty itp. za pomocą ich adresu URL. Często, przeniesiona strona, właśnie z tego powodu nie chce wyswietlać żadnych grafik bądź innych obiektów. Co możemy zrobić? Wykonać trzy polecenia UPDATE w środowisku bazy danych:

  1. UPDATE wp_options SET option_value = replace(option_value, →
    'http://www.stary-adres.pl', 'http://www.nowy-adres.pl') →
    WHERE option_name = 'home' OR option_name = 'siteurl';
  2. UPDATE wp_posts SET guid = replace(guid, →
    'http://www.stary-adres.pl','http://www.nowy-adres.pl');
  3. UPDATE wp_posts SET post_content = replace(post_content, →
    'http://www.stary-adres.pl', 'http://www.nowy-adres.pl');

Reszte poprawek musimy wykonać ręcznie, edytując konfiguracje witryny. Niemniej przytoczone polecenia pozwolą na pewno zaoszczędzić mnóstwo czasu.

MG

Tagi: , , ,

Jak prawidłowo zainstalować RAID1 w Debianie z dyskami 2TB

2 listopada, 2013 | Brak Komentarzy | Kategoria: Linux, Porady

RAIDObecnie dyski twarde osiągają pojemności, o których jeszcze nie dawno można było pomarzyć. Obsługa dużych dysków w systemie Debian nie stanowi żadnego problemu. Jednak sytuacja może się nieco skomplikować jeżeli chcemy złożyć RAID1. Zdarza się, że podczas instalacji, napotykamy błąd instalacji GRUB. Dodatkowo, jeżeli uda się zainstalować system to okazuje się, że po awarii pierwszego dysku system nie chce wystartować automatycznie z drugiego.

Powyższy problem wynika z nieprawidłowej obsługi tablicy partycji typu GUID. Jednak nie tylko. Rzecz jasna, gdy instalujemy system od początku i musimy przygotować tablice partycji na nowym dysku, wówczas w programie instalacyjnym należy wybrać partycję typu GPT. Nie rozwiązuje to jednak problemu z instalacją GRUB.

Począwszy od Debiana Wheezy należy, na początku każdego dysku w RAID1, założyć partycję typu biosgrub. Jej rozmiar to 1MB. Potem możemy zdefiniować kolejne partycje wg uznania.  Po złożeniu macierzy RAID1, na zakończenie instalacji, zostaniemy poproszeni o wskazanie miejsca instalacji GRUB. Wybieramy opcje 'master boot record’.

Ostatnim, bardzo ważnym, krokiem jest wydanie polecenia:

grub-install /dev/sdb

po instalacji i uruchomieniu czystego systemu operacyjnego.

MG

Tagi: , , ,

Instalacja GRUB na drugim dysku macierzy RAID1

6 lipca, 2013 | Brak Komentarzy | Kategoria: Linux, Porady

RAIDPocząwszy do Debiana Squeuze, wśród jego użytkowników, administratorów systemu itd. rozgorzała dyskusja na temat błędów pojawiających się podczas instalacji. Rzecz dotyczy składania macierzy RAID1. Jak się okazuje, nawet prawidłowo przeprowadzony proces instalacji systemu od zera nie gwarantuje, że nasz serwer będzie bezpieczny. W czym rzecz? W przypadku awarii pierwszego dysku macierzy, nie ma szans aby system wystartował z drugiego, lustrzanego dysku. Najprościej ujmując, pakiet GRUB, który stanowi tzw. boot-loader, zostanie zainstalowany w MBR (Master Boot Record – Główny Rekord Startowy) tylko pierwszego dysku. Rozwiązanie wydaje się bardzo proste. Trzeba ręcznie zainstalować GRUB w MBR drugiego dysku. Jednak z niewiadomych przyczyn większość poradników przytacza błędną komendę (sic!). Wg moich doświadczeń, a walczyłem z powyższym problemem dzień cały, jedyną i sprawdzoną postacią komendy 'grub-install’ jest:

grub-install --no-floppy --boot-directory=/dev/md0 /dev/sdb

Kilka słów komentarza. Istotne jest poprawne wskazanie zarówno partycji typu RAID (/dev/md0) jak i fizycznego dysku (/dev/sdb – zakładam, że w przytoczonym przykładzie drugi dysk to /dev/sdb). Po wykonaniu powyższej operacji, można przejść do sprawdzenia czy system startuje z drugiego dysku np. odpinając na czas testów, dysk pierwszy od kontrolera.

MG

Tagi: , ,

Jak ograniczyć liczbe równoczesnych połączeń z serwerem SSH

3 maja, 2013 | Brak Komentarzy | Kategoria: Linux, Porady, Windows

SSHObecnie sieci VPN są zagadnieniem powszechnie znanym, szeroko komentowanym i zalecanym we wdrożeniach biznesowych. Istnieje cała masa gotowych rozwiązań sprzętowych, na poziomie aplikacji itp. Praktycznie każdy administrator może sam, według uznania, wybrać wygodne narzędzie. Różnią się one algorytmami, wymaganiami oraz niestety ceną. Czy można zbudować skalowalny dostęp VPN do firmy, który nie będzie wymagał dużych środków finansowych? Jednym z szeroko ostatnio polecanych rozwiązań jest VPN z wykorzystaniem serwera SSH. Elementami tej techniki są m. in.: (a) serwer dostępowy, zrealizowany np. jako sewer Linux z demonem SSHD oraz (b) aplikacja kliencka, która potrafi zestawić szyfrowany tunel np. Bitwise Tunellier.

Jeden z problemów, związanych z opisywanym tunelem SSL polega na tym, że klient może kreować równocześnie wiele połączeń, korzystających w tym samym czasie, z tego samego konta dostępowego. Być może nie jest to rzecz dyskwalifikująca całość, jednak w codziennej praktyce administratorskiej może utrudniać życie. W końcu chcemy aby logi systemowe były jasne i przejrzyste – słowem czytelne. Najlepiej aby jedno połączenie, czyli wspomniany tunel SSL, było przypisane tylko i wyłączenie do jednego konta.

Przykładowe rozwiązanie dla systemu Linux, z serwerem dostępowym bazującym na dystrybucji Debian Squeeze, polega na odpowiedniej modyfikacji pliku ’/etc/security/limits.conf’. Zawiera on m. in. defincje dotycząca liczby równoczesnych sesji SSH dla jednego konta dostępowego. W opisywanym rozwiązaniu należy dodać następującą linie przed znacznikiem ’# End of file’:

@sshlimited     -       maxlogins       1

I to wszystko, jak zwykle w przypadku Linuxa, krótko i na temat 🙂

MG

Tagi: , , , , ,