[+] zmiana dost

Konfiguracja serwerów, usług, itp.
ShinRa
Posty: 10
Rejestracja: 15 września 2009, 23:10

[+] zmiana dostępu do podstron?

Post autor: ShinRa »

Witam.

Chcę zrobić sobie panel dostępu - poszczególne części składowe są już zainstalowane i teraz mam tak:

Kod: Zaznacz cały

domena.no-ip.org/phpmyadmin/
domena.no-ip.org/rtorrent/
Jak zrobić żeby ktoś z zewnątrz po wpisaniu tych dwóch adresów dostał monit, że nie ma takiej strony na serwerze i chwilę później przekierowało go do strony głównej. Oraz żeby osoby, które wejdą przez stronę główną tzn. zalogują się w panelu, wybiorą opcję phpmyadmin zostaną przekierowani na tenże adres:

Kod: Zaznacz cały

domena/phpmyadmin/
Da się tak w ogóle, a może jest lepszy sposób?
budzigniew
Posty: 83
Rejestracja: 07 maja 2008, 11:29

Post autor: budzigniew »

Musisz ograniczyc dostep do sieci lokalnej. Mozna to zrobic np. poprzez .htaccess (wiecej: http://httpd.apache.org/docs/2.0/howto/auth.html).

Przekierowanie to juz kwestia wyedytowania stron z bledami i w sekcji head dodatnia

Kod: Zaznacz cały

<meta http-equiv="refresh" content="x; url=adres.strony">
gdzie x to czas odswiezenia strony wyrazony bodajze w sekundach.

Co do ostatniego pytania... nie do konca Cie zrozumialem, ale wystarczy chyba podac w linku adres phpMyAdmina?
ShinRa
Posty: 10
Rejestracja: 15 września 2009, 23:10

Post autor: ShinRa »

Czyli wystarczy ze w /var/www dodam odpowiedni htaccess i nikt spoza wpisanego adresu moja.domena.org nie wejdzie, tzn. jeśli ktoś wpisze w przeglądarce moja.domena.org/phpmyadmin/ to będzie błąd.

No właśnie chcę żeby z zewnątrz użytkownicy mogli wpisać wyłącznie adres główny strony. i tylko po wpisaniu tego adresu i zalogowaniu się w php otrzymali dopiero dostęp do wybranego katalogu, w tym przypadku phpmyadmin. Oczywiście chciałbym mieć możliwość wyboru które katalogi są dostępne dla całej sieci.

Czyli coś na zasadzie, że da się kliknąć w link ale musi on przechodzić przez stronę główna mojej domeny. zapobiegnie to hotlinkowaniu np. ale też zwiększy bezpieczeństwo (moim zdaniem) bo nie będziesz wiedział jakie katalogi na serwerze występują i dodatkowo zawsze będziesz się musiał zalogować na głównej.

Pomyślałem też, że dobrze byłoby w tym wypadku wyłączyć listowanie plików (widocznych jak w ftp) oraz wyłączyć możliwość dostępu bezpośredniego do plików (adres/plik.exe) chyba że występuje takie odwołanie w kodzie samej strony.
budzigniew
Posty: 83
Rejestracja: 07 maja 2008, 11:29

Post autor: budzigniew »

Ad 1. Blokujesz dostep komputerom. Jesli zezwolisz na dostep tylko z konkretnej domeny, to bedziesz musial do niej nalezec, zeby moc strone zobaczyc.

Ad 2. To co chcesz osiagnac to cos w rodzaju CMS-a. Musialbys pokombinowac z sesjami w PHP. Czy da sie to zrobic za pomoca Apache? Nie wiem, nie probowalem. Musialbys poszukac w dokumentacji.

Troche mniej eleganckim rozwiazaniem byloby stworzenie katalogu na haslo.
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Według mnie możesz zrobić tak:

Na stronie głównej wyświetlasz linki do phpmyadmina,rtorrenta i co tam jeszcze wymyślisz, dopiero po zalogowaniu na stronie.

Natomiast w konfiguracji Apache robisz coś takiego dla każdego katalogu który chcesz zabezpieczyć:

Kod: Zaznacz cały

<Location /phpmyadmin/>
    Order allow,deny
    allow from localhost env=wpuszczamy
</Location>

SetEnvIf Referer "^http://twojserwer.com.pl/" wpuszczamy
Restartujesz Apache i powinno działać. A zasada działania jest następująca - za pomocą dyrektywy SetEnvIf ustawiamy zmienną wpuszczamy, jeśli kliknięcie nastąpiło z naszej domeny. Kilka linii wcześniej, w definicji lokacji, pozwalamy na wejście tylko dla localhosta i hostów dla których została zdefiniowana zmienna wpuszczamy. To tak pokrótce. Z tym że nie jest to jakieś wyrafinowane zabezpieczenie, luk jest sporo, ale na początek chyba wystarczy. Oczywiście musisz podstawić swoje dane ;-)
ShinRa
Posty: 10
Rejestracja: 15 września 2009, 23:10

Post autor: ShinRa »

Dziękuję, trochę się dowiedziałem o .htaccess.
lessmian2, dokładnie o to rozwiązanie mi chodziło, na początek wystarczy - dziękuję.
ODPOWIEDZ