Oryginalnie wpis ten miał stanowić całość, jednak w miarę pisania znacznie się rozrósł. W związku z tym postanowiłem go rozdzielić na dwie części. Poniżej część pierwsza.
Podczas prac nad nowym oprogramowaniem, prędzej czy później nadchodzi moment w którym testowanie aplikacji w sieci domowej przestaje wystarczać. Być może chcemy przetestować niektóre funkcje aplikacji mobilnej będąc poza domem, udostępnić nową stronę do testów znajomym, albo wreszcie opublikować aplikację dla szerszej grupy użytkowników.
Nie ma większego problemu, jeśli mówimy o prostej stronie lub usłudze pisanej w PHP – istnieje wiele planów hostingowych, również darmowych, umożliwiających wrzucenie naszego kodu bez martwienia się o aktualizacje oprogramowania, firewalle i inne zabezpieczenia. Nie mamy tam do nich nawet dostępu, a zadaniami typowo administracyjnymi zajmują się pracownicy firmy hostingowej.
Jeśli jednak chcemy mieć dostęp do wybranych przez nas wersji oprogramowania, albo większą kontrolę nad serwerem, to zostaje nam właściwie tylko wybór między serwerami dedykowanymi; VPS; lub patentami w stylu RaspberryPi, postawionej w sypialni i wystawionej na sieć zewnętrzną.
Niezależnie od wybranej metody, będziemy musieli jakoś zabezpieczyć nasz serwer przed intruzami pokroju botów, script-kiddies, czy wannabe-hackerów. Pamiętajmy że licho nie śpi… Jako przykład podam komunikat który zobaczyłem kiedyś logując się po raz pierwszy na zakupiony dzień wcześniej serwer VPS:
Jak widać, internet jest ciągle skanowany pod kątem maszyn do potencjalnego przejęcia, lub uszkodzenia.
Pytanie tylko: jak się zabezpieczyć? Nie każdy programista zna się przecież na podstawach bezpieczeństwa systemów informatycznych (i ciężko tego od każdego wymagać). Podstawowe metody zabezpieczenia serwera opartego na systemie GNU/Linux postaram się zaprezentować w dalszej części postu.
Forma może wydawać się niektórym, szczególnie bardziej zaawansowanym użytkownikom, nieco rozwlekła. Chciałem jednak opisać wszystkie czynności w taki sposób, żeby nawet osoby nie mające żadnych wcześniejszych doświadczeń z administracją systemem Linux dowiedziały się nie tylko, co zrobić, ale też dlaczego proponuję akurat takie rozwiązania. Czytaj dalej „Server Security 101 – Podstawowe metody zabezpieczenia dev-serwera. Część I” →