Forum Turris
Fórum Turris Nápověda

Milí majitelé routerů Turris,

toto fórum bylo 9. 12. 2016 zmrazeno a nahrazeno naším novým Turris fórem. Ještě chvíli bude dostupné k prohlížení, ale již zde není možné přispívat. Více informací naleznete v oznámení o uzavření fóra.


Dear Turris routers users,

this forum has been frozen on Dec 9th, 2016 and replaced by our new Turris forum. It will be read-only accessible for some time after. For more information, read the announcement about closing the forum.

Nahoru Téma Majitelé routerů / Uživatelská vylepšení / Turris s NAS a HTTP serverem (uzamčeno)
- - Od Daniel M. Dne 2014-08-07 12:28 Hlasů 1
Cíl: Umožnit zabezpečený přístup z webu k datům disku připojeného na USB portu Turrisu.

Řešení:
1. Instalace apache serveru
opkg install apache

2. v /etc/apache/httpd.conf si nastavíme číslo portu. V mém případě 81:
Listen 81

3. Povolíme symlinky a případně omezíme přístup
<Directory />
    Options FollowSymLinks
    Order deny,allow
    Deny from all
    Allow from 192.168.2.0/24
</Directory>

4. Vytvoříme novou sekci, která bude odkazovat na náš NAS disk, opět můžeme omezit přístup z konkrétních adres, popřp. toto nastavení provedeme později na FW Turrisu.
<Directory "/usr/share/htdocs/nas">
Order deny,allow
Allow from all
</Directory>


5. V cestě /usr/share/htdoc si vytvoříme symlink na naše NAS úložiště tak, aby se s ní httpd.conf mohl spojit:
ln -s /mnt/nas nas

6. Restartujeme apache
apachectl restart

V tuto chvíli by měl být v cestě http://vase-turris-ip:81/nas již dostupný Váš adresář.

6. Na FW Turrisu si povolíme přístup z webu. V Luci v sekci Síť - Firewall - Přesměrování portů si přidáme nové pravidlo:

Klikneme na Uložit & Použít.

Můžeme otestovat, zda je adresa přístupná z webu - http://vase-verejna-ip:81/nas

7. Vytvoříme si .htaccess soubor v cestě našeho domovského web adresáře pro nas, v tomto případě /usr/share/htdocs/nas jehož obsahem bude:

AuthName "Auth required"
AuthType Basic
AuthUserFile /root/.htpasswd
require valid-user


Dokumentace a upozornění k dispozici zde: http://www.thesitewizard.com/apache/password-protect-directory.shtml

8. Vytvoříme si uživatele a heslo:
htpasswd -c /root/.htpasswd username

9. Nastavíme správné oprávnění:
chmod 644 /root/.htpasswd

V tuto chvíli bude přístup k webové adrese zabezpečen jednoduchou autorizací pomocí jména a hesla.

Poznámky:
- nepoužívejte slovníková hesla
- jedná se o nešifrované spojení. Obsah spojení včetně hesel teče jako clear-text (sidenote: zkuste doporučit lepší řešení, https/ssl?)
- jedná o poměrně slabý typ zabezpečení (sidenote: zkuste doporučit lepší řešení)
- např. za pomocí Apaxy si můžete directory-listing nastylovat
- návod píšu zpětně, takže je možné, že jsem něco opomenul. Pokud na něco narazíte, opravím.

Výsledek pak může vypadat nějak takto:
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2014-08-07 14:24 Hlasů 1
Není zbytečné instalovat další server? Lighttpd tohle všechno zvládne taky, stačí nainstalovat balíček lighttpd-mod-auth a vytvořit soubor /etc/lighttpd/conf.d/nas.conf s následujícím obsahem:

server.modules += (
        "mod_auth"
)

alias.url += (
        "/nas/" => "/mnt/nas/",
)

$HTTP["url"] =~ "^/nas/" {
        dir-listing.activate   = "enable"
        auth.backend = "plain"
        auth.backend.plain.userfile = "/etc/nas.passwd"
        auth.require = ( "" =>
                         (
                           "method" => "digest",
                           "realm"  => "nas",
                           "require" => "valid-user",
                         ),
                        )

}


Nakonec je potřeba upravit soubor /etc/lighttpd/conf.d/foris.conf, tak aby si Foris nevšímal URL začínající na /nas/:
$HTTP["url"] !~ "^(/static|/cgi-bin|/luci-static|/nas)" {
Poznámka pro vývojáře Forisu: Tohle je dost nesystémové, mnohem lepší by imho bylo, kdyby Foris bydlel jinde než v kořeni, třeba na URL /foris/ a na kořeni byl jen jednoduchý nepermanentní redirect.

Uživatele je možné vytvářet v souboru /etc/nas.passwd ve formátu jméno:heslo, případně je možné přejít na databázi s hashovanými hesly (dokumentace). Na rozdíl od výše uvedeného se zde používá HTTP Digest autentizace, takže heslo není možné odposlouchat (Ta jde ale velmi snadno zapnout v apachi také). Kromě toho je možné použít i SSL, které je pro lighttpd již předkonfigurované. Použití standardních čísel portů také usnadňuje přístup.
Nadřazený - Od Daniel M. Dne 2014-08-07 14:50
výborně, otestuji. díky
Nadřazený - - Od commar (>>) Dne 2014-08-17 19:41
Super, hned jsem to vyzkoušel, funguje mi to na iPadu i mobilu bez problémů, ještě jsem si doplnil:

  dir-listing.encoding = "utf-8"
  dir-listing.external-css = "/mnt/nas/nas.css"


Nevím jestli by soubor *.css neměl být správně /etc/nas.css, co myslíte?
Nemáte někdo nápad, jak to hezky nastylovat?
Není někde už něco hotového?
Moc jsem toho nevygooglil...
Nadřazený - Od Gorole Dne 2016-05-06 18:31 Hlasů 1
Mohl ny někdo prosím sepsat návod na lighttpd?
Zkoušel jsem,ale nedaří se
- - Od Majlou Dne 2016-10-05 11:09
Pokud ale nechci zabezpečit web přihlašováním ale chci zakázat procházení složek, jak toho dosáhnu?

Když odstraním index.php, tak jsou vidět složky a soubory. Potřebuji aby se nezobrazovali a vyhodilo to Error. Nějaká rada prosím?
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2016-10-05 14:10 Hlasů 1
Nejjednodušší je umístit do dané složky třeba prázdný soubor index.html. Složitější pak je zakázat DirectoryListing v konfiguraci Apache.
Nadřazený - Od Majlou Dne 2016-10-06 10:38
Díky za nakopnutí. Vyřešil jsem to konfigurací Apache.
Nahoru Téma Majitelé routerů / Uživatelská vylepšení / Turris s NAS a HTTP serverem (uzamčeno)

Powered by mwForum 2.29.3 © 1999-2013 Markus Wichitill