Freesco, NND, CDN, EOS
http://forum.freesco.pl/

Moja wersja tablicy ogłoszeń
http://forum.freesco.pl/viewtopic.php?f=22&t=12025
Strona 1 z 3

Autor:  agbis [ piątek, 7 kwietnia 2006, 21:09 ]
Tytuł:  Moja wersja tablicy ogłoszeń

Pod adresem http://agbis.com.pl/inne/nnd/tablica-thttpd.tgz umieściłem moją przeróbkę tablicy ogłoszeń, pozwalającej np. delikatnie upomnieć się o kasę za neta.
Zmiany dotyczą głównie panelu administracyjnego:
1) Zamiast wypisywać hosty, które pojawią się w panelu można użyć hostów z pliku /etc/host. Zmiany polegały głównie na uwzględnieniu możliwości istnienia komentarzy w pliku z hostami.
2) Sparametryzowanie (i co za tym idzie - łatwa możliwość zmiany) ilości kolumn w panelu i portu, na którym działa dodatkowy serwer www z ogłoszeniem.
3) Możliwość anulowania pomyłkowo wysłanego lub nie aktualnego już komunikatu userowi, który jeszcze go nie przeczytał. (Oczywiście user nadal sam może zdjąć sobie blokadę po przeczytaniu komunikatu).
4) Panel pokazuje, którzy userzy mają aktualnie wysłany i nie przeczytany komunikat. Podaje on nie tylko IP, ale także nazwę pobraną z /etc/hosts.
5) Inne kosmetyczne zmiany, których już nawet nie pamiętam :)

Instrukcja obsługi (dla thttpd jako serwer www):
Pobieramy i rozpakowujemy "tablicę" do odpowiedniego katalogu:
: [/] [] ()
mkdir /var/www/tablica
cd /var/www/tablica
wget http://agbis.com.pl/inne/nnd/tablica.tgz
tar -zxf tablica.tgz

Ustalamy hasło do panelu:
: [/] [] ()
cd cgi-bin/blok/
htpasswd -c .htpasswd admin

New password: #wpisujemy hasło i ENTER
Re-type new password: #ponownie hasło i ENTER

Teraz trzeba przygotować serwer www obsługujący naszą tablicę. Edytujemy plik /etc/rc.d/thttpd:
: [/] [] ()
mcedit /etc/rc.d/thttpd

Odnajdujemy linijkę:
: [/] [] ()
    [ -z "$PID" ] && /usr/sbin/thttpd -p 80 -u nobody -d /var/www -T iso-8859-2 -l /dev/null

i poniżej dopisujemy:
: [/] [] ()
     [ -z "$PID" ] && /usr/sbin/thttpd -p 82 -u root -d /var/www/tablica -c "**.pl" -T iso-8859-2 -l /dev/null

Restartujemy thttpd:
: [/] [] ()
/etc/rc.d/thttpd restart

Jeśli thttpd się nie uruchomi, to najprawdopodobniej nie stworzyłeś katalogu /var/www/ogloszenie.

Powinno działać. Dostęp do panelu administracyjnego przez:
http://adres_serwera:82/panel.html

Powyższy opis zakłada, że serwerem www jest thttpd. Jeśli używamy apache'a to są dwa wyjścia:
- zainstalować dodatkowo thttpd dla samej tablicy zostawiając apache'a jako główny serwer www,
- poszukać opisu, jak uruchomić tablicę na apache. Był gdzieś taki na forum.

Powodzenia.

Autor:  p0w0 [ sobota, 8 kwietnia 2006, 20:49 ]
Tytuł: 

Widzę, że fajna. Zainstaluję ją i sprawdze, jak działa.

Autor:  p0w0 [ sobota, 8 kwietnia 2006, 23:51 ]
Tytuł: 

takie pytanko.

Jaki jest użytkownik do logowania?

Autor:  agbis [ niedziela, 9 kwietnia 2006, 00:10 ]
Tytuł: 

p0w0 pisze:
Jaki jest użytkownik do logowania?


Cytuj:
Ustalamy hasło do panelu:

cd cgi-bin/blok/
htpasswd -c .htpasswd admin

New password: #wpisujemy hasło i ENTER
Re-type new password: #ponownie hasło i ENTER

:)

Autor:  Mr Groch [ niedziela, 9 kwietnia 2006, 00:26 ]
Tytuł: 

Cosik chyba nie tak...
Urcuhamiam na Apachu - wsyztsko sobie pod Apacha pozmienialem,
blokowanie i odblokowanie dziala dopoki nie zechce zablokowac
wiecej niz 1 uzytkownikow. Gdy ro zrobie to zamiast panelu admina
wyskakuje blad:
: [/] [] ()
Błąd serwera!

Serwer napotkał błąd wewnętrzny i nie jest w stanie zrealizować twojego żądania.

Informacja o błędzie:
malformed header from script. Bad header=192.168.0.8: panel.pl

IP 192.168.0.8 jest ostatnim IP jaki probowalem zablokowac.

Pliku panel.pl nie wklejam bo nic nie zmienialem... Oto config:
: [/] [] ()
#  Plik konfiguracyjny Tablicy Ogloszen

kolumn=4  # Ilość kolumn z hostami na stronie www
#plik="/etc/hosts" # Plik z hostami
plik="./hosts"
port="82"  # Port tcp, na którym działa serwer www z ogłoszeniem



refresh_list() # Odświeżenie listy numerów ip, dla których jest aktywne przekierowanie
{
zablokowane=`sudo /var/www/tablica/iptables.list`
}
refresh_list
echo " >>>Zablokowane: $zablokowane"
#exit
block_check() #sprawdzenie, czy dany ip jest aktualnie przekierowany na stronę z ogłoszeniem
# ip przekierowane - kod bledu=1
# ip nie przekierowane - kod bledu=0
{
local i

for i in $zablokowane; do
  if [ $i == $1 ]; then
    return 1
  fi
done
return 0
}


i plik iptables.list:
: [/] [] ()
/usr/sbin/iptables-save -t nat | grep "REDIRECT --to-ports 82" | cut -d' ' -f 4 | sort | uniq


Wiecej chyba nie ma co wklejac, bo unblock.pl , block.pl po moich
modyfikacjach dla Apacha dzialaja, tylko te wyswietlanie panelu sie
krzeczy, gdyz zablokuje wiecej niz 1 IP

Podejrzewam, ze blad powstaje gdzies w pliku config podczas budowy
listy ipikow przekierownaych... Ale to juz autor musi ocenic :)

Z gory dzieki

Autor:  Mr Groch [ niedziela, 9 kwietnia 2006, 01:43 ]
Tytuł: 

Dobra- mam winowajce.. Tak jak myslalem - winny byl plik config,
a konkretniej wywloanie funckji refresh_list i echo, ktore nie wiedziec
czemu wykonwyaly sie za kazdym razem, gdy jakikolwiek inny plik
odwolywal sie do pliku config.

Poprawna wersja pliku config:
: [/] [] ()
#  Plik konfiguracyjny Tablicy Ogloszen

kolumn=3  # Ilość kolumn z hostami na stronie www
#plik="/etc/hosts" # Plik z hostami
plik="hosts"
port="82"  # Port tcp, na którym działa serwer www z ogłoszeniem

refresh_list() # Odświeżenie listy numerów ip, dla których jest aktywne przekierowanie
{
zablokowane=`sudo /var/www/tablica/iptables.list | grep "REDIRECT --to-ports $port" | cut -d' ' -f 4 | sort | uniq`
}
#refresh_list
#echo " >>>Zablokowane: $zablokowane"
#exit
block_check() #sprawdzenie, czy dany ip jest aktualnie przekierowany na stronę z ogłoszeniem
# ip przekierowane - kod bledu=1
# ip nie przekierowane - kod bledu=0
{
local i

for i in $zablokowane; do
  if [ $i == $1 ]; then
    return 1
  fi
done
return 0
}

Jak widac tylko zakomentowalem te linie - moze komus sie przydadza :)

Przy okazji - przerobilem tablice by Agbis do wykorzystania z Apache:

http://groch.dyndns.org/~groch/scripts/tablica.tar.gz

Algorytm standartowy - wypakowujemy wszytsko np do
/var/www/tablica (jezleli uzywasz /home/httpd/html jak to standartowo
w Apachu jest, musisz wyedytowac pare plikow - spis na koncu).
Nastepnie dodajemy do pliku /etc/sudoers
: [/] [] ()
nobody ALL=NOPASSWD:/var/www/tablica/iptables.blok
nobody ALL=NOPASSWD:/var/www/tablica/iptables.unblok
nobody ALL=NOPASSWD:/var/www/tablica/iptables.list

(jezeli katalog jest inny to ofkoz wpisujemy inny).
I dodajemy VirtualHost do Apacha:
: [/] [] ()
Listen 82

<VirtualHost 192.168.0.1:82>
    DocumentRoot /var/www/tablica
    ScriptAlias /cgi-bin/ /var/www/tablica/cgi-bin/
    ErrorLog /var/log/httpd/tablica-error_log
    CustomLog /var/log/httpd/tablica-access_log common
</VirtualHost>

(oczywiscie jezlei katalog jest inny to zmieniamy).

Spis plikow, gdzie nalezy sprawdzic czy podane sa dobre sciezki
(we wsyztskich tych plikach nalezy sprawdzic sciezke po komendzie sudo):
/cgi-bin/unblock.pl
/cgi-bin/blok/blok.pl
/cgi-bin/blok/blok_ws.pl
/cgi-bin/blok/config
/cgi-bin/blok/unblock.pl
/cgi-bin/blok/unblock_ws.pl

Pozdarwiam. mam nadzieje, ze nikt klopotu z instalacja tablicy
na Apachu nie bedzie mial ;)

Autor:  p0w0 [ niedziela, 9 kwietnia 2006, 09:58 ]
Tytuł: 

Przy próbie zalogowania wysakuje mi taki komunikat


Cytuj:
403 Forbidden
The requested URL '/tablica/cgi-bin/blok/panel.pl' resolves to a file which is marked executable but is not a CGI file; retrieving it is forbidden.

Autor:  agbis [ niedziela, 9 kwietnia 2006, 10:24 ]
Tytuł: 

Potwierdzam, że wywołanie funckji 'refresh_list' i 'echo', z poziomu pliku 'config' nie było potrzebne. Pozostało z etapu testowania tej funkcji. Pod thttpd nie dawało to żadnego zauważalnego efektu i przez to umknęło mojej uwadze. Na serwerze jest już poprawiona wersja.

@Mr Groch
Gdybyś zamiast pełnych ścieżek do plików wchodzących w skład tablicy stosował odwołania względne, nie byłaby potrzebna edycja tych ścieżek przy wywołaniach sudo. Np. zamiast:
: [/] [] ()
zablokowane=`sudo /var/www/tablica/iptables.list | grep "REDIRECT --to-ports $port" | cut -d' ' -f 4 | sort | uniq`

w pliku config byłoby:
: [/] [] ()
zablokowane=`sudo ../../iptables.list | grep "REDIRECT --to-ports $port" | cut -d' ' -f 4 | sort | uniq`


Później sprawdzę, czy Twoja wersja zadziała się na thpppd. Może wypracujemy wspólną wersję dla thttpd i apache.
Przydałoby się jeszcze, żeby ktoś kompetentny wypowiedział się na temat bezpieczeństwa tablicy po naszych przeróbkach.

Autor:  Mr Groch [ niedziela, 9 kwietnia 2006, 10:52 ]
Tytuł: 

Masz calkowita racje :) Nie pomyslalem o sciazkach bezwgzglednych :P

A wiec poprawiona wersja dla Apache jest na:

http://groch.dyndns.org/~groch/scripts/tablica.tar.gz

Teraz wystarczy jedynie dopisac do pliku /etc/sudoers:
: [/] [] ()
nobody ALL=NOPASSWD:/var/www/tablica/iptables.blok
nobody ALL=NOPASSWD:/var/www/tablica/iptables.unblok
nobody ALL=NOPASSWD:/var/www/tablica/iptables.list

(ew. zmienic katalog jezeli te pliki znajduja sie gdzie indziej)

i dodac VirtualHosta:
: [/] [] ()
Listen 82
<VirtualHost 192.168.0.1:82>
    DocumentRoot /var/www/tablica
    ScriptAlias /cgi-bin/ /var/www/tablica/cgi-bin/
    Alias /error/ /var/www/tablica/error/
    ErrorDocument 404 /error/404.html
    ErrorLog /var/log/httpd/tablica-error_log
    CustomLog /var/log/httpd/tablica-access_log common
</VirtualHost>

(oczywiscie trzeba zmienic sciezke katalogu jezlei jest inna)

Mysle, ze paczka t, prygotowywana z mysl o Apachu, na thttpd takze
powinna zadzialac (nawet bez edycji sudoers jak odpalmy jako root). Nie
mam jak tego sprwdzic ale nie widze zadnych przeciwskazan :)

Pozdrawiam

Autor:  agbis [ niedziela, 9 kwietnia 2006, 13:28 ]
Tytuł: 

p0w0 pisze:
Przy próbie zalogowania wysakuje mi taki komunikat
Cytuj:
403 Forbidden
The requested URL '/tablica/cgi-bin/blok/panel.pl' resolves to a file which is marked executable but is not a CGI file; retrieving it is forbidden.

A zrobiłeś:
Cytuj:
[ -z "$PID" ] && /usr/sbin/thttpd -p 82 -u root -d /var/www/tablica -c "**.pl" -T iso-8859-2 -l /dev/null
tak jak napisałem?

Autor:  aphex [ niedziela, 9 kwietnia 2006, 20:05 ]
Tytuł: 

wlasnie sobie go odpalilem pod apache no i dla testu wyslalem komunikat do usera ( na sobie przetestowalem ) komunikat wyskoczyl kliknelem OK potem Tutaj i gdy odswiezam strone docelowa komunikat wraca pliki tymczasowe w internet temporery files wykasowane jak w zaleceniu oco tu chodzi no i pytanie jesli juz odpowiecie co moge miec zle to jak sie blokuje bo poki co walcze z informacja ze zbliza sie termin lub ponaglenie jak to tam zwal :D

Autor:  Mr Groch [ niedziela, 9 kwietnia 2006, 22:30 ]
Tytuł: 

Po pierwsze - uzywaj znakow interpunkcyjnych :)

Po drugie - uzyles najnowszej paczki pod Apache z:

http://groch.dyndns.org/~groch/scripts/tablica.tar.gz

?

Po trzecie - czy po kliknieciu na "Tutaj", w panelu admina
pokazuje juz hosta, ze nie ma wlaczonego przekierowania?
Jezlei przekierowanie nadal bedzie widoczne to a) sprawdz plik sudoers
dokladnie b) przekopiuj pkiki jeszcze raz z lkinku poodanego wyzej :)

Jezlei natomiast juz przekierowania nie ma (czyli skrypty spelnily
zadanie - to problemu szukaj gdzie indziej (cache DNS, cos z przegladarka)

Autor:  p0w0 [ niedziela, 9 kwietnia 2006, 22:48 ]
Tytuł: 

agbis pisze:
p0w0 pisze:
Przy próbie zalogowania wysakuje mi taki komunikat
Cytuj:
403 Forbidden
The requested URL '/tablica/cgi-bin/blok/panel.pl' resolves to a file which is marked executable but is not a CGI file; retrieving it is forbidden.

A zrobiłeś:
Cytuj:
[ -z "$PID" ] && /usr/sbin/thttpd -p 82 -u root -d /var/www/tablica -c "**.pl" -T iso-8859-2 -l /dev/null
tak jak napisałem?


Napisałem to trochę inaczej i ładznie śmiga.

Swoją drogą tablica bardzo ładna i dobrze działa. Polecam wszystkim.

Autor:  aphex [ czwartek, 13 kwietnia 2006, 12:07 ]
Tytuł: 

panowie na virtualhost w apachu nie chodzilo mi to za dobrze odpalilem dodatkowo thttpd na porcie 82 i na nim ta tablice odpalilem no i smiga dobrze tylko pytanie dlaczego gdy wysylam komus takie ogloszenie stronki pokazuja mi komunikat ale naprzyklad GG dziala druga sprawa jest taka gdzie jest opcja ZABLOKUJ bo poki osoba kliknie i potwierdzi przeczytanie ogloszenia dalej ma neta a ja chcialbym ja wywalic calkiem w konsoli wiem jak to sie robi a tutaj ?? czy wogole ta funkcja jest czy nie ?? bo ja jej nie widze

Autor:  Mr Groch [ czwartek, 13 kwietnia 2006, 12:47 ]
Tytuł: 

Tablica ogloszen dziala tylko dla polaczen po porcie 80 - czyli
tylko dla przehgladania stron www... Dopoki gosc nie przeczyta
wiadomosci nie bedzie mogl surfowac po internecie, ale bez
problemu beda dzialac inne uslugi (jak chcocby gg, ftp, p2p i gry :P )

Zalozenia tablicy byly takie a nie inne - nie ma kolesiowi zablokowac neta,
ale tylko przekazac informacje.. Do blokady neta mozna przeciez posluzyc
sie jedna prosta regulka dla iptables...


PS. A niby czemu na VirtualHostach Cie nie satrysfakcjonuje takie
rozwiazanie? Co w tym jest zlego? Prawidlowo skonfigurowany wirtualny
host Apacha jest niemalze we wsyztskim lepszy od thttpd :twisted:

Autor:  aphex [ czwartek, 13 kwietnia 2006, 13:35 ]
Tytuł: 

oprocz tej tablicy ogloszen mam jeszcze inne rzeczy jak statystyki i jedynie staty pokazujace ladnie w slupkach ile kto sciagnal zrobione jest to w php jak odpalilem virtualhosta na apachu nie wiedzac dlaczego te statysyki nie chcialy dzialac no i samo przekierowanie ludzika po potwierdzeniu przeczytania ogloszenia nie dzialalo tzn stronki nie wchodzily pokazywala sie znow plansza z ogloszeniem

Autor:  Mr Groch [ czwartek, 13 kwietnia 2006, 14:05 ]
Tytuł: 

takze mam statystyki...

http://groch.dyndns.org/udstats/stat.php
http://groch.dyndns.org/mrtg/index.html
I jeszce pare innych bajerow.. Mam takze wirtualne hosty
na subdomeny:
http://upload.groch.dyndns.org/
http://ftp.groch.dyndns.org/
A oprocz tego na porcie 82 ta tablice ogloszen i na 84
swoj wlasny panel administracyjny...

Wszytako za pomoca wirtualnych hostow Apacha i dziala :)
Zadnych problemow z php (np z forum, MySqlAdminem, itd)

Autor:  aphex [ czwartek, 13 kwietnia 2006, 19:36 ]
Tytuł: 

no wlasnie te pierwsze statystyki ktore podales u mnie sie wykrzaczyly podalbys mi jak mozesz ustawienia apacha bylbym wdzieczny moze cos zle lub czegos nie dopisalem bo tak naprawde to wolalbym aby to sam apache obslugiwal

Autor:  Mr Groch [ czwartek, 13 kwietnia 2006, 20:02 ]
Tytuł: 

Mniej wiecje cos takiego siedzi w mojej konfiguracji:
: [/] [] ()
NameVirtualHost *

<VirtualHost *>
    DocumentRoot /var/www
    ServerName groch.dyndns.org
    ServerAlias groch.dyndns.org www.groch.dyndns.org
</VirtualHost>

<VirtualHost *>
    DocumentRoot /var/www/upload
    ServerName upload.groch.dyndns.org
    ServerAlias upload.groch.dyndns.org www.upload.groch.dyndns.org
    ErrorLog /var/log/httpd/upload-error_log
    CustomLog /var/log/httpd/upload-access_log common
</VirtualHost>

<VirtualHost *>
    DocumentRoot /home/ftp/public
    ServerName ftp.groch.dyndns.org
    ServerAlias ftp.groch.dyndns.org www.ftp.groch.dyndns.org
</VirtualHost>

<VirtualHost 192.168.0.1:82>
    DocumentRoot /var/www/tablica
    ScriptAlias /cgi-bin/ /var/www/tablica/cgi-bin/
    Alias /error/ /var/www/tablica/error/
    ErrorDocument 404 /error/404.html
    ErrorLog /var/log/httpd/tablica-error_log
    CustomLog /var/log/httpd/tablica-access_log common
</VirtualHost>

Autor:  -MW- [ wtorek, 18 kwietnia 2006, 19:05 ]
Tytuł: 

tablica bardzo fajna, ale czy plik 404.html w katalogu error znajduje sie we wlasciwym miejscu i czy poprawna jest jego nazwa?

z dluzszymi linkami tablica sobie nie radzila do momentu kiedy to nie zmienilem nazwy pliku i katalogu.

obecnie chodzi wysmienicie - ogloszenie wyswietla sie za kazdym razem na kazdej dlugosci linku, a moja ingerencja polegala na zmianie nazwy katalogu z error na errors i nazwy pliku z 404.html na err404.html
dlaczego? nie wiem :)

Strona 1 z 3 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/