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 693
    Miejscowość:
    Nowy Sącz
    Local Time:
    13:06
    Oceny:
    +1 485 / 30 / -6
    Followers:
    25
    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