myDC.ru

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

 
История благодарностей участнику ShadoWx. Спасибо сказали: 60
Дата поста: В теме: За сообщение: Спасибо сказали:
29.11.2012, 18:43 [AddKey.lua] Покраска пользователя
Устанавливает ключик пользователю на хабе.
Автор: Alexey
Версия: ver. 1.0
Название: AddKey
Хаб софт: RusHub 2.3.10

Описание: Администратор может установить ключик (bInOpList) любому пользователю хаба до переподключения (текущая сессия).
Загрузить: [attachment=6577:addkey.lua]
CrazyKiller
18.7.2012, 19:05 Greylink DC++
мне кажется что вот это поделие - http://greylink-dc.ru/
Lamo
3.3.2012, 16:31 Defend Hub, RusHub edition
Полностью автоматическая защита хаба от активности ботов
Работает прекрасно! surrender.gif
Enyby
3.3.2012, 11:44 Defend Hub, RusHub edition
Полностью автоматическая защита хаба от активности ботов
[2012-03-03 03:59:01] DefendHub_RusHub.lua:12: attempt to index field '?' (a nil value)

adore.gif
Enyby
2.3.2012, 6:29 Defend Chat, RusHub edition
Полностью автоматическая защита чата от спама
Протестировал, работает прекрасно.
Enyby
1.3.2012, 9:17 Defend PM, RusHub edition
Полностью автоматическая защита ЛС от спама
Тест скрипта прошел успешно surrender.gif Благодарю.
Enyby
20.2.2012, 22:56 Блокировка тегов
Некоторые администраторы наверное хотели отключить отсылку описания, тегов итд ..

В этом примере привожу как это реализовать:
Код
function OnMyINFO(UID, sData)
  UID.sDesc = ""
  UID.sEmail = ""
end


Тут мы запретили отправку Строки описания и электронной почты в клиенте.

Дополнительные строки (теги) для отключения:
Цитата
sDesc - описание пользователя
sTag - тэг пользователя
sClientName - клиент пользователя
sClientVersion - версия клиента пользователя
sMode - режим пользователя
sFraction - ограничитель F
sConn - тип соединения пользователя
sEmail - email адрес пользователя
sSupports - поддреживаемые пользователем характеристики
sVersion - версия протокола
sIP - IP адрес пользователя
sIPConn - IP адрес, по которому пользователь соединялся
sMacAddress - mac адрес пользователя


Успехов embarrassed.gif
CrazyKiller, AfLc, dj_crazy_joker
14.2.2012, 21:43 Аналог в verlihub
как-то у меня он игнорирует эти значения ...
хотя народ в списке стал меньше дергаться ..но ежели я вручную переподключаюсь то он пускает меня ... я поставил 1 конект в 30,000000 (т.е. 30 сек)
p.s. никаких сообщения от хаба не замечал при переподключении ..
Setuper
2.2.2012, 8:03 Хаблист RusHub
сделал ссылки и добавил страничку о RusHub'е
Otshelnik-Fm, dj_crazy_joker
1.2.2012, 20:43 Хаблист RusHub
Предисловие:
После долго общения с русхабом решил создать хаблист, содержащий только сервера, работающие под его управлением.
Так вот embarrassed.gif , у кого имеются рабочие хабы под управлением RusHub, пишите в этой теме...

Условия добавления:
Допускаются только хабы, имеющий доступ к сети Интернет.

Адрес хаблиста:
http://hubs.rushub.org/ -- Основной адрес
http://hublist.godc.ru/ -- Альтернативный адрес
Setuper, KT315, CrazyKiller, Saymon21, dj_crazy_joker
1.2.2012, 16:59 [RusHub] Использование posix capabilities
Linux ONLY
С версии 2.3.6 "RusHub" поддерживает возможность использования posix capabilities.
Выражаясь простым языком - можно запускать хаб на 411 порту и не использовать перенаправления при помощи IPTABLES.

Шаг 1.
В этой теме мы с вами скомпилируем хаб, поддерживающий эту возможность.
Нам понадобятся следующие пакеты в системе
:
1. libcap-dev
2. autotools-dev
3. automake
4. libtinyxml-dev

Все эти пакеты необходимо установить при помощи команды:
Код
sudo apt-get install название_пакета

Если у вас нет установленного хаба, то загружаем его из svn:
Код
svn co https://rushub.svn.sourceforge.net/svnroot/rushub/trunk/ /локальный/путь/куда/загружаем/


Далее переходим в папку с хабом, в моем случае это:
/home/shadowx/rushub/rushub/

Шаг 2.
Вводим команды по очереди:
Установка хаба
1.
Код
autoreconf -i

2.
Код
./configure --enable-caps

3.
Код
make

4.
Код
make clean

5. make

На 5 этапе начнется сборка хаба

Шаг 3.
Теперь нам необходимо добавить 2 строки в файл настроек RusHub'а:
Код
<Item Name="sUserName">shadowx</Item>
<Item Name="sGroupName">shadowx</Item>

где shadowx - имя пользователя от кого мы запускаем хаб.

Теперь в /etc/init.d/rushub записываем следующее содержимое:
Код для управления
Код
#!/bin/sh

### BEGIN INIT INFO
# Provides:          rushub
# Required-Start:    $network
# Required-Stop:     $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by rushub.
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

NAME="RusHub"
PATH_DAEMON="/home/shadowx/rushub_bin"
DAEMON="$PATH_DAEMON/$NAME"
PATH_DAEMON_CFG="$PATH_DAEMON/RusHub.xml"
PIDF="$PATH_DAEMON/rushub.pid"

ARGS="-c $PATH_DAEMON_CFG"

USER="root"

start() {
    echo -n "Запуск $NAME: "
    start-stop-daemon --start --chuid $USER --make-pidfile "$PIDF" --pidfile "$PIDF" --name $NAME --background --startas $DAEMON -- $ARGS
    echo "готово."
}
stop() {
    echo -n "Остановка $NAME: "
    start-stop-daemon --chuid $USER --stop --pidfile "$PIDF" --name $NAME --retry=TERM/5/KILL/10
    rm "$PIDF"
    echo "готово."
}
restart() {
    stop
    sleep 2
    start
}

if [ ! -x "$DAEMON" ]
then
   echo "отсутствует файл для запуска $DAEMON"
   exit 0
fi

case "$1" in
    start)
        start
;;
    stop)
        stop
;;
    restart)
        restart
;;
    status)
        if [ -f "$PIDF" ];
        then
            PID=$(cat $PIDF)
            if [ `ps auwx|grep $NAME|grep $PID|grep -v -c grep` = 1 ]
            then
                echo "процесс $NAME работает [pid: $PID]."
                exit 0
            fi
            echo "процесс $NAME не запущен."
            exit 3
        fi
        echo "процесс $NAME не запущен."
        exit 3
;;
    *)
        echo "Использование {start|status|stop|restart}"
        exit 1
;;
esac
exit 0

Шаг 4.
Теперь необходимо накатить небольшой патч на lua-плагин, чтобы хаб запустился после установки:
[attachment=6319:shared_tinyxml.zip]

Как накатывать:
1. перейти в папку с lua-плагином cd rushub/lua_plugin
2. patch -p4 < shared_tinyxml.patch

Шаг 5.

1. Установить порт для хаба в настройках 411
2. sudo service rushub restart

У меня все запустилось успешно.
Спасибо mariner'у за наставления на пусть истинный surrender.gif
CrazyKiller
26.1.2012, 16:34 RusHub: Запрет неразрывного пробела
rushub
Автор: Setuper
Название: Запрет неразрывного пробела в чате или ПМ.
Описание:
Этот символ не распознается хаб-клиентами и им могут воспользоваться спамеры для рассылки любой рекламы, обхода антимата и пр.
Идею буквально вчера предложил Andrean, когда проверял мои RegEx'ы.

Если не хотите перегружать хаб скриптами, то просто добавьте этот символ в антирекламу.
Символ неразрывного переноса виден в блокноте, просто скопируйте и поставьте этот символ в вашу антирекламу.

Код
local sBot = Config.sHubBot
    
function OnChat(UID, sData)
  if UID.iProfile == -1 or UID.iProfile == 3 then
    local sText = sData:sub(#UID.sNick + 4, -1)
    if sText:find"\160" then
      Core.SendToUser(UID, "*** Использование неразрывного пробела в тексте запрещено!", sBot)
      return true
    end
  end
end
    
function OnTo(UID, sData)
  if UID.iProfile == -1 or UID.iProfile == 3 then
    local sTo, sText = sData:match("^%$To:%s+(%S+)%s+From:%s+(.*)")
    if sText:find"\160" then
      Core.SendToUser(UID, "*** Использование неразрывного пробела в тексте запрещено!", sBot, sTo)
      return true
    end
  end
end


P.S. Надеюсь вместе, мы шаг за шагом увеличим функционал нашего хаб-сервера .. Спасибо Илье за правку черновой копии скрипта.
AfLc
25.1.2012, 14:19 NetInDescription
Добавляет сеть в описание пользователя
поддерживаю, поигрался, но так и не получилось adore.gif

как мне пояснили необходимо куда-то записывать строку MyInfo потом из нее вычленять тег определенный и помещать ...

еще проблемка с тегом от Eiskalt'а v 2.2.4
тег:
Код
    Hub:    [Incoming][213.141.136.70:411]         $MyINFO $ALL FVD  <EiskaltDC++  V:2.2.4,M:A,H:1/1/1,S:3>$ $20$$34191016562$


шаблон:
Код
    local sFirstHalf, sSecondHalf = UID.sMyINFO:match("^($MyINFO $ALL %S+ )(.*<.*)$")


все попадает ... но от этого клиента все теги идут ...
мамин_парень
25.1.2012, 1:38 Locker.lua
Блокировка чат и привата для не зарегистрированных
Авторы: сожители MyDC.RU
Название: Locker.lua

Описание:
Скрипт позволяет блокировать чат и личные сообщения для не зарегистрированных пользователей, уведомляя их об этом...

Код
local sBot = Config.sHubBot
local sMsg = "*** ОШИБКА!!! Вы не зарегистрированы на хабе."


function OnChat(UID, sData)
  sData = sData:match"%b<> (.*)"
  if UID.iProfile == -1  then
      Core.SendToUser(UID, sMsg, sBot)
      return true
  end
end


function OnTo(UID,sData)
  local sTo,sFrom =  sData:match"^%$To:%s+(%S+)%s+From:%s+(%S+)"
  if UID.iProfile == -1  then
      Core.SendToUser(UID, sMsg, sBot, sTo)
      return true
  end
end


[attachment=6298:locker.lua]
CrazyKiller, mod, AfLc
23.9.2011, 8:44 Скрипт MOTD
Автор: Saymon
Установка: создать в корне (где лежит бинарник) папку texts внутри которой файлик - motd.txt

Сам скрипт:
Раскрывающийся текст
Код
_TRACEBACK=debug.traceback
tProfiles = {
    [0]="Администратор",
    [1]="Модератор",
    [2]="VIP",
    [3]="Юзер",
    [-1]="Гость"
}


function OnStartup()
    sHelloMsg = LoadText(Core.sMainDir.."texts/motd.txt")
end
function LoadText(sFileWay)
    local sMessage = ""
    local sFile = io.open(sFileWay, "r" )
    if sFile then
        sMessage = sFile:read("*all")
        sFile:close()
    end
    return sMessage
end
function DoShareUnits(iSize)
    local tShareUnits = {"Б", "КБ", "МБ", "ГБ", "ТБ", "ПБ"}
    local iTableSize = table.maxn(tShareUnits)
    local iSize = tonumber(iSize)
    local sUnits = ""
    for iTablePos = 1, iTableSize do
        if iSize < 1024 or iTablePos == iTableSize then
            sUnits = tShareUnits[iTablePos]
            break
        else
            iSize = iSize / 1024
        end
    end
    local sSize = string.format("%0.2f %s", iSize, sUnits)
    local sSize = string.gsub(sSize, "%.", ",")
    local _,_, s1stChar, s2ndChar = string.find(sSize, "%d+,(%d)(%d)")
    local s1stChar, s2ndChar = tonumber(s1stChar), tonumber(s2ndChar)
    if s2ndChar == 0 then
        sSize = string.gsub(sSize, ","..s1stChar..s2ndChar, ","..s1stChar)
        if s1stChar == 0 then
            sSize = string.gsub(sSize, ","..s1stChar, "")
        end
    end
    return sSize
end

function OnUserEnter(tUser)
local sHelloMsg = sHelloMsg:gsub("%[(%S+)%]", {
        onlineusers = Core.GetUsersCount(),
        hubshare = DoShareUnits(Core.GetTotalShare()),
        nick = tUser.sNick,
        ip = tUser.sIP,
        profile = tProfiles[tUser.iProfile],
        port = tUser.iPortConn,
        realport = tUser.iPort,
        mac = tUser.sMacAddress,
        --[[description = tUser.sDescription,
        tag = tUser.sTag,
        client = tUser.sClient,
        clientversion = tUser.sClientVersion,
        mode = tUser.sMode,
        normalhubs = tUser.iNormalHubs,
        reghubs = tUser.iRegHubs,
        ophubs = tUser.iOpHubs,
        hubs = tUser.iHubs,
        slots = tUser.iSlots,
        llimit = tUser.iLlimit,]]
    })
    Core.SendToUser(tUser,sHelloMsg,"Network")
end
CrazyKiller, dj_crazy_joker, graforlof
15.9.2011, 21:51 [FlyLink] Партнерская сборка
Данная сборка предназначена только для проекта MyDC и его партенров:

Загрузка сборки:
[attachment=6062:setup.zip]
Список партнеров в сборке:


Обзор инсталятора(Некоторые этапы установки):
Скриншоты






После завершения процесса установки будет запущен мастер "Первого запуска" для новичков:
Скриншоты






Созданные сборки (Заказы):
TriolanEdition: для CrazyKiller

[attachment=6053:2011_09_...23_scrot.png]
[attachment=6052:TriolanEdition.exe.zip]



Цитата
*** Обновил версию, добавил хаб максимума
*** По умолчанию все хабы выключены
*** Поправил хаб Ксана


*** Вопросы по добавлению ваших хабов принимаются от администраторов со стажем на форуме (mydc.ru) более 2х лет.
*** Вопросы по созданию "приватных" подобных сборок пишите в личном сообщении
CrazyKiller, PSIX
3.9.2011, 21:06 Настройка iptables
Правила iptables
Pastebin: iptables

Установка фаервола:
Код
sudo apt-get install iptables


Установка правил:
1. Необходимо разместить скрипт в /etc/network/if-pre-up.d/iptables, где "iptables" название нашего скрипта.
2. Задать права на исполнение: sudo chmod +x /etc/network/if-pre-up.d/iptables
3. Сверить все настройки, включая сетевые интерфейсы по команде - sudo ifconfig

От себя:
1. Помните все значения подбираются индивидуально, тут лишь даны усредненные параметры, включая базовый набор служб.

Набор базовых правил для iptables:
/etc/network/if-pre-up.d/iptables
Код
#! /bin/sh

IPTABLES="/sbin/iptables"
####################################
#В этом блоке описываем сетевые интерфейсы для удобного применения в последующих правилах
#установите в соответствии с вашими, подробнее по команде sudo ifconfig
internet="ppp0"
external="eth0"
####################################
$IPTABLES -F
$IPTABLES -X
####################################
#Для отлова пакетов можно включить логирование, для активации уберите символ # в начале строки
#$IPTABLES -A INPUT -p tcp -j LOG --log-prefix "iptables: INPUT tcp packets "
#$IPTABLES -A INPUT -p udp -j LOG --log-prefix "iptables: INPUT udp packets "
####################################

####################################
# Разрешаем доступ по интерфесу обратной петли
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
####################################

####################################
# C себя разрешаем всё
$IPTABLES -A OUTPUT  -m state --state NEW  -j ACCEPT
####################################

####################################
# Позволяем входящие и исходящие соединения, инициированные уже установленными соединениями
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
####################################

####################################
# Разрешаем прохождение DHCP запросов через iptables.
$IPTABLES -A INPUT -p udp -m udp --dport 68 --sport 67 -j ACCEPT
$IPTABLES -A OUTPUT -p udp -m udp --dport 67 --sport 68 -j ACCEPT
####################################

####################################
# какие_то важные пакеты
$IPTABLES -I INPUT -p ah -j ACCEPT
$IPTABLES -I INPUT -p esp -j ACCEPT
####################################


########################################################################
#                           Защита                                     #
########################################################################

####################################
# Дропаем все с ошибками
$IPTABLES -A INPUT -m state --state INVALID -j DROP
$IPTABLES -A FORWARD -m state --state INVALID -j DROP
####################################

####################################
# порт сканнеры
$IPTABLES -A INPUT -m state --state NEW -p tcp --tcp-flags ALL ALL -j DROP
$IPTABLES -A INPUT -m state --state NEW -p tcp --tcp-flags ALL NONE -j DROP
####################################

####################################
# Дропаем все icmp
$IPTABLES -A INPUT -p icmp -j DROP
####################################

####################################
# антиспуффинг
$IPTABLES -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

$IPTABLES -N SYN_FLOOD
$IPTABLES -A INPUT -p tcp --syn -j SYN_FLOOD
$IPTABLES -A SYN_FLOOD -m limit --limit 2/s --limit-burst 6 -j RETURN
$IPTABLES -A SYN_FLOOD -j DROP
####################################

####################################
# Блокируем все попытки входящих TCP-соединений не SYN-пакетами (либо ошибка, либо атака)
$IPTABLES -I INPUT -m conntrack --ctstate NEW -p tcp ! --syn -j DROP
####################################

####################################
#Вводим ограничения для новых подключений по SSH (не больше 4 в минуту)
#Если пользуетесь ssh для улучшения безопасности измените дефолтный порт на отличный от 22*
####################################
$IPTABLES -A INPUT -i $external -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
####################################


######################################################
#Настройки на выбор, если надо - раскомментируйте и поправьте под себя
######################################################
# Вводим ограничения для новых подключений по WWW (не больше 50 соедининий с одного ip)"
#$IPTABLES -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP
####################################

####################################
# Вводим ограничения для новых подключений по WWW (не более 5 в секунду)
#$IPTABLES -A INPUT -p tcp --dport 80 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#$IPTABLES -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW -m limit --limit 5/sec --limit-burst 5 -j ACCEPT
####################################

####################################
# Вводим ограничения для новых подключений по FTP (не больше 50 соедининий с одного ip)
#$IPTABLES -A INPUT -p tcp --dport 21 -m connlimit --connlimit-above 50 -j DROP
####################################

####################################
# Вводим ограничения для новых подключений по FTP (не больше 5 в секунду)
#$IPTABLES -A INPUT -m conntrack --ctstate NEW -p tcp --dport 21 -m hashlimit --hashlimit-upto 5/sec --hashlimit-mode srcip --hashlimit-name ftphash -j ACCEPT
####################################

####################################
# Настройки для Хаба
# дропаем, если с ip новых соединений больше чем 10
#$IPTABLES -A INPUT -p tcp -m multiport --dports 411,4111 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#$IPTABLES -A INPUT -p tcp -m multiport --dports 411,4111 -m conntrack --ctstate NEW -m limit --limit 10/min --limit-burst 10 -j ACCEPT
# дропаем если с ip коннектов больше чем 20
#$IPTABLES -A INPUT -p tcp -m multiport --dports 411,4111 -m connlimit --connlimit-above 20 -j REJECT
#$IPTABLES -A INPUT -p udp -m multiport --dports 411,4111 -m connlimit --connlimit-above 20 -j REJECT


###############################################################
#~ #таблица черного списка для dc++| замените путь к файлу на корректный в вашей системе
# В нем в каждой новой будем указывать черные ip-адреса, например:
#1.1.1.1
#2.2.2.2
#3.3.3.3
#в файле допускаются комментарии
###############################################################
####################################
#BLOCKDB="/home/ftp/www/nemesis/iptables/ip.blocked"
#IPS=$(grep -Ev "^#" $BLOCKDB)
#for i in $IPS
#do
    # $IPTABLES -A INPUT -p tcp -i $external -s $i -m multiport --dports 411,4111 -j DROP
    # $IPTABLES -A INPUT -p udp -i $external -s $i -m multiport --dports 411,4111 -j DROP
#done

#вечный бан по ip для  всех соединений к серверу
#баним особо наглых
#BLOCKDB="/home/ftp/www/nemesis/iptables/ip-all.blocked"
#IPS=$(grep -Ev "^#" $BLOCKDB)
#for i in $IPS
#do
        #~ $IPTABLES -A INPUT -p tcp -i $external -s $i -j DROP
        #~ $IPTABLES -A INPUT -p udp -i $external -s $i -j DROP
#~ done
####################################


####################################
#дропаем запрос имен netbios
$IPTABLES -A INPUT -p udp ! -i $internet --dport 137:138 -j DROP
####################################

####################################
#дропаем мультикаст
$IPTABLES -A INPUT -d 224.0.0.1/32 -j DROP
$IPTABLES -A OUTPUT -d 224.0.0.1/32 -j DROP
$IPTABLES -A FORWARD -d 224.0.0.1/32 -j DROP
####################################

########################################################################
#                       ОБЩЕЕ ДЛЯ ВСЕХ                                 #
########################################################################
#Разрешаем доступ к ftp
# FTP
$IPTABLES -A INPUT -m conntrack --ctstate NEW -p tcp --sport 1024:65535 --dport 20:21 -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport 1024:65535 --dport 49000:49500 -j ACCEPT
####################################

####################################
#Разрешаем доступ к веб-серверу
# WWW
$IPTABLES -A INPUT -p tcp -m tcp -m multiport --dports 80,443 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -m tcp -m multiport --sports 80,443 -j ACCEPT
####################################

####################################
# Доступ к Хаб-серверу
$IPTABLES -A INPUT -p tcp -m tcp -m multiport --dports 411,4111 -j ACCEPT
$IPTABLES -A INPUT -p udp -m udp -m multiport --dports 411,4111 -j ACCEPT
####################################


########################################################################
#                           ВНЕШКА                                     #
########################################################################

####################################
# Доступ к DNS-серверам
$IPTABLES -A OUTPUT -p tcp -m tcp -o $internet --dport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p udp -m udp -o $internet --dport 53 -j ACCEPT
####################################

####################################
#Добавляем правила по умолчанию
$IPTABLES -A INPUT -i $internet -j DROP
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
####################################
ustas, CrazyKiller, Saymon21, DEN 007
27.8.2011, 20:23 Скрипт лимитер
ограничение соединений по ip и символов в чате
Автор: Alexey
Попросил Лешу помочь с написанием этого скрипта, вот что получилось в итоге. Уверен начинающим пригодится т.к. лимитов на русхабе по умолчанию нет.
Есть для общего чата в конфиг-файле, но там пользователя просто отключают.

Код
local nMaxUsers = 1 -- максимальное разрешённое число пользователей с одного IP
----------------------------------------------------------------
function OnUserConnected(UID)
    tSameIPs = Core.GetUsers(UID.sIP)
    if tSameIPs and #tSameIPs >= nMaxUsers then
        local sMsg = "\n       [::] В доступе отказано: на хабе уже есть пользователи с этого IP-адреса: "
        for i,v in ipairs(tSameIPs) do
            sMsg = sMsg..v.sNick..", "
        end
        sMsg = sMsg:sub(1, -3)..".\n       [::]  Множественные подключения к хабу с одного IP-адреса запрещены."
        Core.SendToUser(UID, sMsg, "[OP]Домовёнок")
        Core.Disconnect(UID)
    end
end

local nMaxSymbols = 350 -- максимальное разрешённое число символов в гл.чате
----------------------------------------------------------------

function OnChat(UID, sData)
    local nMaxSymbols = #UID.sNick + nMaxSymbols + 3
    if #sData > nMaxSymbols then
        Core.SendToAll(sData:sub(1, nMaxSymbols).."<...>")
        return true
    end
end
Alexey, DEN 007, AfLc
26.8.2011, 18:35 [FreeBsd] Установка Lua 5.1.4 + библиотеки
И так, уважаемые пользователи, а именно нуждающиеся админы FreeBSD.
Пишу вводную часть по настройкам и компиляции основных библиотек необходимых для работы скриптов на RusHub'е.
Перед началом этой статьи хотелось бы выразить отдельую благодарность Mariner'у за помощь в написании этой статьи.


Установка Lua 5.1.4:
LUA-5.1.4
Переходим в директорию установки, например /usr/rushub/:
Код
cd /usr/rushub/


Скачиваем пакет Lua:
Код
wget "http://www.lua.org/ftp/lua-5.1.4.tar.gz"


Распакуем полученный архив lua-5.1.4.tar.gz:
Код
tar -xf lua-5.1.4.tar.gz


Перейдем в папку lua-5.1.4:
Код
cd lua-5.1.4


Теперь начинается самое интересное, необходимо довести Makefile до ума.

Начинаем редактировать файл Makefile в директории lua-5.1.4:

Находим 46 строку с содержимым:
Код
TO_LIB= liblua.a

и меняем на:
Код
TO_LIB= liblua.a liblua.so


Теперь заменяем Makefile в директории ./lua-5.1.4/src/:
http://pastebin.com/pMwF3imE или [attachment=6032:lua_5.1.4.rar]

После всех манипуляций переходим в ./lua-5.1.4 и начинаем сборку lua:
Код
gmake freebsd
gmake install


Установка LuaSocket
LuaSocket-2.0.2
Переходим в директорию установки, например /usr/rushub/:
Код
cd /usr/rushub/


Скачиваем пакет LuaSocket:
Код
wget "http://luaforge.net/frs/download.php/2664/luasocket-2.0.2.tar.gz"



Распакуем полученный архив luasocket-2.0.2.tar.gz:
Код
tar -xf luasocket-2.0.2.tar.gz


Перейдем в папку luasocket-2.0.2:
Код
cd luasocket-2.0.2


Заменяем файл config на:
http://pastebin.com/Y7XPamS9 или [attachment=6033:luasocket_2.0.2.rar]

После всех манипуляций переходим в ./luasocket-2.0.2 и начинаем сборку luaSocket:
Код
gmake
gmake install


Установка LuaMySQL
LuaMySQL

Перед установкой этой библиотеки необходимо загрузить MySQL на ваш сервер:
Код
cd /usr/ports/databases/mysql51-server
gmake
gmake install clean


Переходим в директорию установки, например /usr/rushub/:
Код
cd /usr/rushub/


Скачиваем пакет LuaMySQL:
Код
git clone https://github.com/keplerproject/luasql.git


Перейдем в папку luasql:
Код
cd luasql


Заменяем файл config на:
http://pastebin.com/TYY26GrZ или [attachment=6034:luasql.rar]

И начинаем сборку luaMySQL:
Код
gmake
gmake install


Установка LuaMD5
LuaMySQL
Переходим в директорию установки, например /usr/rushub/:
Код
cd /usr/rushub/


Скачиваем пакет LuaMD5:
Код
wget "http://luaforge.net/frs/download.php/3355/md5-1.1.2.tar.gz"


Перейдем в папку luaMD5:
Код
cd md5-1.1.2


Заменяем файл config на:
http://pastebin.com/Gfxsmpx3 или [attachment=6035:md5_1.1.2.rar]

И начинаем сборку luaMySQL:
Код
gmake
gmake install


Небольшое дополнение:
Цитата
Для компиляции lua-плагина, который идет в поставке с rushub'ом используйте следующий Makefile:

http://pastebin.com/S5Ev0mQS или [attachment=6036:lua_plugin.rar]

Собирать командой gmake linux
Setuper, mariner, PomanoB, KT315, CrazyKiller, Saymon21, DEN 007, 0x255
17.8.2011, 10:40 [FreeBsd]LuaPlugin
если не ошибаюсь:
Код
Reading symbols from ./RusHub...done.
(gdb) backtrace
#0  0x282bf527 in ?? ()
#1  0x000004a0 in ?? ()
#2  0x2831eb58 in ?? ()
#3  0x282bf51b in ?? ()
#4  0x00000000 in ?? ()
#5  0x00000000 in ?? ()
#6  0x00000000 in ?? ()
#7  0xbfbfd858 in ?? ()
#8  0x0805c5a7 in server::Conn::close (this=0x0) at /usr/rhub/src/Conn.cpp:400
Previous frame identical to this frame (corrupt stack?)

----
Core was generated by `RusHub'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/librt.so.1...done.
Loaded symbols for /usr/lib/librt.so.1
Reading symbols from /usr/lib/libdl.so.1...done.
Loaded symbols for /usr/lib/libdl.so.1
Reading symbols from /usr/local/lib/gcc44/libstdc++.so.6...done.
Loaded symbols for /usr/local/lib/gcc44/libstdc++.so.6
Reading symbols from /lib/libm.so.5...done.
Loaded symbols for /lib/libm.so.5
Reading symbols from /usr/local/lib/gcc44/libgcc_s.so.1...done.
Loaded symbols for /usr/local/lib/gcc44/libgcc_s.so.1
Reading symbols from /lib/libc.so.7...done.
Loaded symbols for /lib/libc.so.7
Reading symbols from ./plugins/lua.so...done.
Loaded symbols for ./plugins/lua.so
Reading symbols from /libexec/ld-elf.so.1...done.
Loaded symbols for /libexec/ld-elf.so.1
#0  0x282bf527 in freeaddrinfo () from /lib/libc.so.7
(gdb)

---

#0  0x282bf527 in freeaddrinfo () from /lib/libc.so.7
#1  0x0805c5a7 in server::Conn::close (this=0x28473200) at /usr/rhub/src/Conn.cpp:400
#2  0x0805c5d3 in server::ConnFactory::deleteConn (this=0x2843e190, conn=@0xbfbfd95c)
    at /usr/rhub/src/Conn.cpp:1207
#3  0x080717e3 in dcserver::DcConnFactory::deleteConn (this=0x2843e190, conn=@0xbfbfd95c)
    at /usr/rhub/src/DcConn.cpp:276
#4  0x0805e07d in server::Conn::createNewConn (this=0x28470300) at /usr/rhub/src/Conn.cpp:499
#5  0x080a1b4b in server::Server::newAccept (this=0xbfbfdacc) at /usr/rhub/src/Server.cpp:460
#6  0x080a20b2 in server::Server::step (this=0xbfbfdacc) at /usr/rhub/src/Server.cpp:341
#7  0x080a29e2 in server::Server::run (this=0xbfbfdacc) at /usr/rhub/src/Server.cpp:234
#8  0x0808b7fd in runHub (argc=1, argv=0xbfbfec58, isService=false)
    at /usr/rhub/src/main.cpp:133
#9  0x0808b9a9 in main (argc=1, argv=0xbfbfec58) at /usr/rhub/src/main.cpp:159
Setuper
1.8.2011, 13:42 [BASH] Старт/Стоп/Перезапуск и пр.
Предлагаю скрипт запуска, остановки и перезапуска rushub'a:
Не забудьте изменить параметры скрипта: директории и пути.

Просмотр кода bash
Код
#!/bin/sh

### BEGIN INIT INFO
# Provides:          rushub
# Required-Start:    $network
# Required-Stop:     $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by rushub.
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

NAME="RusHub"
PATH_DAEMON="/home/shadowx/rushub_bin"
DAEMON="$PATH_DAEMON/$NAME"
PATH_DAEMON_CFG="$PATH_DAEMON/RusHub.xml"
PIDF="$PATH_DAEMON/rushub.pid"

ARGS="-c $PATH_DAEMON_CFG"

USER="shadowx"

start() {
    echo -n "Запуск $NAME: "
    start-stop-daemon --start --chuid $USER --make-pidfile "$PIDF" --pidfile "$PIDF" --name $NAME --background --startas $DAEMON -- $ARGS
    echo "готово."
}
stop() {
    echo -n "Остановка $NAME: "
    start-stop-daemon --chuid $USER --stop --pidfile "$PIDF" --name $NAME --retry=TERM/5/KILL/10
    rm "$PIDF"
    echo "готово."
}
restart() {
    stop
    sleep 2
    start
}

if [ ! -x "$DAEMON" ]
then
   echo "отсутствует файл для запуска $DAEMON"
   exit 0
fi

case "$1" in
    start)
        start
;;
    stop)
        stop
;;
    restart)
        restart
;;
    status)
        if [ -f "$PIDF" ];
        then
            PID=$(cat $PIDF)
            if [ `ps auwx|grep $NAME|grep $PID|grep -v -c grep` = 1 ]
            then
                echo "процесс $NAME работает [pid: $PID]."
                exit 0
            fi
            echo "процесс $NAME не запущен."
            exit 3
        fi
        echo "процесс $NAME не запущен."
        exit 3
;;
    *)
        echo "Использование {start|status|stop|restart}"
        exit 1
;;
esac
exit 0
CrazyKiller, DEN 007
5.3.2011, 8:37 Скрипт опроса с голосованием
Помогите найти или сделать
а искать вы пробовали ? вот попробуйте electric_shock.gif а потом создавайте тему

--- http://mydc.ru/topic181.html?hl=%EE%EF%F0%EE%F1%FB
sexynapku
3.3.2011, 21:21 Блокировка Пассивных юзеров
хаб у меня локальный и внешних юзеров в нем нет =) так что не особо актуально
мамин_парень
3.3.2011, 20:00 Блокировка Пассивных юзеров
- Пассивные пользователи создают дополнительный трафик и загружают компьютер с хабом

- Пассивные пользователи не отвечают на поисковые запросы и, таким образом, практически бесполезны для остальных пользователей хаба.

ну а по поводу не могут работать в активе ...сейчас практически во всех роутерах все настраивается
мамин_парень
3.3.2011, 17:52 Блокировка Пассивных юзеров
Описание:
Простенький скрипт, который запрещает пользователям использовать пассивное соединение.
*** Если хотите чтобы скрипт кикал юзера, то просто раскомментируйте строку "--"

Загрузить:
[attachment=5642:passive.lua]
Nickolya, мамин_парень
16.1.2011, 23:14 [WEB-REGISTRATION]- Веб-Регистрация [VERLIHUB]
Регистрация пользователей на сайте вашего хаба.
Хочу представить вам форму регистрации пользователей для verlihub на нашем хабе, разработанную моим другом (0x255)

Сам скрипт: [attachment=5514:hub_reg.zip]
Цитата
Описание:

1. index.php - Основная морда,проверят валидность формы через плагин jquery validate http://docs.jquery.com/Plugins/Validation.

2. Так же после ввода никнэйма этот же плагин делает аякс-запрос на test.php, тот в свою очередь проверяет есть ли пользователь в БД и возвращает ответ.

3. После того как валидация формы пройденна данные отправляются на register.php, где проверяются на корректность повторно, вдруг кто поломать вздумает =).

4. Если находятся ошибки, то они выводятся пользователю, вообще любое действие или ошибка выводится пользователю.

5. В reglib.php происходит настройка связи с БД + функции которые облегчают жизнь, а именно перекодирование текста к формату совместимому с sql и функция вывода сообщений пользователю.

P.S. Код небольшой. думаю очень понятный, единственный минус - не привязал внешний css.



Скриншот (основной):


Скриншот (ввод данных: проверка):



Скриншот (проверка: если администраторские приставки) - можно придумать свои проверки и условия:


Скриншот (общий вид):


P.S. Приношу извинения за ошибку на скрине. спасибо, Ksan.
Nickolya, Vizunchik, KT315, Saymon21, shur49, мамин_парень
29.12.2010, 14:00 Поддомены ***.Get-Scripts.ru
Тематика поддоменов стала популярной, то предлагаю вам создать поддомены в get-scripts.ru

Name.get-scripts.ru, где "name" - ваш поддомен, пожалуйста не забывайте указывать ip-адрес

Заявки оставляем в этой теме embarrassed.gif
Nickolya
2.7.2010, 23:11 Eximius
Windows
still_dreaming.gif хаб замечательный 600 юзеров полет номральный, выкладываю ссылку на новую версию

Eximius_2_1_0_Lua_5_1.rar
Артём

RSS Сейчас: 22.12.2024, 23:51