Jak zabezpieczyć server linux?

0

Mam zamiar wykupić wirtualna maszynę na linuxie dla backendu w javie.
Pytanie na co zwrócić uwagę co zainstalować/skonfigurować aby zabezpieczyć taki serwer przed włamaniem?
Generalnie backend i baza danych bedzie odpalona z dockera. Chciałbym wystawiać tylko potrzebne porty dla backendu i nie stracić zdalnej kontroli maszyny. Serwer ma wbudowany Ddos ale to pewnie za malo.
Jestem zielony w zabezpieczeniach serwerowych, dlatego proszę o wskazówki ;)
.

7
  • Wybierz prostą dystrybucję Linuksową (w stylu Ubuntu), nie baw się w żadne fancy systemy (które może i są nieco bezpieczniejsze, ale mają mniej materiałów dostępnych online oraz sprawiają, że łatwiej jest się poparzyć bez odpowiedniej wiedzy),
  • Zainstaluj firewall (ufw / iptables wbudowane w Ubuntu wystarczą), poblokuj niewykorzystywane porty (czy raczej w drugą stronę: zostaw odblokowane tylko te porty, które są potrzebne; ufw chyba tak nawet działa domyślnie),
  • Skonfiguruj serwer SSH na losowym porcie¹, wyłącz logowanie przez hasło (zostawiając tylko logowanie przez klucz publiczny), wyłącz logowanie na użytkownika root,
  • Nie wystawiaj na zewnątrz bazy danych (np. nie odblokowuj portu 5432/TCP w przypadku Postgresa),
  • Aktualizuj system na bieżąco :-)

¹ choć security by obscurity nie jest najlepszym modelem bezpieczeństwa, nawet taka głupia zmiana portu pozwoli Ci się zabezpieczyć przed wieloma botami, które skanują komputery podpięte do sieci i próbują wykorzystać 0daye (bo takie boty często nie skanują wszystkich otwartych portów, a jedynie na pałę sprawdzają domyślny port danej usługi)

7

Prócz tego co wymienił @Patryk27 i na co przyklaskuję, to prócz bezpośredniego zabezpieczenia systemu dodałbym też utrudnienie dotarcia do niego. A więc ten backend schowałbym za chmurą jak Cloudflare by IP nie było podane na tacy. Trudniej włamać się do domu konkretnej osoby nie wiedząc gdzie ta osoba mieszka ;)
Dodatkowo masz kolejne warstwy chronione przed ddos i sporo narzędzi do np. filtrowania ruchu.

3

Ogólnie środowisko powinno zapewniać minimalne uprawnienia potrzebne do poprawnego działania aplikacji. Szukaj pod hasłem "* hardening".

  1. Docker hardening
  2. Linux hardening
  3. Postgres/MySQL/... hardening

https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html
https://github.com/trimstray/the-practical-linux-hardening-guide/wiki

Doczytaj o mechanizmie capabilities:
https://www.cybereason.com/blog/container-escape-all-you-need-is-cap-capabilities

3

Polecam zapoznać się z tą specyfikacją (dostępna po rejestracji są też wersje dla poszczególnych dystrybucji i niektórych aplikacji):
https://www.cisecurity.org/benchmark/distribution_independent_linux

To prawdopodobnie daleko więcej niż potrzebujesz, ale myślę, że warto przejrzeć i wybrać co ci potrzebne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1