Single Packet Authorization za pomocą fwknop

W [ostatnim poście][1] opisywałem grupę SSHPsychos, która przeprowadza ataki brute force na usługę SSH. Grupa w dalszym ciągu aktywnie działa, co potwierdzają logi z moich honeypotów 😉

W nawiązaniu do tego posta opiszę krok po kroku jak wdrożyć i skonfigurować jedną z rekomendacji którą zaproponowałem na końcu wpisu czyli Port Knocking, a konkretniej rozszerzenie tej techniki o nazwie Single Packet Authorization (w skrócie SPA).

Czym jest Port Knocking?

Port Knocking jest techniką pozwalającą zdalnie otwierać porty na firewallu. Realizowane jest to za pomocą sekwencji pakietów wysyłanych na określone, zamknięte porty.

Dla lepszego zobrazowania sytuacji posłużę się przykładem: serwer na świat zewnętrzny ma wystawiony jeden port – 80. Przynajmniej tak widzą to skanery jak np. [nmap][2].

“Pod spodem” działa jeszcze usługa SSH na domyślnym porcie 22, który nasłuchuje tylko wtedy, gdy wcześniej dostanie dwa pakiety na odpowiednio na porty 12345 i 54321. W innym wypadku usługa jest zablokowana poprzez firewall i nie możemy się do niej połączyć.

Niestety dużą wadą tego rozwiązania jest możliwość podsłuchania sekwencji wysyłanych na wskazane porty – napastnik może wysłać taką samą do serwera, a w konsekwencji jego IP otrzyma dostęp do zablokowanego portu.

Czym jest SPA?

SPA, w naszym scenariuszu, funkcjonalnie oferuje to samo co Port Knocking – odblokowuje zamknięte porty. Istotne różnice in plus następują w sposobie uwierzytelniania klienta. Odbywa się to za pomocą wysłania zaszyfrowanego pakietu przez inicjującego połączenie. W przypadku pomyślnego odszyfrowania wiadomości przez serwer następuje otwarcie portu dla danego klienta.

Instalacja fwknop na serwerze

Po niezbędnej teorii czas na wdrożenie. Wszystkie przedstawione poniżej kroki tyczą się wszystkich dystrybucji pochodnych od Debiana – w poście wykorzystuję Ubuntu Server 14.04.

Wydajemy polecenie