Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

3 страниц V   1 2 »

AMX Subnet Ban (AMXBans version)

, бан подсети, бан подсетей, subnet ban, скрипт бана подсетей
Статус пользователя Kirby Magicman
сообщение 14.1.2013, 13:04
Сообщение #1


Стаж: 13 лет

Сообщений: 1083
Благодарностей: 398
Полезность: 617

AMX Subnet Bans (AMXBans version) v.1.4.1


Автор: Lev
Адаптация серверной части: mazdan
Адаптация веб-части: Jungle, он же Kirby Magicman
Описание: блокирует подсеть игрока, тем самым прикрывает возможность зайти на сервер используя динамический ip-адрес.
Возможности:
Код
1. Бан как через веб-часть так и непосредственно на сервере
2. Интеграция с dproto - допуск на сервер разрешенных клиентов по выбору (Steam, SteamEmu, RevEmu, OldEmu, HLTV, SC2009, AVSMP)
3. "Вайт-лист", а именно допуск на сервер по nick+pass/steam/ip указанных через amxbans
4. Как sql так и no-sql версии (no-sql версия не тестировалась)
5. Возможность указать причину бана и вывести её в консоле игрока
6. Запись времени последнего входа с данной подсети и вывод в админ-панель amxbans
7. Автоматическое создание базы данных и нужных таблиц (данные коннекта те же что и в amxbans, менять ничего не надо, особенно название и префиксы таблиц amx_subnetbans и amx_players)
8. Логирование в файл (дополнительный дебаги можно включить, раскомментировавши соответсвующие строки)
9. Информирование о коннекте нового игрока и его страны (указываются отдельным кваром)
10. Допуск по флагам (указываются отдельным кваром)
11. Показ ссылки на скачивание клиента (ссылка так же указана в кваре)

Требования:
- Модуль GeoIpMax: geoipmax_amxx.dll (Windows) / geoipmax_amxx_i386.so (Linux) (если вы не хотите использовать GeoIP вы можете отключить через исходник);
- Если вы хотите использовать whois откройте TCP порт 43 с работающим DNS клиентом;
Комманды (по-дефолту флаг доступа к ним 'n')

Цитата
sb_help - выводит инфу о доступных коммандах;
sb_ban - бан игрока
Код
sb_ban:                               <steamID | nickname | user ID | IP> [allowed clients flags] [reason]
                                      <start IP> <end IP> [allowed clients flags] [reason]
                                      <subnet in CIDR format> [allowed clients flags] [reason]

sb_unban - розбан подсети
Код
sb_unban:                             <IP> [limit (default 1)]
                                      <start IP> <end IP> [exact match (default 1)]
                                      <subnet in CIDR format> [exact match (default 1)]

sb_list - выводит список забаненных подсетей по указанным параметрам
Код
sb_list:                              <IP> [limit (default 0)]
                                      <start IP> <end IP> [exact match (default 0)]
                                      <subnet in CIDR format> [exact match (default 0)]

sb_search - поиск подсети по указанной причине бана (дибильная штука, чесно говоря, поиск по причине бана... как-то бредово звучит)
Код
sb_search <reason>

sb_whois - делает запрос в базу на получение информации об игроке
Код
sb_whois <steamID | nickname | user ID | IP>

sb_stat - выводит инфу об игроках которые на сервере, а именно их user id, ник, IP, использованый протокол клиента, провайдер, страна, город, название подсети, дополнительная инфа с базы (последним двум нужно sb_use_whois_on_connect "1", из-за чего будет лагать при подключении игрока).


Квары:
Код
sb_def_allowed_clients "bdgh"    // Разрешенные клиенты, которые будут использованы в команде бана, если их не указать ("bdgh" = Native Steam, RevEmu, SC2009 и AVSMP)
sb_allowed_flags "ab"            // Флаги, имея которые игрок не проверяется
sb_downloadurl "http://aghl.ru/files/patches/updater.exe"    // Ссылка на скачивание нового клиента
sb_download_clienttype "d"        // Тип клиента, который указан в ссылке
sb_announce_connected "1"        // Вкл./Выкл. hud-сообщения о коннекте нового игрока
sb_use_whois_on_connect "0"        // Вкл./Выкл. использования whois при коннекте игрока
sb_use_whois_for_ban "1"        // Вкл./Выкл. использования whois для определения подсети при бане

Установка:
Код
Серверная часть:
1. Раскинуть все по папкам
2. Для неверующих проверить исходник на наличие бекдоров и шлюх и скомпилить его
3. Прописать в plugins.ini amxbans_subnets.amxx или amxbans_subnets_sql.amxx, в зависимости какой вы скомпилировали ([b]нельзя использовать сразу два плагина[/b])
4. Рестартнуть сервер и подождать пока плагин сделает нужные запросы в бд
Веб-часть:
1. В зависимости какой у вас amxbans выбрать файли из соответствующих папок и залить на веб-сервер с заменой (Файлы взяты с оригинальных дистрибутивов. Если у вас есть какие-то свои переделки кода (не диза, а именно кода) - делайте все сами и вручную)
2. Если запросы не исполнились, вручную отправьте запросы через phpmyadmin, или navicat, или что вы там используете. Запросы указаны ниже под спойлерами.

Дополнительно

Константы Dproto

Код
#define DP_AUTH_NONE            0    // flag    // "N/A" - slot is free
#define DP_AUTH_DPROTO          1    // a    // dproto
#define DP_AUTH_STEAM           2    // b    // Native Steam
#define DP_AUTH_STEAMEMU        3    // c    // SteamEmu
#define DP_AUTH_REVEMU          4    // d    // RevEmu
#define DP_AUTH_OLDREVEMU       5    // e    // Old RevEmu
#define DP_AUTH_HLTV            6    // f    // HLTV
#define DP_AUTH_SC2009          7    // g    // SteamClient2009
#define DP_AUTH_AVSMP           8    // h    // AVSMP

При бане указывать буквами, например, bcdh = Steam+SteamEmu+RevEmu+AVSMP.

SQL-запросы (если плагин сам не создал их)

- Создание базы данных - так как данные берутся из sql.ini (база amxbans) этот запрос не нужен:
Код
CREATE DATABASE IF NOT EXISTS `название бд` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

- Создание таблицы с подсетями:
Код
CREATE TABLE IF NOT EXISTS `amx_subnetbans` (
            `id` int(5) NOT NULL AUTO_INCREMENT,
            `startip` int(10) unsigned NOT NULL,
            `endip` int(10) unsigned NOT NULL,
            `allowedclients` tinyint(3) unsigned NOT NULL,
            `datetimebanned` int(10) unsigned NOT NULL,
            `datetimelastblocked` int(10) unsigned NOT NULL,
            `reason` varchar(64) NOT NULL,
            `comments` varchar(32) DEFAULT NULL,
            PRIMARY KEY (`id`),
            UNIQUE KEY `startip_endip` (`startip`,`endip`),
            KEY `startip` (`startip`),
            KEY `endip` (`endip`)
            ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COMMENT='Banned subnets' AUTO_INCREMENT=5;

- Создание таблицы с разрешенными игроками:
Код
CREATE TABLE IF NOT EXISTS `amx_players` (
            `id` int(11) NOT NULL AUTO_INCREMENT,
            `ident` varchar(32) NOT NULL,
            `password` varchar(32) NOT NULL,
            `type` int(1) NOT NULL,
            PRIMARY KEY (`id`)
            ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COMMENT='Allowed Players' AUTO_INCREMENT=3;

- Добавление прав администратора на просмотр и редактирование:
Код
ALTER TABLE amx_levels ADD COLUMN `subnets_view` enum('yes','no') DEFAULT 'no' AFTER `amxadmins_edit`
ALTER TABLE amx_levels ADD COLUMN `subnets_edit` enum('yes','no') DEFAULT 'no' AFTER `subnets_view`


Ченджлог

Код
        v0.6a [2009.10.28]
            Alpha release.
        v0.7a [2009.11.17]
            + Added: ini supporting version.
        v0.8a [2009.11.18]
            + Added: now store reason for a ban.
        v0.9a [2009.11.20]
            + Added: sb_whois command.
            + Added: sb_stat command.
            + Added: log commands usage.
        v1.0a [2009.11.20]
            + Added: announce about newly connected user.
            + Added: now store datetime subnet was banned, last datetime connection from subnet was blocked.
        v1.0b [2009.11.21]
            Beta release.
        v1.0b [2009.11.21]
            + Added: compile option: USING_GEOIP.
        v1.1b [2009.12.22]
            ! Fixed: ban stopped if sb_use_whois 0.
            + Added: now two cvars to control use of whois.
        v1.2b [2009.04.08]
            ! Fixed: sb_stat command now correctly working with new auth type (HLTV) and also with feature auth types.
        v1.3 [2011.02.15]
            Release vesion.
            + Added: support for new dproto authproviders: SC2009 and AVSMP. Recommended DB update: UPDATE `subnetbans` SET `allowedclients`=202 WHERE `allowedclients`=10
            ! Fixed: client now will be kicked if disconnect will not do work.
            ! Fixed: small potential bugs.
            ! Fixed: small texts corrections.
            ! Changed: default clients in CVAR sb_def_allowed_clients now are (used for ban): "bdgh".
            + Added: new CVAR sb_download_clienttype - used to show download URL if that client type is allowed.
            ! Fixed: ban command parameters parsing (in case client flags are empty).
            + Added: sb_search command - search for specified reason substring. Update DB with: ALTER TABLE `subnetbans` CHANGE `reason` `reason` VARCHAR( 64 ) CHARACTER SET latin COLLATE latin1_general_ci NOT NULL
        v1.4 [2011.02.23]
            + Added: CVAR sb_sql_create_db - use it to automatically create database and(or) table for bans.
            ! Fixed: little correction to help text.
        v1.4.1 [2013.01.14]
            + Added: Integration with AMXBans # Gm 1.6 and AMXBans 6.0.3.
            + Added: Some code into plugin.


Ссылка на скачку -> Прикрепленный файл  amxbans_subnets.rar ( 10,56 мегабайт ) Кол-во скачиваний: 281


Ах да, чтобы вас не кидало на страницу с банлистом после установки этого дополнения, перезайдите в amxbans под своей учётной записью.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 13 раз
   Цитировать сообщение
Статус пользователя mazdan
сообщение 14.1.2013, 13:07
Сообщение #2


Иконка группы

Стаж: 13 лет

Сообщений: 7566
Благодарностей: 5436
Полезность: 1305

я как обычно сделал костыльными методами - не ругайтесь :D


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Vitaliy
сообщение 14.1.2013, 17:47
Сообщение #3


Стаж: 12 лет

Сообщений: 2431
Благодарностей: 525
Полезность: 608

Меценат Меценат

С dop_ban.amxx от маздан. Есть смысл ставить? Будет ли работать


PHP / JS / Java / JavaFX
SVV Monitor Engine - Продажа мониторинга игровых серверов, подробнее: профиль / лс / контакты
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Kirby Magicman
сообщение 14.1.2013, 18:19
Сообщение #4


Стаж: 13 лет

Сообщений: 1083
Благодарностей: 398
Полезность: 617

Цитата(Pro(X-Gamer)Pro @ 14.1.2013, 18:47) *
С dop_ban.amxx от маздан. Есть смысл ставить? Будет ли работать

Это уже тебе решать. Плагины абсолютно разные и не имеют никакой связи. А так как любой бан можна обойти, если айпи динамический, думаю смысл есть.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 14.1.2013, 19:03
Сообщение #5


Иконка группы

Стаж: 13 лет

Сообщений: 7566
Благодарностей: 5436
Полезность: 1305

совершенно верно, плагины разные перекликаться не будут.


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Paster
сообщение 15.1.2013, 11:06
Сообщение #6


Стаж: 17 лет

Сообщений: 491
Благодарностей: 64
Полезность: 139

Тут такое дело!
Начал подключать плагин (правил в исходе amxbans_subnets_sql.sma) в БД amx_ban, в логах пишет:
Код
L 01/15/2013 - 10:25:29: [amxbans_subnets_sql.amxx] Ошибка при создании таблицы.
L 01/15/2013 - 10:25:29: [amxbans_subnets_sql.amxx] Ошибка при выполнении запроса!
L 01/15/2013 - 10:25:29: [amxbans_subnets_sql.amxx] Ошибка многопоточного запроса, точка кода: 9
L 01/15/2013 - 10:25:29: [amxbans_subnets_sql.amxx] Текст сообщения: Duplicate column name 'subnets_edit' (1060)


Далее выполнил sql запросы как написано выше:
создал таблицы amx_players и amx_subnetbans

В плагине выставил "sb_sql_create_db", "0" создавать БД уже не нужно.

Что касается вебки, все скопировал, в АЦ бан листа появились доп. функции на панельке, скрин прилагается.
Но при клике на Управление банами подсетей или Вайт-лист игроков идет сброс на ban_list.php

Тестово через скрин в консоле сервера добавил пару банов подсетки, в БД добавило, т.е. плаг БД видет, скрин прилагается.

Возможно дело в том, что я подсовую БД amx_ban и надо править все скрипты к примеру в admin_subnet.php
В настройках бан листа:
Код
    $config->db_host = "localhost";
    $config->db_user = "amx_ban";
    $config->db_pass = "password";
    $config->db_db = "amx_ban";
    $config->db_prefix = "amx";



Или что не так делаю?

Отредактировал: Paster, - 15.1.2013, 13:19
Прикрепленные файлы:
Прикрепленное изображение Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 15.1.2013, 11:38
Сообщение #7


Иконка группы

Стаж: 13 лет

Сообщений: 7566
Благодарностей: 5436
Полезность: 1305

запросы нужно там менять, примерно так
Код
"ALTER TABLE amx_levels ADD COLUMN `subnets_view` enum('yes','no') DEFAULT 'no' AFTER `amxadmins_edit`"

на
Код
"IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'amx_levels' AND COLUMN_NAME = 'subnets_view') BEGIN  ALTER TABLE amx_levels ADD COLUMN `subnets_view` enum('yes','no') DEFAULT 'no' AFTER `amxadmins_edit` END"

и второй так же


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Paster
сообщение 15.1.2013, 12:16
Сообщение #8


Стаж: 17 лет

Сообщений: 491
Благодарностей: 64
Полезность: 139

В базе данных, в таблице уровней для 1го уровня стоит так, см. скрин
Но все равно скидывает на бан лист при клике sad.gif
Прикрепленные файлы:
Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Kirby Magicman
сообщение 15.1.2013, 13:00
Сообщение #9


Стаж: 13 лет

Сообщений: 1083
Благодарностей: 398
Полезность: 617

Ты права на доступ к подсетям для своего левела поставил (админка-веб сайт-редакт левелов)? И зачем ты редактируешь файл admin_subnet.php? Исходнить трогать не надо. Он берет данные коннекта из sql.ini

Отредактировал: Kirby Magicman, - 15.1.2013, 13:06
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Paster
сообщение 15.1.2013, 13:09
Сообщение #10


Стаж: 17 лет

Сообщений: 491
Благодарностей: 64
Полезность: 139

Цитата(Kirby Magicman @ 15.1.2013, 13:00) *
Ты права на доступ к подсетям для своего левела поставил (админка-веб сайт-редакт левелов)?

Да для 1-го уровня, в к-м нахожусь...

Цитата(Kirby Magicman @ 15.1.2013, 13:00) *
Ты права на доступ к подсетям для своего левела поставил (админка-веб сайт-редакт левелов)? И зачем ты редактируешь файл admin_subnet.php? Исходнить трогать не надо. Он берет данные коннекта из sql.ini

У меня просто данные БД не с sql.cfg считываются...

Отредактировал: Paster, - 15.1.2013, 13:07
Прикрепленные файлы:
Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Kirby Magicman
сообщение 15.1.2013, 13:09
Сообщение #11


Стаж: 13 лет

Сообщений: 1083
Благодарностей: 398
Полезность: 617

Цитата(Paster @ 15.1.2013, 13:06) *
Да для 1-го уровня, в к-м нахожусь...

доберусь до своего пк, посмотрю что там
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Paster
сообщение 15.1.2013, 17:10
Сообщение #12


Стаж: 17 лет

Сообщений: 491
Благодарностей: 64
Полезность: 139

Цитата(Kirby Magicman @ 15.1.2013, 13:09) *
доберусь до своего пк, посмотрю что там
Да я тестировал на бане GM
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Kirby Magicman
сообщение 15.1.2013, 19:05
Сообщение #13


Стаж: 13 лет

Сообщений: 1083
Благодарностей: 398
Полезность: 617

Цитата(Paster @ 15.1.2013, 17:10) *
Да я тестировал на бане GM

Скинь сюда свой admin_ul.tpl
и кинь мне данные доступа по фтп и админки банса в ЛС

Отредактировал: Kirby Magicman, - 16.1.2013, 16:25
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Paster
сообщение 16.1.2013, 15:58
Сообщение #14


Стаж: 17 лет

Сообщений: 491
Благодарностей: 64
Полезность: 139

Цитата(Kirby Magicman @ 15.1.2013, 19:05) *
Скинь сюда свой admin_ms.tpl
и кинь мне данные доступа по фтп и админки банса в ЛС



Данные сейчас вышлю!
Прикрепленные файлы:
Прикрепленный файл  admin_ms.zip ( 1,42 килобайт ) Кол-во скачиваний: 6
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Kirby Magicman
сообщение 16.1.2013, 16:20
Сообщение #15


Стаж: 13 лет

Сообщений: 1083
Благодарностей: 398
Полезность: 617

Цитата(Paster @ 16.1.2013, 15:58) *
Данные сейчас вышлю!

забыл сказать, перезайди в админку под своим логином и прочитай ЛС

Отредактировал: Kirby Magicman, - 16.1.2013, 16:26
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Paster
сообщение 16.1.2013, 16:59
Сообщение #16


Стаж: 17 лет

Сообщений: 491
Благодарностей: 64
Полезность: 139

Цитата(Kirby Magicman @ 16.1.2013, 16:20) *
забыл сказать, перезайди в админку под своим логином и прочитай ЛС

Вот!
Прикрепленные файлы:
Прикрепленный файл  admin_ul.zip ( 1,18 килобайт ) Кол-во скачиваний: 6
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Paster
сообщение 16.1.2013, 17:41
Сообщение #17


Стаж: 17 лет

Сообщений: 491
Благодарностей: 64
Полезность: 139

Цитата(Kirby Magicman @ 16.1.2013, 16:20) *
забыл сказать, перезайди в админку под своим логином и прочитай ЛС

Ну что смотрел?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Kirby Magicman
сообщение 16.1.2013, 18:04
Сообщение #18


Стаж: 13 лет

Сообщений: 1083
Благодарностей: 398
Полезность: 617

Цитата(Paster @ 16.1.2013, 17:41) *
Ну что смотрел?

В admin_ul.tpl после
Код
<td>{html_options name=amxadmins_edit values=$choose1 output=$output1|lang selected=$levels.amxadmins_edit}</td>

добавь
Код
<td>{html_options name=subnets_view values=$choose1 output=$output1|lang selected=$levels.subnets_view}</td>
                        <td>{html_options name=subnets_edit values=$choose1 output=$output1|lang selected=$levels.subnets_edit}</td>


Отредактировал: Kirby Magicman, - 16.1.2013, 18:19
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Paster
сообщение 16.1.2013, 20:29
Сообщение #19


Стаж: 17 лет

Сообщений: 491
Благодарностей: 64
Полезность: 139

Цитата(Kirby Magicman @ 16.1.2013, 18:04) *
В admin_ul.tpl после
Код
<td>{html_options name=amxadmins_edit values=$choose1 output=$output1|lang selected=$levels.amxadmins_edit}</td>

добавь
Код
<td>{html_options name=subnets_view values=$choose1 output=$output1|lang selected=$levels.subnets_view}</td>
                        <td>{html_options name=subnets_edit values=$choose1 output=$output1|lang selected=$levels.subnets_edit}</td>



Все так же сбрасывает на бан лист sad.gif
Помогай )
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Kirby Magicman
сообщение 16.1.2013, 22:00
Сообщение #20


Стаж: 13 лет

Сообщений: 1083
Благодарностей: 398
Полезность: 617

Цитата(Paster @ 16.1.2013, 20:29) *
Все так же сбрасывает на бан лист sad.gif
Помогай )

Исправил. Проверяй.
P.S. и диз там не забудь подпилить, а то чуток не красиво вышло.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
3 страниц V   1 2 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: