05.12.2016 | 07:33

krystian

Jak uruchomić swój własny serwer WWW w Aruba Cloud

Jedną z najpopularniejszych usług w internecie jest WWW. Postawienie własnego serwera często jest jednym z pierwszych kroków na drodze samodzielnego administratora. Dzisiaj pomożemy Wam zainstalować i uruchomić serwer http.

We współpracy z firmą ArubaCloud pokazaliśmy Wam, jak postawić swój serwer backupów, jak skonfigurować własny serwer VPN i podłączyć do niego komputer, telefony komórkowe oraz domowy ruter a także jak schować się przed cenzurą sieci i jak zacząć serwer zabezpieczać oraz jak postawić swój własny zdalny pulpit. Dzisiaj z kolei postawimy wspólnie serwer WWW, na którym będzie mogli umieścić swoją witrynę.

Instalacja i konfiguracja oprogramowania

Jeśli nie macie jeszcze swojego własnego serwera, to jest to dobra okazja by się w taki wyposażyć. Aruba oferuje dwa miesiące korzystania ze swojego podstawowego serwera gratis – a po zakończeniu promocji będzie on Was kosztował zaledwie 4 złote miesięcznie. Instrukcję jak krok po kroku skorzystać z promocji i uruchomić swój serwer znajdziecie w tym artykule. Jeśli macie już swój serwer – to zapraszamy do lektury kolejnych akapitów.

Korzystając z systemu do zarządzania pakietami yum instalujemy niezbędne pakiety w systemie CentOS 7.2:

1. Instalacja serwera Apache2:

sudo yum install httpd

2. Instalujemy obsługę skryptów PHP na serwerze:

sudo yum install php php-mysql

(listę dodatkowych modułów można wyświetlić za pomocą yum search php-*)

3. Gdy już postawimy stronę, będziemy musieli sprawdzić, czy prawidłowo działa. W tym celu tworzymy testowy skrypt PHP z funkcją phpinfo(), wyświetlającą podstawowe informacje o serwerze WWW.

sudo mcedit /var/www/html/info.php
<?php
phpinfo();
?>

4. Aby serwer był dostępny w sieci dodajemy wyjątek w firewallu:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Jeśli korzystacie z firewalld to ta reguła będzie wyglądać następująco:

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload

5. Uruchamiamy i testujemy usługę

sudo systemctl start httpd

W przeglądarce wpisujemy adres IP naszego serwera (http://xx.xx.xx.xx). Jeśli usługa została uruchomiona poprawnie oraz firewall zezwolił na połączenie, w przeglądarce pojawi strona startowa naszego serwera WWW:

serwer_www

Aby sprawdzić nasz plik info.php, który utworzyliśmy w kroku 2, w przeglądarce wpisujemy adres naszego serwera z odpowiednią ścieżką (http://xx.xx.xx.xx/info.php, czyli odwołanie do pliku /var/www/html/info.php).

test_phpinfo

Tuning serwera Apache

Po uruchomieniu serwera warto zmienić kilka parametrów jego konfiguracji. Tworzymy i edytujemy dodatkowy plik konfiguracyjny dla apache:

mcedit /etc/httpd/conf.d/tuning.conf

W pliku tuning.conf wpisujemy:

ServerTokens prod
ServerSignature Off
TraceEnable off

Co oznaczają wprowadzone zmiany?

ServerTokens – Dyrektywa ta określa czy pole nagłówka odpowiedzi serwera, które jest wysyłane do klienta zawiera opis: nazwę systemu operacyjnego, wersję oraz informacje o dodatkowych modułach. Ustawiając wartość na 'off’ wyłączamy wysyłanie nagłówka 'Server’ do klienta, utrudniając identyfikację wersji używanego oprogramowania.

ServerSignature – Dyrektywa ServerSignature umożliwia konfigurację linii stopki dla dokumentów generowanych przez serwer (np. dla dokumentów 404). Ze stopki usuwamy adres serwera oraz wersję oprogramowania.

TraceEnable – Wyłączamy obsługę żądań typu HTTP Trace aby zapobiec atakom typu XST.

Następnie edytujemy plik /etc/php.ini, w linii 44 zmieniamy expose_php:

expose_php = Off

Ustawiając zmienną expose_php na Off określamy, że w nagłówkach nie będzie wysyłana używana przez nas wersja php (np. X-Powered-By: PHP/5.3.7)

Testujemy serwer www za pomocą narzędzia nikto

Nikto to prosty skaner , którego zdaniem jest znalezienie podstawowych błędów w konfiguracji serwera WWW.  Nikto jest dostępny w repozytorium epel-release. Jeśli w naszym systemie nie korzystamy z repozytorum epel, należy je zainstalować w następujący sposób:

sudo yum install epel-release
sudo yum install nikto

Skanujemy nasz serwer www:

nikto -host localhost
[root@aruba-cloud ~]# nikto -host localhost
- ***** RFIURL is not defined in nikto.conf--no RFI tests will run *****
- ***** SSL support not available (see docs for SSL install) *****
- Nikto v2.1.5
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ Target Port:        80
+ Start Time:         2016-12-03 14:03:05 (GMT1)
---------------------------------------------------------------------------
+ Server: Apache
+ The anti-clickjacking X-Frame-Options header is not present.
+ Allowed HTTP Methods: OPTIONS, GET, HEAD, POST 
+ OSVDB-3233: /info.php: PHP is installed, and a test script which runs phpinfo() was found. This gives a lot of system information.
+ OSVDB-3268: /icons/: Directory indexing found.
+ OSVDB-3233: /icons/README: Apache default file found.
+ 4197 items checked: 0 error(s) and 5 item(s) reported on remote host
+ End Time:           2016-12-03 14:03:11 (GMT1) (6 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

Skaner poinformował nas, że wykrył dostępność pliku /info.php (OSVDB-3233), możliwość indeksowania katalogu /icons/ (OSVDB-3268) oraz standardowy plik README w katalogu /icons/. Jeśli chcecie poćwiczyć, to rozwiązanie powyższych problemów z pomocą Google lub bez nie powinno sprawić Wam problemów.

Dla pełnej przejrzystości – za przygotowanie oraz opublikowanie powyższego artykułu otrzymujemy wynagrodzenie.

Powrót

Komentarze

  • 2016.12.05 08:58 Ferex

    Jest 5 grudnia, Międzynarodowy Dzień Wolontariusza, a tutaj artykuł na końcu którego jest napis:

    „Dla pełnej przejrzystości – za przygotowanie oraz opublikowanie powyższego artykułu otrzymujemy wynagrodzenie.”

    Fajnie by było jakby właśnie tego dnia ukazał się artykuł napisany nie dla kasy, ale dlatego by zrobić coś dobrego bezinteresownie :)

    Odpowiedz
    • 2016.12.05 09:56 Adam

      To napisz, chętnie opublikujemy.

      Odpowiedz
      • 2016.12.05 12:12 Duży Pies

        Może ja coś napiszę?

        Odpowiedz
        • 2016.12.06 18:21 anty duży pies

          może jednak nie?

          Odpowiedz
  • 2016.12.05 11:02 zakius

    Dlaczego apache? (to jestem w stanie zrozumieć, niby prosta konfiguracja i takie tam)
    Dlaczego nic o wyłączeniu .htaccess (którego obsługa ma BARDZO negatywny wpływ na wydajność)?

    Odpowiedz
    • 2016.12.05 13:29 Jan

      To jaka jest alternatywa zamiast htaccess do apache? Wykorzystywany jest modrewrite i inne moduły bez którego htaccess jest potrzebny.

      Odpowiedz
      • 2016.12.05 21:23 Borys

        To co masz w plikach 'htaccess’ może skonfigurować w konfigu serwera. Działa szybciej i bezpieczniej. W dokumentacji apache wszytko pisze :)

        Odpowiedz
        • 2016.12.06 06:51 zakius

          czy bezpieczniej to się nie wypowiem, ale zdecydowanie szybciej
          bo obsługa .htaccess wymusza poszukiwanie pliku w każdym podkatalogu ścieżki, dodatkowe odwołania do systemu plików
          wręcz w dokumentacji nginksa widziałem porównanie wydajności i oni sami pokazali, ze apache bez .htaccessa działa praktycznie tak samo (przynajmniej o ile ram się nie skończy)

          Odpowiedz
    • 2016.12.05 18:29 Marek

      Trochę mnie zdziwił Apache zamiast nginx, ale z drugiej strony Apache to popularne rozwiązanie używane w wielu aplikacjach.

      W powyższym artykule podobał mi się fragment o skanowaniu przy pomocy nikto, fajnie byłoby poczytać o innych narzędziach i rzeczach, na których trzeba się skupić przy skanowaniu.

      Dodatkowo bardzo bym chciał zobaczyć drugą część artykułu o zabezpieczaniu serwera. Wiem, że to zależy od Aruby, więc jeżeli przedstawiciele tej firmy tu zaglądają, to ładnie proszę o kontynuowanie tematyki zabezpieczeń. Miło by również było zobaczyć paragraf o zabezpieczaniu strony SSLem przy pomocy Let’s Encrypt (wraz z automatyzacją procesu odnowień certyfikatów).

      Odpowiedz
    • 2016.12.21 13:48 rob006

      .htaccess to chyba najmniejszy problem w tym wypadku. PHP 5.4 (bez wsparcia od ponad roku) serwowane przez mod_php to prawdziwy performance killer. Dodatkowo dochodzą potencjalne problemy z uprawnieniami – wszystkie aplikacje PHP działają na tym samym użytkowniku i nie da się ich sensownie odseparować. Domyślam się że Aruba nie zaszalała z kasą za ten poradnik, ale w obecnej formie jest raczej bezużyteczny i wyrządza więcej szkody niż pożytku…

      Odpowiedz
  • 2016.12.05 13:02 Ag3ntJ23

    Osobiscie wole Nginx, ale to moje prywatne zdanie i angazuje tylko mnie.
    Dorzucilbym cos na temat https i Lets’encrypt… albo zachecam zainteresowanych czytelnikow do zglebiania tematu.

    Odpowiedz
  • 2016.12.05 14:27 Tomasz

    Aruba i wydajność xD

    Odpowiedz
  • 2016.12.06 00:33 Monter

    Chyba klienci się coś za bardzo nie pchają, skoro w krótkim czasie tyle artykułów sponsorowanych przez Arubę.

    Odpowiedz
    • 2016.12.06 07:13 Adam

      Od początku jest jeden na miesiąc, ale miło mi że tak pilnie śledzisz serwis :)

      Odpowiedz
      • 2016.12.07 14:30 podsiar

        Następny w kolejności to serwer poczty? :P :)

        Odpowiedz
      • 2016.12.13 17:28 Monter

        Nie śledzę pilnie, bo przeoczyłem obiecany opis afery z PlusBankiem.

        Odpowiedz
    • 2016.12.06 10:39 Tomasz

      Kiepski panel klienta, wolne działanie strony, długi czas uruchomienia usług i mała wydajność.

      Odpowiedz
  • 2016.12.06 17:56 SiwY

    Dzięki za przypomnienie. Miałem doładować ;] Miałem Arube zanim zaczęła być modna xD

    Odpowiedz
  • 2016.12.07 17:31 GROOT

    Artykuł o hardeningu apache+PHP by się przydał, ale taki z prawdziwego zdarzenia.

    Odpowiedz
  • 2016.12.07 23:58 gustlik

    @Tomasz: a co proponujesz w zamian za Arubę z taką stawką za m-c?

    Odpowiedz
  • 2016.12.12 16:18 MEC

    to moze skoro juz daliscie poradnik jak postawic zombie, to teraz jakis poradnik jak tego zombiaka troszke uzbroic (zeby za szybko nie zzielenial), jakies iptables, albo cos?

    Odpowiedz
  • 2016.12.21 23:51 Michał

    W jaki sposób podpiąć własną domenę pod tak skonfigurowany serwer?

    Odpowiedz
    • 2016.12.26 21:18 Michał

      U operatora domeny w strefie DNS typ A ustawiasz adres IP swojego serwera

      Odpowiedz

Zostaw odpowiedź

Jeśli chcesz zwrócić uwagę na literówkę lub inny błąd techniczny, zapraszamy do formularza kontaktowego. Reagujemy równie szybko.

Jak uruchomić swój własny serwer WWW w Aruba Cloud

Komentarze