Instruktaż/Tutorial rtorent ++ Web UI na hasło [Niedokończone]

astonmartin

Entry Technician
Q Associate
1 Wrzesień 2008
38
1
8
QNAP
TS-109/209
Ethernet
1 GbE
Po zainstalowaniu rtorrent++ z paczki qpkg dysponujemy trzema różnymi interfejsami do obsługi dostępnymi z poziomu przeglądarki. Problem polega na tym, że dostęp do nich nie jest w żaden sposób zabezpieczony więc jeśli nasz Qnap jest podłączony do internetu na publicznym adresie IP lub korzystamy z wbudowanego serwera web to każdy ciekawski może nam w tych interfejsach grzebać :) Postanowiłem coś z tym zrobić i po odszukaniu odpowiednich informacji zastosowałem autoryzację dostępu za pomocą loginu i hasła. Poniżej opis jak to zrobić na przykładzie TS-109 II, w innych urządzeniach ścieżki do plików mogą się różnić.

//edycja
Uwaga, część pierwsza (wzięta w quote) opisu dotycząca konfiguracji serwera Apache zawiera gdzieś błąd. Początkowo wszystko działało jednak po restarcie Qnapa zauważyłem problemy, nie chciały się wczytywać żadne strony. Na tę chwilę nie wiem co powoduję problem, moja wiedza o Apache jest praktycznie zerowa więc proszę bardziej zorientowanych o przeanalizowanie i pomoc w naprawie błedu. Jednocześnie też będę oczywiście szukał przyczyny problemów na własną rękę. Druga część opisu dotycząca lighttpd jest ok, nie zauważyłem żadnych problemów.

Krok pierwszy to przystosowanie serwera Apache do obsługi plików .htacces. Odnajdujemy plik:
Kod:
/mnt/HDA_ROOT/apache/conf/apache.conf
robimy kopie w bezpiecznym miejscu i edytujemy go.

Należy znaleźć następującą sekcję:
Kod:
<Directory />
		Options FollowSymLinks
		AllowOverride None
</Directory>
<Directory "/share/Qweb">
		Options FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		Allow from all
</Directory>
i zmienić ją na:
Kod:
<Directory />
		Options FollowSymLinks
		AllowOverride All
</Directory>
<Directory "/share/Qweb">
		Options FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		Allow from all
</Directory>
Następnie tworzymy plik .htaccess o poniższej zawartości:
Kod:
AuthUserFile /home/.htpasswd
AuthType Basic
AuthName "Password protected area"

<LIMIT GET POST>
require valid-user
</LIMIT>
gdzie /home/.htpasswd to ścieżka do pliku z listą użytkowników z zapisanymi hasłami, może być inna ale plik .htpasswd należy utworzyć w obszarze niedostępnym dla wszystkich.
Plik .htaccess kopiujemy do katalogów:
Kod:
/share/HDA_DATA/Qweb/rtgui
/share/HDA_DATA/Qweb/wTorrent
Teraz tworzymy plik .htpasswd w lokalizacji wskazanej w plikach .htaccess (w powyższym przykładzie to katalog /home).
Na tej stronie http://www.htmlite.com/HTA006a.php możemy wygenerować zakodowane hasła dla autoryzowanych użytkowników, wpisujemy nazwę użytkownika i hasło a następnie wygenerowany wynik umieszczamy w pliku .htpasswd i zapisujemy go.

Restartujemy serwer web i od tej chwili mamy już zabezbieczony dostęp do dwóch pierwszych interfejsów obsługiwanych przez Apache.

Drugi etap to konfiguracja serwera lighttpd bo trzeci interfejs jak i strona główna wyboru interfejsu korzysta właśnie z niego.

Odnajdujemy plik:
Kod:
/mnt/HDA_ROOT/rootfs_2_3_6/root/.rtorrent++/lighttpd.conf
robimy kopie na wszelki wypadek i edytujemy go.
Odnajdujemy linię:
Kod:
#auth.backend               = "plain"
i "okomentowujemy ją usuwając znak # na początku wiersza. Następnie wiersz:
Kod:
#auth.backend.plain.userfile = "lighttpd.user"
zamieniamy na:
Kod:
auth.backend.plain.userfile = "/root/.rtorrent++/.lightpasswd"
Dodajemy sekcję:
Kod:
auth.require = ( "/" =>
(
"method" => "basic",
"realm" => "Password protected area",
"require" => "valid-user"
)
)
i zapisujemy plik.

Teraz pozostało w katalogu:
Kod:
/mnt/HDA_ROOT/rootfs_2_3_6/root/.rtorrent++
utworzyć plik .lightpasswd i umieścić w nim listę autoryzowanych użytkowników wraz z hasłami w formacie:
Kod:
uzytkownik:haslo
uzytkownik2:haslo
zapisać plik, zrestartować rtorrent++ z panelu zarządzania paczkami QPKG i gotowe.

ps. być może popełniłem gdzieś w opisie błąd, robiłem taką operację po raz pierwszy więc mogło się zdarzyć, w każdym razie u mnie działa :)
 
Re: [HOWTO] rtorent ++ Web UI na hasło

<jupi>

w przyszlosci ... docelowe dwa webgui beda przeniesione na serwer lighttpd wiec wtedy bedzie mozna myslec o zabezpieczeniu systemu wlasnie w taki sposob jak pokazales

napewno mi ulatwi przygotowujac nastepna wersje rtorrent++ ;D
 
Re: [HOWTO] rtorent ++ Web UI na hasło

No tak, gdyby wszystko stało na lighttpd to potrzebna byłaby tylko połowa roboty :)

Swoją drogą przydałoby się coś takiego w standardzie, w przypadku wykorzystania tylko lighttpd chyba jak najbardziej do zrobienia w sensie przygotowania paczki już skonfigurowanej do obsługi autoryzacji, do użytkownika należałoby tylko wyedytowanie po swojemu pliku z loginami i hasłami. Jak rozumiem wszystko teraz zależy od Qnapa jaką drogą pojdzie, czy Apache czy lighttpd ?

//edycja

Niestety sprawdziło się to co pisałem w PS. Coś nie gra w konfiguracji serwera Apache, muszę poszukać przyczyny.
 
qnap zostaje przy apache :)

lighttpd instaluje sie wraz z rtorrent++
czyli rtorrent++ zawiera:
-rtorrrent
-lighttpd
-php-fcgi
-sudo
-... i etc.

generalnie mozliwe ze plany qnap'a bylyby takie, ze wprowadziliby obsluge fcgi i scgi do Apache
ale po co skoro nie da sie zrobic dobrze dzialajacego rtorrent'a na ts-409
z tym problemem borykam sie od stycznia bierzacego roku :(

narazie rozmawiam z kolesiem z optware czy moze cos wyczaic
ale chyba bedzie wielka lipa

kompilacja z cs05q3armel sciaga uszkodzone torrenty na ts-409
a kompilacja z cs08q1armel wogole nie chce sciagac torrentow na ts-109/209 i 409 :(
 
Wracając do mojego HOWTO, poprawiłem jeden błąd w konfiguracji Apache jaki był w początkowym opisie, powodował on, że praktycznie wszystko stojące na Apache przestawało działać, można to nazwać zwykłą literówką. Teraz niby jest ok ale jednak nie działa mi to wszystko w pełni, wygląda na to, że rtgui i wTorrent są w jakiś sposób zależne od zawartości zabezpieczonego hasłem w lighttpd katalogu. Problem mnie trochę przerósł, za mało wiem żeby to naprawić a stan obecny właściwie spełnia moje potrzeby chociaż nie działa w pełni. Zgodnie z opisem jaki jest obecnie w pierwszym poście działa to tak:

-dostęp do strony głównej interfejsów http://numerIP:8081 jest zabezpieczony hasłem i strona działa po zalogowaniu
-dostęp do strony http://numerIP:8081/rtorrent/ czyli do trzeciego interfejsu jest zabezpieczony jako podrzędny i wszystko działa świetnie
- dostęp do stron http://numerIP/rtgui/ i http://numerIP/wTorrent/ również jest zabezpieczony hasłem jednak po zalogowaniu oba interfejsy nie działają, sypią błędami
-wszystkie inne strony stojące na Apache działają jak trzeba, np Joomla. phpMyAdmin itd tzn wszystko co mamy w katalogu Qweb.

Teraz najciekawsze bo problem nie wynika z samej konfiguracji Apache. Jeśli zrobię sam pierwszy etap nie dotykając wcale konfiguracji lighttpd to zarówno rtgui jak i wTorrent działają i cel jest osiągnięty czyli wejście na hasło. Jednak żeby zabezpieczyć również stronę główna interfejsów i web UI działające na lighttpd trzeba i tam pogrzebać, po wykonaniu drugiego etapu wychodzi efekt jaki opisałem powyżej.
Podsumowując po zmianie konfiguracji lighttpd interfejsy działające na Apache przestają działać :eek:

Jakieś sugestie ? Bo niestety za głupi jestem żeby rozgryźć te zależności.
 

Użytkownicy znaleźli tą stronę używając tych słów:

  1. konfiguracja rtorrent
  2. RTORRENT OPIS INTERFEJSU