Postfix: ciekawy problem z smtpd_delay_reject i permit_sasl_authenticated

Trafił mi się ostatnio ciekawy problem - otóż standardowo przed końcem roku poprawiałem filtry antyspamowe i optymalizowałem konfigurację Postfix’a. Chciałem zmienić domyślną wartość smtpd_delay_reject=yes na smtpd_delay_reject=no by odrzucać spamerów najwcześniej jak to możliwe. I ciekawe kuku, które sobie zrobiłem polegało na tym że sam nie mogłem wysyłać poczty po logowaniu SSL’em… Dostawałem przy tym bardzo wymowną odpowiedź: Oct 8 16:30:39 tyr postfix/smtpd[21039]: NOQUEUE: reject: CONNECT from unknown[67.x.x.x]: 554 5.7.1 <unknown [67.x.x.x]>: Client host rejected: Access denied; proto=SMTP</unknown> Więc wrzuciłem debug_peer_list = 67.x.x.x do main.cf by zobaczyć dokładniej o co biega: ...

2013-10-08 · 2 min · timor

Instalacja Python’a na Windowsie

Pomimo że Python dużo częściej wykorzystywany jest w środowiskach UNIX’owcy/Linux’owych to znajdzie się kilka fajnych zastosowań dla tego języka na Windowsie. Możliwości na instalację jest kilka, a najprostsza to wykorzystanie instalatora ActiveState. Wersja ta ma w sobie wszystko co potrzebne: rozszerzenia dla API Windows menadżera pakietów PyPM dokumentację Niestety jakiś czas temu zmieniły się zasady licencjonowania w ActiveState i aktualne wersje dla zastosowań produkcyjnych wymagają zakupu licencji (1000$/rok - aż chce się zacytować z Dnia Świra: czizys k…wa…). Wiem jak lepiej wydać taką kasę więc spróbuję uzyskać podobną funkcjonalność na tym co można pobrać za darmo z sieci. ...

2013-09-25 · 2 min · timor

Sprawdzanie zainstalowanej wersji Django

Ten one liner załatwia sprawę: python -c 'import django; print ".".join([str(s) for s in django.VERSION]);'

2013-09-16 · 1 min · timor

Raspberry Pi: pierwsze kroki

Wyprzeć się nie mogę że gadżety działające na Linuksie po prostu mnie kręcą, więc tylko kwestią czasu było aż Pi zawita na moim biurku. Zakupiłem więc model B w drugiej wersji  external link , obudowę z możliwością mocowania VESA  external link , kabelek HDMI  external link , ładowarka z mojej myszy pasowała idealnie (5.05V i 1A) i na początek karta SD klasa 10 4GB. ...

2013-09-13 · 2 min · timor

Nginx - przydatne rewrite’y i różne sztuczki

Polubiłem Nginx’a i wykorzystuję go na coraz więcej sposobów. Kilka rzeczy udało mi się całkiem fajnie w nim skonfigurować i postanowiłem zebrać te przykłady by następnym razem gdy postanowię do nich sięgnąć nie musieć wertować konfigów po serwerach 😃 Słowo wstępu Niektóre rewrite’y kończą się znakiem ? - czemu? Otóż Nginx próbuje automatycznie dodawać parametry na końcu przepisanego adresu. Jeśli jednak wykorzystamy zmienną $request_uri to ona sama w sobie zawiera już parametry zapytania (czyli to co w URI znajduje się po znaku ?) i właśnie dodanie pytajnika tuż za tą zmienną powoduje że argumenty nie są dublowane. ...

2013-09-09 · 6 min · timor

tor: generowanie milszej nazwy dla hidden service

Chcąc pobawić się tor’em postanowiłem udostępnić jedna z moich stron z wykorzystaniem mechanizmu hidden service. Nie spodobał mi się jedynie sposób generowania nazw, które były mało opisowe - ale najwidoczniej nie mnie jednemu, bo szybko namierzyłem Shallot  external link , który generuje kolejne nazwy aż trafi na pasującą do zadanego regexp’a.

2013-09-09 · 1 min · timor

DFS - sprawdzanie statusu replikacji

Ostatnio zbyt dużo grzebię przy “windach” - ale cóż, czasem trzeba. Ostatnio ustawiałem DFS’a z replikacją dla dwóch sporych zasobów i jedna z rzeczy, o którą się rozbiłem to brak jakiegokolwiek podglądu tej synchronizacji z GUI. Ale znalazłem jedno polecenie, które działa w shellu (choć to się chyba batch tutaj nazywa) od Windows Server 2008 R2: dfsrdiag ReplicationState /member:nazwaservera Polecenie co prawda nie podaje postępu procentowego ale można zobaczyć “czy coś jeszcze się synchronizuje” i czy nie ma żadnych błędów. Jeżeli to polecenie to za mało to można spróbować bardziej gadatliwej wersji: ...

2013-09-04 · 1 min · timor

Root’owanie Androida 4.3 na Google Nexus 7 po aktualizacji do JWR66Y

Ostatnio aktualizowałem swojego Nexusa do 4.3 i było miło tylko mi roota i recovery wystrzeliło… No ale żaden problem - chwila googlania, kilka poleceń i mam recovery i roota. Dzisiaj wrzuciłem niedużą aktualizację, która łata kilka bugów i znów po root’cie ;/ Zapisze sobie więc instrukcję by kolejnym razem już nie googlać 😃 P.S. Wiem co robię ryzykując uceglenie swojego urządzenia - u mnie ta instrukcja działa ale nie mogę tego zagwarantować każdemu - dlatego jeśli już się zdecydujesz to ROBISZ TO NA WŁASNĄ ODPOWIEDZIALNOŚĆ! ...

2013-09-04 · 2 min · timor

Kopiowanie wolumenów LVM z dd i netcat

Niedawno chciałem skopiować maszynę wirtualną z jednego hypervisora na innego. Były to 3 wolumeny LVM o rozmiarach od 50 do 100GB. Dawno temu zrobiłem sobie skrypty do backupu - jeden kompresuje wolumeny LVM - a drugi pozwala odtworzyć z dekompresja na drugim serwerze. Tyle że przy tak dużej maszynce będzie to trwało masakrycznie długo - fajnie byłoby móc równocześnie kopiować i odtwarzać (live)… I wtedy przypomniało mi się narzędzie netcat - zrobiłem snapshoty wolumenów i mogłem zaczynać. W najbardziej podstawowej wersji potrzebowałem tylko tyle: ...

2013-09-02 · 1 min · timor

GPO: Instalacja GIMP’a 2.8

Raz na jakiś czas trzeba coś niestandardowego wrzucić do instalacji w Active Directory a że nie wszystkie aplikacje mają dostępne paczki MSI to trzeba się nieco natrudzić. Poniżej wrzucam skrypt, który instaluje GIMP’a 2.8 z domyślnego instalatora (wersja InnoSetup) przy okazji odinstalowując wcześniejsze wersje zainstalowane ręcznie. Zapisujemy poniższy kod jako np. gimp-install.cmd @echo off REM Installs GIMP cls echo ---------------------------------------------------- echo . echo . echo . Installing/Updating GIMP - Please Wait echo . echo . echo ---------------------------------------------------- REM Test if actual IF exist "%ProgramFiles%\GIMP\bin\gimp-2.8.exe" GOTO SkipInstall REM Exit the application taskkill.exe /F /FI "IMAGENAME eq gimp-2.8.exe" >nul REM Uninstall existing GIMP version, delete folder if exist "%ProgramFiles%\GIMP 2\uninst\unins000.exe" "%ProgramFiles%\GIMP 2\uninst\unins000.exe" /VERYSILENT :: Wait for 20 seconds ping -n 40 127.0.0.1 > NUL if exist "%ProgramFiles%\GIMP 2\" rd "%ProgramFiles%\GIMP 2\" /Q /S REM Install new version "\\serwerplikow.local\Instalki\GIMP\gimp-2.8.4-setup.exe" /VERYSILENT /NORESTART /DIR="%PROGRAMFILES%\GIMP 2.8" REM Skip installation if acctuall :SkipInstall REM Return exit code to SCCM exit /B %EXIT_CODE% Tworzymy nową regułkę GPO i zmierzamy do: Computer Configuration\Policies\Windows Settings\Scripts\Startup W nowym okienku wybieramy Show Files… Wklejamy plik skryptu do tego folderu i teraz możemy dodać go w tym samym oknie (Add…) - dzięki wrzuceniu skryptu w tym miejscu będzie się on automatycznie replikować na inne kontrolery. Skrypt będzie co prawda uruchamiany przy każdym starcie komputera ale pierwszy warunek będzie sprawdzać czy aplikacja jest zainstalowana więc nie spowolni to znacznie startu. ...

2013-08-06 · 2 min · timor