LMS 1.0-cvs (1.143/1.19) na PLD
Witajcie ! Jeszcze raz gratuluje pomyslu i zycze powodzenia w dalszej realizacji. To co mnie nurtuje to obsluga programu na PLD Linux. Jak wiecie dystrybucja ta jest ONBOOT=IPv6_ready ;) dlatego m.in. komputer uzytkownika identyfikowamy jest w postaci <::ffff:IPv4> np w access_log od apache mozna znalezc wpisy :ffff:192.168.0.2 co skutecznie paralizuje dzialanie programu, bo kiedy uzytkownik z dopisanym adresem IP klika "Stan konta" to wyswietla sie informacja, ze "z tym uzytkownikiem nie sa zwiazane zadne operacje kasowe", chociaz takie operacje byly juz wykonywane. Tymczasowo poradzilem sobie i przez phpmyadmin w tabeli (?!) "nodes" i rekordzie "ipaddr" poprawilem wpis z 192.168.0.2 na ::ffff:192.168.0.2. Oczywiscie rozszerzylem varchar(16) w "ipaddr" do varchar(20) zeby to wszystko sie zmiescilo. Wtedy "Stan konta" dziala. Jednak nie zalatwia to sprawy, bo komplikuje sie przy cutoff kiedy trzeba odpowiednio ustawic w moim przypadku ipchains. Przeciez nie bedzie podlaczal `ipchains -I forward -j MASQ -s ::ffff:192.168.0.2 -d 0/0`, bo taki zapis nie zadziala. Moje propozycje to: 1) stworzyc jakas dodatkowa tabele z prefixem ::ffff: ktory bedzie dodawany do "ipaddr" tylko na czas sprawdzania stanu konta przez uzytkownika lub: 2) ustawic sprawdzenie konta na podstawie adresu MAC uzytkownika Myslalem, ze calkowicie pomoze mozliwosc, aby "Stan konta" sprawdzany byl przez $REMOTE_HOST, ale tu potrzeba troche wiecej kombinacji, a mianowicie: 1) ustawic w konfigu od apache HostnameLookups On 2) stworzyc pliki strefy dla LANu z nazwami komputerow, a takze pliki strefy odwrotnej; chodzi oto, zeby w access_log komputer uzytkownika widziany byl w postaci hostname, a nie IP czyli np : komp1.lan - - [10/Mar/2003:10:12:03 +0100] "GET /lms/index.php?m=balanceview HTTP/1.1" 200 2031 3) w tabeli "nodes" rozszerzyc varchar do powiedzmy 30 - varchar(30), a w "ipaddr" zamiast adresu IP wpisac nazwe komputera z nameda czyli w tym przypadku komp1.lan 4) w $sys_dir/modules/balanceview.php ustawic zamiast REMOTE_ADDR -> REMOTE_HOST: ---- balanceview.php ---- if(isset($_SERVER[HTTP_X_FORWARDED_FOR])) $ipaddr = $_SERVER[HTTP_X_FORWARDED_FOR]; else // $ipaddr = $_SERVER[REMOTE_ADDR]; Zamiast REMOTE_ADDR -> REMOTE_HOST $ipaddr = $_SERVER[REMOTE_HOST]; ---- CUT ---- Pozwoli to na sprawdzenie stanu uzytkownika, ale niestety znowu bedzie powodowalo komplikacje w przypadku cutoff. Studiowalem /usr/sbin/lms-mgc i zauwazylem, ze program rozbija adres IP na pojedyncze czesci (%1 %2 %3 %4) i dlatego nie zadzialaja instances przy `ipchains -I forward -s %IP -j MASQ` kiedy $ipaddr="komp1.lan". I tu od razu nasuwa sie propozycja, aby w przyszlych wersjach podczas wypelniania formularza, ktory tworzy nowego uzytkownika byla mozliwosc na wpisywanie w rubryce "Adres IP" nazwy komputera, a nie tylko i wylacznie adresu IP. Proponuje rowniez zobaczyc jak dziala webalizer, ktory tworzy przeciez statystyki z access_log, bo kiedy wybieramy opcje, ktora pokazuje hosty jakie sie do nas laczyly to pokazuje "normalne" adresy ip. Nie wiem jak to rozwiazali. Kiedys przepuszczalo sie logi apache przez awk ;) Chcialbym rowniez zaproponowac, aby w przyszlych wersjach w menu "Uzytkownicy" znalazlo sie cos na wzor .bash_history. Taka mala statystyka, ktora informowala by kiedy dany uzytkownik sprawdzal "stan konta". Mam rowniez uwage co do pliku INSTALL. ---- INSTALL ---- Po drugie: interpreter PHP. Tutaj wymagania sš trochę wyższe. Wielce prawdopodobne jest iż LMS pójdzie na każdym PHP 4.2.x które będzie miało obsługę sesji, wyrażeń regularnych i mysql'a. ---- CUT ---- Te sformulowanie dla poczatkujacego uzytkownika moze byc bardzo zawile. Oczywiscie mozna powiedziec, ze jak nie rozumie o co w tym chodzi to lepiej niech sie przesiadze na windows, ale chyba nie oto chodzi. Niech po prostu tak jak jest lista modulow do perla, ktore trzeba zainstalowac - niech pojawi sie taka lista dla php. Stworzylem taka liste: php-mysql php-pcre php-posix To samo tyczy sie $sys_dir/contrib/lms.spec Dodalbym oprocz ` Requires: php-posix ` takze pozostale moduly. Zdaje sobie sprawe, ze jest to nadal projekt, ale mysle, ze moje uwagi sie przydadza i z niecierpliwoscia czekam na stabilna wersje. Apeluje do developerow o pomoc w rozwiazaniu problemu identyfikacji komputera w access_log na PLD. Na koniec zalaczam uzywane oprogramowanie i plik /etc/lms/lms-mgc.ini, ktorego uzywam w swoim systemie. Linux zatorze 2.2.22 #1 Tue Oct 1 20:06:29 UTC 2002 i586 Pentium_75_-_200 unknown GNU/Linux apache-1.3.27-3, php-4.2.3-8, php-mysql-4.2.3-8, php-posix-4.2.3-8, php-pcre-4.2.3-8 ---- /etc/lms/lms-mgc.ini ---- [mgc] instances = ipchains [mgc:ipchains] outfile = /etc/rc.d/rc.masq outfile_perm = 700 header = #!/bin/sh\n/sbin/ipchains -F\n/sbin/ipchains -X\n/sbin/ipchains -P forward DENY grantednode_priv = /sbin/ipchains -A forward -s %IP -j MASQ post_exec = /etc/rc.d/rc.masq Pozdrawiam ! ---- Jakub Urbaniak, kuba@ski.slupsk.pl GSM: +48 504 406 131, UIN:2924443, (MydelkoFA@IRCNet) http://www.ski.slupsk.pl
uczestnicy (1)
-
Jakub Urbaniak