Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2014-07-15 22:18:39

  sqrtek - Użytkownik

sqrtek
Użytkownik
Skąd: /bin/true
Zarejestrowany: 2012-06-14

Przeglądanie katalogu z poziomu przglądarki po podaniu hasła - apache2

Problem jest następujący mam katalog /var/www/ gdzie jest index.html wraz z .php dla strony, stworzyłem katalog 'public' w tym /var/www, gdzie dałem przykładowe pliki oraz .htaccess z konfiguracją. Chcę aby była możliwość po wpisaniu w przeglądarce "IP/public" pokazania się interfejsu logowania, a następnie po poprawnym podaniu user oraz pass'a możliwość przeglądania plików z tego katalogu z poziomu przeglądarki, lecz problem się pojawił i poniżej zamieszczam wszelką moją konfigurację wraz z logami. Z góry dzięki za pomoc

konfig /sites-enables/default

Kod:

   <VirtualHost *:80>
           ServerAdmin webmaster@localhost
   
           DocumentRoot /var/www/
           <Directory />
                   Options None
                 AllowOverride None
                  Order deny,allow
                  deny from all
          </Directory>
 
         <Directory /var/www/ >
 
         #Options -Indexes FollowSymLinks MultiViews
                  Options None
                  AllowOverride None
                 Order allow,deny
                 allow from all
          </Directory>
  
          <Directory /var/www/public/ >
  
  #       Options +Indexes FollowSymLinks MultiViews
                  Options Indexes
                  AllowOverride AuthConfig
                  Order allow,deny
                  allow from all
          </Directory>
  
  
  #       ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
  #       <Directory "/usr/lib/cgi-bin">
  #               AllowOverride None
  #               Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  #               Order allow,deny
  #               Allow from all
  #       </Directory>
  
          ErrorLog ${APACHE_LOG_DIR}/error.log
 
          # Possible values include: debug, info, notice, warn, error, crit,
          # alert, emerg.
          LogLevel warn
  
          CustomLog ${APACHE_LOG_DIR}/access.log combined
  </VirtualHost>

.htacess w katalogu public się znajduje
konfig .htaccess:

Kod:

   AuthType Basic
   AuthUserFile "/home/www-data/.passwd"
  AuthName "public"
   require valid-user

.passwd skonfigurowany dla użytkownika przykładowego 'noname' wraz z zaszyfrowanym hasłem.

error.log

Kod:

[Tue Jul 15 21:25:16 2014] [error] [client IP] Attempt to serve directory: /var/www/public/
[Tue Jul 15 21:25:17 2014] [error] [client IP] Attempt to serve directory: /var/www/public/

gdy próbuję wejsc z poziomu przeglądarki wpisując : IP/public/

Kod:

Not Found

The requested URL /public/ was not found on this server.

Nie jestem pewny, ale możliwe że problem leży w tym że jakiś moduł nie jest załadowany?
lista modułów załadowanych:

Kod:

Loaded Modules:
 core_module (static)
 log_config_module (static)
 logio_module (static)
 version_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 auth_basic_module (shared)
 authn_file_module (shared)
 authz_groupfile_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 deflate_module (shared)
 dir_module (shared)
 headers_module (shared)
 mime_module (shared)
 evasive20_module (shared)
 security2_module (shared)
 php5_module (shared)
 reqtimeout_module (shared)
 status_module (shared)
 unique_id_module (shared)
Syntax OK

"Nie pozwól by zgiełk opinii innych ludzi, zagłuszył Twój wewnętrzny głos" ~ [i]Steve Jobs[/i]

Offline

 

#2  2014-07-16 13:07:38

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Przeglądanie katalogu z poziomu przglądarki po podaniu hasła - apache2

Virtualhost z autoryzacją HTTP, listuje zawartość katalogu.
Bułka z masłem albo 5 minut bardzo ciężkiej pracy. :D


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2014-07-16 13:15:06

  sqrtek - Użytkownik

sqrtek
Użytkownik
Skąd: /bin/true
Zarejestrowany: 2012-06-14

Re: Przeglądanie katalogu z poziomu przglądarki po podaniu hasła - apache2

[quote=Jacekalex]Virtualhost z autoryzacją HTTP, listuje zawartość katalogu.
Bułka z masłem albo 5 minut bardzo ciężkiej pracy. :D[/quote]
No właśnie coś mi z tą bułką z masłem nie wychodzi :P.
Nie wiem w czym jest problem już, ale założę się że to jakaś drobnostka jak to zwykle bywa gdy zakładam tutaj temat, a po chwili sam to rozwiązuję.. choć teraz nie umiem znaleźć rozwiązania :/


"Nie pozwól by zgiełk opinii innych ludzi, zagłuszył Twój wewnętrzny głos" ~ [i]Steve Jobs[/i]

Offline

 

#4  2014-07-16 14:17:17

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Przeglądanie katalogu z poziomu przglądarki po podaniu hasła - apache2

To podziel sprawę na dwa-cztery elementy?
Apache listuje katalog? jedna rzecz zrobiona?

Autoryzacja w Apachu działa? druga rzecz zrobiona.
Sznurek:
http://httpd.apache.org/docs/2.2/mod/mod_auth_basic.html
Zawsze działa.
Jeszcze nie widziałem, żeby nie działało, nigdy w życiu.

A potem albo w nowym Virtualhoście, albo w znaczniku Directory musisz ożenić jedno i drugie, i dodać mod_evasive, do tego  chwila zabawy z FW,  żeby nie było zbyt łatwo się tam włamać.

Podziel robotę na etapy, to ruszy bez problemu.

Ostatnio edytowany przez Jacekalex (2014-07-16 14:23:38)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2014-07-16 20:19:49

  sqrtek - Użytkownik

sqrtek
Użytkownik
Skąd: /bin/true
Zarejestrowany: 2012-06-14

Re: Przeglądanie katalogu z poziomu przglądarki po podaniu hasła - apache2

Faktycznie dałem radę przy podzieleniu tego na pewne etapy ;-) . Pomogło podzielenie /var/www oraz /var/www/priv na dwa osobne pliki w "sites-available".

Edit:// PS:

Choć mam jeszcze pytanie, czy taki konfig będzie odpowiednio 'bezpieczny'? ponieważ aby mi to zadziałało, musiałem w pliku /sites-available/defaults, dać opcję Indexes :/ Czy ktoś czasem nie będzie miał możliwości dzięki tej opcji wylistować sobie plików które będą w /var/www?
A gdy zmienię tę opcję w pliku defaults na "-Indexes" to wtedy w ogóle, nie ładuje mi katalogu '/priv' i wyskakuje błąd 'permission denied'.

Oto konfigi:
defaults:

Kod:

   <VirtualHost *:80>
   
           DocumentRoot /var/www
           <Directory />
                   Options None
                   AllowOverride None
           </Directory>
           <Directory /var/www/>
                  Options Indexes
                  AllowOverride All
                  Order allow,deny
                  allow from all
          </Directory>
  
          #ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
          #<Directory "/usr/lib/cgi-bin">
  #               AllowOverride None
  #               Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  #               Order allow,deny
  #               Allow from all
  #       </Directory>
  
          ErrorLog ${APACHE_LOG_DIR}/error.log
  
          # Possible values include: debug, info, notice, warn, error, crit,
          # alert, emerg.
          LogLevel warn
  
          CustomLog ${APACHE_LOG_DIR}/access.log combined
  </VirtualHost>

private

Kod:

   <VirtualHost *:80>
   
           DocumentRoot /var/www/priv
           <Directory />
                   Options None
                   AllowOverride None
           </Directory>
           <Directory /var/www/priv >
                  Options Indexes
                  AllowOverride AuthConfig
                  Order allow,deny
                  allow from all
          </Directory>
  
  
          ErrorLog ${APACHE_LOG_DIR}/error.log
  
          # Possible values include: debug, info, notice, warn, error, crit,
          # alert, emerg.
          LogLevel warn
  
          CustomLog ${APACHE_LOG_DIR}/access.log combined
  </VirtualHost>

Ostatnio edytowany przez sqrtek (2014-07-16 20:29:13)


"Nie pozwól by zgiełk opinii innych ludzi, zagłuszył Twój wewnętrzny głos" ~ [i]Steve Jobs[/i]

Offline

 

#6  2014-07-16 23:59:54

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Przeglądanie katalogu z poziomu przglądarki po podaniu hasła - apache2

Bezpieczny, to on nie jest, w lokalizacji priv pozwalasz na dostęp bez autoryzacji wszystkim, zamiast tam zrobić autoryzację, a potem tą autoryzację dozbroić przez moduł Evasive i firewalla, żeby zabezpieczyć się przed siłowym łamaniem hasła.

Dodatkowo, jak katalog ma być dostępny przez autoryzację, to musi też mieć szyfrowanie SSL, w przeciwnym razie hasełko i tak prawdopodobnie ktoś prędzej czy później wyczesze, i dobierze się  do danych chronionych.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#7  2014-07-17 00:11:35

  sqrtek - Użytkownik

sqrtek
Użytkownik
Skąd: /bin/true
Zarejestrowany: 2012-06-14

Re: Przeglądanie katalogu z poziomu przglądarki po podaniu hasła - apache2

[quote=Jacekalex]Bezpieczny, to on nie jest, w lokalizacji priv pozwalasz na dostęp bez autoryzacji wszystkim, zamiast tam zrobić autoryzację, a potem tą autoryzację dozbroić przez moduł Evasive i firewalla, żeby zabezpieczyć się przed siłowym łamaniem hasła.[/quote]
Hmm jak to wszystkim? Jest włączona autoryzacja i tylko po podaniu użytkownika oraz hasła można przeglądać zasoby dostępne pod /var/www/priv, a hasło użytkownika jest szyfrowane i nie znajduje się w tym samym katalogu co zasoby z priv. Więc za bardzo chyba nie jest możliwe przeglądanie tych zasobów? Chyba że o czymś nie wiem :D.

A co do modułów to hmm, wgrałem właśnie mod-evasive oraz mod-security, oraz fail2ban.


[quote=Jacekalex]Dodatkowo, jak katalog ma być dostępny przez autoryzację, to musi też mieć szyfrowanie SSL, w przeciwnym razie hasełko i tak prawdopodobnie ktoś prędzej czy później wyczesze, i dobierze się  do danych chronionych.[/quote]
Właśnie się tak zastanawiałem czy da się tego htaccessa skonfigurować do współpracy z SSL'em :).


"Nie pozwól by zgiełk opinii innych ludzi, zagłuszył Twój wewnętrzny głos" ~ [i]Steve Jobs[/i]

Offline

 

#8  2014-07-17 04:48:52

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Przeglądanie katalogu z poziomu przglądarki po podaniu hasła - apache2

http://httpd.apache.org/docs/current/ssl/ssl_howto.html
RTFM.

Możesz nawet w Apachu zrobić logowanie certyfikatem kryptograficznym PKCS#12, ale to już ciężka i trudna zabawa z generowaniem prawidłowych certyfikatów.

Sznurek:
http://linuxconfig.org/apache-web-server-ssl-authentication

Przyjemnej zabawy. xD

Ostatnio edytowany przez Jacekalex (2014-07-17 04:53:24)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#9  2014-07-17 14:28:19

  sqrtek - Użytkownik

sqrtek
Użytkownik
Skąd: /bin/true
Zarejestrowany: 2012-06-14

Re: Przeglądanie katalogu z poziomu przglądarki po podaniu hasła - apache2

Dzięki, pokombinuję coś z tym SSL'em :).


"Nie pozwól by zgiełk opinii innych ludzi, zagłuszył Twój wewnętrzny głos" ~ [i]Steve Jobs[/i]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.008 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00010 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00099 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='13.58.18.135' WHERE u.id=1
0.00064 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '13.58.18.135', 1732825610)
0.00044 SELECT * FROM punbb_online WHERE logged<1732825310
0.00045 SELECT topic_id FROM punbb_posts WHERE id=271654
0.00063 SELECT id FROM punbb_posts WHERE topic_id=26133 ORDER BY posted
0.00054 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=26133 AND t.moved_to IS NULL
0.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00081 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=26133 ORDER BY p.id LIMIT 0,25
0.00082 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=26133
Total query time: 0.00551 s