Featured How-To Tunelowanie aplikacji Web na dowolny host i port 80

Dyskusja w 'Oh'Linux? Software hacking' rozpoczęta przez użytkownika Silas Mariusz, 9 Wrzesień 2015.

Ładowanie...
  1. Silas Mariusz
    Offline

    Silas Mariusz SysOp Administrator

    Dołączył:
    5 Kwiecień 2008
    Wiadomości:
    6 381
    Miejscowość:
    Nowy Sącz
    Local Time:
    07:03
    Oceny:
    +1 430 / 30 / -6
    Followers:
    23
    QNAP:
    TVS-x71
    Ethernet:
    1 GbE
    TVS-x71 1 GbE
    upload_2015-9-9_0-59-40.

    Moduł http proxy umożliwia lokalne świadczenie treści drugich w obrębie wirtualnych hostów lub wybranych katalogów. Efektem tego może być np. panel serwera QNAP z portu 8080 uruchomiony w pod domenie qts.domena.pl, ale przy użyciu domyślnego portu serwera Web. Może to być też monitorix, rtorrent, stacja wirtualizacji i wiele wiele innych aplikacji.

    1. Do tego celu konieczna jest prawidłowa instalacja: How-To - QNAP od środka, czyli grzebiemy w linuchu - Jak sobie ułatwić?
    2. Po wykonaniu instrukcji z powyższego przewodnika należy upewnić się, że Optware zostało ponownie uruchomione. W tym celu zrestartuj Optware.
    3. Połącz się do terminala/konsoli SHELL serwera QNAP
    4. Wykorzystamy Optware i jego katalog do przetrzymywania modyfikacji plików konfiguracyjnych serwera Web (Apache). W tym celu wykonaj następujące:
      Kod (Bash):
      1. OPTWARE_DIR=$(getcfg -f /etc/config/qpkg.conf Optware Install_Path)
      2. cd $OPTWARE_DIR
      3. mkdir -p root/apache
      4. cd $OPTWARE_DIR/root/apache
    5. Następnie utwórz plik apache-custom.conf i wprowadź jego odpowiednią zawartość. W tym celu w konsoli shell wpisz:
      Kod (Bash):
      1. vi apache-custom.conf
      Przekopiuj poniższy kod do schowka:
      Kod (Apache configuration):
      1. LoadModule proxy_module modules/mod_proxy.so
      2. LoadModule proxy_http_module modules/mod_proxy_http.so
      3. <VirtualHost *:80>
      4.     #ProxyRequests Off
      5.     #ProxyVia Off
      6.     #ProxyPreserveHost Off
      7.  
      8.     #RewriteEngine on
      9.     #RewriteLog "/share/Web/rewrite_https.log"
      10.     #RewriteLogLevel 3
      11.     #RewriteRule ^/(user-settings\.json.*)$  http://localhost:8080/cgi-bin/$1 [P]
      12.     #RewriteRule ^/(userConfig\.cgi.*)$  http://localhost:8080/cgi-bin/$1 [P]
      13.  
      14.     <Proxy *>
      15.     #   AddDefaultCharset off
      16.         Order deny,allow
      17.         Allow from all
      18.     </Proxy>
      19.  
      20.     # ### NOTKA
      21.     # Nazwa hosta pod ktora ma byc widoczny Panel
      22.     ServerName qts.spietrza24.eu
      23.     DocumentRoot "/share/Web/qts"
      24.     ProxyPass /  http://localhost:8080/
      25.     ProxyPassReverse / http://localhost:8080/
      26. </VirtualHost>
      W uruchomionym edytorze vi w programie PuTTY naciśnij kolejno:
      1. i (insert) - aby móc wprowadzić tekst
      2. Kliknij prawym przyciskiem myszy w oknie edytora, aby wkleić powyższy tekst ze schowka
      3. ESC - aby zakończyć wprowadzanie
      4. Shift + : - aby wydać komendę
      5. wq - aby zapisać (write) i wyjść (quit)
      UWAGA: Pamiętaj, aby w polu ServerName znajdowała się nazwa hosta domeny, którą chcesz tunelować do panelu QTS na porcie 8080.
    6. Utwórz plik append-apache-conf.sh i wprowadź jego odpowiednią zawartość. W tym celu w konsoli shell wpisz:
      Kod (Bash):
      1. vi append-apache-conf.sh
      Przekopiuj poniższy kod do schowka:
      Kod (Bash):
      1. #!/bin/sh
      2.  
      3. OPTWARE_DIR=$(getcfg -f /etc/config/qpkg.conf Optware Install_Path)
      4.  
      5. # log procedure
      6. log=$OPTWARE_DIR/root/apache/append-apache-conf.log
      7. log(){
      8.     /bin/echo "$(/bin/date '+%F %T.%3N') $1" >> $log
      9. }
      10. log "***** Starting append-apache-conf.sh *****"
      11.  
      12. # env variables
      13. apache_conf=/etc/config/apache/apache.conf
      14. apache_custom_conf=$OPTWARE_DIR/root/apache/apache-custom.conf
      15.  
      16. # log myself
      17. exec >> $log 2>&1
      18.  
      19. # modify apache_conf
      20. /bin/grep -q $apache_custom_conf $apache_conf
      21. if [ $? -eq 0 ]
      22.     then
      23.         log "$apache_conf already includes $apache_custom_conf. Nothing to be done."
      24.     else
      25.         log "$apache_conf does NOT include $apache_custom_conf. Including now."
      26.         /bin/echo "Include $apache_custom_conf" >> $apache_conf
      27.         log "Restarting apache ..."
      28.         /etc/init.d/Qthttpd.sh restart
      29. fi
      30.  
      31. log "***** End of append-apache-conf.sh *****"
      32. /bin/sync
      33. /bin/sleep 1
      W uruchomionym edytorze vi w programie PuTTY naciśnij kolejno:
      1. i (insert) - aby móc wprowadzić tekst
      2. Kliknij prawym przyciskiem myszy w oknie edytora, aby wkleić powyższy tekst ze schowka
      3. ESC - aby zakończyć wprowadzanie
      4. Shift + : - aby wydać komendę
      5. wq - aby zapisać (write) i wyjść (quit)
    7. Utwórz plik restart-apache.sh i wprowadź jego odpowiednią zawartość. W tym celu w konsoli shell wpisz:
      Kod (Bash):
      1. vi restart-apache.sh
      Przekopiuj poniższy kod do schowka:
      Kod (Bash):
      1. #!/bin/sh
      2.  
      3. OPTWARE_DIR=$(getcfg -f /etc/config/qpkg.conf Optware Install_Path)
      4.  
      5. # log procedure
      6. log=$OPTWARE_DIR/root/apache/append-apache-conf.log
      7. log(){
      8.     /bin/echo "$(/bin/date '+%F %T.%3N') $1" >> $log
      9. }
      10.  
      11. # log myself
      12. exec >> $log 2>&1
      13.  
      14. log "Restarting apache ..."
      15. /etc/init.d/Qthttpd.sh restart
      W uruchomionym edytorze vi w programie PuTTY naciśnij kolejno:
      1. i (insert) - aby móc wprowadzić tekst
      2. Kliknij prawym przyciskiem myszy w oknie edytora, aby wkleić powyższy tekst ze schowka
      3. ESC - aby zakończyć wprowadzanie
      4. Shift + : - aby wydać komendę
      5. wq - aby zapisać (write) i wyjść (quit)
    1. Z konsoli na szybko utwórz kolejny plik:
      Kod (Bash):
      1. echo -e '#!/bin/sh\n\n/usr/local/apache/bin/apache -t -f /etc/config/apache/apache.conf' > test-apache-conf.sh
    2. Następnie nadaj plikom *.sh prawa do uruchomienia:
      Kod (Bash):
      1. chmod +x *.sh
    3. Edytuj plik /etc/init.d/Optware.sh:
      1. Kod (Bash):
        1. mcedit /etc/init.d/Optware.sh
      2. Znajdź linię: /bin/echo "Enable Optware/ipkg"
        W tym celu naciśnij F7 i wpisz: Enable Optware - wielkość liter może mieć znaczenie:
        find_enable_optware.
      3. Dodaj przed znalezioną linią:
        Kod (Bash):
        1. sh $QPKG_DIR/root/apache/append-apache-conf.sh
        qnap_optware_apache_custom_conf.
      4. Naciśnij F2 i zapisz plik. Wyjść przyciskiem ESC
    4. Sprawdź czy działa restartując Optware:
      Kod (Bash):
      1. /etc/init.d/Optware.sh restart
      W przypadku problemów, poprawność składni pliku konfiguracyjnego sprawdzisz poleceniem:
      Kod (Bash):
      1. sh $(getcfg -f /etc/config/qpkg.conf Optware Install_Path)/root/apache/test-apache-conf.sh
    5. Panel zarządzania QTS powinien być już dostępny pod hostem http://qts.domena.pl na porcie 80
      :)

    Przykłady:
    Panel zarządzania systemem operacyjnym QTS - standardowo pracuje na porcie 8080.
    upload_2015-9-9_1-1-41.

    Monitorix - instalowany automatycznie z najnowszą wersją paczki rtorrent - standardowo pracuje na porcie 6007.
    upload_2015-9-9_1-21-51.

    Rtorrent-QNAP - standardowo pracuje na porcie 6009.
    upload_2015-9-9_1-31-57.
    upload_2015-9-9_1-31-35.

    /share/CACHEDEV..._DATA/.qpkg/Optware/root/apache/apache-custom.conf
    Kod (Apache configuration):
    1. LoadModule proxy_module modules/mod_proxy.so
    2. LoadModule proxy_http_module modules/mod_proxy_http.so
    3. <VirtualHost *:80>
    4.     <Proxy *>
    5.         Order deny,allow
    6.         Allow from all
    7.     </Proxy>
    8.  
    9.     ServerName qts.domena.pl
    10.     DocumentRoot "/share/Web/"
    11.  
    12.     ProxyPass /  http://localhost:8080/
    13.     ProxyPassReverse / http://localhost:8080/
    14. </VirtualHost>
    15.  
    16. <VirtualHost *:80>
    17.     <Proxy *>
    18.         Order deny,allow
    19.         Allow from all
    20.     </Proxy>
    21.  
    22.     ServerName rtorrent.domena.pl
    23.     DocumentRoot "/share/Web"
    24.  
    25.     ProxyPass /  http://localhost:6009/
    26.     ProxyPassReverse / http://localhost:6009/
    27. </VirtualHost>
    28.  
    29. <VirtualHost *:80>
    30.     ProxyRequests Off
    31.     <Proxy>
    32.         Order deny,allow
    33.         Allow from all
    34.     </Proxy>
    35.  
    36.     ServerName monitorix.domena.pl
    37.     DocumentRoot "/share/Web"
    38.  
    39.     ProxyPass /  http://localhost:6007/
    40.     ProxyPassReverse / http://localhost:6007/
    41.     ProxyPreserveHost On
    42. </VirtualHost>
     
    • Lubię to! Lubię to! x 4
    • Wygrany! Wygrany! x 2

Poleć tę stronę

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Odrzuć powiadomienie.