2008-08-07 19 views
19

Chciałbym zainstalować taniego Linux-a jako serwer do hostowania różnych technologii internetowych (PHP & Java EE przychodzi do głowy, ale chciałbym eksperymentować z Ruby lub Python również w przyszłości).Zabezpieczanie serwera linuksowego dla publicznego dostępu

Jestem dość dobrze zorientowany w tworzeniu Tomcata, aby działał na Linuksie do obsługi aplikacji Java EE, ale chciałbym móc otworzyć ten serwer, nawet po to, abym mógł stworzyć kilka narzędzi, których mogę używać, Pracuję w biurze. Całe moje doświadczenie związane z konfigurowaniem witryn Java EE dotyczyło aplikacji intranetowych, w których mówiono nam, aby nie koncentrować się na zabezpieczaniu stron dla użytkowników zewnętrznych.

Jaka jest twoja rada na temat zakładania osobistego serwera linuksowego w bezpieczny sposób, aby otworzyć go dla ruchu zewnętrznego?

Odpowiedz

5

Ten artykuł ma jedne z najlepszych sposobów, aby zablokować rzeczy w dół:

http://www.petefreitag.com/item/505.cfm

Najważniejsze informacje:

  • upewnić, że nikt mogą przeglądać katalogi
  • Upewnij się tylko root ma prawa do zapisu do wszystkiego i tylko root ma uprawnienia do odczytu do pewnych plików konfiguracyjnych
  • Uruchom mod_security

W artykule bierze także kilka wskazówek z tej książki:

Apache Securiy (O'Reilly Press)

miarę dystrybucji, Zabrakło mi Debain i Ubuntu, ale to zależy od tego jak bardzo chcesz to zrobić. Uruchomiłem Debiana bez X i po prostu wpadłem na to, kiedy tylko czegoś potrzebowałem. To prosty sposób, aby utrzymać nad głową. Lub Ubuntu ma kilka fajnych rzeczy z GUI, które ułatwiają kontrolowanie Apache/MySQL/PHP.

0

Istnieje wiele sposobów na zrobienie tego, co będzie działało dobrze. Zwykle korzystam z pliku .htaccess. Szybki do skonfigurowania i zabezpieczenia wystarczy. Prawdopodobnie nie jest to najlepsza opcja, ale działa dla mnie. Nie podałbym numerów moich kart kredytowych, ale poza tym nie obchodzi mnie to.

1

Jest to bezpieczne rozwiązanie, jeśli nie będziesz o tym mówić (rzadko będzie ktoś przychodził po twoim domowym serwerze, jeśli tylko hostujesz chwalony webroot w domowym połączeniu) i twój spryt na temat konfiguracji (np. , nie używaj rootów do wszystkiego, upewnij się, że oprogramowanie jest aktualne).

W tym pamiętać, choć ten wątek będzie potencjalnie maleć aż do tylko płonące, moja propozycja dla serwera osobowych jest trzymać się niczego Ubuntu (get Ubuntu Server here); z mojego doświadczenia wynika, że ​​najszybsze jest uzyskiwanie odpowiedzi, skąd można zadawać pytania na forach (nie wiem, co powiedzieć na temat wykorzystania).

Moje bezpieczeństwo na serwerze domowym Przyjemność BTW (myślę lub lubię myśleć) nie mam statycznego adresu IP (działa na DynDNS).

Powodzenia!

/mp

0

Wow, jesteś otwiera puszkę Pandory, gdy tylko zaczniesz coś się otwarcie dla ruchu zewnętrznego. Pamiętaj, że to, co uważasz za eksperymentalny serwer, prawie jak ofiarna jagnięcina, jest również łatwym wyborem dla osób, które chcą robić złe rzeczy z twoją siecią i zasobami.

Całe twoje podejście do zewnętrznego serwera powinno być bardzo konserwatywne i dokładne. Zaczyna się od prostych rzeczy, takich jak zasady firewalla, zawiera podstawowy system operacyjny (utrzymywanie go w łatce, konfigurowanie go pod kątem bezpieczeństwa itp.) I obejmuje każdą warstwę każdego stosu, z którego będziesz korzystać. Nie mam prostej odpowiedzi lub przepisu, obawiam się.

Jeśli chcesz poeksperymentować, znacznie lepiej będzie zachować serwer jako prywatny i korzystać z VPN, jeśli będziesz musiał nad nim pracować zdalnie.

1

Należy zachować ostrożność podczas otwierania portu SSH w środowisku naturalnym. Jeśli to zrobisz, pamiętaj o wyłączeniu logowania root (zawsze możesz su lub sudo po wejściu) i rozważyć bardziej agresywne metody uwierzytelniania w ramach powodu. Widziałem ogromny atak słownikowy w dziennikach mojego serwera w weekend po uruchomieniu serwera SSH z serwera IP DynDNS.

To naprawdę niesamowite, że można dostać się do domowej powłoki z pracy lub z dala ... i dodając fakt, że możesz używać SFTP przez ten sam port, nie wyobrażam sobie życia bez niego . =)

1

Możesz wziąć pod uwagę EC2 instance from Amazon. W ten sposób możesz łatwo przetestować "rzeczy" bez zakłócania produkcji. Płacisz tylko za przestrzeń, czas i przepustowość, której używasz.

1

Jeśli uruchomisz serwer Linux z domu, zainstaluj na nim ossec dla ładnego, lekkiego IDS, który działa naprawdę dobrze.

[EDIT]

Na marginesie, upewnij się, że nie działają w konflikt z Twojego ISP dopuszczalnego użytkowania i że pozwalają one połączenia przychodzące na standardowych portach. ISP, z którym kiedyś pracowałem, miał napisane w swoich warunkach, że możesz zostać rozłączony pod kątem uruchamiania serwerów przez port 80/25, chyba że jesteś na kontach firmowych. Podczas gdy nie aktywnie blokowaliśmy tych portów (nie obchodziło nas to, chyba że powodowało to problem) niektórzy dostawcy usług internetowych nie zezwalają na żaden ruch przez port 80 lub 25, więc będziesz musiał używać alternatywnych portów.

2

Jedną rzeczą, na którą należy zwrócić uwagę, są porty otwarte dla świata. Osobiście otwieram port 22 dla SSH i port 123 dla ntpd. Ale jeśli otworzysz port 80 (http) lub ftp, upewnij się, że wiesz przynajmniej, co służysz światu i kto może zrobić, co z tym. Nie wiem zbyt wiele na temat ftp, ale są miliony świetnych samouczków Apache'a, a jedynie wyszukiwarka Google.

5

Ważne jest przestrzeganie najlepszych praktyk w zakresie bezpieczeństwa, gdy tylko jest to możliwe, ale nie chcesz zbytnio utrudniać sobie pracy ani tracić snu, martwiąc się o najnowsze wyczyny.Z mojego doświadczenia wynika, istnieją dwa główne rzeczy, które mogą pomóc w utrzymaniu serwera prywatnego wystarczająco bezpieczny, aby rzucić się w internecie, zachowując zdrowy rozsądek:

1) Zabezpieczenia przez zapomnienie

Nie trzeba dodawać, opierając się na to w "realnym świecie" jest złym pomysłem i nie należy się nim bawić. Ale to dlatego, że w prawdziwym świecie, źli wiedzą, co tam jest i że istnieje łup.

Na prywatnym serwerze większość "ataków", które poniesiesz, będzie po prostu zautomatyzowanymi przeciągnięciami od maszyn, które zostały już zaatakowane, szukając domyślnych instalacji produktów, o których wiadomo, że są podatne na ataki. Jeśli twój serwer nie oferuje niczego, co kusi domyślnymi portami lub lokalizacjami domyślnymi, zautomatyzowany napastnik przejdzie dalej. Dlatego jeśli zamierzasz uruchomić serwer ssh, umieść go na niestandardowym porcie (> 1024) i prawdopodobnie nigdy nie zostanie znaleziony. Jeśli uda ci się oderwać od tej techniki na swój serwer internetowy, to świetnie, przenieś to również do niejasnego portu.

2) Zarządzanie pakietami

Nie skompilować i zainstalować Apache lub sshd od siebie źródła, chyba że bezwzględnie muszą. Jeśli to zrobisz, bierzesz na siebie odpowiedzialność za aktualizowanie najnowszych poprawek zabezpieczeń. Pozwól, aby opiekunowie pakietów z dystrybucji Linux, takich jak Debian lub Ubuntu, wykonali pracę za Ciebie. Zainstaluj z prekompilowanych pakietów dystrybucji, a pozostawanie w sieci staje się kwestią wydawania od czasu do czasu komendy apt-get update, która może być odmieniana przez komendę apt-get -u-dist-upgrade lub za pomocą dowolnego narzędzia do tworzenia GUI, które zapewnia Ubuntu.

+0

Tak długo, jak pozwala na ruch zewnętrzny, jest częścią "prawdziwego świata". – icedwater

1

Jeśli masz zamiar to zrobić, wydać trochę pieniędzy, a przynajmniej kupić dedykowany router/zaporę z osobnym portem DMZ. Będziesz chciał zaporę sieciową od sieci wewnętrznej od serwera, aby kiedy (nie jeśli!) Twój serwer sieciowy został naruszony, twoja sieć wewnętrzna również nie jest natychmiast podatna.

2

Bit-Tech.Net uruchomił kilka artykułów na temat konfiguracji serwera domowego za pomocą Linuksa. Oto linki:

Article 1
Article 2

Nadzieję te są pomocne.

2

@svrist wymienione EC2. EC2 udostępnia interfejs API do zdalnego otwierania i zamykania portów. W ten sposób możesz utrzymać swoje pudełko w ruchu. Jeśli chcesz dać demo z kawiarni lub biura klienta, możesz pobrać swój adres IP i dodać go do listy ACL.

Powiązane problemy