> Hallo. > Somebody (XXX from X.X.X.X) tried attack (through my MUD)server, > which runs my mud. > He(she) opens 300 connections (only 300, because I had max_players = 300) > to Mud port. > Attack failed, but he(she) reached max_players limit > and 'normal' players could not play. > > Here is my solution and I want to know, what do You think > about it: > (running bpl19 on Linux) > > 1. only 50 players together > in config.c changed max_players = 50 > (on my mud max 10 players play together) Why? In the next few lines, you say that you want to limit multiple logins from one ip... > > > 2. only 5 players from one site (one IP address) > > in comm.c: in new_descriptor(): > > /* determine if the site is banned */ > if (isbanned(newd->host) == BAN_ALL) { > CLOSE_SOCKET(desc); > sprintf(buf2, "Connection attempt denied from [%s]", newd->host); > mudlog(buf2, CMP, LVL_GOD, TRUE); > free(newd); > return (0); > } > > +/* ADDED, (PROXIES - SORRY) */ > +if (check_players_per_site(newd->host)) { > + CLOSE_SOCKET(desc); > + sprintf(buf2, "Too many players from [%s]", newd->host); > + mudlog(buf2, CMP, LVL_GOD, TRUE); > + free(newd); > + return (0); > +} > I believe there is a multi-limit snippet on the site... It works great I have it in my mud too. > and (for example) in ban.c > > +/* ADDED */ > +extern int max_plrs_per_site; /*from config.c, = 5 */ > + > +int check_players_per_site(char *hostname) > +{ > + struct descriptor_data *d; > + int num = 0; > + > + for (d = descriptor_list; d; d = d->next) { > + if (d->host && *d->host) { > + if (strstr(hostname, d->host)) { > + num++; > + if (num >= max_plrs_per_site) return 1; > + } > + } > + } > + > + return 0; > +} > > > 3. kick out players from menu (after 1 hour) Nice idea, but what if someone like me (a student) goes off to school, leaves his connection on. The MUD crashes, and he has a client with auto-login. The char will be stuck in the menu untill he actually returns from school (6 hours later). -- +---------------------------------------------------------------+ | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html | | Newbie List: http://groups.yahoo.com/group/circle-newbies/ | +---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 06/25/03 PDT