Como devo me proteger contra ataques...

1. Como devo me proteger contra ataques...

Tiago Fernandes
tiago.j.f.s

(usa CentOS)

Enviado em 11/04/2011 - 20:35h

Boa noite a todos. sou novo aqui e pesso desculpas se mandei errado mas preciso de ajuda...

Bom pessoal vou esplicar o que tenho e o que fiz pra proteção...
Eu tenho um server de jogo online utilizando as portas:
9909 = para conexao
9998 = para comunicar o cliente com servidor
9997 = para manter o cliente conectado sertificando que esta online
3306 = para utilizar mysql ex: (NAVICAT)
22 = para o winscp
8090 = Site apache

atualmente eu uso o windows 7 com o vmware emulando CentOS 5.6 em modo nat para rodar o server.
minha rede esta ligada da seguinte maneira:
modem em modo bridged + router + pc com vmware

Atualmente sofri muitos ataques ao server, no server se encontra a DB do game e o site com apache.
agora vou lista as configurações que fiz no iptables para proteção:

# Protege contra synflood
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Protecao contra ICMP Broadcasting
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

#Proteção Contra IP Spoofing
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter

#Você tem que habilitar o repasse dos pacotes entre as interfaces.
echo 1 > /proc/sys/net/ipv4/ip_forward

# Protecao diversas contra portscanners, ping of death, ataques DoS, pacotes danificados e etc.
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -m limit --limit 1/s -j DROP
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -N VALID_CHECK
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL ALL -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL NONE -j DROP

#LIMITAR CONEXOES, NUMERO DE CONEXOES AO SITE

iptables -I INPUT -p tcp --dport 8090 -i eth0 -m state --state NEW -m recent --set

iptables -I INPUT -p tcp --dport 8090 -i eth0 -m state --state NEW -m recent --update --seconds 1 --hitcount 7 -j DROP

#Proteção Contra IP Spoofing

# iptables -A INPUT -s 10.0.0.0/8 -i eth0 -j DROP

# iptables -A INPUT -s 172.16.0.0/16 -i eth0 -j DROP

# iptables -A INPUT -s 192.168.0.0/24 -i eth0 -j DROP

# iptables -A FORWARD -i eth0 -s ! 192.168.0.0/16 -j DROP

# Protecao contra port scanners ocultos
iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

# Libera portas

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p udp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables -A INPUT -p udp --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp --dport 9909 -j ACCEPT
iptables -A INPUT -p udp --dport 9909 -j ACCEPT
iptables -A INPUT -p tcp --dport 9998 -j ACCEPT
iptables -A INPUT -p udp --dport 9998 -j ACCEPT
iptables -A INPUT -p tcp --dport 9997 -j ACCEPT
iptables -A INPUT -p udp --dport 9997 -j ACCEPT
iptables -A INPUT -p tcp --dport 8090 -j ACCEPT
iptables -A INPUT -p udp --dport 8090 -j ACCEPT


Essas sao as regras que utilizei e amenizou muito os ataques mas ainda sou derrubado...
meu server as vezes é desligado e as vezes ele simplesmente trava a conexao sendo que os players que estiverem on desconectar não é possivel conectar mais.

outra ocasião é que eu liberei as portas acima citadas
mas nao consigo utilizar a 3306 nem a 22 os programas que utilizo nao conectam nem local nem remoto.
somente se desativar o iptables eles conectam normalmente, as demais portas funcionam corretamente.
Ao limitar o acesso ao site a 7 conexoes com mesmo ip amenizou os lags mas existe um ip que mesmo bloqueando com esta regra (iptables -A INPUT -s $IPDOCARA -j DROP) ele aparece sempre listado na conexao e desconfio que ele estaja forjando o ip ou algo parecido.

Gostaria de ajuda para saber se estou correto ao utilizar estas regras e o que posso fazer a respeito dos ataques.
Tambem gostaria de saber o que posso fazer para liberar as portas 3306 e 22 pois estou atualmente sem fazer bkp do server, pois ao desativar o firewall para bkp fui atacado fortemente e danificado uma das tabelas.

Desde já agradeço a ajuda e peço desculpas se postei algo errado pois sou novo aqui.

Qualquer informação estou disposto a informar.

Obrigado!


  


2. Re: Como devo me proteger contra ataques...

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 12/04/2011 - 09:58h

Bom, vou dizer o q vc pode fazer para amenizar o seu problema:

- No iptables, pq vc não utiliza a política DROP para as chains FORWARD e INPUT? Facilita muito, pois por padrão, tudo é bloqueado e vc só libera o q desejar;
- Infelizmente, ataques d DoS são praticamente impossíveis d evitar, pois, msm vc limitando o número d pacotes por segundo, ainda sim sua conexão fica fora (procure o artigo do Prof. Elgio sobre SYN Flooding q vc entenderá melhor)
- Vc pode instalar IDS (Snort) ou IPS (Portsentry) para bloquear ataques advindos d IP's forjados. O certo, na verdade, é liberar apenas as redes necessárias (lembre-se da política DROP mencionada acima).

Por enquanto é só o q eu posso dizer. Qq dúvida, pergunte ae.


3. mas e ai?

Tiago Fernandes
tiago.j.f.s

(usa CentOS)

Enviado em 12/04/2011 - 10:36h

obrigado amigo, mas como devo proceder? porque eu libero as portas 3306 e 22 e nao consigo utilizalas? sei q DDoS eh impossivel de deter mas sou derrubado 3 vezes ao dia... e isso incomoda como vou segurar players se o server nao fika on? melhorou qdo limitei o acesso ao site contra syn-flood...

Obrigado...


4. Re: Como devo me proteger contra ataques...

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 12/04/2011 - 10:50h

Bom, eu não pedi pra vc remover as regras do syn flooding. Só disse q ainda tem como bloquear sua conexão. Se resolveu na maioria dos problemas, ótimo. O esquema é vc fortalecer as suas regras d firewall e instalar o Portsentry. Comece assim:

iptables -P INPUT -j DROP
iptables -P FORWARD -j DROP
iptables -P OUTPUT -j ACCEPT

Isso já elimina as regras d DROP q vc colocou. Deixe as regras d syn flooding e limitação d pacotes do jeito q estão. Instale o Portsentry (IPS) e veja se vc consegue melhorar sua conexão:

http://www.vivaolinux.com.br/artigo/PortSentry-Melhorando-a-seguranca-do-seu-Linux


5. Bloquear tudo?

Tiago Fernandes
tiago.j.f.s

(usa CentOS)

Enviado em 12/04/2011 - 15:30h

mas amigo vc fala ali bloquear INPUT e FORWARD e liberar apenas OUTPUT mas meu site e meus cliente enviam dados ao server, caso eu bloquear INPUT nao ira dar problemas?

Me desculpe qualquer coisa porque sou novo com iptables.

tipo as portas 9909 9998 9997 sao do cliente do game usam e tcp e udp
3306 eh usada pelo site tambem pois uso os arquivos config.php do site.
eu esqueci de mencionar eu desabilitei o firewal do centos e o selinux e utlizo o iptables normalmente com estar regras isso pode ser o problema ao qual eu nao consigo liberer acesso as portas 3306 e 22?


Obrigado pela dica anterior estarei testando para ver.


6. Re: Como devo me proteger contra ataques...

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 12/04/2011 - 15:42h

Se vc desabilitou o SELinux e o iptables do CentOS nativo pra usar as suas regras, não tem problema. As regras q vc pôs para liberar as portas estão corretas, vc deve mantê-las. Tenha em mente q a política q eu propus bloqueia tudo por padrão e vc deve mencionar quais serviços vc deseja liberar, ok?


7. Não consigo instalar...

Tiago Fernandes
tiago.j.f.s

(usa CentOS)

Enviado em 12/04/2011 - 16:35h

Olhe oque acusa qdo digito $ ./configure ; make ; make install


Install: make install

NOTE: This will install the package in this
directory: /usr/local/psionic

Edit the makefile if you wish to change these paths.
Any existing files will be overwritten.
Creating psionic directory /usr/local/psionic
Setting directory permissions
Creating portsentry directory /usr/local/psionic/portsentry
Setting directory permissions
chmod 700 /usr/local/psionic/portsentry
Copying files
cp ./portsentry.conf /usr/local/psionic/portsentry
cp ./portsentry.ignore /usr/local/psionic/portsentry
cp ./portsentry /usr/local/psionic/portsentry
cp: cannot stat `./portsentry': No such file or directory
make: *** [install] Error 1

olhando dentro do diretorio somente existe estes dois arquivos criados...

Uso CentOS 5.6 tentei pelo yum mas nao tem o pacote disponivel
tentei fazer de acordo com o link que vc me passou...

entao vou fazer o que vc me falou desativar input e forward e mudar os outros para DROP..
tentei ver o que posso ter errado na instalação mas fiz tudo denovo e da mesma coisa..

agradeço sua compreenção amigo..
muito obrigado.


8. Voltei...

Tiago Fernandes
tiago.j.f.s

(usa CentOS)

Enviado em 17/04/2011 - 14:21h

amigo.. instalei o portsentry como vc me falou consegui depois de ler varios tutoriais, mas nao sei como ver se portsenty esta ativo ou nao... e mesmo com porty sentry fui derrubado mais algumas vezes por isso kero saber, como sei se esta funcionando?
tbm instelei o monit... para verifikar os processos... vc poderia me ajudar?


9. Re: Como devo me proteger contra ataques...

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 18/04/2011 - 09:45h

Kra, infelizmente ficou complicado em t ajudar com relação ao portsentry, pq faz muito tempo q não mexo com ele. Mas posso d auxiliar em outras paradas:

- Veja se não tem ninguém logando na sua máquina:

# last <-- olha os últimos q logaram na sua máquina
# w <-- olha quem está logado atualmente

- Bloqueie o acesso aos terminais (comentar as linhas referente aos terminais):

# vi /etc/securetty

- Minimize ao máximo seus serviços. Para conferir quais serviços estão rodando, digite:

# netstat -antp

Se eu lembrar d outro eu t falo...


10. Esqueceu da rota oposta

Douglas
koga021

(usa Ubuntu)

Enviado em 18/06/2013 - 16:30h

voce liberou essas portas de entrada, mas esqueceu de colocar a regra.
QUe diz:
Tudo que vier das portas X,y,z devem voltar para o ip de origem.

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT

Tem as suas variaçoes


11. Re: Como devo me proteger contra ataques...

Buckminster
Buckminster

(usa Debian)

Enviado em 18/06/2013 - 23:22h

E o troféu Pá de Ouro por escavação de tópicos antigos desta vez vai para...

http://www.evoo.com.br/forum/files/pa_de_ouro_923_149.jpg






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts