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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
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
<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:
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
[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/
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:
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
Offline
Virtualhost z autoryzacją HTTP, listuje zawartość katalogu.
Bułka z masłem albo 5 minut bardzo ciężkiej pracy. :D
Offline
[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 :/
Offline
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)
Offline
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:
<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
<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)
Offline
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.
Offline
[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 :).
Offline
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)
Offline
Dzięki, pokombinuję coś z tym SSL'em :).
Offline
Strony: 1
Time (s) | Query |
---|---|
0.00010 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00125 | 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='3.14.249.124' WHERE u.id=1 |
0.00060 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.14.249.124', 1732820089) |
0.00053 | SELECT * FROM punbb_online WHERE logged<1732819789 |
0.00050 | 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.00149 | 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.00076 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=26133 |
Total query time: 0.00532 s |