Freesco, NND, CDN, EOS

http://www.freesco.pl
Dzisiaj jest piątek, 29 marca 2024, 04:30

Strefa czasowa UTC+2godz.




Nowy temat Odpowiedz w temacie  [ Posty: 38 ]  Przejdź na stronę 1, 2  Następna
Autor Wiadomość
Post: sobota, 20 października 2007, 18:56 
Offline
CDN Support

Rejestracja: środa, 12 lipca 2006, 14:46
Posty: 497
Lokalizacja: Sarnaki / Warszawa
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:
: [/] [] ()
Listen 85


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
: [/] [] ()
login:haslo
login2:haslo2

generator hasel .htpasswd http://www.htaccesstools.com/htpasswd-generator/

do /etc/sudoers dodajemy:

: [/] [] ()
nobody ALL=NOPASSWD:/home/httpd/ssl-autoryzacjal/unblok


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


Ostatnio zmieniony piątek, 13 lutego 2009, 15:01 przez Kimas, łącznie zmieniany 2 razy

Na górę
 Wyświetl profil  
 
 Tytuł:
Post: środa, 26 grudnia 2007, 09:56 
Offline

Rejestracja: sobota, 18 lutego 2006, 21:29
Posty: 8
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


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: czwartek, 27 grudnia 2007, 12:26 
Offline
Użytkownik

Rejestracja: niedziela, 8 kwietnia 2007, 15:17
Posty: 383
jest w linku
probowalem tą autoryzacje ale coś nie trybiło

_________________
Jeśli post okazał się pomocny kliknij Pomógł
GG: 9822296
Obrazek
Multimo 2Mb


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: czwartek, 27 grudnia 2007, 17:10 
Offline
CDN Support

Rejestracja: środa, 12 lipca 2006, 14:46
Posty: 497
Lokalizacja: Sarnaki / Warszawa
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)


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: czwartek, 27 grudnia 2007, 19:01 
Offline
PGF

Rejestracja: niedziela, 14 lipca 2002, 14:33
Posty: 3234
Lokalizacja: Radziejów
Dodaj baze IP - login i sprawdzaj czy logowanie pasuje do IP logujacego.

_________________
Nie jestem NEKROMANTĄ, nie wróżę z flaków!
Alkohol pity z umiarem nie szkodzi nawet w największych ilościach!
Przeczytaj nim zapytasz
Obrazek


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: czwartek, 27 grudnia 2007, 19:06 
Offline
CDN Support

Rejestracja: środa, 12 lipca 2006, 14:46
Posty: 497
Lokalizacja: Sarnaki / Warszawa
wlasnie nad czymś takim pracuje, tylko teraz zawsze znajdzie sie cos ciekawszego do roboty i ze tak powiem robie to na raty :D


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: czwartek, 27 grudnia 2007, 19:24 
Offline
Honorowy Admin

Rejestracja: piątek, 5 lipca 2002, 17:30
Posty: 7800
Lokalizacja: Słupsk
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ć.

_________________
Obrazek Belfer.one.PL
Obrazek Audio Cafe


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: piątek, 28 grudnia 2007, 22:26 
Offline
CDN Support

Rejestracja: środa, 12 lipca 2006, 14:46
Posty: 497
Lokalizacja: Sarnaki / Warszawa
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ę:

: [/] [] ()
nobody ALL=NOPASSWD:/home/httpd/other/arping


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.


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: sobota, 29 grudnia 2007, 23:32 
Offline
Użytkownik

Rejestracja: niedziela, 8 kwietnia 2007, 15:17
Posty: 383
: [/] [] ()
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

_________________
Jeśli post okazał się pomocny kliknij Pomógł
GG: 9822296
Obrazek
Multimo 2Mb


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: niedziela, 30 grudnia 2007, 16:10 
Offline
CDN Support

Rejestracja: środa, 12 lipca 2006, 14:46
Posty: 497
Lokalizacja: Sarnaki / Warszawa
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.


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: środa, 30 stycznia 2008, 14:01 
Offline
Użytkownik

Rejestracja: niedziela, 8 kwietnia 2007, 15:17
Posty: 383
ok poradzilem sobie ale nie sprawdza co minute aktywności w error pisze:
: [/] [] ()
/home/httpd/other/arping: line 7: [: =: unary operator expected


czyli błąd jest gdzieś tutaj:
: [/] [] ()
until [ $arping = 0 ]; do

_________________
Jeśli post okazał się pomocny kliknij Pomógł
GG: 9822296
Obrazek
Multimo 2Mb


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: środa, 30 stycznia 2008, 15:08 
Offline
MODERATOR

Rejestracja: poniedziałek, 27 stycznia 2003, 23:39
Posty: 3065
Lokalizacja: Kraków/Częstochowa
: [/] [] ()
until [ "$arping" == "0" ]; do

_________________
Ten post Ci pomógł? Zaznacz go jako pomocny .


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: środa, 30 stycznia 2008, 17:22 
Offline
Użytkownik

Rejestracja: niedziela, 8 kwietnia 2007, 15:17
Posty: 383
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]

_________________
Jeśli post okazał się pomocny kliknij Pomógł
GG: 9822296
Obrazek
Multimo 2Mb


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: środa, 30 stycznia 2008, 19:59 
Offline
CDN Support

Rejestracja: środa, 12 lipca 2006, 14:46
Posty: 497
Lokalizacja: Sarnaki / Warszawa
regułka która blokuje net ma być w dolnej części skryptu, a odblokowująca w górnej...


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: sobota, 2 lutego 2008, 10:17 
Offline
Użytkownik

Rejestracja: niedziela, 8 kwietnia 2007, 15:17
Posty: 383
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

_________________
Jeśli post okazał się pomocny kliknij Pomógł
GG: 9822296
Obrazek
Multimo 2Mb


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: niedziela, 6 kwietnia 2008, 15:43 
Offline
CDN Support

Rejestracja: środa, 12 lipca 2006, 14:46
Posty: 497
Lokalizacja: Sarnaki / Warszawa
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

########################################################################


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: wtorek, 8 kwietnia 2008, 23:51 
Offline

Rejestracja: wtorek, 8 kwietnia 2008, 23:47
Posty: 7
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 :)


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: niedziela, 13 kwietnia 2008, 13:12 
Offline

Rejestracja: wtorek, 8 kwietnia 2008, 23:47
Posty: 7
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 :)


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: piątek, 18 kwietnia 2008, 00:25 
Offline

Rejestracja: sobota, 17 marca 2007, 05:32
Posty: 2
Wybacz ale
: [/] [] ()
<?
$login = ($_POST['login']);
$haslo = ($_POST['haslo']);

to zabezpieczenie przed sql injection? :)


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: piątek, 18 kwietnia 2008, 07:29 
Offline

Rejestracja: wtorek, 8 kwietnia 2008, 23:47
Posty: 7
Proszę, dowiedz się najpierw czym jest SQL injection :)


Na górę
 Wyświetl profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 38 ]  Przejdź na stronę 1, 2  Następna

Strefa czasowa UTC+2godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 27 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
cron
Technologię dostarcza phpBB® Forum Software © phpBB Group
Hosting: Compus-Net
RobertKonik.pl