Zabezpieczenie serwera sieciowego Przesada?

9

Przeprowadziłem „szeroko zakrojone” badania nad zabezpieczeniem serwera WWW z linuksem. Oprócz tego, co uważa się za „podstawy” (usuwanie nieużywanych usług, hartowanie ssh, iptables itp.), Czy rozsądnie jest włączyć programy antywirusowe (Tripwire) i antywirusowe (ClamAV)? Czy to tylko przesada dla serwera WWW? Wiem, że to bardzo niejasne pytanie, ale jestem ciekawa opinii innych.

Moje przyszłe środowisko: - ubuntu 10.04 - fail2ban - nginx 0.8.x - php 5.3.x (suhosin, apc, memcached) - mongodb 1.6.x

Możliwe zastosowania: - serwisy internetowe - aplikacje internetowe z przesyłaniem przez użytkowników (zdjęcia, pliki pdf itp.) - typowe strony internetowe (formularze itp.)

Jeśli masz jakieś inne wskazówki, dodaj je!

Dzięki

Aaron
źródło

Odpowiedzi:

8

W przypadku publicznego serwera powiedziałbym, że zainstalowanie czegoś takiego jak tripwire nie jest przesadą.

ClamAV to inna sprawa. Zastanowiłbym się nad tym, aby Twoi odwiedzający udostępnili pliki, przesyłając je i pobierając z Twojej witryny. Pliki PDF mogą zawierać exploity.

Na publicznych serwerach mam SSH nie zezwalam na uwierzytelnianie hasłem, tylko uwierzytelnianie za pomocą klucza publicznego. Jeśli SSH jest możliwe tylko z wewnętrznej sieci LAN, możesz to rozluźnić.

Tam, gdzie to możliwe, umieściłbym serwer w strefie DMZ, aby nie mógł inicjować połączeń z innymi komputerami w wewnętrznych sieciach LAN.

RedGrittyBrick
źródło
2
Nie zapomnij LMD (Linux Malware Detection), rfxn.com/projects/linux-malware-detect - skanuje w poszukiwaniu szkodliwego oprogramowania, które infekuje aplikacje internetowe (zmiany HTML, PHP, JavaScript) w celu użycia witryny Spam SEO, phishing, infekcja komputerów odwiedzających, itp.
RichVel
3

Nie, nie posunąłeś się wystarczająco daleko.

1) Potrzebujesz zapory sieciowej, takiej jak mod_security, i upewnij się, że jest skonfigurowana do blokowania ataków, a nie tylko ich rejestrowania.

2) Zablokuj php za pomocą phpsecinfo .

3) Zablokuj konto MySQL swojej aplikacji internetowej, upewnij się, że Twoja aplikacja nie ma FILEuprawnień, jest to zdecydowanie najbardziej niebezpieczne w MySQL.

4) Firewall wyłącza wszystkie UDP i wszystkie TCP, których nie potrzebujesz. Rozważ użycie pukania portów dla ssh. Brak banowania nie jest tak dobry, jak uzyskanie zerowych prób.

Wieża
źródło
1) Miałem wrażenie, że ModSecurity można spakować tylko za pomocą Apache (używam nginx). Ale najwyraźniej może działać samodzielnie? Będę musiał to sprawdzić dzięki! Po kilka funkcji śledziłem calomel.org/nginx.html .
Aaron,
4) Używam iptables do blokowania całego ruchu przychodzącego i wychodzącego, chyba że jest to mój port ssh, https lub https (przychodzący, wychodzący). Otworzę więcej, kiedy pójdę dalej. Pukanie portów jest jednak ciekawym dodatkiem do ssh! Dzięki jeszcze raz!.
Aaron,
@Aaron Nie jestem pewien, dlaczego miałbyś używać nginx. Możesz używać apache + mod_security jako serwera proxy z dowolnym dziwnym i pozbawionym funkcji httpd, którego potrzebujesz.
Rook
2

Prawdopodobnie możesz bezpiecznie zainstalować AIDE na serwerze sieciowym - dodawanie i usuwanie klientów nie zmienia zbyt wielu plików konfiguracyjnych, i prawdopodobnie możesz łatwo odfiltrować normalne rozmowy.

Jednak w wielu instrukcjach bezpieczeństwa serwera WWW nie ma wzmianki o tym, że należy włączyć noexec na partycji / tmp w / etc / fstab. Jeśli oferujesz hosting dla społeczeństwa, wiele osób zainstaluje niepewne aplikacje internetowe bez Twojej wiedzy (i nie będą miały wystarczającej wiedzy, aby aktualizować swoje aplikacje), a ty w zasadzie ścigasz te błędy na zawsze. Jeśli upewnisz się, że jedynym miejscem, w którym osoba atakująca może zapisać oprogramowanie, jest katalog osobisty klienta i katalog / tmp, osoba atakująca może pokazać, gdzie się włamuje, jeśli nie może skorzystać z katalogu / tmp. Nie lubią tego robić.

Dzięki temu rozwiązano większość problemów bezpieczeństwa na naszym serwerze hostingowym.

Ernie
źródło
2

„Witamy na pokładzie! Na pokładzie naszego nowego samolotu możesz cieszyć się restauracją, kinem, siłownią, sauną i basenem. Teraz zapnij pasy, nasz kapitan spróbuje uwolnić to gówno w powietrzu.”

  1. mod_security to problem zarówno dla ciebie, jak i dla serwera. Jest głodny zasobów, a jego zasady wymagają poważnego utrzymania i będzie to niekończące się zadanie. I nie, nie działa samodzielnie ani z Nginx. Jeśli czujesz, że naprawdę go potrzebujesz, skonfiguruj osobny serwer proxy (Apache, mod_proxy, mod_security). Działa również jako DMZ, twoje prawdziwe serwery mogą być całkowicie zamknięte na świat zewnętrzny, a jeśli serwer proxy zostanie naruszony, nic nie będzie.

  2. ClamAV jest również bardzo ciężki, jeśli działa jako demon. Lepiej jest uruchamiać clamscan okresowo podczas nieaktywnych godzin z Cron.

  3. Tripwire to przesada, IMHO. Przydałoby się jednak coś zdolnego do wyłapania rootkitów, istnieje wiele skryptów (rkhunter, chkrootkit).

  4. Uważam, że co najmniej 90% rootkitów itp. Dostaje się na serwery poprzez przesyłanie z urządzeń deweloperskich Windows. Nie ma naprawdę dobrego sposobu, aby temu zapobiec, oprócz zmuszenia deweloperów do nigdy nie używania systemu Windows. Większość trojanów szuka poświadczeń FTP, więc nigdy nie używaj FTP.

moskit
źródło
Dobrze wiedzieć ... Biorąc pod uwagę, że nie mam zamiaru podążać drogą apache, będę trzymać się wszelkich aspektów bezpieczeństwa, jakie mogę znaleźć dla Nginx. Prawdopodobnie skończę też na trasie clamscan / rkhunter. Dzięki za wskazówki!
Aaron,
0

Czy używanie ochrony formularzy captcha w popularnym silniku CMS (Wordpress, Jomlaa, Drupal) jest uważane za praktykę bezpieczeństwa? Jeśli tak, możesz użyć tych:

affanzbasalamah
źródło
Ochrona Anty-Spamowa ? Tak. Ale tutaj autor chce zablokować swój serwer przed nieautoryzowanymi użytkownikami, z którymi captcha nie ma nic wspólnego.