In 2.2, access control based on client hostname, IP address, and other characteristics of client requests was done using the directives Order
, Allow
, Deny
, and Satisfy
.
In 2.4, such access control is done in the same way as other authorization checks, using the new module mod_authz_host
. The old access control idioms should be replaced by the new authentication mechanisms, although for compatibility with old configurations, the new module mod_access_compat
is provided.
Dnia 12 lutego 2015 13:34 Dariusz Kowalczyk <dariusz@kowalczyk.it> napisał(a):Moje pytanie było retoryczne :-)Ale jak już zacząłeś to odpowiem. Lms jest napisany w php i do działania potrzebuje serwera www który potrafi pracować z interpreterem php, sam serwer nie ma znaczenia. Po prostu trzeba się nauczyć konfigurować dany serwer www żeby działał szybko i bezpiecznie.Można narzekać, że Apache jest wolny ale Nginx nie wprowadził funkcji podobnej do .htaccess specjalnie żeby być szybkim.Na szczęście w Apache można to wyłączyć i konfigurować wszystkie reguły (także modrewite) w sekcji virtualhost.Włączenie wspomnianą dyrektywą obsługi .htaccess zabija wydajność maszyny, bo apache za każdym żądaniem dostępu do pliku musi przeglądać całe drzewo katalogów w poszukiwaniu plików .htaccess. jak takie bezsensowne przeszukiwanie wpływa na wydajność łatwo sobie wyobrazić.A że .htaccess wiele ułatwia bo pozwala się odpierwiastkować użytkownikom od admina, a niech sobie użytkownicy knują reguły w .htaccess...to inna sprawa, zawsze jest coś za coś,a tutaj jest albo albo, albo wygoda albo wydajność i bezpieczeństwo.Łatwo narzekać na apache że jest wolny ...ale nie jest to do końca prawdą, jest elastyczny bo zapewnia mnogość funkcji ...np wspomniany .htaccessale gdy się go okroi z funkcjonalności i wywali niepotrzebne moduły jego wydajność znacząco rośnie.lms używa plików .htaccess w katalogachlms/backups/.htaccesslms/documents/.htaccesslms/lib/.htaccesslms/templates_c/.htaccesslms/modules/.htaccesslms/.htaccesslms/contrib/bin/.htaccesslms/userpanel/lib/.htaccesslms/userpanel/templates_c/.htaccessale jedyne co w tych plikach jest toOrder deny,allowDeny from alljak widać .htaccess jest użyte tylko po to by zabezpieczyć dostęp do tych katalogów.jedynym wyjątkiem jestlms/.htaccessw którym jest<Files lms.ini>Order Deny,AllowDeny From Allto zabezpieczenie na wypadek sytuacji gdy ktoś plik lms.ini umieszcza w katalogulms/zamiast /etc/lmsWrzucenie kodu lms-a na serwerze z nginx zmieni tylko tyle że te katalogi nie będą domyślnie chronione i trzeba to zrobić w konfiguracji nginx-aale lms działać będzie bez żadnego problemu.Przyśpieszenie działania serwera apache uzyskać można wyłączając globalnie w pliku httpd.conf dyrektywę AllowOverrideAllowOverride Nonei konfigurując odpowiednie reguły w virtualhost obsługującym lms-a.i dodanie (tu przykładowa ścieżka do katalogu w którym znajduje się lms)<Directory "/var/www/html/lms/backups">Order deny,allowDeny from all</Directory><Directory "/var/www/html/documents">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/lib">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/templates_c">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/modules">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/contrib/bin">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/userpanel/lib">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/userpanel/templates_c">Order deny,allowDeny from all</Directory>oraz ochrona lms.ini jeśłi nie jest umieszczony w /etc/lms<Files "/var/www/html/lms/lms.ini">Order allow,denyDeny from all</Files>Konfiguracja virtualhost dla lms-a w apache beż użycia .htaccess wtedy wygląda tak<VirtualHost *:80>ServerAdmin administrator@wsb-nlu.edu.plDocumentRoot /var/www/html/lmsServerName lms.org.plErrorLog logs/lms.org.pll-error_logCustomLog logs/lms.org.pl-access_log common<Directory "/var/www/html/lms">AllowOverride NoneOrder allow,denyAllow from all</Directory><Directory "/var/www/html/lms/backups">Order deny,allowDeny from all</Directory><Directory "/var/www/html/documents">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/lib">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/templates_c">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/modules">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/contrib/bin">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/userpanel/lib">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/userpanel/templates_c">Order deny,allowDeny from all</Directory><Files "/var/www/html/lms/lms.ini">Order allow,denyDeny from all</Files></VirtualHost>I taka tez konfiguracja powinna być proponowana jako domyślna w dokumentacji lms-a.Analogicznie trzeba to zabezpieczyć dla nginx-a
Witam,
ośmielam się zwrócić uwagę, że te dyrektywy nie zadziałają z nowszą wersją apache. Zamiast „order deny,allow” i „deny/allow from all” należy użyć dyrektywy „require all denied/granted”.
--
Pozdrawiam
Jacek Cieplok
_______________________________________________
lms mailing list
lms@lists.lms.org.pl
http://lists.lms.org.pl/mailman/listinfo/lms