benapetr / wikimedia-bot

IRC bot that is being used on number of wikimedia channels
http://meta.wikimedia.org/wiki/WM-Bot
GNU General Public License v3.0
36 stars 39 forks source link

Astra Computer #97

Open astrafiyah opened 1 year ago

astrafiyah commented 1 year ago

Home page: Misdafatma AlzaAstrafiyah Bot issues link user wikipediaAstra Computer

irchelp

Ed. catatan: Hybrid 7 adalah versi terbaru perangkat lunak server IRC yang mungkin diadopsi oleh sebagian besar EFnet dan banyak jaringan lainnya. Panduan ini adalah bagian dari bagian bantuan ircd kami , dan ditujukan untuk pemula. Sebelum Anda mencoba untuk mengatur ircd Anda sendiri, Anda harus cukup ahli dalam protokol IRC dan UNIX. Misalnya, pernahkah Anda menyiapkan klien IRC di UNIX sebelumnya (bukan salah satu dari kesepakatan pemasangan otomatis, melainkan mengunduh, membuka kompresi, mengonfigurasi, mengkompilasi, dan memasangnya dengan cara lama)? Itu akan menjadi ujian minimal bagi pengalaman Anda. Saya juga menyarankan Anda terlebih dahulu melihat FAQ Permintaan Server untuk memastikan Anda benar-benar ingin melakukan ini. -Jolo

Panduan untuk menyiapkan server dasar Hybrid 7 irc

Oleh: NoizyToyz (Klaus Duren)

Terima kasih khusus kepada: Vamp, Apatrix.

terakhir diperbarui 8 April 2001

Isi

Perkenalan

Persyaratan

Mendapatkan rilis terbaru

Perhatian

Membongkar sumbernya

Mengedit sumber ircd untuk memenuhi kebutuhan Anda

Kompilasi dan pembuatan server

Mengedit file ircd.conf Anda

Menguji server Anda

Perintah

Otomatisasi

  1. Perkenalan

Selamat datang. Dokumen ini untuk membantu konfigurasi, kompilasi, dan penggunaan dasar Hybrid 7. Panduan ini adalah yang pertama saya tulis, jadi kemungkinan besar ini bukan yang terbaik, tetapi saya akan berusaha melakukan yang terbaik :).

Tugas berikut ini tidak akan mudah. Ini dapat menghabiskan waktu berjam-jam. Pastikan Anda berkomitmen pada hal ini saat memulainya, karena mungkin sulit untuk melanjutkan dari bagian terakhir yang Anda tinggalkan.

Catatan tambahan, meskipun Anda BISA menjalankan server irc dengan koneksi serendah 56k, namun itu bukan ide yang baik. jika Anda melakukannya karena alasan pribadi, kabel mungkin ideal. Untuk aplikasi publik, seperti menghubungkan ke jaringan populer, kemungkinan besar Anda harus memiliki minimal koneksi t3 agar dapat diterima.

Penulis telah berhasil mengkompilasi Hybrid 7 beta pada FreeBSD, Linux Mandrake 7.2, berbagai versi Solaris, dan versi Redhat.

Direktori defaultnya adalah /usr/local/ircd/

Mari kita mulai!

  1. Persyaratan

UNIX atau sistem operasi yang kompatibel

aplikasi tar untuk membongkar kode sumber

versi terbaru dari Autoconf

GCC versi terbaru

  1. Mendapatkan rilis terbaru

Anda bisa mendapatkan h7 versi terbaru dari arsip ircd IRCdhelp.org .

[Saat panduan ini dibuat, versi terbaru adalah ircd-hybrid- 7beta1.tgz]

  1. Perhatian

Sebelum kita melangkah lebih jauh:

Prinsipnya, jika sesuatu dapat dijalankan sebagai pengguna non-root, maka hal tersebut harus dilakukan. Menjalankan daemon sebagai root mempunyai risiko kerusakan yang jauh lebih tinggi jika terjadi pelanggaran keamanan. Jika ircd suatu hari terbukti memiliki bug yang dapat dieksploitasi yang menghasilkan hak istimewa pengguna ircd dan pengguna ircd adalah root, Anda mungkin berada dalam kesulitan. Ircd akan bekerja dengan baik tanpa hak akses root. Jadi buatlah pengguna ircd sebelum Anda melakukan apa pun dan su(1) ke pengguna tersebut untuk instalasi.

  1. Membongkar sumbernya

Paket sumber hadir dalam file tar gzip (.tar.gz). Salin file ke direktori tempat Anda ingin menginstal sumber Hybrid 7. Untuk membongkarnya gunakan perintah berikut: tar -zxf filename Jika program tar sistem Anda tidak mendukung -z flag gunzip (atau gzip -d) terlebih dahulu, lalu 'tar -xf filename', atau, tar -xvf </path/filename>.

  1. Mengedit sumber ircd untuk memenuhi kebutuhan Anda

Sebelum kita memulai, Anda dapat merusak kode sumber dan kompilasi Anda mungkin gagal jika Anda mengutak-atik file apa pun yang tidak disebutkan di sini. kecuali Anda BENAR-BENAR POSITIF mengetahui apa yang Anda lakukan, jangan main-main dengan mereka!

File yang akan kami bahas di bagian ini:

//include/config.h- Konfigurasi waktu kompilasi

//messages/custom.po- File pesan server

A. //include/config.hpanduan penyesuaian

Di atas setiap bagian di config.h terdapat penjelasan yang sangat rinci tentang apa yang akan dilakukan pernyataan tersebut jika #define'd atau #undef'd

Hal pertama yang harus dilakukan: Edit direktori dan lokasi file sesuai kebutuhan Anda, jika Anda tidak tahu apa-apa tentangnya, atau ingin menginstal ke lokasi defaultnya, Biarkan saja. Hal-hal yang mungkin ingin Anda edit adalah sebagai berikut: DPATH = direktori root instalasi

MODPATH = jalur ke direktori modul

MSGPATH = jalur direktori yang berisi file pesan (.mo).

SPATH = server dapat dieksekusi

CPATH = file conf (konfigurasi).

KPATH = file konfigurasi kline

DLPATH = file conf dline

RPATH = File kunci RSA

MPATH = file motd

PPATH = berkas pid

HPATH = oper file bantuan (ditampilkan melalui /quote bantuan)

OPATH = jalur ke MOTD untuk opers

Contoh jalurnya:

define DPATH IRCD_PREFIX leave blank for default path #define MODPATH IRCD_PREFIX "/modules/autoload/" #define MSGPATH IRCD_PREFIX "/messages/" #define SPATH IRCD_PREFIX "/bin/ircd" #define CPATH ETCPATH "/ircd.conf" #define KPATH ETCPATH "/kline.conf" #define DLPATH ETCPATH "/kline.conf" #define RPATH ETCPATH "/ircd.rsa" #define MPATH ETCPATH "/ircd.motd" #define PPATH ETCPATH "/ircd.pid" #define HPATH ETCPATH "/opers.txt" #define OPATH ETCPATH "/opers.motd"

Bagian di bawah ini adalah untuk konfigurasi dasar config.h agar Anda dapat bekerja lebih cepat. Jangan ubah apa pun kecuali ditentukan di bawah jika Anda baru dalam hal ini.

Anda mungkin ingin meningkatkan TS delta jika Anda menghubungkan server yang tidak selalu memiliki waktu yang tepat. Daripada merusak TS, Anda harus menyinkronkan waktu lokal Anda dengan server waktu menggunakan ntpdate(8) atau program serupa dan membiarkan delta TS tetap ada. Jika Anda mendapatkan kesalahan TS delta saat menghubungkan server, sinkronkan waktu di kedua sistem melalui NTP. Penyimpangan jam bisa menjadi hal yang signifikan, Anda harus mengotomatiskan prosedur untuk menjalankannya setidaknya setiap hari.

Kecuali Anda akan menjalankan server di EFnet, ubah NETWORK_NAME_DEFAULT dan NETWORK_DESC_DEFAULT untuk mencerminkan informasi jaringan Anda.

CRYPT_OPER_PASSWORD:

Ini adalah sesuatu yang sebaiknya Anda lakukan jika ircd berjalan pada mesin yang aksesnya dimiliki oleh pihak ketiga yang tidak tepercaya, seperti pengguna shell. Hasilkan kata sandi terenkripsi menggunakan utilitas mkpasswd yang dibangun sebagai bagian dari paket ircd.

Untuk mengaktifkan enkripsi:

define CRYPT_OPER_PASSWORD #define CRYPT_LINK_PASSWORD *

Saya rasa kedua server yang berpartisipasi memerlukan baris CRYPT_LINK_PASSWORD yang cocok. Jika server yang ingin Anda tautkan memilikinya #undef'd, #undef it, dan sebaliknya.

Untuk menonaktifkan enkripsi:

undef CRYPT_OPER_PASSWORD #undef CRYPT_LINK_PASSWORD

Untuk mengubah jumlah saluran yang boleh diikuti oleh pengguna pada satu waktu ditentukan oleh #define MAXCHANNELSPERUSER x (di mana x adalah, masukkan nomor, katakanlah 1 hingga 30 - default, dan nilai yang disarankan adalah 15) [ Semakin kecil bandwidth Anda, saya kira semakin rendah angkanya]

B.//messages/custom.po

Edit file ini jika Anda ingin server menampilkan pesan Anda sendiri.

  1. Kompilasi dan pembuatan server

Nah, sekarang Anda telah menguasai setidaknya konfigurasi dasar config.h dan custom.po (opsional), Anda siap untuk mengkonfigurasi dan mengkompilasi server.

Untuk mengkonfigurasi: cdke/

./configure --prefix="/path/to/install/to"

(jika ingin mengkompilasi ke direktori default, lakukan saja ./configure)

Segera setelah selesai, dan anggap berhasil diselesaikan, ketik, buat -Jika tidak berhasil diselesaikan, dapatkan hal-hal yang tepat, dan coba lagi!

@ Hal-hal? Hal apa?

Jika prosedur make berhasil, terakhir ketik make install -Jika make gagal, lakukan apa yang dijelaskan di atas tentang kegagalan ./configure

  1. Mengedit file ircd.conf Anda

Sekarang, Anda ingin lalu mengedit example.conf cd.//etc/

Untuk konfigurasi cepat, ikuti panduan ini:

Edit blok serverinfo hingga kira-kira terlihat seperti di bawah ini:

(serverinfo replaces the old M: line) serverinfo { name=""; description=""; #The network_name and network_desc variables override #the compiled in defaults. These are used for server #hiding. network_name="-"; network_desc="-"; # HUB is no longer a compiled in option. It is set at # runtime in this block and changable with a REHASH hub=yes; # vhost defines what IP to bind to for OUTGOING connections. # This replaces the old M: line IP, and is only needed for # multi-homed or virtual hosted machines not using the default # IP. Note that you MUST use the IP, not a hostname, and it # cannot be in quotes # vhost=192.169.0.1; };

Sekarang untuk mengedit blok Admin:

admin { name="<primary server administrator's name>"; email="email@address"; description=""; };

Biarkan semuanya sampai Anda mencapai blok mendengarkan.

listen { # accepts hostnames as well as ips # ip="192.168.0.1"; port=<listen for connection requests from this port (commonly 6667)>; };

Jangan repot-repot memodifikasi apa pun dari blok pendengaran ke blok operator:

operator { # The nick of the oper name=""; # user@host, note that CIDR in O: lines is not CURRENTLY # supported (an important note for Hybrid 6 users) user="@"; # The encrypted password used in the OPER command # Note: if you #undef CRYPT_OPER_PASSWORD in config.h, you must # use the plaintext password here. MD5 passwords are # supported and available on some platforms (FreeBSD 4.x # and Linux glibc are known to work) # password="$1$tPH$nN7t5Jj14wYCoDZXc4fe91"; # password="etcnjl8juSU1E" password=""; class="opers"; # Allow the oper to global KILL (old O flag) global_kill=yes; # Allow the oper to remote SQUIT and CONNECT (old R flag) remote=yes; # Allow the oper to issue KLINE and DLINE (old K flag) kline=yes; # Allow the oper to issue UNKLINE and UNDLINE (old U flag) unkline=yes; # Allow the oper to issue GLINE (old G flag) gline=yes; # Allow the oper to issue DIE and RESTART (old D flag) die=yes; # Allow the oper to issue REHASH (old H flag) rehash=yes; # Allow the oper to see nick changes (old N flag) nick_changes=yes; # Set the oper +a when they oper up. Marks them as an # admin. Admins can load and unload modules, as well as # see the real IPs in STATS c admin=yes; };

Bagian sederhananya sekarang, beri komentar pada semua blok koneksi. dimulai pada sambung { dan berakhir pada };

connect { # name = ""; # # Hostnames and IP's are both accepted # host = ""; # # send_password is the C line password, accept_password is the # # N line password, they are not required to match. The remote # # server will have the two passwords reversed. # send_password = ""; # accept_password = ""; # # What port should we autoconnect on (if autoconn is set to yes) # port = 6667; # # hub_mask replaces H: lines, multiple ones are accepted in each # # connect block. # hub_mask = ""; # class = "server"; # # Set your server to autoconnect # autoconn = YES; #}; #connect { # name = ""; # host = ""; # send_password = ""; # accept_password = ""; # port = 6667; # # Force this server to be a leaf # leaf_mask = ""; # # Force this server to be a LazyLink server. Read # # doc/LazyLinks.as.implemented.txt for more information # lazylink=no; # class = "server"; #};

Tidak menyukai seseorang? Sesuaikan blok pembunuh, buat beberapa blok pembunuh, atau biarkan saja:

Replacement for K: lines, bans based on user@host kill { user="bad@*.hacked.edu"; reason="Obviously hacked account"; };

Tambahkan dline atau 2, atau, jangan:

Replacement for D: lines, deny IP's and IP blocks. CIDR notation is # recommended deny { ip=10.0.1.0/24; reason="Reconnecting vhosted bots"; };

Cegah penggunaan nama panggilan, tambahkan beberapa, atau biarkan saja:

Replacement for Q: lines, preventing nicks from being used quarantine { name="NickServ"; reason="There are no Nickname Services on EFnet"; };

Bahkan lebih banyak pemblokiran, sekali lagi, sentuh, atau jangan:

Replacement for X: lines, denying users based on their "realname" # field, useful for blocking known trojan drones, troublesome clients, # and floodnets. Note that we don't CURRENTLY have a silent deny (2 in # the last X: line field in the old conf) gecos { name="BitchX.doc"; reason="Misconfigured lame client"; action=warn; }; gecos { name="sub7server"; reason="Trojan drone"; action=reject; };

Opsi yang mungkin ingin Anda edit di blok umum:

general { # Send a notice to all opers on the server when someone tries # to OPER and uses the wrong password failed_oper_notice=yes; # If failed_oper_notice is set to "yes", also notify when someone # fails to OPER because of an identity mismatch (wrong host or nick) show_failed_oper_id=yes; # Define how many 'dot' characters are permitted in an ident reply # before rejecting the user. dots_in_ident=2; # Enable the nick flood control code. anti_nick_flood=yes; # These settings will allow 5 nick changes in 20 seconds. max_nick_time=20; max_nick_changes=5; # Define the time delta permissible for a remote server connection. # If our timestamp and the remote server's timestamp are over # ts_max_delta different, the connection will be dropped. If it # is less than ts_max_delta but more than ts_warn_delta, send # a notice to opers on the server, but still allow the connection. # Overrides the compiled in defaults ts_warn_delta=30; ts_max_delta=300; # When a user QUIT's, prepend their QUIT message with "Client exit:" # in order to help prevent against faking server error messages (ie. # ping timeout, connection reset by peer) client_exit=yes; # Show the reason why the user was K-lined or D-lined to the "victim" # It's a neat feature except for one thing... If you use a tcm # and it shows the nick of the oper doing the kline (as it does by # default) Your opers can be hit with retalitation... Or if your # opers use scripts that stick an ID into the comment field. etc. # It's up to you whether you want to use it or not. kline_with_reason=yes; # Force the signoff reason to be "Connection closed" when a user is # K-lined. The user will still see the real reason. This prevents # other users seeing the client disconnect from harassing the IRCops. kline_with_connection_closed=no; # Set to "yes" if you wish your server to flag and not apply redundant # K-lines. non_redundant_klines=yes; # Enable this if you want opers to get noticed about "things" trying # to connect as servers that don't have N: lines. Twits with # misconfigured servers can get really annoying with this enabled. warn_no_nline=yes; # Set these lines to be oper only. The reasoning behind this is that # people with exceed_limit or kline_exempt can almost always get on # the server. e_lines_oper_only=yes; f_lines_oper_only=yes; # Set STATS o to be oper only o_lines_oper_only=yes; # See a NOTICE when a user issues a STATS command stats_notice=yes; # See a NOTICE when a user issues a STATS p. By enabling this, opers # can see when users need them, but not invade their privacy by spying # on other STATS requests stats_p_notice=yes; # See a NOTICE when a user issues a LINKS command links_notice=no; # Links Delay determines the time between updates of the user LINKS # file. The default updates it every 5 minutes links_delay=300; # minimum seconds between uses of MOTD, INFO, HELP, LINKS, TRACE pace_wait=10; # The minimum number of seconds between uses of remote WHOIS before # the counter is reset. whois_wait=10; # Define the amount of time between KNOCK's. Once every 5 minutes # should be enough. knock_delay=300; # There are clients ignoring the FORCE_MOTD numeric. There is no # no point forcing MOTD on connecting clients IMO. Give them a short # NOTICE telling them they should read the motd, and leave it at that. short_motd=no; # Set to "yes" to disable flood control for opers. no_oper_flood=yes; # Enable G-lines glines=yes; # Set the time for how long G-lines will last. This example is # the old setting of 12 3600. Note that the new conf file # cannot CURRENTLY* perform the calculations for you. gline_time=43200; # Define the maximum amount of time a user can idle before # disconnecting them. Set to 0 to disable idletime=0; # Enable the server hiding feature. This prevents users from # finding out what server users are on, and hides IP's. Note # that some clients do not handle this well and may break. Blame # the packet kiddies for making this option almost a necessity. hide_server=no; # This is useful for leaf nodes and gateways. It keeps you from # connecting to too many places. It works by keeping you from # connecting to more than "n" nodes which you have C:blah::blah:6667 # lines for. # Note that any number of nodes can still connect to you. This only # limits the number that you actively reach out to connect to. # Leaf nodes are nodes which are on the edge of the tree. If you want # to have a backup link, then sometimes you end up connected to both # your primary and backup, routing traffic between them. To prevent # this, #define MAXIMUM_LINKS 1 and set up both primary and # secondary with C:blah::blah:6667 lines. THEY SHOULD NOT TRY TO # CONNECT TO YOU, YOU SHOULD CONNECT TO THEM. # Gateways such as the server which connects Australia to the US can # do a similar thing. Put the American nodes you want to connect to # in with C:blah::blah:6667 lines, and the Australian nodes with # C:blah::blah lines. Have the Americans put you in with C:blah::blah # lines. Then you will only connect to one of the Americans. # This value is only used if you don't have server classes defined, and # a server is in class 0 (the default class if none is set). #maximum_links=1; maximum_links=0; # Define these to the logfiles you want to use for user connections # (userlog), successful use of /oper (operlog), and failed use of # /oper (foperlog). Logging will stop if either these files do not # exist, or if they are not defined. fname_userlog = "logs/userlog"; fname_operlog = "logs/operlog"; fname_foperlog = "logs/foperlog"; # max_targets # only max_target targets can be privmsg'd / notice'd in a single # command. default is 4 if not defined here. setting to 0 will have # broken results (ie privmsg/notice won't work). max_targets = 4; # message_locale # default message locale to use if gettext() is enabled # Use "custom" for the (in)famous Hybrid custom messages. # Use "standard" for the compiled in defaults. message_locale = "custom"; # umodes that only opers can set. # the default should be fine, but you can add wallops and # servnotice if you want only opers to set +s / +w. # you can set others (invisible, callerid), but it's not # recommended. # Complete list: # +a - NONE - Admin status. OPER controls this # +b - bots - See bot and drone flooding notices # +c - cconn - Client connection/quit notice # +d - debug - See debugging notices # +f - full - See I: line full notices # +g - callerid - Server Side Ignore # +i - invisible - Not shown in NAMES or WHO unless you share a # a channel # +k - skill - See server generated KILL messages # +n - nchange - See client nick changes # +o - NONE - Operator status. OPER controls this # +r - rej - See rejected client notices # +s - servnotice - See general server notices # +u - unauth - See unauthorized client notices # +w - wallop - See server generated WALLOPS # +x - external - See remote server connection and split notices # +y - spy - See LINKS, STATS (if configured), TRACE notices # +z - operwall - See oper generated WALLOPS oper_only_umodes = bots, cconn, debug, full, skill, nchange, rej, spy, external, operwall; # vchans_oper_only # allow non-opers to use CJOIN? vchans_oper_only = NO; };

Sekarang simpan file sebagai //etc/ircd.confSelamat.. Anda sudah selesai mengedit file konfigurasi!

  1. Menguji server Anda

Setelah Anda menyelesaikan semua langkah yang dijelaskan di bagian 6 dan 7, Anda perlu mengetik cddan //bin/menjalankan ./ircdserver Anda. Sekarang buka klien irc pilihan Anda dan sambungkan ke ip, nama host, nama domain, apa pun… jika semuanya terhubung dengan lancar, ketik /oper <nickname set in operator block name="";> <password set in operator block password="";>

Jika Anda mendapatkan ircoppage, anggap ircd Anda berfungsi. Langkah terakhir untuk menguji server Anda, undang beberapa teman, jika mereka dapat bergabung dan membuat saluran dan ngobrol, dan membuat daftar saluran, dll., server Anda baik-baik saja.

  1. Perintah

Perintah Penting: (Ini mungkin tidak memiliki semua perintah di dunia, karena saya tidak memiliki daftarnya, dan mungkin tidak mengingat semuanya.. Anda mungkin ingin memeriksa www.irchelp.org untuk daftar lengkapnya)

Ed. catatan: Secara khusus, Anda harus membaca Panduan Operator IRC .

die (server name) = Shuts down the server [Operators] cjoin (channel name) = "Clones" a channel (creates a v-chan) [Everyone] rehash (parameter) = Rehashes the specified file. using /rehash by itself rehashes ircd.conf [Operators] connect (server specified in a connect block) = Connects your server to the one you specify [Operators] kill (nickname) (reason) = kills the client behind (nickname) for (reason) [Operators] wallop (text) = broadcasts (text) all over the network to operators and people who have wallop viewing enabled in there irc client [Operators] stats (parameter) = gives you status of (parameter) - different parameters include: [Everyone(Standard users can use some, others, Opers only)] ? - Server connection stats c - connection blocks i - i-lines h - h-lines l - l-lines k - k-lines x - gecos blocks y - y-lines z - more server stats restart (server name) = resets ALL connections to the server. [Operators] squit (server) :(reason) = disconnects (server) from the network. [Operators]

  1. Otomatisasi

Jika Anda ingin membuat server Anda mulai secara otomatis, cara dasar untuk melakukannya adalah dengan membuat crontab yang menunjuk ke skrip Perl yang memeriksa apakah server sedang berjalan dan memulainya jika tidak.

tab crontab:

0,5,10,15,20,25,30,35,40,45,50 perl // Githubissues.

  • Githubissues is a development platform for aggregating issues.