[Instrukcja] Jak zabezpieczyć serwer VPS pod masternoda?

Stawiając swojego własnego masternoda należy pamiętać, że będziemy wspierać zdecentralizowaną sieć. Bezpieczeństwo takiego serwera – mimo, że nie znajdują się na nim nasze środki – jest sprawą priorytetową, dlatego też należy odpowiednio o to zadbać. Nie będę się wgłębiał szczegółowo w kwestie bezpieczeństwa systemów Linux, ale podam Ci gotową instrukcję podstawowego zabezpieczenia swojego VPS – taką dla laika 🙂

Stawiając własnego masternoda korzystamy najczęściej z serwisów oferujących tak zwane serwery VPS, czyli Virtual Private Server. Jest to sposób podziału maszyny na mniejsze jednostki, o określonych parametrach, które imitują oddzielne serwery fizyczne. Stawiając swojego masternoda na takim serwerze, warto go odpowiednio przygotować pod pełnienie tej funkcji. Przeprowadzę Cię przez proces zabezpieczania serwera, który powinieneś przeprowadzić zanim zaczniesz stawianie masternoda na własnym serwerze. Gotowy?

Zmień hasło roota

Większość serwerów wysyła hasło roota (superużytkownika/administratora) na twój adres e-mail. Bardzo często wygenerowane hasło jest ciągiem przypadkowych znaków, ale zauważyłem, że bardzo dużo osób poprostu je zapisuje, nie zmieniając go. Błąd – zmień hasło root w pierwszej kolejności. Zrobisz to wpisując w konsoi następującą komendę:

passwd

Nie zaleca się korzystania z konta root podczas codziennego korzystania z serwera lub stawiania masternodów. Dobrze będzie utworzyć konto nowego użytkownika (nazwijmy go crypto) i nadać mu trochę więcej uprawnień:

adduser crypto
usermod -aG sudo crypto
su – crypto
sudo apt-get update

Od tej pory loguj się i korzystaj z konta crypto podczas stawiania jak i robienia aktualizacji

Zmień numer portu SSH

Kolejnym krokiem powinna być zmiana portu, przez który łączysz się ze swoim serwerem. Domyślnie SSH nasłuchuje na porcie 22 i często właśnie te porty są atakowane przez hakerów. Aby zmienić domyślny port SSH musimy edytować plik sshd_config – zrobisz to wpisując w konsolę:

sudo nano /etc/ssh/sshd_config

Jeżeli po wpisaniu tej komendy wyskoczy błąd w stylu ‘nano: command not found’ , to musisz doinstalować edytor nano i po instalacji powtórzyć powyższą komendę:

apt-get update
apt-get install nano

Po otwarciu pliku sshd_config, w okolicach 5-6 linijki znajdź wiersz Port 22 (po edytorze poruszasz się strzałkami). Zamień 22 na dowolny port z zakresu 1000-49151 (wybrany port nie może być w użyciu!). Ja zazwyczaj wybieram port w okolicach 9700-9800 bo z takich portów najczęściej korzystają masternody. Powiedzmy, że wybrałeś port 9889 – wiersz w pliku powinien więc wyglądać następująco: Port 9889 . Po zmianie musisz zapisać plik poprzez wciśnięcie kombinacji klawiszy Ctrl + O a następnie opuścić edytor klikając Ctrl + X . Pora na zresetowanie SSH i zalogowanie się na nowo, już na nowym porcie:

sudo service sshd restart

Instalacja prostego firewalla

Firewall to rodzaj ściany, która będzie blokować niechciane połączenia z zewnątrz. Poniższe komendy spowodują zamknięcie wszystkich portów, poza tymi wymaganymi do logowania oraz potrzebnymi do pracy naszego masternoda. Dodatkowo nałożymy limity na próby logowania, żeby uniemożliwić tzw. ataki brute-force

sudo apt-get install ufw -y
sudo ufw allow ssh/tcp
sudo ufw limit ssh/tcp
sudo ufw allow 9999/tcp #zmień na port, z którego korzysta twój masternode
sudo ufw allow 8888/tcp #możesz dodawać nowe porty, jeżeli masz więcej MN na jednym serwerze
sudo ufw logging on
sudo ufw enable
sudo ufw status

I na sam koniec instalacja fail2ban

sudo apt -y install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Dbaj o bezpieczeństwo!

Mam nadzieję, że opis nie był zbyt techniczny i udało ci się przebrnąć przez tą naprawdę podstawową instrukcję zabezpieczania VPS pod masternoda. Wiele znalezionych w internecie gotowych instrukcji pomija te niezbędne według mnie kroki. Bez względu na to, czy korzystasz z dedykowanych serwerów, czy tanich dropletów za $5 – zadbaj o bezpieczeństwo!

Daj znać w komentarzu, czy chciałbyś więcej tego typu instrukcji? Czy była zrozumiała?

Co o tym myślisz? Daj znać w komentarzu!