shikataganai 10 Zgłoś post Napisano Marzec 5, 2010 mam nastepujacy problem - mam kilka serwisow i paneli administracyjnych z zabazpieczeniami dostepu po IP na poziomie hostow wirtualnych apache dyrektywy mod_access czyli order deny, allow allow from ip.ip.ip.ip dziala poprawnie. chcialbym sobie ulatwic prace i za pomoca np serwisu no-ip.pl 'przypisac' do komputera na ktorym pracuje jakas domene , np domena.com wtedy w dyrektywach dostepu powinno dzialac cos takiego: order deny, allow allow from domena.com teraz pytanie jak zrobic na poziomie apache zeby miec dostep do hosta? powyzsze sprawdzenie daje negatywny wynik, pingi z konsoli pokazuja prawidlowo - zatrzymalem sie w tym miejscu i nie mam pomyslow co dalej... moz ektos juz os takiego trenowal? Udostępnij ten post Link to postu Udostępnij na innych stronach
malu 460 Zgłoś post Napisano Marzec 5, 2010 W zasadzie może być to ciężkie do zrealizowania bo w przypadku no-ip nie jest to hostname komputera z którego się łączysz Ja w sumie to nie mam żadnego konkretnego pomysłu jak to racjonalnie rozwiązać i wątpię by taki sposób istniał. (Mam nadzieję, że się mylę) Udostępnij ten post Link to postu Udostępnij na innych stronach
shikataganai 10 Zgłoś post Napisano Marzec 5, 2010 w jednym przypadku zrobilem takie sprawdzenie spod php: $ip_domeny = gethostbyname('domena.no-ip.pl'); $ip =gethostbyname($REMOTE_ADDR); if ($ip_domeny == $ip) OK - i to sie sprawdza tylko nie wiem jakby to zaimplementowac pod apache, wiem ze sa tam jakies zmienne ktore mozna podsuwac dla mod_access ale nie wiem jakby dostarczyc tam wynik powyzszego 'triku' Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Marzec 5, 2010 Pod mod_access tego nie zrobisz, bo on sprawdza rekord PTR(revDNS) adresu IP, a nie jakieś tam mapowania A. Bo serwer na prawdę nie jest wróżką i nie potrafi wywróżyć, czy podany adres IP należy do dynamicznej domeny xyz.no-ip.com czy też zyx.dyndns.org bez zrobienia lookupu wszystkich możliwych kombinacji. Lookupu zasobożernego - przy jednym hoście nie za bardzo odczuwalnego może, ale jak ich tam umieścisz ze 100, a potem jeszcze dojdzie to, że ktoś będzie ci złośliwie robił równoległego z kilkunastu lokalizacji GETa, to może ci się wszystko dosyć mocno spowolnić. Jeśli chcesz to zrobić porządnie, to po prostu postaw sobie VPN i tych dynamicznych klientów zmuszaj do wyklikania sobie połączenia bezpiecznego. A wtedy to już możesz robić prezycyjne ACLki dostępu do aplikacji via adresy IP, oraz ACLki do samego dostępu do koncentratora VPN. Udostępnij ten post Link to postu Udostępnij na innych stronach
shikataganai 10 Zgłoś post Napisano Marzec 5, 2010 a czy z poziomu .htaccess (w zasadzie dyrektywy w virualhostach sa takie same chyba) da sie zrobic proste odpytanie o adres IP dla danej domeny? bo potem w .htacces mozna zarzadzac zmiennymi jakos zdaje sie , wiec moznaby zgodnosc dwoch adresow ip ? poza tym nie rozumiem o tej wrozce i dynamicznych adresach IP , co za roznica - w php odpytujesz funkcja gethostbyname(domena) i otrzymujesz wynikowo IP , o to samo mi chodzilo z poziomu virtualhosta czy .htaccess - to serwer dns no-ip.pl zwroci aktualny adres IP mojego komputera przeciez wiec w zasadzie to szukam odpowiednika takiej funkcji z php zeby jej uzyc w .htaccess Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Marzec 5, 2010 Chodzi o to, że o rekord PTR dla adresu IP da się serwer DNS odpytać raz i potem go porównać z całą listą praktycznie jedną operacją. A tu - trzeba by wykonać n-odpytań o adres IP dla każdej z domen i za każdym razem porównać, czy się zgadza, czy nie. Stąd też aby nie kusić potencjalnych personów do stosowania tego arcynieoptymalnego algorytmu to z poziomu serwera nie będzie on raczej dostępny. A jeśli chcesz co request wywoływać takich wiele zapytań, to zrób sobie plik, który będziesz includował do każdego php na początku, ewentualnie auto_prepend_file w php.ini i tam zrób to magiczne sprawdzanie. Udostępnij ten post Link to postu Udostępnij na innych stronach
shikataganai 10 Zgłoś post Napisano Marzec 6, 2010 ok, dzieki za podpowiedz, wykorzystalem auto_prepend_file , ale nie w php.ini tylko bezposrednio w definicji virtualhosta , dziala. sytuacja w praktyce wyglada tak ze mam powiedzmy 2 virtualhosty: pierwszy o IP 1.1.1.1 i tam chodzi sobie jakis serwis www w okreslonym katalogu drugi o IP 1.1.1.2 i tam trzymam narzedzia administracyjne typu phpmyadmin, mysqldumper - generalnie wchodzi tam tylko kilka osob pracujacych przy danym projekcie. na tym drugim wykorzystalem tylko auto_prepend_file i podalem sciezke do pliku powiedzmy /var/www/testIP.php w pliku php jest owe sprawdzenie , jesli adres IP sie nie zgadza to przerywa dalsza prace przez die('brak dostepu'); rozwiazanie w pelni mnie zadowala , dziala tak jak powinno - ale czy Twoim zdaniem nadal naraza to zasoby serwera na duze obciazenie, samo wykorzystanie funkcji gethostbyname() spod php? zaznaczam ze jest to uzyte na jednym virtualhoscie , ktorego IP nie widac spod zadnej domeny , lacze sie tam za pomoca http://1.1.1.2/phpmyadmin , na tym ktory obsluguje domene z serwisem ogolnodostepnym tej dyrektywy nie uzywam. Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Marzec 6, 2010 Tak. Prościej chyba będzie zrobić sprawdzanie tej opcji przy logowaniu, a później ustawienie w sesji AUTH=true i sprawdzanie w dalszych podstronach, czy $_SESSION['AUTH'] jest równe true. Udostępnij ten post Link to postu Udostępnij na innych stronach