In English

    Kill It! (UNIX way)

    I’ve got heavy load on one box. What is strange it operate normally, despite this load:

    load averages: 153.11, 152.41, 150.74
    866 processes: 150 runnable, 712 sleeping, 4 on CPU

    This ~720 processes ware snmpd in some strange loop of checking if snmpd is working.

    I can’t kill it globally witk pkill , but kill -9 PID works. I don’t want to manually type 720 pids and don’t want to restart machine, so here comes unix way to kill 720 processess:

    ps uax | grep snmpd | awk '{print $2}' | xargs kill -9

    Results?

    load averages: 0.04, 10.8, 59.5
    98 processes: 95 sleeping, 3 on CPU

    Back to normal state!

    Mondays… ;)

    © odwiedź stronÄ™ http://maciejewski.org po wiÄ™cej fajnych postów!

    Fun

    One line to know where your users are on vacation :) (if they use company mail on vacation)

    Assuming You use dovecot 2.x and stores logs in /var/log/maillog:

    cat /var/log/maillog | grep Login: | awk '{print $10}' | sed 's/rip=//g' | sed 's/,//g' >> /tmp/1.txt && sh -c 'for line in `cat /tmp/1.txt`; do geoiplookup $line; done' | sort | uniq | awk '{print $4 $5}'

    gives You unique locations of every user login. You can also grep for specific login instead of all of them :)

    If You are not rotating Your logs it will take some time to return results.

    © odwiedź stronÄ™ http://maciejewski.org po wiÄ™cej fajnych postów!

    Job / Praca

    Hylafax i wiele modemów oraz ró?ni odbiorcy.

    Mój system faksowy rozrasta si?, aktualnie obs?uguje 5 numerów a w planach s? kolejne dwa. Jak na razie w dwa miesi?ce odebra? ponad 1500 faksów i dzia?a bez zarzutu.

    Dok?adaj?c modemy oczywi?cie modyfikacji uleg? plik z konfiguracjami FaxDispatch i skrypty konstruuj?ce maile z faksami w formacie png.

    Skrypt z tego wpisu teraz jest w osobnych plikach, ka?dy dla innego numeru. Ka?dy z tych skryptów wykorzystuje te? osobny katalog tymczasowy (/tmp/faxX) aby w przypadku odbierania faksów jednocze?nie pliki z obrazkami nie pomiesza?y si?, lub nie zosta?y nadpisane. Eksportowanie zmiennych $SENDER i $FILE jest tak?e uzupe?nione o kolejny numer aby nie by?o niejasno?ci i b??dów w dostarczeniu.

    Teraz najciekawsza zmiana – instrukcja CASE w pliku FaxDispatch.
    FILETYPE=pdf;
    SENDTO=fax_pdf@***.pl;
    TEMPLATE=pl;
    case "$DEVICE" in
    tty00)  echo $FILE > /tmp/FILE; echo $SENDER > /tmp/SENDER; /tmp/convertmime.sh;         SENDTO=fax_pdf@***.pl;;
    ttyU0)  echo $FILE > /tmp/FILE2; echo $SENDER > /tmp/SENDER2; /tmp/convertmime2.sh;      SENDTO=;;
    ttyU1)  echo $FILE > /tmp/FILE3; echo $SENDER > /tmp/SENDER3; /tmp/convertmime3.sh;      SENDTO=;;
    ttyU2)  echo $FILE > /tmp/FILE4; echo $SENDER > /tmp/SENDER4; /tmp/convertmime4.sh;      SENDTO=;;
    ttyU3)  echo $FILE > /tmp/FILE5; echo $SENDER > /tmp/SENDER5; /tmp/convertmime5.sh;      SENDTO=;;
    esac

    Pierwsze 3 linijki to standardowa konfiguracja je?li nie zachodzi ?aden CASE, co w?a?ciwie nie powinno si? zdarzy?, ale w razie jakby co (np nieoczekiwana zmiana nazwy portu) fax zostanie dostarczony na mail fax_pdf@**.pl jako pdf.

    Nast?pnie CASE dzia?aj?cy na zmiennej $DEVICE, która odpowiada portowi RS232 w NetBSD. Ka?dy CASE wyrzuca nazwe pliku oraz nadawce do w?a?ciwego pliku, z którego pó?niej korzysta convertmimeX.sh do skonstruowania maila. Dodatkowo modem na tty00 oprócz dostarczenia faksu w formie obrazka wysy?a ten sam faks w formacie pdf.

    System dzia?a bardzo stabilnie, du?e znaczenie ma zapewne jako?? modemów oraz u?ytych przej?ciówek USB-RS232. W moim przypadku kable USB wpi?te obok siebie, blokowa?y losowo który? modem. Kiedy wpi?te s? co drugi port USB wolny – wszystko dzia?a bez zak?óce?.

    Na razie pó?ka modemowa wygl?da jak na zdj?ciu poni?ej, ale kiedy dojd? dodatkowe dwa modemy trzeba b?dzie pomy?le? o ?adniejszej organizacji :)

    © odwiedź stronÄ™ http://maciejewski.org po wiÄ™cej fajnych postów!

    Job / Praca

    Administrowanie mo?e by? ?adne i wygodne!

    Szukaj?c alternatywy dla SNORT + BASE natrafi?em na SNORBY. Snorby to tak samo jak Base frontend dla Snorta, z tym, ?e napisany w rubym i jest po prostu ?adny. Wszystko si? kr?ci, przyciemnia, przelatuje z jedno w drugie, dodatkowo ma kilka fajnych funkcji jak generowanie raportów pdf czy wysy?anie powiadomie? mailem.

    Co mnie szczególnie zaskoczy?o to instalacja, faktycznie (przynajmniej na NetBSD) przebieg?a tak jak jest pokazana w kilku krokach na stronie Snorbyego. Klonujemy najnowsz? wersj? przy pomocy gita, edytujemy podstawowe informacje i dost?p do bazy MySQL, uruchamiamy server na porcie 3000 – gotowe :)

    Oczywi?cie trzeba dosintalowa? bardzo du?o sk?adników samego rubiego (to si? chyba naywa „gems” ? – nigdy nie mia?em do czynienia z rubym :), cz??? znajduje si? w pkgsrc, cz??? ruby sam doinstaluje przez wydanie komendy „bundle install”. w katalogu ze snorbym.

    Jedyna rzecz, któr? musia?em poprawi? r?cznie to zrobi? dowi?zanie z /usr/pkg/bin/ruby193 do /usr/pkg/bin/ruby poniewa? bez tego snorby mówi? ?e nie wie gdzie jest ruby i nie móg? odpali? „workera”, który co jaki? czas zbiera informacj? z bazy i aktualizuje dashboard.

    Co do snorta, to konfiguracja ??cz?ca go ze snorbym jest banalnie prosta. Trzeba tylko doda? w konfigu, aby oprócz zapisywania do pliku lub bazy danych, zapisywa? te? do bazy snorbiego :) To wszystko.

    Po chwili w zale?no?ci jakie regu?y mamy zainstalowane i co snort na?apie, wszystko powinno by? ?adnie odwzorowane w snorbym, gdzie ju? mo?na wygodnie sobie przeglada? raporty, zerka? do ?rodka ramek, sprawdza? czy jaki? host nie za bardzo nam bru?dzi itp.

    Porównuj?c czyst? instalacj? snorta i logowanie do plików a wizualizacj? przy pomocy Snorbiego w?a?ciwie nie ma co porównywa? :)

    Internet

    Ju? nie taki brzydki hack na hylafax i png

    W poprzednim wpisie – http://maciejewski.org/2012/05/16/hack-na-hylafax-i-faksy-w-png-lub-innym/ opisa?em jak przerabia? tiffy generowane przez hylafax na png i wysy?a? je ludziom na mail.

    Skrypt w FaxDispatch co prawda dzia?a? bardzo dobrze ale by? do?? brzydki i toporny (tworzenie headerów przez echo >> do plików itp).

    Pozatym okaza?o si? ?e mia? jedn? zasadnicz? wad?. Nie da?o si? przekaza? wiadomo?ci z za??cznikami inline. Po naci?ni?ciu FORWARD wiadomo?? wygl?da?a mniej wi?cej tak:

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Dlatego zrezygnowa?em z sendmaila i uuencode na rzecz mime-construct

    Poprzedni skrypt wygl?da teraz tak:

    convert /var/spool/hylafax/`cat /tmp/FILE` /tmp/fax/fax.png
    for D in /tmp/fax/*png
    do
    echo -n "--file-attach " >> /tmp/fax/faxy
    echo $D >> /tmp/fax/faxy
    done
    mime-construct --header 'From: Serwer faxów ' --to fax@***.pl --subject "Odebrano fax od $SENDER" `cat /tmp/fax/faxy`
    rm -rf /tmp/fax/*

    Teraz p?tla for tworzy list? plików które mime-construct ma za??czy? do wiadomo?ci.

    Po zmianie skryptu dostarczanie faksów dzia?a jak dotychczas, natomiast po przekazaniu mamy eleganckie za??czniki tam gdzie powinny by? :)

     

    Job / Praca

    Hack na hylafax i faksy w png (lub innym formacie graficznym)

    Na pocz?tku by?a euforia. B?dziemy mieli firmowy wirtualny faks z pi?cioma numerami! Notabene „paczk?” dziesi?ciu kolejnych numerów od Netii dostali?my za darmo, a my?la?em, ?e za darmo nikt ju? nic nie daje. Zatem, serwer faksów stan?? na nogi do?? szybko i co równie? wa?ne, pierwszy numer uda?o si? uruchomi? bez wi?kszych problemów. Serwer to hylafax 4.4.7.

    $ faxstat
    HylaFAX scheduler on nidhog.***.pl: Running
    Modem tty00 (+48616******): Running and idle

    Po pocz?tkowym (moim) zachwycie jak to dobrze dzia?a i jak stabilnie, zacz??y nap?ywa? pytania i pro?by o zmian? formatu dostarczania faksów. Tutaj ma?e wtr?cenie jak wygl?da u nas dostarczanie faksów. Na jeden numer do ksi?gowo?ci kontrahenci wysy?aj? faks, który nast?pnie jest dystrybuowany do wszystkich osób którym mo?e by? to przydatne. Te kilkadziesi?t osób patrzy sobie w swoje Thunderbirdy a niektóre wybitnie oporne jednostki w Outlooki i im szybciej po ?ypni?ciu okiem mo?na stwierdzi?, ?e ten faks jest potrzebny lub nie tym lepiej.

    I tu w?a?nie zaczynaj? si? schody bowiem hylafax po odebraniu faksu umie go dostarczy? jako postscript (domy?lnie) lub wielostronicowy tiff lub pdf. Niby mamy wszystko co potrzeba, orygina?, obrazek, pdf. Niestety problem tkwi poniek?d w klientach pocztowych, które bez zag??biania si? w szczegó?y nie mog? wy?wietli? podgl?du za??cznika w pdf lub tiff.

    Domy?lnie hylafax nie ma tak?e opcji dla png, jpg czy gif poniewa? w/g twórców hylafax’a formaty te nie nadaj? si? do odwzorowywania czarno-bia?ych faksów oraz maj? problem z wielostronicowymi faksami.

    Po kilkudniowych (naprawd?) poszukiwaniach jakich? pluginów i patchy okaza?o si?, ?e s? co prawda jakie? patche na /var/spool/hylafax/bin/faxrcvd , który jest odpowiedzialny za przyjmowanie faksów istniej? na forum hylafax ale posty s? datowane mi?dzy 1999 a 2004 i teraz ten plik wygl?da zupe?nie inaczej. Oczywi?cie przy ka?dym po?cie akademicka dyskusja dlaczego nie u?ywa? png czy jpg…

    Jak ju? pisa?em, w modelu odbioru faksów, który u nas z powodzeniem funkcjonuje liczy si? szybko?? – dostajemy kilkana?cie/kilkadziesi?t faksów dziennie, który to faks mo?e dotyczy? jednej lub kilku osób z kiludziesi?ciu. Musi by? obrazek dost?pny w podgl?dzie dla programów pocztowych, koniec, kropka.

    Zamiast próbowa? zaimplementowa? obs?ug? png do faxrcvd, który dla mnie jest zbyt pokr?cony, poszed?em inn? drog?. Hylafax u?ywa pliku /var/spool/hylafax/etc/FaxDispatch do dostosowywania dostarczania faksów. Mo?na tam oprócz predefiniowanych pól dokonywa? modyfikacji np przy pomocy CASE (gdy numer taki, dostarcz gdzie?) itp. Mi natomiast rzuci? si? w oczy przedostatni przyk?ad z jakiego? FaxDispatcha w cvsie hylafaxa:

    ## To make each received fax saved outside hylafax
    ## ( Don't forget to chown uucp /some/place )

    /bin/cp $FILE /some/place

    Czysty skrypt shellowy w pliku konfiguracyjnym :)

    Po kilkunastu wys?anych faksach testowych i poprawieniu kilku b??dów oraz praw urodzi?o si? co? takiego:

    FILETYPE=pdf;
    SENDTO=fax@***.pl;
    TEMPLATE=pl;

    convert $FILE /tmp/fax/fax.png
    echo "To: fax@***.pl" > /tmp/fax/mail_fax
    echo "From: Serwer fax??w *** Sp. z o.o. " >> /tmp/fax/mail_fax
    echo "Subject: Odebrano fax od $SENDER" >> /tmp/fax/mail_fax
    echo "MIME-Version: 1.0" >> /tmp/fax/mail_fax
    echo "Content-Type: text" >> /tmp/fax/mail_fax
    echo "Content-Disposition: inline" >> /tmp/fax/mail_fax
    for D in /tmp/fax/*png
    do
    uuencode $D $D >> /tmp/zalaczniki
    done
    cat /tmp/zalaczniki >> /tmp/fax/mail_fax
    sendmail "fax@***.pl" < /tmp/fax/mail_fax rm -rf /tmp/fax/* rm -rf /tmp/zalaczniki

    Do dzia?ania potrzebny jest ImageMagic.

    Krótkie obja?nienie

    - pierwsze trzy linijki to najbardziej podstawowa konfiguracja, odbiorca, format i szablon wiadomo?ci. Zostawi?em podczas testowania jak przychodzi? faks aby przez wadliwy skrypt poni?ej nie zosta? pozbawionym faksów :)

    - nast?pnie konwertujemy plik tiff który tworzy hylafax w /var/spool/hylafax/recvq na png. Konkretny plik hylafax przechowuje w zmiennej $FILE wi?c nie musimy nawet szuka? tego o którego nam chodzi. Wielostronicowy tiff konwertowany jest na wiele plików png w/g schematu - je?li dajemy nazw? fax.png jako pliku wyj?ciowego dostajemy fax-1.png, fax-2.png itd.

    - kolejne 6 linijek tworzy nag?ówek maila, bez tego te? zadzia?a, ale odbiorca dostanie fax bez tematu od UNIX-to-UNIX Copy (uucp@domena), za?o?? si?, ?e to si? nie spodoba ludziom z poza IT :) Mamy zatem ?adnie od kogo dla kogo, z numerem telefonu który do nas wysy?a? w temacie.

    - nast?pne 4 linijki to p?tla dzia?aj?ca na katalogu gdzie s? nasze skonwertowane pliki png. Ka?dy plik png trzeba zakodowa? do ascii i doklei? do wcze?niej stworzonego pliku z nag?ówkiem.

    - ostatecznie wysy?amy mail sendmailem do??czaj?c nag?ówki i za??czniki z pliku.

    - ostatnie dwie linijki - sprz?tamy oczekuj?c nast?pnego faksu :)

    Trzeba pami?ta?, aby wszystkie polecenia i katalogi u?yte w tym skrypcie mog?y by? wykonane przez u?ytkownika uucp.

    Je?li wszystko gra, adresat maila powinien otrzyma? mniej wi?cej tak? wiadomo??:

    Job / Praca

    Windows Server + GPO + LogIN/OFF Script + XCOPY Incremental Backup

    W du?ym przedsi?biorstwie zadbanie o backup serwerów i stacji roboczych to do?? istotne przedsi?wzi?cie. U?ytkownicy raczej nie s? ?wiadomi, ?e powinni robi? kopie tego co wa?ne. Po czym wnosz?? Po prawie 4 latach pracy jako Admin w du?ej korpo, na palcach jednej r?ki mog? policzy? osoby które zapyta?y si?, jak lub gdzie maj? zgrywa? swoje dane lub poprosi?y o kupno np dysku USB. Zatem dbamy. Serwery opisz? kiedy indziej – rsync, tar, certyfikaty do ssh, mt – raczej s? znane i stosowane, dodatkowo mo?na zastosowa? bonding do zwi?kszenia transferu, ale o tym jak ju? pisa?em – kiedy indziej.

    Dzisiaj prosty sposób na u?ycie polityk Windows Serwera do kopiowania plików u?ytkowników na zdalny storage w mieszanym ?rodowisku Windows 7 i Windows XP.

    Co to b?dzie robi?o:
    – rozpoznaje jakiego u?ywamy Windowsa :)
    – rozpoznaje czy katalog z nazw? u?ytkownika jest ju? stworzony , je?li nie – tworzy.
    – w katalogach u?ytkownika dzieli na podkatalogi „dokumenty” i „pulpit” aby nie by?o ba?aganu.
    – wy??cza potwierdzenia kopiowania plików na istniej?ce pliki
    – kopiuje tak?e pliki ukryte
    – po pierwszym kopiowaniu nadpisuje tylko te które si? zmieni?y lub dodaje nowe.

    Skrypt BAT wygl?da tak:

    IF EXIST %userprofile%\Documents GOTO BackupWin7

    :BackupWinXP

    IF EXIST \\storage\data\%username% GOTO TylkoKopia
    mkdir \\storage\data\%username%
    xcopy /Y "c:\Documents and Settings\%username%\Moje Dokumenty" \\storage\data\%username%\dokumenty /e /i /h /d
    xcopy /Y "c:\Documents and Settings\%username%\Pulpit" \\storage\data\%username%\pulpit /e /i /h /d
    :TylkoKopia
    xcopy /Y "c:\Documents and Settings\%username%\Moje Dokumenty" \\storage\data\%username%\dokumenty /e /i /h /d
    xcopy /Y "c:\Documents and Settings\%username%\Pulpit" \\storage\data\%username%\pulpit /e /i /h /d
    Goto EOF

    :BackupWin7
    IF EXIST \\storage\data\%username% GOTO TylkoKopia7
    mkdir \\storage\data\%username%
    xcopy /Y "c:\Users\%username%\Documents" \\storage\data\%username%\dokumenty /e /i /h /d
    xcopy /Y "c:\Users\%username%\Desktop" \\storage\data\%username%\pulpit /e /i /h /d
    :TylkoKopia7
    xcopy /Y "c:\Users\%username%\Documents" \\storage\data\%username%\dokumenty /e /i /h /d
    xcopy /Y "c:\Users\%username%\Desktop" \\storage\data\%username%\pulpit /e /i /h /d
    Goto EOF

    :EOF

    Zdalna lokalizacja to oczywi?cie storage – trzeba dopisa? swój serwer lub IP gdzie ma si? kopiowa?, lub dopisa? do swojego DNS’a IP do maszyny która b?dzie nazywa? si? storage.

    /Y – wy??cza promptowanie o potwierdzenie nadpisania pliku
    /D – bez podania czasu dzia?a jak incremental backup

    Pierwszy IF EXIST na podstawie katalogu Documents sprawdza czy u?ywamy Windows XP czy 7. Nast?pnie w odpowiednich blokach IF EXIST sprawdza czy jest na serwerze storage katalog z nazw? u?ytkownika, je?li nie ma tworzy j? i zaczyna kopiowanie. Je?li jest, po prostu zaczyna kopiowanie.

    Skrypt nale?y zapisa? na serwerze w miejscu dla login lub logoff skryptów (odpowiedni katalog otworzy si? przy dodawaniu skryptu do GPO).

    W zale?no?ci od potrzeb podczepiamy skrypt na logowanie lub wylogowywanie. Przy wylogowywaniu backup nast?puje zaraz po zako?czeniu pracy. Je?li u?ytkownik u?ywa komputera stacjonarnego to jest to najlepsza opcja, wy??cza komputer, idzie do domu, komputer kopiuje to co trzeba i si? wy??cza. Gorzej je?li to laptop i u?ytkownik chce go zabra? i musi czeka?, wtedy lepiej da? skrypt jako login. Skrypt odpali si? jednocze?nie z logowaniem i b?dzie dzia?a? w tle umo?liwiaj?c prac?. Mo?na doda? @echo off na pocz?tku aby nie by?o widoczne stado lataj?cych plików :)

    Implementacja na Windows Serwer:

    1. gpmc.msc
    2. Wybieramy odpowiednie OU
    3. Prawy klawisz na OU – Create And Link GPO Here…
    4. Nadajemy nazw?
    5. Prawym klawiszem na nazwie
    6. Edit
    7. Wybieramy User Configuration
    8. Wybieramy Windows Settings
    9. Wybieramy Scripts(Login/Logoff)
    10. Dwa razy klikamy na wybranym skrypcie (login lub logoff)
    11. W Logon lub Logoff Properties Wybieramy Add..
    12. Wybieramy Browse.. i wybieramy skrypt do wykonania. (Je?li go nie ma to w?a?nie w tej lokalizacji ma si? znale?? – trzeba go tam wkopiowa?).
    13. OK i zamykamy edycj? GPO.
    14. W shellu uaktualniamy polityki – gpupdate /force

    Próbujemy si? wylogowa? lub zalogowa?, efektem powinny by? katalogi u?ytkowników na zdalnym storageu.

    root@storage:/data/samba# ll
    razem 44
    drwxrwxrwx 10 root root 4096 2012-01-17 14:12 ./
    drwxr-xr-x 7 root root 4096 2012-01-12 21:42 ../
    drwxr-xr-x 4 nobody nogroup 4096 2012-01-17 13:08 user1/
    drwxr-xr-x 4 nobody nogroup 4096 2012-01-17 13:49 user2/
    drwxr-xr-x 4 nobody nogroup 4096 2012-01-17 12:59 user3/
    drwxr-xr-x 4 nobody nogroup 4096 2012-01-17 13:56 user4/
    drwxr-xr-x 4 nobody nogroup 4096 2012-01-17 14:05 user5/
    drwxr-xr-x 4 nobody nogroup 4096 2012-01-17 13:49 user6/
    drwxr-xr-x 4 nobody nogroup 4096 2012-01-17 13:06 user7/
    drwxr-xr-x 4 nobody nogroup 4096 2012-01-17 14:12 user8/

    Po ci??kim dniu pracy, je?li storage wyposa?ony jest w streamer mo?na ca?y katalog /data/samba nagra? jako gotowy dzienny backup.
    Do skryptu oczywi?cie mo?na dopisa? dodatkowe katalogi w/g potrzeb.
    Raz na jaki? czas (np. miesi?c)warto skasowa? ca?? zawarto?? backupu, aby wykona? si? pe?en backup, poniewa? skrypt nie kasuje plików które by?y lokalnie, ale ju? ich nie ma.

    © odwiedź stronÄ™ http://maciejewski.org po wiÄ™cej fajnych postów!

    Job / Praca

    Bezpieczne filtrowanie poczty przy pomocy imapfilter

    Je?li dostajecie mnóstwo maili codziennie, zapewne filtrujecie je w tym czy innym programie pocztowym. Je?li jednak wy??czycie ten program, wszystkie maile trafiaj? do INBOX i tam czekaj? na swój los do czasu uruchomienia programu pocztowego który je odfiltruje. Problem pojawia si? kiedy odbieramy maile na telefonie, lub na innym komputerze. Na innej maszynie mo?na od biedy przenie?? regu?ki filtrowania, ale robi? to przy okazji ka?dego u?ycia nowego komputera albo webmaila nie ma sensu. W przypadku telefonu jest jeszcze gorzej, a ikonka koperty z liczb? 900+ zniech?ca w ogóle do przegl?dania poczty.

    Do sprawy podchodzimy oczywi?cie kompleksowo, jako Admini wiemy, ?e trzeba si? tak napracowa? aby si? na d?u?sz? met? nie narobi? :) Dlatego najrozs?dniejszym rozwi?zaniem jest u?ycie imapfilter’a na jakiej? UNIXowej maszynie, która i tak ci?gle mieli powietrze (oczywi?cie w przerwach kiedy co? robi po?ytecznego ;). Je?li jeste?cie adminami w?asnego serwera pocztowego to ju? nie ma lepszego miejsca – ??czenie do localhost jest najszybsze i najbezpieczniejsze bo nie wychodzimy poza maszyn? gdzie mamy poczt?.

    Imapfilter korzysta z j?zyka LUA, którego sk?adnia jest do?? prosta a opcje imapfiltra bardzo dobrze opisane w man imapfilter_config.

    Mój przyk?adowy konfig wygl?da tak:

    options.timeout = 120
    options.subscribe = true

    account = IMAP {
    server = 'localhost',
    username = 'login@domena.pl',
    password = 'haslo',
    }

    arpwatch = account.INBOX:contain_from('arpwatch@domena.pl')
    account.INBOX:move_messages(account['Raporty.Arpwatch'], arpwatch)

    vpnok = account.INBOX:contain_subject('VPN Accepted!')
    account.INBOX:move_messages(account['Raporty.VPN.OK'], vpnok)

    vpnbad = account.INBOX:contain_subject('VPN Rejected')
    account.INBOX:move_messages(account['Raporty.VPN.Rejected'], vpnbad)

    eventsentry = account.INBOX:contain_from('eventsentry@domena.pl')
    account.INBOX:move_messages(account['Raporty.Event\ Sentry'], eventsentry)

    potwierdzenia = account.INBOX:contain_subject('Przeczyt') +
    account.INBOX:contain_subject('Potwierdzenie dor?czenia wiadomo?ci') +
    account.INBOX:contain_subject('Potwierdzenie dostarczenia wiadomosci') +
    account.INBOX:contain_subject('Read:') +
    account.INBOX:contain_subject('Potwierdzenie otrzymania:') +
    account.INBOX:contain_subject('Potwierdzenie dostarczenia wiadomo?ci') +
    account.INBOX:contain_subject('wietlono)')
    account.INBOX:move_messages(account['Potwierdzenia'], potwierdzenia)

    Na co warto zwróci? uwag?:
    + oznacza OR
    * oznacza AND
    – oznacza NOT

    Je?li podkatalog w Maildirze zawiera spacj?, trzeba j? wyESCkejpowa? – np. Raporty.Event\ Sentry

    Ca?y konfig zapisujemy w domy?lnym katalogu dla imapfiltra czyli $HOME/.imapfilter/config.lua i odpalamy na pocz?tek z opcj? -v aby zobaczy? wi?cej komunikatów. Je?li plik z konfiguracj? nazywa si? inaczej lub jest w innym miejscu wywo?ujemy imapfilter -v -c /sciezka/do/konfiga

    Je?li nie ma b??dów mo?emy przej?? do dalszej cz??ci.

    W zasadzie to jest gotowe rozwi?zanie, je?li jeste?my sami na serwerze. Je?li s? inni u?ytkownicy, którzy dodatkowo posiadaj? prawa root’a albo po prostu nie pasuje nam pozostawiania swojego has?a gdzie? w postaci jawnego tekstu mo?emy zrobi? taki manewr.

    W przypadku NetBSD instalujemy paczk?:
    wip/ccrypt: Encrypts/decrypts files using Rijndael block cipher
    oraz
    sysutils/shc: Shell script to C compiler

    Piszemy prosty skrypt który b?dzie:

    – dekryptowa? nasz konfig
    – wykonywa? konfig przy pomocy imapfiltra
    – kryptowa? konfig z powrotem

    na poczatek kodujemy config:

    ccencrypt -e -K supertajnehaslo! config.lua

    w wyniku dostajemy plik config.lua.cpt

    Teraz skrypt:

    #!/bin/sh
    ccencrypt -d -K supertajnehaslo! config.lua.cpt
    imapfilter -c /sciezka/do/pliku/config.lua
    ccencrypt -e -K supertajnehaslo! config.lua

    Po wykonaniu tego skryptu je?li ?cie?ki si? w nim zgadzaj? do programów i do konfiga, uprzednio skonfigurowane filtrowanie powinno zadzia?a?.

    No dobra, tylko co daje kodowanie pliku je?li has?o podajemy jako parametr? W takim wypadku nic nie daje, ?atwo podejrze? has?o i zdekodowa? plik konfiguracji gdzie jest has?o do naszej poczty.

    Nale?y zatem „skompilowa?” skrypt przy pomocy shc.

    shc -v -r -T -f skrypt.sh

    W wyniku dostaniemy:

    skrypt.sh.x – binarka gotowa do odpalenia
    skrypt.sh.x.c – kod ?ród?owy wygenerowany z naszego skryptu w takim jakby C.

    Sprawdzamy czy uruchomienie ./skrypt.sh.x robi dok?adnie to samo co odpalenie imapfiltra lub skrypt.sh. Je?li tak to pozostaje nam skasowa? skrypt.sh gdzie mamy jawny klucz do zakodowanego pliku z konfigiem do imapfiltra gdzie mamy jawne has?o do naszego konta pocztowego :) oraz kasujemy skrypt.sh.x.c gdzie mamy ?ród?a naszej binarki. Nadajemy prawo x do wykonywanie pliku – chmod 700 skrypt.sh.x

    Na koniec dodajemy do crona wywo?ywanie programu co ile? tam minut:

    crontab -e
    */1 * * * * /usr/home/cancer/skrypt.sh.x

    Od teraz skrypt b?dzie dokonywa? filtrowania co minut? na chwil? dekoduj?c plik z konfiguracj?, po czym b?dzie go kodowa?. Oczywi?cie rozwi?zanie nie jest idealne, co prawda w ps has?o si? nie pojawi, ale mo?na debugowa? jakby si? kto? upar?. Lepsze jednak takie rozwi?zanie ni? ?adne.

    © odwiedź stronÄ™ http://maciejewski.org po wiÄ™cej fajnych postów!

    Job / Praca

    tmux FTW!

    W codziennej pracy Administratora, logowanie na wiele maszyn i przeprowadzanie update’ów, przegl?dów, testów, audytów to niemal codzienno??. Przy paru maszynach nie jest to takie problematyczne, przy kilku albo kilkunastu – codzienne logowanie mo?e by? ju? powoli frustruj?ce. Z pomoc? przychodzi tmux czyli terminal multiplexer. Tmux to co? takiego jak screen, tylko lepszy :) Potrafi oprócz wielu sesji w jednym oknie które mo?na prze??cza?, tak?e dzieli? okno na panele horyzontalnie i wertykalnie czyli dla osób które wytkn? mi zaraz „polglisz” pionowo i poziomo. Wszystkie polecenia mo?na poda? jako parametr dlatego jedn? komend? mo?emy sobie przygotowa? ca?e ?rodowisko. Dla moich potrzeb – czyli logowanie si? na bramki VPNowe w ilo?ci 6 najlepszym rozwi?zaniem jest siatk? 3 wiersze na 2 kolumny. Dodatkowo po odpowiednim podzieleniu okna, nast?puje automatyczne logowanie przez ssh do odpowiednich maszyn dzi?ki kluczom bez has?a. Efekt ma by? taki, ?e jedna komenda przygotowuje 6 maszyn do pracy zdalnej :)

    Jedziemy:

    tmux new-session -d 'ssh cancer@10.1.2.6' \; split-window -d 'ssh cancer@10.1.3.6'\; split-window -d 'ssh cancer@10.1.4.6'\; split-window -h 'ssh cancer@10.1.5.6'\; select-pane -t 2\; split-window -h 'ssh cancer@10.1.6.6'\; select-pane -t 4\; split-window -h\; attach

    Krótkie wyja?nienie:

    new-session -d 'ssh cancer@10.1.2.6′ – tworzy now? sesj? (okno g?ówne i wywo?uje komend? systemow? w ”) -d powoduje od??czenie wszystkich klientów je?li byli pod??czeni.
    split-window – dzieli okno, domy?lnie w poziomie
    select-pane -t n – wybiera okno (licz?c od zera i od lewej do prawej)
    attach do??cza do ca?ej sesji.

    Efekt:

    Teraz ju? mo?na od razu dzia?a?, nie trac?c czasu na logowanie si? do wszystkich maszyn oddzielnie :)

    © odwiedź stronÄ™ http://maciejewski.org po wiÄ™cej fajnych postów!

    Fun

    Prezent noworoczny od operatora komórkowego.

    Dzisiaj dosta?em od naszego konsultanta sieci komórkowej, której nazwy nie pomn? coby na szykany nie narazi? si? i ca?ej firmy – prezent noworoczny.

    Chyba za dobrze negocjowa?em rok temu stawki i w tym roku okre?lili si? jasno co mog? dosta?. Przekaz jest jasny ;)

    Z drugiej strony – nowozelandzkie wino o takiej nazwie, pewnie gwarantuje niesamowity smak w ustach. Chyba jednak postawie na pó?ce jako dekoracj?, bo strach to pi? ;)

    Related Posts with Thumbnails

    © odwiedź stronÄ™ http://maciejewski.org po wiÄ™cej fajnych postów!

    Add your widget here