RSS Feed

Styczeń, 2012

  1. SMTP AUTH w zależności od adresu nadawcy

    Styczeń 29, 2012 by 0verlord

    Autoryzacja smtp, czyli SMTP AUTH to wymóg dzisiejszych czasów. Każdy szanujący się operator pozwala wysyłać wiadomości tylko po odpowiednim przedstawieniu się przez szyfrowany kanał – SSL lub TLS.

    Niektórzy dostawcy są mniej upierdl^Wrestrykcyjni (wystarczy się zautoryzować poprawnym loginem w ramach konta, i już można wysyłać jako dowolny użytkownik).
    Niektórzy są bardziej restrykcyjni – patrz ogicom.pl. Autoryzacja pozwala ustawić adres wychodzący (mail from:) tylko dla tego konta, do którego się zautoryzowaliśmy (lub dodanego do tego konta aliasa). Sprawdzałem – pomoc techniczna mówi, że się nie da. Źle. Da się, tylko nie chcą. Różnica jest subtelna 😉 Nie zadziałał nawet tekst o tym, że skoro u innych się da, a u nich nie, to może sobie pójdę tam, gdzie się da. Na szczęście na takich upierdliw^mocno zatroskanych bezpieczeństwem maili ludzi Postfix zna sposób.

    Interesują nas kilka opcji konfiguracyjnych w main.conf:

    smtp_sender_dependent_authentication = yes
    sender_dependent_relayhost_maps = hash:/etc/postfix/hash-sender-relay
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/hash-sasl-passwd

    Co to robi? opcja smtp_sender_dependent_authentication mówi Postfixowi, że chcemy się autoryzować na podstawie mail from: Opcja sender_dependent_relayhost_maps mówi, na który serwer się łączyć, jeżeli chcemy coś wysłać już jako konkretny email. Plik wygląda od środka np. tak:
    user1@gdziestam.pl [smtp.gdziestam.pl]:587
    user2@gdziestam.pl [smtp.gdziestam.pl]:587
    user3@gdziestam.pl [smtp.gdziestam.pl]:587
    user4@gdziestam.pl [smtp.gdziestam.pl]:587

    Oczywiście nie przeszkadza, żeby dać tam inne serwery i maile z innych domen – trzeba tylko zadbać o odpowiedni mechanizm autoryzacji . Temat autoryzacji smtp jest trochę bardziej skomplikowany, ale na sieci jest pierdyliard HOWTO’ów i innych JTZów, więc nie będę się tutaj rozwodzić.

    Opcja smtp_sasl_auth_enable każe używać smtp autha do wysyłania maili.
    I na koniec smtp_sasl_password_maps mówi, gdzie szukać usera i hasła dla konkretnego maila.

    Plik wygląda w środku tak:
    user1@gdziestam.pl nazwa_uzytkownika1:haslo1
    user2@gdziestam.pl nazwa_uzytkownika2:haslo2
    user3@gdziestam.pl nazwa_uzytkownika3:haslo2

    Na koniec tylko postmap na plikach hash-sender-relay i hash-sasl-passwd. No i reload Postfixa.


  2. Instalacja Symfony z Postgresem na hostingu nazwa.pl

    Styczeń 28, 2012 by 0verlord

    W skrócie, da się, chociaż obiłem się o kilka problemów.

    Z wrzuceniem witryny do katalogu nie ma problemu, załatwiamy wszystko z activeadmina. Panel jest na tyle sensowny, że nie przygniata i szybko można go ogarnąć.

    Problemy:

    1. Trzeba dobrze uważać przy tworzeniu bazy, bo konfigurator może nas obdarzyć niestandardowym portem Postgresa. Ja dostałem np. 5443 zamiast domyślnego 5432. Objawia się to tak, że mimo, wydawałoby się, poprawnie skonfigurowanych parametrów w databases.yml dostajemy Permission Denied.

    2. Nasz katalog domowy, a co za tym idzie katalog, w którym siedzi Symfony, a który należy podać w ProjectConfgurationClass.php wygląda jakoś tak: /home/<nazwa konta>/ftp/. Jak sprawdzić, jak wygląda nasz katalog? Najlepiej wrzucając do katalogu przeznaczonego na witrynę prosty „skrypcik” w php, który nam pokaże co trzeba. Wygląda on np. tak:
    <?php
    echo getcwd() . "\n";
    ?>

    I ładnie pokazuje odpowiedni katalog.

    3. Błędy. Jak na każdym hostingu, nie mamy dostępu do logów serwera www, a czasem wersje _dev aplikacji nie wystarczają, żeby pokazać cokolwiek sensownego i naprowadzającego na właściwy błąd. Na nazwie można to zrobić, podając do pliku .htaccess w głównym katalogu projektu takie wpisy:

    php_value display_errors 1
    php_value display_startup_errors 1
    php_value display_errors On
    php_value error_reporting E_ALL
    php_value error_log /katalog/projektu/symfony/web/error.log

    Co to robi? Włącza raportowanie php, domyślnie wyłączone na nazwie. Oczywiście należy to zakomentować jak już postawimy aplikację w całości, żeby niepotrzebnie nie pokazywać błędów. Ale wyjaśnienia wymaga jeszcze ostatnia linijka, ta ze ścieżką.
    Chodzi tutaj o to, żeby stworzył się log w katalogu domyślnie widocznym pod główną domeną, żeby można było na osobnej zakładce oglądać błędy. Ten katalog trzeba dopasować do tego, co pokazuje php z punktu nr 2. Jeżeli ktoś pomyli ścieżki, i plik nie będzie widoczny z sieci, zawsze można go pobrać przez ftp. Ciężko dostępny log dalej loguje, i jest lepszy niż brak logów w ogóle.

    To, że dało się włączyć logowanie, to całkiem ciekawy ficzers nazwy. Na home.pl taka sztuczka raczej by nie przeszła, ale i nie sprawdzałem. Na home.pl natomiast jest inny problem z symfony, opisany dokładnie tutaj.


  3. iTerm2, ostatnia aktualizacja i brak reakcji na klik ikony w docku po zamknięciu ostatniej zakładki

    Styczeń 27, 2012 by 0verlord

    iTerm2 pod OSX to jak by na to nazwa wskazywała – terminal. Ale całkiem zacny z wieloma przydatnymi opcjami. Główna różnica w porównaniu z systemowym terminalem, to profile (różne komendy pod klawiszami, w sam raz jak ktoś ma > 10 hostów na które się loguje codziennie po kilka razy) i możliwość łatwego dostosowania pod swoje potrzeby.
    Jakoś mnie klikanie natywnego terminala mocno muli, a domyślne kolory (czarne na białym) irytują niemiłosiernie. Pewnie można to gdzieś wyklikać, ale nie zdzierżyłem.

    Z innych ciekawostek, można sobie wyklikać także domyślny ukłąd okien, który można sobie potem wybrać skrótem klawiszy. W sam raz do otwarcia kilku terminali z różną zawartością.

    Po ostatniej aktualizacji trochę się naszukałem, żeby przywrócić jedno przyzwyczajenie – w poprzednich wersjach (sprzed opcji windows arrangement) miałem tak, że jak zamykałem ostatnią zakładkę (cmd+w) iterm ładnie sobie wisiał i czekał. Natomiast po kliknięciu ikonki z docku, otwierała się grzecznie zakładka z domyślnym profilem (czyli z bashem). Aktualizacja wyłączyła tą opcję.

    Co zrobić, żeby to z powrotem działało? Ponieważ została dodana możliwość zapisania układu okien, po upgrade sprzed tej opcji nie jest zapisany żaden domyślny układ okien. Czyli, żeby działało to tak jak chciałem, trzeba otworzyć chociaż jeden termina, kliknąć window->save window arrangement, potem wybrać nazwę (jakąkolwiek), potem wejść do edytora profili, profilu domyślnego, kliknąć ostatni button i ustawić zapisany wcześniej układ okien jako domyślny. I znowu, po kliknięciu ikonki bez tabów, otworzy się to, co zapisaliśmy jako domyślny window arrangement.


  4. Innbox v50 modem czy router w Dialogu

    Styczeń 20, 2012 by 0verlord

    Jest sobie takie urządzenie, maszyna piekielna, gra śpiewa i tańczy. Voipy, wideo, telefon, 3play pełną gębą.
    Ale potrzebowałem z niego tylko jednej funkcji, tj modemu do DSLa. Po zgadnięciu z internetu hasła do admina (jest tu) zastrzeliły mnie te wszystkie opcje. Potrzebowałem kawalerii 😉

    Telefon do pomocy technicznej pozwolił przełączyć router w tryb tylko modemu. JTZ? W sumie prosto.
    Trzeba przycisnąć na bocznym panelu przycisk reset. Raz, krótko, bo jak się go przytrzyma więcej niż 10 sekund, pojawią się trzy pomarańczowe lampki i modem zażyczy sobie upgrade softu. Tego oczywiście nie chcemy robić.

    To jednak nie była pełna informacja, ponieważ kabel do internetu należy włożyć do portu nr 1. Na innych portach nie będzie działało.
    Czyli podsumowując: przyciskamy raz przycisk, skrętkę wkładamy do portu nr 1 i zestawiamy przez niego sesję PPPoE. Amen.

    Uprzejmie dziękuję pani z pomocy technicznej za naprowadzenie mnie na odpowiednie rozwiązanie.