Jeśli jesteś użytkownikiem MacOS to bardzo prawdopodobne, że już słyszałeś o aplikacji Homebrew. Ten system dystrybucji oprogramowania zastępuje dobrze znane rozwiązania konsolowe z systemów linuksowych. Pozwala dbać o aktualizacje, czyścić system z niepotrzebnych pozostałości po instalacjach itd. W zasadzie można powiedzieć, że dla kogoś kto jest przyzwyczajony do repozytoriów oprogramowania stanowi swoiste narzędzie typu must have dla fanów Apple.
Biorąc pod uwagę bogactwo oprogramowania, które trudno znaleźć w oficjalnych kanałach dystrybucji MacOS Homebrew na pewno jest alternatywą dla osób instalujących takie perełki jak np. Midnight Commander czy ffmpeg. Zazwyczaj instalacja takich aplikacji nie stanowi dla niego większych problemów bo sprowadza się do wpisania jednej linijki z komendą w shellu systemowym.
W codziennej pracy z systemem nieodzowne jest narzędzie to archiwizacji plików. W pracy z MacOS dostępnych jest wiele programów spełniających dobrze te funkcje dla większości otwartych algorytmów jak np. Keka. Co jednak jeżeli otrzymamy pliki spakowane za pomocą RAR. Czy szukać płatnej alternatywy dla jabłuszka? A może po prostu zainstalować unrar za pomocą Homebrew? To ostatnie rozwiązanie powinno wystarczyć, aby okazyjnie poradzić sobie z takim problemem. I rzeczywiście do niedawna wystarczało, bo wspomniany unrar został usunięty z oficjalnych repozytoriów Homebrew.
Aby zaradzić przedstawionym powyżej problemom wystarczy jednak skorzystać z prostej metody korzystając z dodatkowych kanałów dystrybucji. W tym celu używając shella systemowego wpisujemy polecenie:
brew install carlocab/personal/unrar
W ten prosty sposób zainstalujemy unrar i zaoszczędzimy trochę pieniędzy.
Pendrive może zostać zepsuty. Wielokrotnie, jako użytkownikowi Macbooka, zdarzało mi się to zrobić. Działający bez zarzutu przestawał być rozpoznawany przez system. Zdarzało się to po takich operacjach jak formatowanie czy wgrywanie obrazu ISO np. z najnowszą wersją Raspberry Pi OS. Czy to oznacza, że pendrive jest bezpowrotnie uszkodzony? Muszę przyznać, że w 100% przypadków nie. Zazwyczaj nie pomagały żadne wbudowane graficzne narzędzia dla mac OS. Jednak wcale nie oznaczało to, że inne systemy jak Linux czy Windows nie potrafiły naprawić i poprawnie sformatować ponownie pendrive’a. W zasadzie zawsze chodziło o błędy tablicy partycji. No właśnie, czy mac OS jest na tyle kaleki, że trzeba szukać komputera z Windows? Jak poradzić sobie z tak prostym w zasadzie wyzwaniem?
Na szczęście zawsze można skorzystać z poleceń konsolowych i trików dobrze znanych ze wszytskich platform unixo-podobnych. Wiem, że być może nie jest to ładny i dopracowany interfejs graficzny użytkownia, ale zawsze działa niezawodnie. Zatem do dzieła!
Po pierwsze podłączamy kartę SD, dysk twardy lub inne urządzenie. Potem wydajemy polecenie, aby zobaczyć, jako które urządzenie /dev/diskN system zamontował nasz pendrive:
diskutil list
Następnie musimy odmontować dysk, gdzie N jest numerem dysku z poprzedniego polecenia:
diskutil unmountDisk /dev/diskN
Po trzecie przechodzimy do sedna i wykonujemy polecenie dd jako superuser dla dysku, dla którego N jest numerem z pierwszego kroku.
sudo dd if=/dev/urandom of=/dev/diskN bs=1000000
Spowoduje to nadpisanie wszystkich partycji, rekordów MBR i danych. Trzeba pamiętać, że wszytsko może trochę potrwać w zależności od rozmiaru dysku. Niestety nie ma wskaźnika postępu. Warto jednak poczekać i odzyskać prawie utracony pendrive.
Wirtualizacja jest obecnie jednym z najczęściej stosowanych rozwiązań zarówno na platformach serwerowych jaki i na komputerach osobistych. Pozwala przygotować środowisko testowe dla programisty. Pozwala uruchomić aplikacje napisane dla innych systemów operacyjnych niż ten, który jest naszym głównym. Zastosowań i pomysłów jest wiele. W szczególności jeśli jesteś właścicielem MacBooka Apple to prawie na pewno chociaż raz zastanawiałeś się jak uruchomić aplikację dla Windows. I nie piszę tu tylko o grach ale również o całkiem sporej rzeszy programów biurowych. Tego typu rozważania prowadzą wprost do produktów takich jak VMware Workstation lub VirtualBox – celowo pomijam programy płatne, takie rownież się znajdą dla macOS.
Z powodu przyzwyczajenia od lat korzystam z VirtualBoxa. Nie jest być może najbardziej wydajny, jak również nie zapewnia pełnego wsparcia sprzętowego, ale jako dobrze znany ma dużą społeczność użytkowników, więc można liczyć prawie zawsze na pomoc. Poza tym jego instalacja dla macOS jest banalnie prosta, a w sieci można znaleźć gotowe do użytku obrazy z Windows. Można również skorzystać z poradników typu jak przygotować sobie Windowsy bez ponoszenia kosztów i pozostać legalnym użytkownikiem – tak przynajmniej twierdzą ich autorzy.
Niestety tak jak często w życiu bywa nawet najbardziej doskonałe rozwiązania potrafią zawodzić. Tak właśnie się stało z moim VirtualBoxem po aktualizacji MacBooka do systemu macOS Big Sur wersja 11. Niby wszystko działało poprawnie i VirtualBox uruchomił się bez zarzutu, ale żadna z maszyn wirtualnych nie chciała już wystartować. Na ekranie pojawiał się komunikat: „The virtual machine 'XXX’ has terminated unexpectedly during startup with exit code 1 (0x1).” Szczegóły błędu są mało czytelne, szczególnie w kontekście wyszukania i dopasowania informacji w Inetrnecie:
Result Code: NS_ERROR_FAILURE (0x80004005)
Component: MachineWrap
Rzecz jasna jeśli zaczniemy przeglądać różne fora – również te poświęcone systemom od Apple – to spostrzeżemy, że porad jak zapobiegać takim wyjątkom jest cała masa. Ja zaś tradycyjnie chciałbym się skupić na na kilku prostych krokach, które przywracają pełną funkcjonalność VirtualBox. Przynajmnie do czasu kiedy ukaże się kolejna wersja tego oprogramowania.
Po pierwsze należy uruchomić MacBooka w trybie Recovery – przy starcie wybieramy kombinację klawiszy cmd+R. Ten krok może trwać dość długo jeżeli konieczne będzie pobranie obrazu systemu z serwerów Apple. Gdy znajdziemy się już w trybie awryjnym to wystarczy uruchomić terminal i wydać dwa polecenia:
csrutil clear
reboot
Po ponownym uruchomieniu komputera działamy dalej. Po pierwsze pobieramy ze strony producenta najnowszą wersję VirtualBoxa oraz pakiet VirtualBox Extension Pack. Po drugie po zamontowaniu obrazu instalacyjnego najpierw usuwamy aktualną wersję za pomocą skryptu VirtualBox_Uninstall.tool. Ostatecznie zaś instalujemy ponownie aplikację oraz pakiet rozszerzeń.
Problem wyciekania danych z naszych komputerów jest jednym z najczęściej omawianych zagadnień przez ostatnie miesiące a nawet lata. Skądinąd wiadomo, że wszyscy wielcy gracze na rynku ogólnie pojętych usług internetowych starają się pozyskiwać wszelkie możliwe informacje niezależnie od tego czy wyrażamy na to zgodę czy nie. A ponieważ nawet Ci, którzy dotychczas nie korzystali z usług rozporoszonych, na przykład w architekturze klient-serwer, opracowali nowe wersje swoich produktów, które po prostu wymagają Internetu pod pozorem chociażby aktualizacji, to praktycznie każdy chce stosować telemetrię. Jest to oczywiście dość łagodne określenie dla ciągłej obserwacji użytkownika, uczenia się jego nawyków itp.
Żeby walczyć z podobnymi praktykami można zastosować kilka różnych podejść. Pierwszym, które wydaje się być dosyć oczywiste jest zainstalowanie odpowiedniej aplikacji. Często funkcje nadzorowania połączeń wychodzących z komputera mają wszelkiej maści programy antywirusowe. Ale uwaga – bywa, że same lubią nas podglądać. Poza tym wiele aplikacji potrafi wykryć działanie tychże i na przykład prosić użytkownika o wyłączenie zapory pod pozorem odmowy świadczenia dalej usługi.
Kolejnym jest zainstalowanie w przeglądarce internetowej odpowiednich dodatków. Dotyczy to oczywiście korzystania z samej przeglądarki i nie zabezpiecza przed innym rodzajem użytkowania. Nie mniej wtyczki takie jak AdBlock czy Ghostery są bardzo popularne. Ponadto producenci samych przeglądarek dodają w ich najnowszych wersjach blokowanie reklam itd. Z drugiej strony czy można im wierzyć do końca? To pytanie retoryczne. Jedno jest pewne – ta metoda również ma wiele wad.
Trzecim rozwiązaniem będzie skorzystanie z połączenia VPN z funkcją blokowania dla wycieku danych z naszych komputerów. Wymaga to najczęściej zastosowania dodatkowej aplikacji, która będzie w stanie wygenerować wspomniane połączenie VPN, za co nierzadko trzeba zapłacić. Tutaj prym wiedzie usługa o nazwie Internet Private Access. Posiada bardzo szerokie możliwości konfiguracji oraz aplikacje w wersji instalacyjnej dla niemalże każdego systemu operacyjnego. Do równie ciekawych rozwiązań, które zdążyły już zdobyć pewną sławę w kręgach deweloperów należy ProtonVPN. Lista dostawców jest naprawdę długa i nietrudno jest wyszukać odpowiedniego dla siebie.
Na sam koniec zostawiłem rozwiązanie, które moim zdaniem jest najlepsze. Jest ono lekkie bo nie wymaga instalowania żadnego dodatkowego oprogramowania. Ciężko jest je wykryć (mam na myśli aplikacje czy systemy korzystające z telemetrii) bo ingeruje w jeden z podstawowych protokółów sieciowych jakim jest DNS. Jest w stanie zmienić zachowanie absolutnie każdego programu, który tylko będzie chciał nawiązać komunikację przez sieć Internet. Co więcej, całkiem prawdopodobne, że przyspieszy oraz poprawi funkcjonowanie naszych końcówek sieciowych, bo znacznie ograniczy niepotrzebny ruch. Mowa oczywiście o serwerze DNS, który będzie miał odpowiednio skonfigurowane reguły rozwiązywania nazw, tak aby po prostu zablokować wszystkie podejrzane odwołania.
W wersji dla leniwych można po prostu skorzystać z bezpłatnego (będzie miał wyłączone niektóre funkcje ale na początek powinno wystarczyć) gotowca. Jest nim na przykład serwis OpenDNS. Przyznam, że korzystałem z niego przez wiele lat z dużym powodzeniem. Po zarejestrowaniu konta użytkownika oraz skonfigurowaniu serwerów DNS, czyli podaniu poniższych wartości w ustawieniach karty sieciowej system startował bez zarzutu.
208.67.222.222
208.67.220.220
W wersji dla zuchwałych trzeba samemu lokalnie przygotować serwer DSN, który będzie mógł obsługiwać ruch sieciowy. Bardzo dobrym rozwiązaniem jest w tym przypadku Pi-hole. Społeczność użytkowników i programistów przygotowała kompletny system, gotowy do użycia „po wypakowaniu z pudełka”. Można go zastosować na mikrokomputerze Raspberry Pi – jest to jeszcze jedno jego doskonałe zastosowanie. Można również, do czego zachęcam, skorzystać z kontenerów Docker i w zasadzie jednym poleceniem postawić cały serwer.
Na zakończenie warto zadać ponownie pytanie – problem wyciekania danych, czy można skutecznie przeciwdziałać? Odpowiedzią niech będzie prosty raport z dnia dzisiejszego dla mojej domowej sieci.
XSIBackup jako super wygodne narzędzie do wykonywania kopii zapasowych maszyn wirtualnych VMware sprawuje się bez zarzutu. Pisałem o tym programie wielokrotnie np. tutaj. Wspominałem również, że w połączeniu z VMware vCenter Converter Standalone stanowi szwajcarski scyzoryk na wypadek grubszej awarii tj. gdy musimy bardzo szybko odtworzyć wirtualizację np. z powodu awarii sprzętowej hosta.
W przyrodzie nie ma jednak rozwiązań doskonałych i nawet XSIBackup potrafi spłatać figla. Sytuacja, którą chciałem opisać dotyczy momentu tuż po aktualizacji VMware ESXi, kiedy mamy już powgrywane najnowsze patche a jeszcze nie aktualizowaliśmy naszego programu do kopii. Ja po prostu o tym zapomniałem – do tego stopnia, że nawet przeoczyłem brak nowych raportów email o kopiach zapasowych. A program się zwiesił.
Dość szybko znalazłem opis błędu w Internecie, odpowiedzialny był interpreter, a dokładniej jego niezgodność (w nowej wersji VMware) ze starszą wersją XSIBackup. Stanąłem przed koniecznością zainstalowania nowego wydania… i popełniłem duży błąd. Podążając za rozmaitymi poradnikami z forów użytkowników, gdzie twierdzono, że zasadniczo wystarczy podmienić odpowiednie pliki i wszystko powinno działać, pracowicie skopiowałem co trzeba. Zależało mi głównie na tym aby nie tracić tzw. jobs, czyli zadań kopiowania, które zdążyłem skonfigurować (nie jest to trywialna czynność ze względu na mnogość opcji). Zostawiłem całość bez przetestowania – kolejny błąd, a za dwa dni zadzwonił do mnie zaniepokojony użytkownik z informacją, że serwer nie działa. Chodziło o jdną z maszyn wirtualnych. Okazało się, że nie odpowiada cały host VM 🙁 Była sobota i w tym momencie runęła perspektywa wypoczynku. Po dotarciu na miejsce tzn. do serwerowni, ze zdziwieniem stwierdziłem, że serwer działa bez zarzutu, ale interfejsy sieciowe padły. Rzecz jasna restart całej jednostki pomógł, ale zmobilizowało mnie to do wykonania dwóch czynności, które powinienem zrobić od razu.
Po pierwsze usunąłem całą instalację XSIBackup. Polega to głównie na skasowaniu wszystkich plików i co ważne usunięciu zadań kopiowania na poziomie cron:
rm -rf "/vmfs/volumes/datastore1/xsi-dir"; \
chmod 0700 /var/spool/cron/crontabs/root; \
sed -i '/-dir\/jobs/d' /var/spool/cron/crontabs/root; \
sed -i '/cron-init/d' /etc/rc.local.d/local.sh
Po drugie zainstalowałem od nowa XSIBackup odtwarzając skopiowane wcześniej zadania automatycznego wykonywania kopii. Na szczęście pomogło.
31 maja, 2020 | Możliwość komentowania Zewnętrzny numer IP? została wyłączona | Kategoria: Linux, Porady, Windows
Numer IP – bardzo często bywa tak, że z jakichś powodów chcielibyśmy uzyskać informację na ten temat (zwłaszcza jeśli chodzi o zewnętrzny numer IP). Jak zauważyłem problem ten dotyczy nie tylko sytuacji, w której po prostu sprawdzamy czy operator przydzielił nam właściwy adres IP, ale również coraz częściej jeśli chcemy np. sprawdzić czy zadziałało połączenie prywatne VPN. Zauważyłem, że powoli stają się one standardem (i bardzo dobrze), warto zatem czasami upewnić się, że nasz ruch przechodzi przez odpowiedni router.
Do tej pory można to było zrobić na kilka, mniej lub bardziej eleganckich sposobów. Dla mniej wprawnych zawsze pozostaje np. serwis https://www.whatismyip.com. Ta metoda wymaga jednak posiadania interfejsu graficznego czyli GUI. A jak zrobić to samo na serwerze, który posiada tylko czystą konsolę tekstową?
Tutaj również mamy do dyspozycji wiele metod. Szczególnie jeżeli używamy mojego ulubionego rozwiązania czyli Linuxa. Od lat korzystałem w tym celu z dobrze znanego polecenia wget, które pozwala na sparsowanie wyjścia i tą nieco pokrętną metodą uzyskanie odpowiedzi na pytanie postawione w tytule artykułu:
/usr/local/bin/wget -qO - http://ipinfo.io/ip
Świat idzie jednak do przodu (i bardzo dobrze). wget powoli jest zastępowany przez nowe polecenie (a w zasadzie rozbudowane narzędzie) czyli curl. W takim wydaniu uzyskanie informacji jaki jest zewnętrzny numer IP jest jeszcze prostsze:
WMware ESXi jest naprawdę bardzo przydatnym rozwiązaniem dla wirtualizacji całych systemów. Ponad rok temu pisałem o narzędziu xsibackup, które w wersji nieodpłatnej pozwala wykonywać kopie zapasowe maszyn wirtualnych. Zrobienie kopii to jedna sprawa, czym innym jest przywrócenie z niej systemu. Oczywiście wersja bezpłatna nie ma takiej opcji. Jak sprawdziłem plik z kopią bardzo dobrze nadaje się do wykorzystania przez inne narzędzie, – VMware vCenter Converter Standalone. W ten sposób można cieszyć się całkiem sprawnym systemem zapisywania i odtwarzania maszyn wirtualnych w przypadku awarii. Nawet totalnej katastrofy. Wielu administratorom zapewnia to spokojny sen.
Skoro już mowa o tym czego brakuje w wolnej wersji xsibackup, to tydzień temu natrafiłem na jeszcze jedno ograniczenie. Przy wykonywaniu kopii zapasowych potrzebne jest miejsce nie tylko na samą kopie ale także na operacje związane z buforowaniem i danymi tymczasowymi tworzonymi podczas całego procesu.
Korzystając z przykładu – kupiłem 2 dyski dodatkowe dyski do serwera, tego samego rozmiaru. Pomijając przyczynę nie mogłem dodać ich do macierzy RAID. Postanowiłem na pierwszym utworzyć maszynę wirtualną a na drugi zrzucać codziennie pełną kopię/duplikat tejże. Oczywiście zostawiłem nieco miejsca na pierwszym dysku. Jak się okazało było go zdecydowanie za mało na drugim (tam gdzie docelowo miała być kopia). Zaraz, zaraz możecie zapytać, coś się tutaj nie zgadza. I rzeczywiście za pierwszym razem xsibackup tworzył pierwszą kopię. Jednak zdecydowanie nie chciał wykonać jej po raz drugi jeżeli w tym miejscu znajdowała się kopia z poprzedniego dnia. Niby sprawa jest prosta bo przecież nasuwa się od razu rozwiązanie. Polega ono na usuwaniu za każdym razem istniejącej kopii przed wykonaniem kolejnej. Przecież każdy program do backupów ma coś takiego. Niestety xsibackup w wersji darmowej nie ma!
W tym momencie rozpoczęła się przygoda z ESXi. Usunięcie danych z katalogu w systemie Linux to nic trudnego:
rm -R /scieka_do_katalogu/*
Ponieważ WMware ESXi to tak naprawdę Linux (no może to nie całkiem prawda), można zatem skorzystać właśnie z tej komendy. Należałoby dopisać ją do crona systemowego, tuż przed wykonywaniem kopii zapasowej xsibackup, która już się tam znajduje. I właśnie dostrajanie po swojemu ESXi na tym poziomie jest delikatnie mówiąc kłopotliwe. Dlatego wpadłem na pomysł, żeby zastosować pewną sztuczkę.
xsibackup ma już gotowy zestaw skryptów pozwalający na dodawanie zadań systemowych wg z góry zdefiniowanego harmonogramu. Zadania są umieszczane w jego katalogu instalacyjnym zgodnie z narzuconą konwencją. Pierwsze zadanie znajduje się w pliku:
../xsibackup/jobs/001
Drugie będzie miało nazwę 002 itd. Dlaczego zatem nie dodać w tym miejscu wspomnianej wcześniej komendy – właśnie jako kolejnego zadania? Czyli zawartość pliku 002 powinna wyglądać jak nasza komenda:
„rm -R /sciezka_do_katalogu/*”
Teraz należ jeszcze pamiętać o dodaniu zadanie do crona. Robimy to tak jak w typowym systemie linuksowym, z tym że tutaj edytujemy plik:
../xsibackup/conf/root-crontab
Aby ostatecznie zatwierdzić wszystkie zmiany wywołujemy polecenie
./xsibackup —update-cron
Jeśli nie zostaliśmy ostrzeżeni komunikatami o błędach to znaczy, że udało się. Teraz wystarczy poczekać dzień, dwa aby przekonać się czy nasz backup zadziała poprawnie.
Przez ostanich parę lat serwery poczty e-mail przeszły niemałą rewolucję. Jak dobrze pamiętam, kiedyś postawienie własnego MXa wiązało się z konkretną pracą. Mówiąc precyzyjniej zabezpieczeniem takiego serwera tak, aby nie był open-relayem, włączeniem wszystkich autoryzacji i np. przygotowaniem skrzynek z obsługą IMAP, LDAP itp. Obecnie można w miarę łatwo osiągnąć ten cel stosując dopracowane i wygodne w użyciu platformy, jak chociażby iRedMail. Jest to prawdą w odniesieniu do standardowych konfiguracji. Nie po to jednak mamy Linuxa aby zostawić rzeczy samym sobie i nie próbować zmieniać czy poprawiać konfiguracji, czytaj – dostosowywać do swoich potrzeb.
Przy rozbudowanych systemach, z obsługą dużej liczby skrzynek pocztowych, wygodną metodą jest przechowywanie konfiguracji w bazie danych. Osobiście preferuję w tym celu usługi katalogowe LDAP. Moim zdaniem są szybkie i niezawodne, a odpowiednio skonfigurowane bezpieczne. Wspomniany iRedMail pozwala na organizowanie warstwy logiki serwera pocztowego za pomocą LDAPa.
Świat nie stoi w miejscu i nawet jeżeli jako administratorzy mamy względny spokój, bo nikt od nas nie wymaga przenoszenia usługi pocztowej do nowego dostawcy lub na nowe serwery, to zawsze może się zdarzyć, że sami zostaniemy do tego zmuszeni, bo np. chcemy wymienić sprzęt (lub fizycznie nawet cały serwer). Oczywiście w najprostszym scenariuszu będzie się to wiązało z wykonaniem kopii zapasowej bazy LDAP a potem odtworzeniem jej na nowym węźle. No właśnie – w najprostszym, co się jednak stanie jeżeli musimy zmienić co nieco w naszej usłudze katalogowej.
Przykładem takiej ingerencji może być wymuszenie zmiany atrybutu Distinguished Name – DN. Dzieje się tak, gdy przenosimy jedną z obsługiwanych domen emailowych do całkowicie nowej struktury LDAP. W tym miejscu okazuje się jak wygodny i zarazem niewygodny potrafi być LDAP. Otóż dla jego doświadczonego użytkownika sprawa jest prosta i realizowana w 3 krokach:
wyeksportuj starą bazę LDAP do pliku LDIF (format tekstowy, bez kompresji)
wyedytuj dowolnym edytorem plik LDIF i wprowadź potrzebne zmiany
zaimportuj plik LDIF do nowej bazy LDAP
I wszystko byłoby dobrze gdyby nie fakt, że w trakcie eksportu każdy wiersz pliku LDIF jest obcinany do 76 znaków a część nadmiarowa przenoszona ze spacją do nowej linii. Bardzo to utrudnia zastosowanie popularnej metody edycji Search and Replace, ponieważ wzorzec wyszukiwania nie jest jednoznaczny. Należy po prostu inteligentnie usunąć wszystkie miejsca łamiania wiersza.
Jeżeli dysponujemy Linuxem z jego wszelkiemi udogodnieniami i narzędziami to przepis jak to zrobić będzie prosty:
RBL, DNSBL o co w tym chodzi? Chociaż czasami poczta elektroniczna nie jest łatwa w konfiguracji to do tej pory, przynajmniej moim zdaniem, nie wymyślono lepszego zamiennika. Szczególnie jeśli mowa np. o korespondencji firmowej, oficjalnej itp. Będąc administratorem firmowego serwera pocztowego na pewno nie unikniemy walki ze spamem i temu chciałbym poświęcić ten wpis.
Wydawać by się mogło, że temat jest ponad miarę wyeksploatowany i w zasadzie nie ma nad czym się rozwodzić. Dlatego nie chcę się skupiać na instalacji i zabezpieczeniu serwera w całości. W końcu można do tego użyć chociażby pakietu iRedMail, który naprawdę polecam. Tym razem chcę pokazać jak ubić spam na wejściu, czyli na poziomie Postfixa, a jeszcze precyzyjniej na poziomie demona systemowego nierozerwalnie z nim związanego – mowa o Postscreen. Zwróćmy od razu uwagę, że taka konfiguracja nie wymaga instalacji np. Amavis i Spamassasin, co bywa pewnym wyzwaniem, zwłaszcza dla początkujących użtkowników.
Podstawą dla przytaczanego tutaj rozwiązania jest DNSBL, czyli czarna lista tworzona z pomocą DNS. Nie musimy tworzyć jej sami, możemy wykorzystać ogólnodostępne serwisy, które robią to dla nas. Z Postfixem bardzo dobrze komponują się dwa z nich – Spamhaus oraz BarracudaCentral. W tym miejscu należy wspomnieć, że Spamhaus ma ograniczenie do 100.000 połączeń na dzień. Zakładam jednak, że mówimy o normalnym serwerze pocztowym dla średniej firmy, więc raczej nie powinniśmy przekroczyć 100.000 maili przychodzących z zewnątrz dziennie.
Ostatecznie uzbrojenie w powyższą wiedzę możemy przystąpić do konfiguracji Postfixa, która jak zwykla jest dosyć prosta. 🙂
Skonfigurowanie obsługi DNSBL wymaga wyedytowania pliku /etc/postfix/main.cf i dodaniu parametrów do opcji postscreen_dnsbl_sites:
Liczba na końcu parametru jest wagą, która powoduje podbicie punktacji.
Sugerowaną konfiguracją jest również korzystanie z lokalnego serwera cache DNS. Może to być dowolny pakiet. Przy dużym natężeniu ruchu przychodzącego zdecydowanie przyspiesza działanie usługi pocztowej:
Ostanim parametrem, którego wartość warto rozważyć jest postscreen_dnsbl_action. Zazwyczaj jest ona ustawiona na enforce, co oznacza przekazanie do dalszego przetwarzania. Czasami jednak warto jest ubić wszystkie niechciane połączenia:
postscreen_dnsbl_action = drop
Po zapisaniu nowej konfiguracji Postfixa, musimy ponwnie uruchomić serwis.
Karta SD i jej formatowanie w Mac OS może być źródłem problemów. Sam kilka razy miałem kłopoty. Oczywiście jeśli stosujemy standardowe rozwiązania i mamy kartę sformatowaną dla systemu MS-DOS (FAT), tudzież dla typowego Mac OS Extended (Journaled) to raczej nie napotkamy na żadne przeszkody. Czasami jednak, zwłaszcza gdy zamierzamy testować np. Raspberry Pi, musimy zmierzyć się z innymi systemami plików. I nie chodzi w tym przypadku o zakładanie i konfigurowanie tychże, ale o przygotowanie karty do pracy, czyli usunięcie w pierwszym kroku wszystkich partycji z dostępnej przestrzeni. Niestety, bez tego często nie jesteśmy w stanie korzystać z SD. Wiem, że brzmi to co najmniej dziwnie, ale sam miałem takie problemy.
Jak sprawdziłem najszybszą niezawodną metodą jest skorzystanie z wbudowanych narzędzi systemowych. A więc czas uruchomić terminal. 😉
Jednym z najbardziej pożytecznych i skutecznych narzędzi jest diskutil. Program ten pozwoli nam na wyświetlenie zawartości karty SD:
$ diskutil list
Otrzymamy nazwy urządzeń (np. disk2 lub disk3) z przypisanymi partycjami. Z wyświetlonych informacji można łatwo wywnioskować, które urządzenie to karta SD. Zakładając, że jest np. disk2, możemy przygotować kartę do pracy z Raspberry Pi:
Na tym jednak nie koniec. Wracając do głównego wątku, możemy również dosłownie wyzerować kartę SD. W tym celu najpierw powinniśmy odmontować urządzenie:
$ diskutil unmountDisk disk2
A potem usunąć jej zawartość:
$ diskutil zeroDisk disk2
Lub inną metodą:
$ diskutil randomDisk disk2
Warto wspomnieć, że opisana komenda sprawdza się również w przypadku pamięci USB, dysków twardych itd. Trzeba jej jednak używać bardzo ostrożnie, i chyba nie muszę tłumaczyć dlaczego.