Skocz do zawartości
shikataganai

allow by domain name

Polecane posty

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

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 :D

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

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' :D

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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

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 :D

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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

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

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

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×