Magazyn Ready
Nr 6-7 - czerwiec-lipiec
www.ready.gery.pl

 

Magazyn Ready
Poprzednia strona

Spis Treści

Następna strona

EGGDROP CZĘŚĆ 3

Łączenie eggdropów

Łączenie botów ma kilka zalet. Przede wszystkim jeżeli boty są na tym samym kanale mogą mieć wspólną userliste tzn., że jeżeli dokonamy zmiany w userliście w którymś z botów, automatycznie nastąpi zmiana we wszystkich. Inną zaletą jest wspólne party line, na której mogą się porozumiewać osoby zarówno z tego samego kanału jak i z innych kanałów poprzez przyłączone boty. Dzięki temu można porozmawiać z innymi właścicielami/użytkownikami botów lub po prostu jak czegoś nie wiemy zapytać. Istnieje wiele sieci eggdropowych na świecie i w Polsce. W niektórych liczba botów sięga 200-300.
1. Łączenie botów bez wymiany userlisty
Jest najczęściej stosowane. Załóżmy, że bot1 to nasz bot, natomiast bot2 to bot, z którym chcemy się połączyć. Wówczas pytamy się właściciela (lub osobę mająca flagę +t) bot2 jaki nick, adres oraz port ma jego bot. Dane te są ustawione w pliku konfiguracyjnym bota. Nick ustawia się zmienną set nick "nick_bota". Port ustawia się zmienną listen nr_portu all lub listen nr_portu bots, aktualne ustawienie można zobaczyć komendą .rehash .Natomiast adres to adres komputera, gdzie bot jest uruchomiony. Można go łatwo odczytać poprzez komendę na ircu /whois nick_bota. Oczywiście znany nam jest nick, adres, port bota1. Dane te przekazujemy właścicielowi bot2.
W bot1 wpisujemy:
.+bot nick_bot2 adres_bot2:port_bot2 (np .+bot Bocisko linux.w.pwr.edu.pl:3334)
W bot2 właściciel (lub +t) wpisuje:
.+bot nick_bot1 adres_bot1:port_bot1 (np .+bot Blacha blachowski.ds100.agh.edu.pl:3234)
Jeżeli chcemy aby bot1 zawsze po uruchomieniu, restarcie, zerwaniu połączenia itd. łączył się z bot2 to musimy w bot1 wpisać:
.botattr nick_bot2 +h
Więcej o botflagach tutaj.
2. Łączenie botów z wymianą userlisty.
Wymiana userlisty polega na:
a) wysyłaniu z bota z botflagą +s (aggressive shared) userlisty do bota +p (passive shared) po połączeniu się botów.
b) wymianie informacji o zmianie userlisty flag globalnych oraz, jeżeli jest ustawiona botflaga |+s #channel na obydwu botach, wymianie flag lokalnych dotyczących tego kanału.
Przed przystąpieniem do linkowania musimy zdecydować, który bot będzie przyjmował userliste, a który wysyłał, Od tej pory bot, który będzie wysyłał userliste do innego bota będzie hubem. Bardzo ważne jest aby przy podłączaniu większej liczby botów nie tworzyć "łańcuszków" botów, w których jeden jest zarówno hubem jak i odbiera userliste od innego huba, Należy tworzyć jak tylko jest to możliwe sieć "gwiaździstą" czyli jeden hub i kilka botów czerpiących z niego userliste. Zatem niech bot2 będzie hubem. Dodajemy boty tak samo jak w wariancie 1.
Dodatkowo w bot1 wpisujemy:
.botattr nick_bot2 +hp
.botattr nick_bot2 |+s #channel1
.botattr nick_bot2 |+s #channel2
itd.. Ustawiamy dla wszystkich kanałów, dla których chcemy aby boty miały takie same ustawienia lokalne.
W bot2 wpisujemy:
.botattr nick_bot1 +s
.botattr nick_bot1 |+s #channel1
.botattr nick_bot1 |+s #channel2
W przypadku powyższego łączenia eggdropów, w każdym z połączonych botów musi być załadowany moduł share oraz transfer czyli w pliku konfiguracyjnym muszą być instrukcje loadmodule share oraz loadmodule transfer. Dodatkowo radzę ustawić zmienną xfer-timeout na 300. Zmienna ta określa czas, po którym nastąpi przerwanie transferu userlisty, jeżeli nie zostało zakończone. W wersji 1.3.27 jest ustawiona domyślnie na 30. Jest to stanowczo za mało. No chyba że mamy bardzo niewielką userlistę, albo super szybkie połączenie między botami :-)
Jeżeli chcemy aby boty wymieniały się całą userlistą tj. wszystkimi kanałami zamiast flag |+s #channelX można użyć globalnej flagi +g czyli wówczas w bot1 wpisujemy:
.botattr nick_bot2 +ghp
natomiast w bot2 wpisujemy:
.botattr nick_bot1 +gs
Komendy do ręcznego linkowania botów to .link bot lub .unlink bot. Ich użycie nie jest potrzebne jeżeli boty mają odpowiednio ustawione botflagi +h (same się łączą). Inne komendy związane z siecią botów tylko dla osób mających flage +t to:
.bots - podaje liste botów połączonych w sieci.
.trace botnick - wyświetla listę botów po drodze do botnick.
.bottree - pokazuje drzewo połączeń botów.
.boot nick - Wyrzuca osobę o nicku nick z party line.
.botinfo - Podaje informacje o wszystkich botach w sieci.
Jeżeli łączymy nasze boty z jakąś inną siecią botów radzę również przestawić zmienną remote-boots w pliku konfiguracyjnym bota na:
set remote-boots 1 - co oznacza, że userów z naszego bota mogą tylko wyrzucać masterzy +t botów współużytkujących naszą userlistę, a nie ze wszystkich botów, jak jest to domyślnie ustawione.
Skrypty TCL
Nie ma co tu się dużo rozpisywać. Skrypty tcl w eggdropie są jego wielką zaletą. Jak dotąd powstały ich setki i wciąż powstają nowe. To właśnie dzięki nimi bot potrafi bronić kanału przed takeoverami, zmasowanymi floodami wszelkiego rodzaju, prowadzić statystyki kanałowe wraz z tworzeniem stron www, odpowiadać na zapytania seen - czyli kiedy ostatnio bot widział daną osobę (co potrafi również moduł seen, ale gorzej), zmieniać co jakiś czas topic, czy po prostu zabawiać ludzi znajdujących się na kanale... naprawdę w najróżniejsze sposoby :-)

Skąd wziąć skrypty tcl ?

Wejdź na stronę http://www.xcalibre.com/tcl.htm Skrypty są tam pogrupowane według wersji eggdropa, z którą działają. Gdy już upatrzysz sobie jakiś skrypt skopiuj go na konto, możesz się posłużyć lynxem z wyżej wymienionej strony lub ftpem z wielu mirrorów np:
ftp://ftp.mud.org.pl/mirrors/ftp.sodre.net/pub/eggdrop/
ftp://ftp.irc.pl/pub/irc/bots/eggdrop2  
Następnie jeżeli jest spakowany rozpakuj go komendą tar -zxf plik_skryptu.tar.gz. Przeglądnij i poczytaj dokumentacje, a następnie przegraj do podkatalogu scripts gdzie znajduje się eggdrop i zmodyfikuj plik konfiguracyjny. Na samym końcu w pliku konfiguracyjnym dodaj linijkę:
source scripts/plik_skryptu.tcl
Teraz w bocie wydaj komendę do ponownego przeczytania pliku konfiguracyjnego komendą .rehash i jeżeli bot nie zakończył swojego działania znaczy, że uruchomienie skryptu powiodło się.
Czasami podczas używania starych skryptów lub wymianie wersji eggdropa na nowszą bez wymiany wersji wszystkich skryptów mogą co jakiś czas pojawiać się w logach bota komunikaty typu:
[22:10] TCL error [jakaś_procedura]: jakiś komunikat
W takim wypadku jeżeli się nie znasz na TCLu powinieneś ściągnąć nowszą wersję skryptu lub w ogóle z niego zrezygnować.

Które skrypty są warte uwagi ?

StatWWW - jest to skrypt do prowadzenia statystyk na kanale. Program zlicza każdej osobie na kanale wszystkie wypowiedziane słowa, wykonane kopniaki, zmiany topica itd. a następnie sortuje osoby względem wypowiedzianych słów. Najlepsza 10 - największych gaduł :-) , dostępna jest na kanale za pomocą komendy !topten, aktualna pozycja osoby na liście za pomocą !place. Skrypt tworzy również stronę WWW uaktualnianą co 10 min z pierwszą 50. Więcej informacji o tym skrypcie, najnowsza wersja, pluginy dostępne są na stronie WWW autora: http://www.goblet.net/scripts . [Download] ver 3.22
Sentinel - Zapewnia pełną ochronę przeciw floodom. Ten skrypt jest dołączony standardowo do eggdropa. Zatem na pewno go już posiadasz - wystarczy go tylko załadować w bocie.
Bseen - Skrypt do informowania ludzi na kanale gdzie i kiedy oraz jak długo ktoś był w przeszłości widziany przez bota. To on odpowiada na pytanie !seen nick. Jego wielką zaletą jest to, że tworzy własną bazę danych o spotkanych ludziach na kanale, nie tylko tych, którzy są wpisani w bocie. Skrypt ten uruchomiony na wielu botach połączonych ze sobą umożliwia przesyłanie informacji o widzianych osobach. Najnowsza wersja dostępna jest pod adresem: http://bseen.tclslave.net . [Download] ver 1.4.2
Repeat - Skrypt powoduje wykopywanie osób, które powtarzają się. [Download] ver 4.1
Limit - Ustawia +l na kanale w zależności ile jest osób na kanale. [Download]
Antybluzg - Wysyła ostrzeżenia do osób przeklinających na kanale. [Download]
Cleanup - Czyści okresowo userliste kasując osoby które dawno nie pokazały się na kanale. [Download]
mk_fun - wykopuje osoby żebrające o opa i zapraszające na inne kanały. [Download]
nettools - Skrypt załadowany w kilku botach jednocześnie umożliwia zarządzanie nimi. Na przykład komenda .netjoin #channel wysyła wszystkie połączone boty z załadowanym skryptem na kanał #channel. Można również zmienić ustawienie dotyczące kanału we wszystkich botach za pomocą komendy: .netset #channel +dynamicbans wydanej z jednego bota... itd.. [Download ver. 3.4.1]
AntiOnJoinSend - Powoduje, że bot co jakiś czas wychodząc i po chwili wchodząc na kanał wykrywa osoby wysyłające wirusy poprzez DCC. [Download]
CloneDetect - Skrypt do wykrywania klonów na kanale. [Download ver. 3B]
counter - Zlicza wejścia i kopnięcia na kanale. [Download ver. 2.1]
superbitch - Skrypt rozszerza ustawienie kanałowe bitch. Dodatkowo jest deopowana osoba opująca. [Download ver. 2.0]
quitban - Banuje osoby wychodzące z kanału z określonym tekstem. [Download ver. 1.1]
botnick - Prosta zmiana nicku bota komendą dostępna dla ownerów. [Download ver. 1.0]
partmsg - Wysyłanie tekstów do ludzi opuszczających dany kanał. [Download ver. 1.0]
bitchxpack - Bot udaje, że jest sesją BitchX. [Download ver. 1.50]
autolog - Automatyczne tworzenie nowych plików z logami kanału. Bardzo przydatne gdy dodajemy kanały dynamicznie. [Download ver. 1.0]
cronchk - Skrypt sprawdza, czy uruchomienie bota jest wpisane w crontab i jeżeli nie wysyła ostrzeżenie ownerowi. [Download ver. 1.0]
antimschat - Automatyczne banowanie ludzi używjących Microsoft Chat. [Download ver. 1.01]
publicnote - Umożliwia zostawianie wiadomości przez ludzi nie wpisanych w bocie. [Download]
slap - Wykopuje ludzi za slaps na kanale. [Download]
smiling - Bot odpowiada losowo wybranym uśmiechem na :) i :-). [Download]
botnetstats - Tworzy stronę WWW ze statystyką botnetu. [Download ver. 1.1]
topiclogger - Tworzy stronę WWW z historią topiców na kanale. [Download ver. 1.0]
topiclock - Umożliwia blokowanie topiców na kanale. Najnowsza wersja oraz kilka innych skryptów dostępna na stronie www autora http://www.iki.fi/temex/eggdrop . [Download ver. 2.03]
urlcatcher - Tworzy stronę WWW z listą wszystki adresów przechwyconych na kanale. [Download ver. 1.2]
getops - Bezpieczniejszy autoop dla innych botów. Boty wysyłają prosbe o opa poprzez botnet. [Download ver. 2.3]

Celowo nie umieściłem tu skryptów służących do floodowania osób, przejmowania kanałów, itp... Boty nie służą do robienia obory na ircu tylko do pilnowania kanałów, zabawiania ircujących ludzi i nie powinny wyrządzać nikomu żadnej krzywdy.

Jak samemu pisać własne skrypty ?

Język Tcl/Tk nie jest takim strasznie trudnym językiem i można się go trochę nauczyć. Przynajmniej na tyle aby móc samemu dokonywać poprawek w już istniejących skryptach lub pisać własne nowe :-) Co jest potrzebne aby zacząć poznawać tajniki tego języka? Oczywiście jakiś manual i najlepiej za friko w wersji elektronicznej :-) Lokalna kopia anglojęzycznego manuala do wersji Tcl8.0/Tk8.0 znajduje się tutaj. Dzięki niej można poznać podstawowe instrukcje języka Tcl/Tk. Oczywiście w czystym Tcl nie napiszemy żadnego skryptu. Potrzebne są specjalne instrukcje, dzięki którym skrypt może kontrolować działanie bota, posiadać dostęp do userlisty, czy w końcu podkładać odpowiednie procedury do zdarzeń mających miejsce na kanale czy w bocie podczas jego działania. Wszystkie te rozszerzenia opisane są w standardowej dokumentacji eggdropa w pliku doc/tcl-commands.doc

Przewodnik po TCLu w skryptach eggdropa dla początkujących

Tcl/Tk 8.0 Manual
Jak bronić się przed takeoverami?
Dotyczy to raczej tylko i wyłącznie sieci IRCnet - najpopularniejszej sieci ircowej w Polsce. Niestety sprawa nie wygląda najlepiej. Przed takeoverem nigdy nie można zabezpieczyć sie w 100%. Owszem, każdy kolejny bot postawiony na kanale minimalizuje to ryzyko. Jednakże dzięki splitom serwerów zawsze istnieje groźba, że po ponownym połączeniu serwerów z drugiej strony wejdzie 100 botów z opami i w mig rozniesie nasze boty. Dowodem tego są chociażby częste takeovery takich kanałow jak np. #polska i inne większe. Co więc robić aby to ryzyko minimalizowć?
a) boty stawiaj na różnych ircserwerach i najlepiej różnych krajów. Niestety ircserwery poza 4 polskimi i 2 zachodnimi (chyba... jak się mylę nich mnie ktoś poprawi) nie wpuszczają na irca (bez +r) z kont shelowych w domenie *.pl Rozwiązaniem tego problemu jest posiadanie kont shelowych w innych krajach niż polska lub też takich kont w Polsce, które mają wirtualne domeny innych krajów. Innym rozwiązaniem problemu jest posiadanie kont shelowych na serwerach, które doświadczalnie są przyłączone tunelami do sieci ipv6. Dzięki temu można liste ircserwerów poszerzyć o kilka nowych. Aktualnie znane mi serwery ipv6 wpuszcające bez +r to it.irc6.net (Włochy), de.irc6.net (Niemcy), irc.MissingU.com (USA) oraz irc.wanadoo.be (Belgia) . Niestety zwykły eggdrop nie potrafi połączyć się z ircserwerami ipv6. Patch na eggdropa do łączenia sie z ipv6 mojego autorstwa mogę udostępnic emailem.
b) ograniczaj liczbę autoopów. To chyba wiadome - żadnych autoopów na dialupy, nie zaufane hosty lub też dziurawe serwery ;-). Najlepiej to w ogóle zrezygnować z autoopów :-). W przypadku włamu na serwer lub zdobycia hasła na konto, na którym stoi eggdrop, osoba włamująca może bez problemu przejąc nasz kanał.
c) używaj skrypty TCL służących do ochrony kanału. Takie tclki jak superbitch i inne. Proponuje wejść na http://www.xcalibre.com/tcl.htm i zaznaczyć typ protection szukająć tclek. Skryty te mają swoje minusy i plusy. Zazwyczaj plusy to zmniejszenie ryzyka takeoveru, a minusy to zamieszanie na kanale, nie wygoda ircowników i w rezultacie kanał może na tym stracić.
d) i wiele innych rzeczy, których ze względu na swą małostkowość nie chciało mi się tu opisać.

Dostarczył: ReV
(moj qmpel wyszperał to w sieci, nawet nie wiem skąd :-/ )

 

__________________ REKLAMA __________________

System wymiany banerów NetBAN


Poprzednia strona   | 46 |  Następna strona
Spis Treści


Copyright (C) 2001 by Ready. Wszelkie prawa zastrzeżone.