Freesco, NND, CDN, EOS http://forum.freesco.pl/ |
|
autoryzacja via www + ogloszenie + blokada http://forum.freesco.pl/viewtopic.php?f=22&t=16131 |
Strona 2 z 2 |
Autor: | barte-k [ wtorek, 6 maja 2008, 20:44 ] |
Tytuł: | |
Cytuj: ! użytkownicy, którzy nie byli zdefiniowani w panelu administracyjnym dostawali internet bez podawania jakiegokolwiek loginu i hasła. Teraz tak się nie da
A czy konfiguracyjne jest możliwe aby część hostów mogła działać poza autoryzacją (chodzi o bramki voip i inne urządzenia nie-komputery) |
Autor: | prof_czit [ czwartek, 8 maja 2008, 16:03 ] |
Tytuł: | |
na szybkości to coś takiego można zmajstrować ip=ip_urzadzenia \ ips=ip_sieci/maska \ user=login_do_bazy \ pass=haslo_do_bazy \ server=localhost \ interface=interfejs_lokalny \ ip_wew=ip_routera \ ip_zew=ip_zewnetrzne_routera \ xtimes=1 \ iptables=/sbin/iptables \ baza=autoryzacja \ tautoryzacja=autoryzacja \ /pelnasciezkadoblokodblok/blokodblok "odblok" dodac jakas petelke dla adresów ip, których autoryzacja ma nie dotyczyć i wsio |
Autor: | Cesik [ piątek, 13 lutego 2009, 08:49 ] |
Tytuł: | |
Mam problem z wykonywaniem skryptu odblokuj. W bazie msql nie zapisuje się aktywacja usera. Pozostałe skrypty działają bez zastrzeżeń. Mimo prawidłowego wpisu w pliku suoders nie działa. Jak z tego wybrnąć? |
Autor: | Kimas [ piątek, 13 lutego 2009, 14:44 ] |
Tytuł: | |
na początku skryptu zdefiniuj zmienną $ip, która będzie odpowiadać jakiemuś adresowi w sieci który dodałeś do bazy, czyli np: i odpal skrypt "z palca" ;] czyli: Po to aby sprawdzi czy skrypt wypluwa jakieś błędy... Pozdrawiam. |
Autor: | CyberDuck [ piątek, 13 lutego 2009, 14:51 ] |
Tytuł: | |
A dlaczego sprawdzasz hosty co minute ? Niepotrzebnie to obciaza dodatkowo serwer. Nielepiej jest sprawdzac znacznik czasu w momencie jak wchodzi user ? Wtedy jesli juz czas minol mozna wykonac skrypt ... |
Autor: | Kimas [ piątek, 13 lutego 2009, 14:58 ] |
Tytuł: | |
nie wiem czy zauważyłeś, ale hosty są sprawdzane co 5 min i tylko te które po zalogowaniu zostały oznaczone jako aktywne... |
Autor: | CyberDuck [ piątek, 13 lutego 2009, 15:08 ] |
Tytuł: | |
No ok. No to co 5 min. W kazdym razie niepotrzebnie w ten sposob, ale i tak mozna Poprostu podpowiadam jak zrobilem cos takiego u siebie. Jesli blokujesz to i tak przekierowujesz na stronke wiec na poczatku mozna porownac zancznik czasu aktualny z tym zapisanym w bazie i jesli juz czas minol to poprostu wykonuje sie czesc odblokowujaca. Dzieki temu nie musze odpalac skryptu co 5 min, ale tylko w razie potrzeby. Uznaj za niewazne |
Autor: | Cesik [ piątek, 13 lutego 2009, 23:32 ] |
Tytuł: | |
Skrypt odblokuj po zmianie wypluwa następujące błędy:
iptables: No chain/target/match by that name Wpis o aktywności w bazie msql jest. |
Autor: | Kimas [ piątek, 13 lutego 2009, 23:51 ] |
Tytuł: | |
usuń definicje zmiennej ip z pliku odblokuj, którą niedawno dodałeś zrestartuj iptables dodatkowo odpal skrypt startsys.php Po takich zabiegach wszystko powinno zacząć działać reguły które znajdują się w pliku odblokuj, usuwają regułki iptables odpowiedzialne za przekierowanie na stronę z logowaniem, a z tego co widzę to u Ciebie te regułki nie były aktywne... Pozdrawiam. |
Autor: | Cesik [ niedziela, 15 lutego 2009, 02:54 ] |
Tytuł: | |
Wykonałem wszystkie czynności jeszcze raz (ponownie włączyłem reguły php), a efektów zadowalających brak. Tworzą mi się dwa dodatkowe i puste zbiory: errorsys i outsys w katalogu głównym. Dodatkowo mam błąd certyfikatu - widziany jest certyfikat poczty przez www mimo właściwych ścieżek w plikach konfiguracyjnych. |
Autor: | realisty [ niedziela, 15 lutego 2009, 17:22 ] |
Tytuł: | |
według mnie ta autoryzacja jest troche dziurawa korzystałem z niej i nie polecam na dłuższą metę. Jeśli chcesz w ten sposób autoryzować klientów to przetestuj m0n0walla tam masz captive portal działa to bardzo sprawnie testuję to u siebie w sieci i z logowaniem nie ma większych problemów |
Autor: | raflikks [ środa, 25 sierpnia 2010, 11:52 ] |
Tytuł: | |
Wiem, że odgrzewam kotleta sprzed lat ale nie znalazłem nigdzie podobnej autoryzacji opierającej się na bazie MySQL z uwzględnieniem loginu, hasła, ip userów. Próbowałem rożnych wersji 0.3, 0.3b, 0.3c, problem był ten sam z odblokowaniem. Odpowiednie wpisy w sudoers zrobione i sprawdzone. Mianowicie skrypt startsys.php działa prawidłowo wszyscy userzy zdefiniowani w bazie są przekierowani na stronę z autoryzacją. Po podaniu loginu i hasła, wyswietla się komunikat o poprawnym zalogowaniu. Niestety po zamknięciu przeglądarki i ponowym jej włączeniu znów wyświetla się strona logowania i internet nie jest odblokowany. Z tego co mi wiadomo problem tkwi ze zmienna $ip, jeżeli zamiast niej wpisze dowolny adres IP w skrypcie z regułkami odblokowującymi internet, wówczas działa. Moze ktoś wie w czym problem? Opieram się na wersji 0.3b plik odblokuj #!/bin/bash -x . `echo $0 | sed s/'odblokuj'//`config $iptabels -I INPUT -s $ip -p tcp --dport 84 -j REJECT 2>/dev/null $iptables -D FORWARD -s $ip -p udp --dport 53 ! -j REJECT 2>/dev/null $iptables -D PREROUTING -t nat -s $ip -p tcp --dport 80 -j DNAT --to- 192.168.0.1:84 echo "UPDATE autoryzacja SET aktywny='1' WHERE ip='$ip'" | mysql -u "$user" --password="$pass" -h "$server" --database='autoryzacja' config #!/bin/bash server="localhost" #serwer mysql user="xxx" #user mysql pass="xxx" #haslo do mysql interface="eth1" #interfejs wewnetrzny ips="192.168.0.1" #ip serwera" port="84" x="40" #ilosc powtorzen arpingu, domyslnie zaleca sie okolo 40 iptables="/usr/sbin/iptables" #pelna sciezka do iptables autoryzacja.php <? session_start(); include("../conf.php"); if (!isset($_SESSION['login'])) { header("Location: index.php"); exit(); } ?> <? $ip = $_SERVER[ 'REMOTE_ADDR' ]; putenv("ip=$ip"); shell_exec(`sudo $script_path/odblokuj > out 2>error &`); echo "<br><br><br><br><br><br><br><br><br><br><br>"; echo "<p align=\"center\"><font face=\"verdana\" color=\"red\" size=\"5\"><b>Autoryzacja przebiegla pomyslnie.<br>Aby korzystac z internetu wylacz i ponownie wlacz przegladarke www</b></font></p>"; ?> mysql.php <?php $link = mysql_connect("localhost", xxx, xxx) or die("Could not connect"); $query = "CREATE DATABASE autoryzacja"; $result = mysql_query($query) or die("<FONT color=\"red\">Problem 1</FONT>"); mysql_select_db("autoryzacja"); $query = "CREATE TABLE autoryzacja (ip TINYTEXT NOT NULL, login TINYTEXT NOT NULL, haslo TINYTEXT NOT NULL, username TINYTEXT, aktywny TINYTEXT, zablokowany TINYTEXT NOT NULL, ogloszenie TINYTEXT NOT NULL, info TINYTEXT)"; $result = mysql_query($query) or die("<FONT color=\"red\">Problem 2</FONT>"); $query = "CREATE TABLE logi (ip TINYTEXT NOT NULL, data TINYTEXT NOT NULL, godzina TINYTEXT NOT NULL, akcja TINYTEXT NOT NULL)"; $result = mysql_query($query) or die("<FONT color=\"red\">Problem 3</FONT>"); $query = "CREATE TABLE ogloszenia (ip TINYTEXT NOT NULL, ogloszenie TINYTEXT)"; $result = mysql_query($query) or die("<FONT color=\"red\">Problem 4</FONT>"); $query = "INSERT INTO `ogloszenia` (`ip`, `ogloszenie`) VALUES ('all', 'NULL')"; $result = mysql_query($query) or die("<FONT color=\"red\">Problem 5</FONT>"); $query = "CREATE TABLE admin (login TINYTEXT NOT NULL, haslo TINYTEXT NOT NULL, nrtel TINYTEXT NOT NULL)"; $result = mysql_query($query) or die("<FONT color=\"red\">Problem 6</FONT>"); $query = "INSERT INTO `admin` (`login`, `haslo`, `nrtel`) VALUES ('tuuser', 'tupass', 'tunrtel')"; $result = mysql_query($query) or die("<FONT color=\"red\">Problem 7</FONT>"); echo "Baza danych poprawnie zainstalowana :)"; ?> |
Autor: | Kimas [ środa, 25 sierpnia 2010, 16:48 ] |
Tytuł: | |
bardzo prawdopodobne że masz transparentne proxy i tu właśnie leży problem. |
Autor: | raflikks [ czwartek, 26 sierpnia 2010, 11:16 ] |
Tytuł: | |
W tym problem, iż nie mam serwera proxy i pomimo tego właśnie to nie działa. Małe info o pakietach na serwerze nnd: apache-2.2.6-1nnd iptables-1.3.4-15nnd kernel24-2.4.35-2nnd mysql-5.0.41-1nnd php-4.4.7-2nnd phpmyadmin-2.9.0.2-1nnd Dziwne bo z pliku startsys.php a w nim wywoływany plik startsys.sh działa prawidłowo. Więc w czym może tkwić problem? startsys.sh #!/bin/sh -x . `echo $0 | sed s/'startsys.sh'//`config $iptabels -I INPUT -s $ip -p tcp --dport 84 -j REJECT 2>/dev/null $iptables -I FORWARD -s $ip -p udp --dport ! 53 -j REJECT 2>/dev/null $iptables -A PREROUTING -t nat -s $ip -p tcp --dport 80 -j DNAT --to- 192.168.0.1:84 echo "UPDATE autoryzacja SET aktywny='0' WHERE ip='$ip'" | mysql -u "$user" --password="$pass" -h "$server" --database='autoryzacja' startsys.php <?php include ("/home/httpd/autoryzacja3b/conf.php"); $link = mysql_connect($server, $user, $pass) or die("Could not connect"); mysql_select_db("autoryzacja"); $zapytanie = "SELECT `ip` FROM `autoryzacja`"; $idzapytania = mysql_query($zapytanie); while ($wiersz = mysql_fetch_row($idzapytania)) { shell_exec(`ip='$wiersz[0]' $script_path/startsys.sh > outsys 2>errorsys &`); } ?> |
Autor: | CyberDuck [ czwartek, 26 sierpnia 2010, 13:01 ] |
Tytuł: | |
Wiesz co u mnie byl taki problem i wlasciwie jest do tej pory mimo tego co pisal wtedy o ile pamietam chyba Jakub. Twierdzil, ze wystarczy napisac shell_exec i system powinien to wykonac jesli mu sie na to zezwoli. A zezwolic mozna nadajac odpowiednie chmod plikowi oraz dopisanie go do sudo poprzez visudo. Teoretycznie komenda powinna sie wykonac. U mnie jednak w ten sposob nie chce to zadzialac i musze wykonywac osobne pliki txt w systemie wywolujac je z poziomu php. Czyli w tym miejscu gdzie u ciebie jest : shell_exec(`ip='$wiersz[0]' $script_path/startsys.sh > outsys 2>errorsys &`); powinno byc wywolanie pliku wykonywalnego txt z przekazaniem do niego parametrow. Ja sobie poradzilem w ten sposob, ze tworze plik txt w skrypcie php i zapisuje go na dysku w znanej lokacji i nazwie dla sudo i wywoluje go z poziomu php za pomoca shell_exec i dopiero taka kombinacja mi dziala. Sprawdz czy samo shell_exec wykonuje to co powinno. |
Autor: | raflikks [ piątek, 27 sierpnia 2010, 11:29 ] |
Tytuł: | |
CyberDuck w najbliższym czasie postaram się to sprawdzić. Chwilowo nie mam dostępu do nnd. A byłaby taka możliwość byś wstawił swoją zawartość tych plików? |
Autor: | CyberDuck [ piątek, 27 sierpnia 2010, 12:52 ] |
Tytuł: | |
Nie bo ja pisalem sam taki panel. Procz blokowania dodalem pare rzeczy jak : system rozliczen, forward portow, kto na nnd, virtualhost, reboot, wylacz i pare innych. |
Autor: | raflikks [ czwartek, 18 listopada 2010, 15:36 ] |
Tytuł: | |
Sprawdziłem, samowykonuje się prawidłowo. Za to zauważyłem, jakby nie działała funkcja: z pliku autoryzacja.php, odpowiadająca za poprawne odczytanie adresu IP klienta. Po wykonaniu pliku ('odblokuj') otrzymuje 2 pliki out i error. W error: ++ echo /bin/odblokuj ++ sed s/odblokuj// + . /bin/config ++ server=localhost ++ user=xxx ++ pass=xxx ++ iptables=/usr/sbin/iptables + /usr/sbin/iptables -D INPUT -s -p tcp --dport 84 -j REJECT + /usr/sbin/iptables -D FORWARD -s -p udp --dport 53 '!' -j REJECT + /usr/sbin/iptables -D PREROUTING -t nat -s -p tcp --dport 80 -j DNAT --to- 192.168.0.1:84 Try `iptables -h' or 'iptables --help' for more information. + echo 'UPDATE autoryzacja SET aktywny='\''1'\'' WHERE ip='\'''\''' + mysql -u xxx --password=xxx -h localhost --database=autoryzacja I tu już moje możliwości się kończą. Może ktoś wie co jest nie tak? |
Strona 2 z 2 | Strefa czasowa UTC+2godz. |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |