Ir para conteúdo
Entre para seguir isso  
Mock

Proteção* contra DDoS

Recommended Posts

Mock    32
Mock


Servidor testado: TFS 0.3.x
--------
Autor: bearpaw.png(Baseado em um outro script so que pela source.)
--------
Requerimento: Lua socket (como instalar: http://forums.otserv.com.br/index.php/topic/97301-modulos-de-scripting-socket-ex/)
--------
Versão: 1.0




Bom antes de tudo, DDoS é quando varios compultadores começam a mandar pacotes de dados pra o seu servidor, como sao dados inuteis e sem sentido o server simplesmente ignora, agora como sao varios PC's mandando sem parar isso acaba fazendo a sua internet simplesmente ficar sobrecarregada, e ela vai dar atenção aos pacotes e vai meio que deixar de dar atenção ao server em si, entao o que acontece? sua net esta online, mais você nao consegue simplesmente entrar em nem um site e os players nao conseguem nem andar, ai que o script entra, ja que vc levou o ataque que esse tipo de ataque é inevitavel entao o jeito agora é reduzir os danos, pra isso o script, a cada X segundos (definido por você) o server vai verificar se o google esta online, se nao estiver online é por que logicamente sua internet caiu ou esta sobrecarregada, e configurando o script vc pode colocar as 3 opçoes caso o server esteje offline: Kickar todos os players, Salver o server, Fechar o server.



Bom, esse script é pra DDoS não é pra nuker nem otras coisas, ele nao vai protejer você dos ataques e sim reduzir dos danos pelo ataque!!


(Y)

Vamos ao script. Vá até data/globalevents/globalevents.xml e adcione essa tag:

<globalevent name="ddos" interval="120" event="script" value="noDDoS.lua"/>

Apos isso observe:
interval = 120 - > o intervalo é a cada 120 segundo (2 minutos) o script quando verificar o google ele vai dar uma travada no server até que o site responda, entao ai vem uma questao que deixei por você a decidir. Se você colocar a 10 minutos cada, quando o server travar os players vao começar a morrer por monstros etc e poderás levar até 10 minutos pro server verificar. agora se vc colocar a cada 1 minuto, fassa o teste, abra o seu browser, entre no google e pegue um cronometro, assim que vc apertar o cronometro aperte atualizar ao mesmo tempo, e assim que a pagina carregar vc pausa o cronometro, provavelmente 1~2 segundos pra pagina abrir, esse vai ser o tempo que o server vai ficar travado quando verificar. Mas vc pode mudar, de google para outro site que quase sempre esta online, pois se o google ficar offline e sua net n o scritp ainda sim vai kickar todomundo.

Agora em scripts crie o noDDoS.lua e ponha isso:

------ DDoS protection
------ By Mock
------ Require Lua socket
local conf = {
check_website1 = 'http://www.google.com/', ---- First website
check_website2 = 'http://pt.wikipedia.org/', ---- Second website
ifoff = { --- If this 2 websites was offline
kickall = true, --- Kick all players?
save = true, --- Save server?
closeserver = true, --- Exit server?
}
}
--[[
This script every X seconds will check if google is online,
if google is off it will check wikipedia, if wikipedia is
off too is because your net is verry overloaded (DDoS attack)
or your connection is down. If all this is off this script
will kick all players, save server and close server.
]]
function onThink(interval, lastExecution)
assert(socket,'Please install socket!')
assert(socket.http,'Please install socket.http')
local re,info,kind = pcall(socket.http.request,conf.check_website1)
if not info or re == false then
print('::Google is off?\a')
if conf.check_website2 and conf.check_website2 ~= '' and conf.check_website2:len() > 6 then
local re,info,kind = pcall(socket.http.request,conf.check_website2)
if not info or re == false then
print('::We are under attack or you connection is offline!\a\a')
if conf.ifoff.kickall == true then
for i,b in pairs(getOnlinePlayers()) do
doRemoveCreature(
end
end
if conf.ifoff.save == true then
saveServer()
end
if conf.ifoff.closeserver == true then
os.sleep(2)
os.exit()
end
end
end
end
return TRUE
end

Repare tem site1 e site2, é pra evitar o cidado acima, se um esta off ele verifica no outro (Y), caso nao queria que ele fassa 2 verificações deixe o campo em branco.

Divirtam-se!

O script foi ajeitado, nao há mais nescessidade da OTAL
Agora ele funciona!

Compartilhar este post


Link para o post
PHBS    0
PHBS

Holy shit!

Eu qria isso mas n sei modificar a source...MT OBRIGADO CARA

Só que modificando a source da pra fazer mais coisas...mas isso ja ajuda =]

Editado por PHBS

Compartilhar este post


Link para o post
Mock    32
Mock

Agora pelomenos da pra fazer varias coisas sem mudar a source, ja que tem socket ^^

Compartilhar este post


Link para o post
fabianobn    0
fabianobn

Boa Mock...

 

Essa você tirou foi Onda cara :D

 

Começou a pegar onda na Praia, e não caiu da prancha usauhuhauhsuhssa

 

Abraços cara....

 

Parabéns :P

Compartilhar este post


Link para o post
SaloRicardo    2
SaloRicardo

Boa Mock, essa ganho, nun tem nenhum script melhor q esse, mt util, tenho certeza q vários ot's vão usar...

 

fuiii!!!

Compartilhar este post


Link para o post
91690589169058    0
91690589169058

Bug ake:

 

[18/10/2009 11:55:38] [Warning - Event::loadScript] Cannot load script (data/globalevents/scripts/noDDoS.lua)
[18/10/2009 11:55:38] cannot open data/globalevents/scripts/noDDoS.lua: No such file or directory

Compartilhar este post


Link para o post
Mock    32
Mock

@91690589169058

vc nao criou o script

simples

Compartilhar este post


Link para o post
esau    0
esau

Haa boa

Não não OTIMA, o socket vai ajudar muito a vida da gente

 

OTiMA MOCK dessa vez você zuo mesmo

skapokspakspaksapkspaskaposkap

 

flws

Compartilhar este post


Link para o post
Mock    32
Mock

Havia um problema com o script quando a internet tava off.

ja ajeitei :D

Compartilhar este post


Link para o post
Nighandy    0
Nighandy

Mock é foda...

Belo Script

Compartilhar este post


Link para o post
BhronX    0
BhronX

Hmm deu esse erro aqui mock pode me ajudar ??

[21/11/2009 08:47:28] Lua Script Error: [GlobalEvent Interface]

[21/11/2009 08:47:28] data/globalevents/scripts/noDDoS.lua:onThink

 

[21/11/2009 08:47:28] data/globalevents/scripts/noDDoS.lua:22: attempt to index global 'socket' (a nil value)

[21/11/2009 08:47:28] stack traceback:

[21/11/2009 08:47:28] data/globalevents/scripts/noDDoS.lua:22: in function <data/globalevents/scripts/noDDoS.lua:21>

[21/11/2009 08:47:28] [Error - GlobalEvents::think] Couldn't execute event: ddos

 

Abraços (Y)

Compartilhar este post


Link para o post
Mock    32
Mock

@[V]BhronX

custa seguir o topico em todos os passoes e instalar a otal? :(

Compartilhar este post


Link para o post
Morfeusinho    0
Morfeusinho

muito bom essi script.. vou testar em meu serv :)

vlw ae mlk

Compartilhar este post


Link para o post
xXHiroshiXx    0
xXHiroshiXx

gostei muito da hora continue assim!!!

Compartilhar este post


Link para o post
Proviem    0
Proviem

mt bom meu tava precisando disso

Compartilhar este post


Link para o post
Willian_Loko    0
Willian_Loko

eu instalei segui o tutorial certinho e instalei o otal, mas mesmo assim ainda continua dando erro:

 

[17/12/2009 15:35:29] data/globalevents/scripts/noDDoS.lua:22: attempt to index global 'socket' (a nil value)

[17/12/2009 15:35:30] stack traceback:

[17/12/2009 15:35:30] data/globalevents/scripts/noDDoS.lua:22: in function <data/globalevents/scripts/noDDoS.lua:21>

[17/12/2009 15:35:30] [Error - GlobalEvents::think] Couldn't execute event: ddos

Compartilhar este post


Link para o post
Lo Deragon    0
Lo Deragon

maluco

igual o codigo em c++ que eu postei, só que em lua

e isso não é proteção, é prevenção

Compartilhar este post


Link para o post
Welkin Guide    0
Welkin Guide

Ótimo.

Irá ajudar a muitos.

Belo script Mock!

Compartilhar este post


Link para o post
god guizao    0
god guizao

Muito util, agora será mais dificil (ou não tera jeito) de nukarem seu server

Compartilhar este post


Link para o post
MatheusSesso15    0
MatheusSesso15

Mock foi vce que fez mesmo?

Eu vi esse script no otland..

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×