Freesco, NND, CDN, EOS http://forum.freesco.pl/ |
|
autoryzacja via www + ogloszenie + blokada http://forum.freesco.pl/viewtopic.php?f=22&t=16131 |
Strona 1 z 2 |
Autor: | Kimas [ sobota, 20 października 2007, 18:56 ] |
Tytuł: | autoryzacja via www + ogloszenie + blokada |
http://forum.freesco.pl/viewtopic.php?t=16131#114643 witam ostatnio po glowie chodził mi pomysł na stworzenie autoryzacji via www i stworzylem cos takiego: wiec dziala to tak, user loguje sie przy uzyciu .htaccess, script php odpala regulki iptables ktore odblokowuja mu neta na 12h, po tych 12h trzeba logowac sie ponownie. Do dzialania potrzebne sa 2 vhosty, jeden do strony "powitalnej", drugi do logowania... wiec do vhosts.conf dodajemy: <VirtualHost *:85> ServerAdmin admin@server.pl DocumentRoot /home/httpd/autoryzacja/ ServerName autoryzacja ServerAlias 10.0.0.1:85 </VirtualHost> w glownym konfigu apache dodajemy jeszcze linie: trzeba jeszcze utworzyc vhosta ssl, plik ssl.conf jest za duzy wiec podam link do mojego: http://masters.homelinux.com/autoryzacja/ssl.conf HOWTO konfigu ssl jest na stronie nnd Teraz zawartość folderu /home/httpd/autoryzacja/ plik index.php <? echo "<META HTTP-EQUIV=Refresh CONTENT=\"5; URL=https://10.0.0.1:90\">"; echo "<body bgcolor=\"yellow\">"; echo "<br><br><br><br><br><br><br><br><br><br><br> <p align=\"center\"><font face=\"verdana\" color=\"red\" size=\"5\"><b>zaraz zostaniesz przekierowany/przekierowana na strone z logowaniem</b></font></p>"; ?> Zawartosc folderu /home/httpd/ssl-autoryzacja index.php <? $ip = $_SERVER[ 'REMOTE_ADDR' ]; putenv("ip=$ip"); shell_exec(`sudo /home/httpd/ssl-autoryzacja/unblok > out 2>error &`); echo "<br><br><br><br><br><br><br><br><br><br><br>"; echo "<body bgcolor=\"yellow\">"; echo "<p align=\"center\"><font face=\"verdana\" color=\"red\" size=\"5\"><b>Logowanie zakonczone pomyslnie</b></font></p>"; ?> unblok #!/bin/bash iptables -D PREROUTING -t nat -s $ip -p tcp -d 10.0.0.1 --dport 90 -j ACCEPT iptables -D PREROUTING -t nat -s $ip -p tcp -j DNAT --to- 10.0.0.1:85 sleep 12h iptables -A PREROUTING -t nat -s $ip -p tcp -d 10.0.0.1 --dport 90 -j ACCEPT iptables -A PREROUTING -t nat -s $ip -p tcp -j DNAT --to- 10.0.0.1:85 .htaccess Deny from All AuthType Basic AuthUserFile /home/httpd/ssl-autoryzacja/.htpasswd AuthName "Autoryzacja" Require valid-user Satisfy any .htpasswd generator hasel .htpasswd http://www.htaccesstools.com/htpasswd-generator/ do /etc/sudoers dodajemy: pozniej tworzymy jeszcze pliki out i error, nadajemy im chmod +x przed odpaleniem tego wszystkiego trzeba jeszcze wlaczyc regulki dla kazdego ip: iptables -A PREROUTING -t nat -s $ip -p tcp -d 10.0.0.1 --dport 90 -j ACCEPT iptables -A PREROUTING -t nat -s $ip -p tcp -j DNAT --to- 10.0.0.1:85 sam nie mam sieci, wiec narazie testowalem to na 2 kompach domowych, wedlug mnie spelnia swoje zadanie.. btw bedzie wdzieczny za wszelkie uwagi |
Autor: | vido [ środa, 26 grudnia 2007, 09:56 ] |
Tytuł: | |
Witam Chciałbym to potestowac bo z pppoe mam problemy poniewaz mam kilka apekow (planexy sp11gw) ktore nie puszaja w apc tego protokołu a nie chce mi sie ich wymieniac ze wzgledu na koszty. I tu prozba do Ciebie Kimas udostepnij jeszcze raz pliczek ssl.conf dzieki pozdrowionka |
Autor: | realisty [ czwartek, 27 grudnia 2007, 12:26 ] |
Tytuł: | |
jest w linku probowalem tą autoryzacje ale coś nie trybiło |
Autor: | Kimas [ czwartek, 27 grudnia 2007, 17:10 ] |
Tytuł: | |
zapomnialem jeszcze dodać ze trzeba zmienic w configu apache(httpd.conf) AllowOverride None na AllowOverride All bez tej zmiany .htaccess nie bedzie działac u mnie wyglada to tak: # Nadrzędne ustawienia dla katalogów <Directory /> Options FollowSymLinks AllowOverride All </Directory> # Ustawienia globalne dla DocumentRoot. <Directory "/home/httpd/html"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> aha i doszedłem do wniosku że ta autoryzacja jest troche niedopracowana ponieważ znając jeden login i haslo mozna logować się z każdego ip, jak bede mił troche wolnego czasu to sprobuje zrobic autoryzacje ip+login+hasło(opartą o baze danych MySQL) |
Autor: | zciech [ czwartek, 27 grudnia 2007, 19:01 ] |
Tytuł: | |
Dodaj baze IP - login i sprawdzaj czy logowanie pasuje do IP logujacego. |
Autor: | Kimas [ czwartek, 27 grudnia 2007, 19:06 ] |
Tytuł: | |
wlasnie nad czymś takim pracuje, tylko teraz zawsze znajdzie sie cos ciekawszego do roboty i ze tak powiem robie to na raty |
Autor: | Maciek [ czwartek, 27 grudnia 2007, 19:24 ] |
Tytuł: | |
Mi osobiście nie podoba się to sleep 12h. Jak sobie pomyślę, że w sieci może sobie wisieć 40 takich sleepów, to jakoś mi się wydaje, że te sleepy zasną kiedyś snem wiecznym. Przerabiałem testowo kilka takich sposobów autoryzacji i prawdę powiedziawszy każdy ma jakieś wady. Najlepszy byłby NoCat Auth, ale to rozwiązanie perlowe, które jakos obecnie nie chce działać, udało mi się to odpalić z RH zabytkowym bo nr. 7. Autor zrobił też wersję pod nazwą NoCat Splash napisaną w c++ i to jest coś. Tyle że nie chciało mu się tego dokończyć. Działa to tak, że każdemu wyświetla stronę startową, ale wystraczy kliknąć OK i wpuszcza do sieci. I teraz najciekawsze - jak to jest zrobione. Otóż podczas uruchamiania programu jest tworzona klasa members w iptablesach. Tylko klasa members ma dostęp do netu, inni nie mają - jest przekierowanie na stronę serwera ze splashem. Kiedy użytkownik kliknie OK, program dodaje jego IP do klasy members. Jeśli chcesz opracowywać jakiś sposób autoryzacji, to raczej na tym się oprzyj a nie na jakimś sleep 12h. Oczywiście program robi jeszcze jedną rzecz, sprawdza co jakiś czas, czy host jest aktywny i w razie potrzeby wyrzuca go z klasy members. To też można jakimś lepszym skryptem zrealizować. |
Autor: | Kimas [ piątek, 28 grudnia 2007, 22:26 ] |
Tytuł: | |
ok chyba już skończyłem, nowa autoryzacja oparta jest o baze danych MySQL, sprawdza aktywność hosta co 1 minute(mozna zmienić), w przypadku braku odpowiedzi blokuje, kazdy ip ma oddzielny login+haslo do ściągnięcia tutaj: http://masters.homelinux.com/nnd/autoryzacja.tar wiec teraz instrukcja: trzeba utworzyć 2 vhosty jeden "normalny" drugi ssl, nie bede pisał od nowa bo jest w pierwszym poście, na stronie nnd jest instrukcja jak uruchomić https: http://www.nnd-linux.pl/modules.php?nam ... cle&sid=18 wszystkie foldery z folderu autoryzacja(bez plików adduser.php; mysql.php; useradd.php) trzeba przerzucić do /home/httpd/ pliki adduser.php; mysql.php; useradd.php moza np wrzucić do jakiegoś folderu chronionego .htaccess który mozemy otworzyć za pomocą przeglądarki www, są one odpowiedzialne za dodawanie nowych userow do bazy danych, plik mysql.php odpowiedzialny za stworzenie bazy i tabel, trzeba w nim zmienić dane w 3 linii - login i haslo do bazy MySQL plik useradd.php odpowiedzialny za dodawanie danych(ip, login, haslo, info) do tabeli, trzeba w nim zmienić dane w 8 linii - login i haslo do bazy MySQL plik adduser.php formularz w który wpisujemy dane wszystkie 3 pliki muszą być w tym samym folderze plik /home/httpd/ssl-autoryzacja/login.php trzeba w nim zmienić dane w 3 linii - login i haslo do bazy MySQL plik /home/httpd/other/arping odpowiedzialny za odblokowywanie/blokowanie internetu, sprawdzanie aktywności hosta, należy w nim zmienić adres ip server(obecnie wpisany to 10.0.0.1) w 3, 4, 13 i 14 linii plik /home/httpd/autoryzacja/index.php odpowiedzialny za przekierowanie na vhost ssl z panelem logowania, należy w nim zmienić adres server w 2 linii plik /home/httpd/ssl-autoryzacja/index.php panel logowania, należni w nim zmienić adres ip server w 5 i 9 linii po wykonaniu tych wszystkich czynności należy odpali w przeglądarce plik mysql.php, pozniej plik adduser.php do /etc/sudoers należy dodać linię: aha zeby to wszystko działało dla kazdego ip trzeba wykonać dwa polecona: iptables -A PREROUTING -t nat -s ip_usera -p tcp -d ip_servera --dport 90 -j ACCEPT iptables -A PREROUTING -t nat -s ip_usera -p tcp -j DNAT --to- ip_servera:85 panel logowania wyglada tak: http://sarnaky.ovh.org/autoryzacja.png screen po pomyślnym zalogowaniu: http://sarnaky.ovh.org/autoryzacja1.png to chyba wszytko, testuje to juz od kilku godzin, narazie nie mam zadnych powodów do niezadowolenia. |
Autor: | realisty [ sobota, 29 grudnia 2007, 23:32 ] |
Tytuł: | |
iptables -A PREROUTING -t nat -s ip_usera -p tcp -d ip_servera --dport 90 -j ACCEPT iptables -A PREROUTING -t nat -s ip_usera -p tcp -j DNAT --to- ip_servera:85 nic to nie działa może bo mam proxy wchodze recznie na 192.168.0.1:85 i tu działa nie widze jak to ma przekierowywac ruch z ip usera na stronke z autoryzacją i żeby wykonywał to sprawdzanie co jakiś czas |
Autor: | Kimas [ niedziela, 30 grudnia 2007, 16:10 ] |
Tytuł: | |
pewnie masz transparentnego squid-a, wiec używasz takiego polecenie iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port $port_squid nie wiem czy to cos da ale mozesz sprobowac, wiec usun te polecenie poleceniem iptables -t nat -D PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port $port_squid wtedy plik arping powienien wygladać troche inaczej #!/bin/bash iptables -t nat -A PREROUTING -i eth1 -s $ip -p tcp --dport 80 -j REDIRECT --to-port $port_squid iptables -D PREROUTING -t nat -s $ip -p tcp -d 10.0.0.1 --dport 90 -j ACCEPT iptables -D PREROUTING -t nat -s $ip -p tcp -j DNAT --to- 10.0.0.1:85 arping=`arping $ip -c 5|awk '/Received/ {print$2}'` until [ $arping = 0 ]; do sleep 5m arping=`arping $ip -c 5|awk '/Received/ {print$2}'` done iptables -A PREROUTING -t nat -s $ip -p tcp -d 10.0.0.1 --dport 90 -j ACCEPT iptables -A PREROUTING -t nat -s $ip -p tcp -j DNAT --to- 10.0.0.1:85 iptables -t nat -D PREROUTING -i eth1 -s $ip -p tcp --dport 80 -j REDIRECT --to-port $port_squid przy pomyślnej autoryzacji regulka iptables ustawi transparentnego squid-a dla danego adresu ip, w momencie kiedy do ip nie beda dochodzic arpingi regulka zdejmie przekierowanie na squida co w przyszlosci pozwoli wyswietlic strone z logowaniem, moze nie jest to najlepsze rozwiazanie ale powinno dzialac. |
Autor: | realisty [ środa, 30 stycznia 2008, 14:01 ] |
Tytuł: | |
ok poradzilem sobie ale nie sprawdza co minute aktywności w error pisze: czyli błąd jest gdzieś tutaj: |
Autor: | MAC!EK [ środa, 30 stycznia 2008, 15:08 ] |
Tytuł: | |
Autor: | realisty [ środa, 30 stycznia 2008, 17:22 ] |
Tytuł: | |
u siebie mam takie coś: #!/bin/bash iptables -I PREROUTING -t nat -p tcp -s $ip --dport 80 -j REDIRECT --to-port 85 arping=`arping $ip -c 5|awk '/Received/ {print$2}'` until [ "$arping"=="0" ]; do sleep 1m arping=`arping $ip -c 5|awk '/Received/ {print$2}'` done iiptables -I PREROUTING -t nat -s $ip -p tcp --dport 80 -j REDIRECT --to-port 3123 i tu jest pies pogrzebany mam ustawioną co 1minute ma sprawdzać czy host jest aktywny jak nie jest to ma mu wykonać: iptables -I PREROUTING -t nat -p tcp -s $ip --dport 80 -j REDIRECT --to-port 85 na początku skryptu, jeśli aktywny to nic ma nie robić. pod nnd wpisałem sobie: iptables -I PREROUTING -t nat -p tcp -s 192.168.0.5 --dport 80 -j REDIRECT --to-port 85 i przekierowalo mnie ładnie na logowanie, zalogowałem się i odblokowało stronki, potem wyłączyłem kompa na więcej niż minute i nie zablokowało mnie. Ma ktoś jakieś sugestie ?[/code] |
Autor: | Kimas [ środa, 30 stycznia 2008, 19:59 ] |
Tytuł: | |
regułka która blokuje net ma być w dolnej części skryptu, a odblokowująca w górnej... |
Autor: | realisty [ sobota, 2 lutego 2008, 10:17 ] |
Tytuł: | |
ok działa ale u klientów pojawia się problem sam u mnie nie występuje ale po zalogowaniu i restarcie przegladarki dalej trzeba sie zalogować Mają firefoxy u mnie działa a u nich są problemy |
Autor: | Kimas [ niedziela, 6 kwietnia 2008, 15:43 ] |
Tytuł: | |
nowa wersja 0.3 http://autoryzacja.sarnaki.net/autoryzacja0.3.tar autoryzacja jest używana w mojej domowej sieci(3 kompy) i kolegę vido(około 40 userów w sieci), jak narazie w swojej roli sprawdza się dobrze został zmieniony skrypt sprawdzający aktywność hostów, nie ma sleep-ów, są 2 skrypty które odpalamy w cronie np co 5 min dodatkowo dodałem prosty panel administracyjny. ------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------- Jest to zestaw skryptow przy pomocy ktorych mozemy autoryzowac klientow/userow za pomoca ich przegladarek. Calosc oparta jest o baze danych MySQL w ktorej trzymane sa dane: -login -haslo -adres ip -imie i nazwisko user(niekonieczne) -informacja o tym czy dany host jest aktywny lub nie -info o tym czy user ma dostac ogloszenie -info o tym czy user ma zostac zablokowany -dodatkowe informacje(niekonieczne) AUTORYZACJA NIE BYLA TESTOWANA NA SQUIDZIE ------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------- Jak to dziala? Wiec na poczatku user zostaje przekierowany na strone z logowanie(ssl), po poprawnym wpisaniu login+pass zostaje odpalony skrypt w bashu w ktorym zawarte sa regulki iptables odblokowujace internet, nastepnie w bazie MySQL zostaje zmieniona wartosc 'aktywny' z 0 na 1, co pozwola na to ze inny skrypt nie bedzie musial sprawdzac dostepnosci/aktywnosci wszystkich komputerow lecz tylko tych ktore w danym momencie sa "aktywne". W momencie gdy komputer usera zostanie wylaczony, skrypt sprawdzajacy dostepnosc/aktywnosc wlaczy odpowiednie regulki iptables ktore zablokuja internet, nastepnie zmieni wartosc w bazie MySQL 'aktywny' z 1 na 0 ------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------- Instrukcja instalacji: ######################################################################## 1. vhosty apache-a (howto: http://www.baseciq.org/linux/apache-vhost ) Pierwszy vhost pracujacy na 85 porcie, bedzie potrzebny po to aby przekierowac user na drugi vhost ssl. konfig vhosta pracujacego na 85 porcie: <VirtualHost *:85> ServerAdmin admin@server.pl DocumentRoot /home/httpd/autoryzacja/ ServerName autoryzacja ServerAlias 10.0.0.1:85 </VirtualHost> Do glownego konfigu apache-a(httpd.conf) dodajemy jeszcze linie: Listen 85 Drugi vhost ssl bedzie odpowiadal za logowanie. konfig: z powodu objetosci podaje link: http://autoryzacja.sarnaki.net/ssl.conf Pmietajmy o tym ze jezeli wczesniej nie skonfigurowalismy ssl, musimy wygenerowac certyfikat, polecam opis: http://www.nnd-linux.pl/modules.php?name=News&file=article&sid=18 Oczywiscie zamiast adresu 10.0.0.1 podajemy adres wlasnego serwera ######################################################################## 2. Pobieramy paczke w ktorej znajduja sie skryptu: http://autoryzacja.sarnaki.net/autoryzacja0.3.tar ######################################################################## 3. Kopiujemy folder autoryzacja do /home/httpd/ Zawartosc folderu(pliku znajduja sie w paczce powyzej): - index.php - plik odpowiada za przekierowanie na strone z logowaniem(ssl) w 2 linii zmieniamy adres 10.0.0.1 na adres wlasnego serwera ######################################################################## 4. Kopiujemy folder ssl-autoryzacja do /home/httpd/ Zawartosc folderu: - index.php - formularz logowania w 9 linii zamiast login podajemy login do bazy MySQL, zamiast pass podajemy haslo do bazy MySQL - login.php - sktypt logowania, sprawdzajacy poprawnosc podanych danych(ip+login+haslo) w 4 linii zamiast login podajemy login do bazy MySQL, zamiast pass podajemy haslo do bazy MySQL - autoryzacja.php - skrypt wyswietlajacy informacje o popranym zalogowaniu i wlaczajacy skrypt 'odblokuj' plik pozostaje bez zmian ######################################################################## 5. Kopiujemy folder other do /home/httpd/ Zawartosc folderu: - check.php - skrypt odpalajacy check.sh ktory sprawdza aktywnosc hostow, odpalany w cronie np co 5 min w 2 linii zamiast login podajemy login do bazy MySQL, zamiast pass podajemy haslo do bazy MySQL - check.sh - skrypt sprawdzajacy aktywnosc hostow w komentarzach jest podane co trzeba zmienic - odblokuj - skrypt odblokowujacy internet po poprawnym zalogowaniu w komentarzach jest podane co trzeba zmienic - startsys.php - skrypt odpalajacy i podajacy zmienna ip skryptowi startsys.sh w 3 linii zamiast login podajemy login do bazy MySQL, zamiast pass podajemy haslo do bazy MySQL - start.sh - skrypt blokujacy wszystkie adresy ip, a zarazem przekierowuje na strone z logowaniem, odpalany jest podczas startu systemu w komentarzach jest podane co trzeba zmienic ######################################################################## 6. Ustawiamy prawa wykonywalnosci W konsoli wpisujemy: chmod +x /home/httpd/other/odbloku chmod +x /home/httpd/other/check.php chmod +x /home/httpd/other/check.sh chmod +x /home/httpd/other/startsys.php chmod +x /home/httpd/other/startsys.sh ######################################################################## 7. Do /etc/rc.d/rc.local dodajemy wpis: php -f /home/httpd/other/startsys.php dzieki temu po restarcie serwera wszystkie adresy ip, ktore sa w bazie MySQL zostana przekierowane na strone z logowanie, a zarazem skrypt zablokuje internet ######################################################################## 8. Dodajemy wpis do /etc/sudoers nobody ALL=NOPASSWD:/home/httpd/other/odblokuj ######################################################################## 9. Za pomoca pliku /admin/mysql.php tworzymy baze danych: W 3 linii zamiast login podajemy login do bazy MySQL, zamiast pass podajemy haslo do bazy MySQL W 36 linii zamiast tuadmin podajemu login do panelu administracyjnego, zamiast tuhaslo, podajemy haslo do panelu, zamiast tunrtel podajemy swoj numer tel, wyswietli sie on w momencie gdu user zostanie zablokowany. skrypt odpalamy w przeglarace lub: php -f /sciezka-do-skryptu/mysql.php ######################################################################## 10. Do crona dodajemy wpis: w konsoli wpisujemy crontab -e (z roota) i dodajemy linie: */5 * * * * php -f /home/httpd/other/check.php co spowoduje sprawdzanie aktywnosci hostow co 5 min ######################################################################## 11. Dodajemy userow do bazy danych za pomoca panelu administracyjnego, folder admin kopiujemy do /home/httpd/html Edytujemy plik /admin/conf.php jezeli folder admin zostanie przekopiowany do /home/httpd/html/ wystarczy zmienic dane tylko 3, 4 i 6 linii nastepnie w przegladarce odpalamy http://jakis.adres/admin/, a dalej to wiadomo. Po dodaniu usera do bazy skrypty automatycznie włączają przekierowanie, więc nie trzeba wpisywać ręcznie żadnych regulek iptables ######################################################################## |
Autor: | prof_czit [ wtorek, 8 kwietnia 2008, 23:51 ] |
Tytuł: | |
Ciekawy skrypt i bardzo mi się spodobał (sprawdzałem v0.3) Pozwoliłem sobie go trochę zmodyfikować. Version 0.3b (modified by prof_czit) Changelog: ! dodana zmienna $script_path (tutaj trzeba podać ścieżkę do scryptów basha, nie polecam trzymania ich w folderze ze stroną, gdyż można przeczytać ich treść, np LOGIN I HASŁO DO BAZY DANYCH)!!!!!!!!!!! + conf.php umieszczony w głównym folderze. W znacznym stopniu ułatwia konfigurację, gdyż wszystkie skrypty, które potrzebują dostępu mogą z niego korzystać (wyeliminowanie wpisanych na sztywno ścieżek) + dodana zmienna $url_auth, należy podać ścieżkę URL do folderu ssl_autoryzacja ! proponowana zmiana w VHOSTS (zamiast tworzyć vhosty na kilku portach, można to zrobić na jednym): 1) Najpierw dajemy vhosta na standardowym porcie 80, który automatycznie przekierowuje na serwer z połączeniem szyfrowanym <VirtualHost *:80> ServerName autoryzacja.xxx.net ServerAlias www.autoryzacja.xxx.net Redirect permanent / https://autoryzacja.xxx.net:85/ ServerAdmin xxx@xxx.net </VirtualHost> 2) Drugi z vhostów służy do obsługi SSL <VirtualHost *:85> ServerName autoryzacja.xxx.net ServerAlias www.autoryzacja.xxx.net DocumentRoot /home/httpd ServerAdmin xxx@xxx.net ErrorLog /usr/local/apache/logs/vhosts/xxx_auth.log CustomLog /usr/local/apache/logs/vhosts/xxx_auth-acess_log common SSLEngine on SSLCipherSuite HIGH SSLCertificateFile /usr/local/apache/conf/ssl.crt/ssl.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/ssl.key </VirtualHost> Wiadomo, każdy swoje parametry musi podać :) ! Zmiana w index.php w folderze głównym (korzysta z conf.php) + Dodałem listy użytkowników tam gdzie trzeba żeby były :) ! zmiana w skrypcie do dodawania/usuwania zablokowanych użytkowników. ! zmiana w skryptach BASH (iptables wycina teraz połączenia aktywne) + parę kosmetycznych zmian, o których nie pamiętam Wszystkie te wspaniałości można znaleźć TUTAJ Proszę o komentarze |
Autor: | prof_czit [ niedziela, 13 kwietnia 2008, 13:12 ] |
Tytuł: | |
W związku z tym, że dziś niedziela, a ja miałem trochę czasu, załączam kolejną wersję dość przydatnego skryptu: Version 0.3c (modified by prof_czit) Changelog: ! zabezpieczyłem skrypt pod kątem SQL Injection. ZALECA SIĘ UPDATE DO NAJNOWSZEJ WERSJI!!!!! ! użytkownicy, którzy nie byli zdefiniowani w panelu administracyjnym dostawali internet bez podawania jakiegokolwiek loginu i hasła. Teraz tak się nie da :) + blokada użytkownika jest aktywna od momentu kliknięcia w "ZABLOKUJ" - wyrzucona zmienna $script_path z conf.php (teraz wszystkie skrypty są w jednym pliku) + dodana zmienna $blok_script (powinna zawierać pełną ścieżkę do pliku 'blokodblok' ! wszystkie skrypty shellowe zawarte są w jednym pliku 'blokodblok' (WYMAGANA ZMIANA W /etc/sudoers)!!!! + do conf.php dorzuciłem konfigurację skryptów shell ! kolejna proponowana zmiana w VHOSTS: 1) Najpierw dajemy vhosta na porcie 85, który automatycznie przekierowuje na serwer z połączeniem szyfrowanym <VirtualHost *:85> ServerName autoryzacja1.xxx.xxx Redirect permanent / https://autoryzacja.xxx.xxx/ssl-autoryzacja/ ServerAdmin admin@xxx.xxx ErrorLog /usr/local/apache/logs/vhosts/xxx_auth.log CustomLog /usr/local/apache/logs/vhosts/xxx_auth-acess_log common </VirtualHost> 2) Drugi z vhostów służy do obsługi SSL <VirtualHost *:443> ServerName autoryzacja.xxx.xxx DocumentRoot /home/httpd ServerAdmin admin@xxx.net ErrorLog /usr/local/apache/logs/vhosts/xxx_auth.log CustomLog /usr/local/apache/logs/vhosts/xxx_auth-acess_log common SSLEngine on SSLCipherSuite HIGH SSLCertificateFile /usr/local/apache/conf/ssl.crt/autoryzacja.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/autoryzacja.key </VirtualHost> W przypadku takiego wykorzystania VHOSTów, plik index.php z folderu głównego nie jest używany. ! zakończenie sesji po poprawnym zalogowaniu (uniemożliwia klientowi połączenie się, jeśli zalogował się, nie zamknął okna przeglądarki, a administrator go zablokował. Wystarczyło odświeżyć stronę, która wyskakuje po autoryzacji i już nie ma blokady) + kolejne kosmetyczne zmiany, o których nie pamiętam :) Pliczek z paczką można znaleźć oczywiście TUTAJ Czekam o komentarze |
Autor: | Momok [ piątek, 18 kwietnia 2008, 00:25 ] |
Tytuł: | |
Wybacz ale to zabezpieczenie przed sql injection? |
Autor: | prof_czit [ piątek, 18 kwietnia 2008, 07:29 ] |
Tytuł: | |
Proszę, dowiedz się najpierw czym jest SQL injection |
Strona 1 z 2 | Strefa czasowa UTC+2godz. |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |