[AJUDA] Criação de Regra IPTABLES [RESOLVIDO]

13. Re: [AJUDA] Criação de Regra IPTABLES [RESOLVIDO]

Gustavo Lima
gustavorglima

(usa CentOS)

Enviado em 02/10/2013 - 15:19h

Amigo, resolvi o problema de cortar a conexão ela acontecia pois havia comentado 4 linhas ontem no script e tinha me esquecido disso, mas descomentei essas linhas e agora está tudo certo.

O que acontece é o seguinte coloquei código que você me disse, porém mesmo eu estando na range ou não eu estou conseguindo acessar a porta.

Veja como está meu script:

#!/bin/bash

IPT=/sbin/iptables

/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe iptable_mangle
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REDIRECT
/sbin/modprobe ipt_MASQUERADE

#--------------------------- CONFIGURACOES ---------------------------
ArquivoListaIP=ips.txt
LiberarPortas=( 80 7777 )
PortaSSH=22
#----------------------------------------------------------------------

echo "Iniciando configuração..."

#Limpar iptables ------------------------------------------------------

iptables -F

#Fechando todas conexões ----------------------------------------------

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# Liberando acesso SSH ------------------------------------------------

echo "Liberando o SSH"
iptables -I INPUT -p tcp --dport $PortaSSH -i venet0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
iptables -A INPUT -p tcp --dport $PortaSSH -j ACCEPT
iptables -A INPUT -p udp --dport $PortaSSH -j ACCEPT

# Bloqueando qualquer outro IP fora da Lista --------------------------

iptables -A INPUT -p tcp --syn -m state --state NEW -m multiport --dports 80,7777 -j DROP

#Libera conexões estabilecidas ----------------------------------------

echo "Liberando conexoes estabelecidas..."

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT <-------------|
iptables -A FORWARD -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT <---- -| ESSAS ERAS AS LINHAS QUE EU HAVIA COMENTADO
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT <-------|
iptables -A INPUT -i lo -j ACCEPT

# Liberando portas ----------------------------------------------------

# Abrir portas TCP

BADIPS=$(egrep -v "^#|^$" $ArquivoListaIP)
for IP in $BADIPS
do
iptables -A INPUT -p tcp -m iprange --src-range $IP -m multiport --dports $LiberarPortas -j ACCEPT
echo " > Range ($IP) Liberada com sucesso!"
done

echo "> Abrindo portas UDP"
/sbin/iptables -A INPUT -p udp -m multiport --dports $LiberarPortas -j ACCEPT

# Bloqueando qualquer outro acesso as portas --------------------------

for port in ${LiberarPortas[@]}
do
echo "> Bloqueando outros acessos a porta $port"
iptables -A INPUT -i eth0 -p tcp --dport $port -j DROP
done


  


14. Re: [AJUDA] Criação de Regra IPTABLES [RESOLVIDO]

Gustavo Lima
gustavorglima

(usa CentOS)

Enviado em 02/10/2013 - 15:29h

Veja:

# iptables -L -n -v
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DROP tcp -- venet0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 state NEW recent: UPDATE seconds: 60 hit_count: 4 name: DEFAULT side: source
62 4760 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:22
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02 state NEW multiport dports 80,7777
48 2020 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 source IP range 5.10.192.0-5.10.199.255 multiport dports 80,7777
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 source IP range 15.227.249.0-15.227.249.255 multiport dports 80,7777

....... A LISTA GIGANTESCA DE RANGES APAGUEI UM PEDACO PARA NAO FICAR MUITO GRANDE ........

0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 source IP range 216.239.33.8-216.239.33.15 multiport dports 80,7777
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 source IP range 216.239.55.8-216.239.55.15 multiport dports 80,7777
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 80,7777

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state NEW,RELATED,ESTABLISHED

Chain OUTPUT (policy DROP 2 packets, 312 bytes)
pkts bytes target prot opt in out source destination
95 23450 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state NEW,RELATED,ESTABLISHED
[root@TESTE-IPTABLES6 ~]#



15. Re: [AJUDA] Criação de Regra IPTABLES [RESOLVIDO]

Pedro
px

(usa Debian)

Enviado em 02/10/2013 - 15:56h

Tente isto:

#!/bin/bash

#--------------------------- CONFIGURACOES ---------------------------
ArquivoListaIP=ips-teste.txt
LiberarPortas=( 80 7777 )
PortaSSH=22
#----------------------------------------------------------------------

echo "Carregando modulos..."

/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe iptable_mangle
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REDIRECT
/sbin/modprobe ipt_MASQUERADE

echo "Iniciando configuração..."

#Limpar iptables ------------------------------------------------------

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

#Fechando todas conexões ----------------------------------------------

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# Liberando acesso SSH ------------------------------------------------

echo "Liberando o SSH"
iptables -I INPUT -p tcp --dport $PortaSSH -i venet0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
iptables -A INPUT -p tcp --dport $PortaSSH -j ACCEPT
iptables -A INPUT -p udp --dport $PortaSSH -j ACCEPT

#Libera conexões estabilecidas ----------------------------------------

echo "Liberando conexoes estabelecidas..."

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

# Liberando portas ----------------------------------------------------

# Abrir portas TCP

BADIPS=$(egrep -v "^#|^$" $ArquivoListaIP)
for IP in $BADIPS
do
iptables -I INPUT -p tcp -m iprange --src-range $IP -m multiport --dports $LiberarPortas -j ACCEPT
echo " > Range ($IP) Liberada com sucesso!"
done

echo "> Abrindo portas UDP"
/sbin/iptables -A INPUT -p udp -m multiport --dports $LiberarPortas -j ACCEPT

# Bloqueando qualquer outro acesso as portas --------------------------

for port in ${LiberarPortas[@]}
do
echo "> Bloqueando outros acessos a porta $port"
iptables -A INPUT -i eth0 -p tcp -m multiport -- dports $port -j DROP
done

echo "Descartando demais conexões!"

# Descartando tentativa de conexões não autorizadas nas portas 80 e 7777
iptables -A INPUT -p tcp --syn -m state --state NEW -m multiport --dports 80,7777 -j DROP

# Descarta pacotes inválidos
iptables -A INPUT -m state --state INVALID -j DROP

echo
echo "FiM!"



16. Re: [AJUDA] Criação de Regra IPTABLES [RESOLVIDO]

Gustavo Lima
gustavorglima

(usa CentOS)

Enviado em 02/10/2013 - 16:03h

Erro na seguinte linha, veja:

Linha:
iptables -A INPUT --syn -m state --state NEW -m multiport --dports 80,7777 -j DROP

Erro:
iptables v1.3.5: Unknown arg `--syn'
Try `iptables -h' or 'iptables --help' for more information.


17. Re: [AJUDA] Criação de Regra IPTABLES [RESOLVIDO]

Pedro
px

(usa Debian)

Enviado em 02/10/2013 - 16:17h

gustavorglima escreveu:

Erro na seguinte linha, veja:

Linha:
iptables -A INPUT --syn -m state --state NEW -m multiport --dports 80,7777 -j DROP

Erro:
iptables v1.3.5: Unknown arg `--syn'
Try `iptables -h' or 'iptables --help' for more information.


arrumado, tente executar novamente...


18. Re: [AJUDA] Criação de Regra IPTABLES [RESOLVIDO]

Gustavo Lima
gustavorglima

(usa CentOS)

Enviado em 02/10/2013 - 16:53h

Arrumei, está parcialmente funcionando...

Assim que rodei o script fiz o seguinte teste, acessei o apache ou seja a porta 80 Abriu normalmente.

Depois fui no servidor no qual usa a porta 7777 abriu também

Então removi a range no qual pertence meu IP e rodei o script novamente, e fiz o mesmo teste.

O apache não consegui acessar, mas a porta 7777 eu consegui.

Preciso que seja bloqueado os dois, tem alguma idéia porque está acontecendo isso?

Segue o código atual: (ah como coloco o script nessa caixa com a sintaxe pra ficar mais organizado a leitura?)

#!/bin/bash

#--------------------------- CONFIGURACOES ---------------------------
ArquivoListaIP=ips.txt
LiberarPortas=(80,7777)
PortaSSH=22
#----------------------------------------------------------------------

echo "Carregando modulos..."

/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe iptable_mangle
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REDIRECT
/sbin/modprobe ipt_MASQUERADE

echo "Iniciando configuração..."

#Limpar iptables ------------------------------------------------------

iptables -F

#Fechando todas conexões ----------------------------------------------

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# Liberando acesso SSH ------------------------------------------------

echo "Liberando o SSH"
iptables -I INPUT -p tcp --dport $PortaSSH -i venet0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
iptables -A INPUT -p tcp --dport $PortaSSH -j ACCEPT
iptables -A INPUT -p udp --dport $PortaSSH -j ACCEPT

#Libera conexões estabilecidas ----------------------------------------

echo "Liberando conexoes estabelecidas..."

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

# Liberando portas ----------------------------------------------------

# Abrir portas TCP

BADIPS=$(egrep -v "^#|^$" $ArquivoListaIP)
for IP in $BADIPS
do
iptables -A INPUT -p tcp -m iprange --src-range $IP -m multiport --dports $LiberarPortas -j ACCEPT
echo " > Range ($IP) Liberada com sucesso!"
done

echo "> Abrindo portas UDP"
/sbin/iptables -A INPUT -p udp -m multiport --dports $LiberarPortas -j ACCEPT

# Bloqueando qualquer outro acesso as portas --------------------------

for port in ${LiberarPortas[@]}
do
echo "> Bloqueando outros acessos a porta $port"
iptables -A INPUT -i eth0 -p tcp -m multiport --dports $port -j DROP
done

echo "Descartando demais conexões!"

# Descartando tentativa de conexões não autorizadas nas portas 80 e 7777
iptables -A INPUT -p tcp --syn -m state --state NEW -m multiport --dports 80,7777 -j DROP

# Descarta pacotes inválidos
iptables -A INPUT -m state --state INVALID -j DROP

echo
echo "FiM!"


19. Re: [AJUDA] Criação de Regra IPTABLES [RESOLVIDO]

Pedro
px

(usa Debian)

Enviado em 02/10/2013 - 17:01h

use a tag code e /code entre []

cara copie e rode o script denovo, você ta usando ele sem as modificações que fiz

a porta 7777 é udp?


20. Re: [AJUDA] Criação de Regra IPTABLES [RESOLVIDO]

Gustavo Lima
gustavorglima

(usa CentOS)

Enviado em 02/10/2013 - 17:10h

Eu acrescentei suas alterações fiz isso porque tem algumas variáveis que estão erradas, porém do mesmo jeito acontece aquele erro ele bloqueia apenas para porta do apache 80 e não para 7777 pois ainda consigo acessa-la..

O código com suas modificações e com as variáveis corretas:


#!/bin/bash

#--------------------------- CONFIGURACOES ---------------------------
ArquivoListaIP=ips.txt
LiberarPortas=(80,7777)
PortaSSH=22
#----------------------------------------------------------------------

echo "Carregando modulos..."

/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe iptable_mangle
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REDIRECT
/sbin/modprobe ipt_MASQUERADE

echo "Iniciando configuração..."

#Limpar iptables ------------------------------------------------------

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

#Fechando todas conexões ----------------------------------------------

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# Liberando acesso SSH ------------------------------------------------

echo "Liberando o SSH"
iptables -I INPUT -p tcp --dport $PortaSSH -i venet0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
iptables -A INPUT -p tcp --dport $PortaSSH -j ACCEPT
iptables -A INPUT -p udp --dport $PortaSSH -j ACCEPT

#Libera conexões estabilecidas ----------------------------------------

echo "Liberando conexoes estabelecidas..."

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

# Liberando portas ----------------------------------------------------

# Abrir portas TCP

BADIPS=$(egrep -v "^#|^$" $ArquivoListaIP)
for IP in $BADIPS
do
iptables -I INPUT -p tcp -m iprange --src-range $IP -m multiport --dports $LiberarPortas -j ACCEPT
echo " > Range ($IP) Liberada com sucesso!"
done

echo "> Abrindo portas UDP"
/sbin/iptables -A INPUT -p udp -m multiport --dports $LiberarPortas -j ACCEPT

# Bloqueando qualquer outro acesso as portas --------------------------

for port in ${LiberarPortas[@]}
do
echo "> Bloqueando outros acessos a porta $port"
iptables -A INPUT -i eth0 -p tcp -m multiport --dports $port -j DROP
done

echo "Descartando demais conexões!"

# Descartando tentativa de conexões não autorizadas nas portas 80 e 7777
iptables -A INPUT -p tcp --syn -m state --state NEW -m multiport --dports 80,7777 -j DROP

# Descarta pacotes inválidos
iptables -A INPUT -m state --state INVALID -j DROP

echo
echo "FiM!"


IPTABLES

# iptables -L -n -v
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 source IP range 5.10.192.0-5.10.199.255 multiport dports 80,7777
0 0 DROP tcp -- venet0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 state NEW recent: UPDATE seconds: 60 hit_count: 4 name: DEFAULT side: source
38 2840 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:22
249 10721 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
9 351 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 80,7777
44 2560 DROP tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 multiport dports 80,7777
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02 state NEW multiport dports 80,7777
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state NEW,RELATED,ESTABLISHED

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
277 17912 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state NEW,RELATED,ESTABLISHED



21. Re: [AJUDA] Criação de Regra IPTABLES [RESOLVIDO]

Pedro
px

(usa Debian)

Enviado em 02/10/2013 - 17:15h

Isso é pq sua regra de forward permite o acesso local, tente usar um pc externo pra fazer este teste.

tipo o site http://ping.eu/port-chk/ tente também o http://nmap.online-domain-tools.com/


22. Re: [AJUDA] Criação de Regra IPTABLES [RESOLVIDO]

Gustavo Lima
gustavorglima

(usa CentOS)

Enviado em 02/10/2013 - 17:18h

Mas eu estou em um computador externo o servidor no qual faço os testes é uma cloud, creio que esteja quase lá pois já está funcionando para porta 80 agora só falta saber o porque não funciona para 7777


23. Re: [AJUDA] Criação de Regra IPTABLES [RESOLVIDO]

Pedro
px

(usa Debian)

Enviado em 02/10/2013 - 18:05h

gustavorglima escreveu:

Mas eu estou em um computador externo o servidor no qual faço os testes é uma cloud, creio que esteja quase lá pois já está funcionando para porta 80 agora só falta saber o porque não funciona para 7777


mas esta 7777 é udp? tente fazer o teste do ip externo mesmo assim



24. Re: [AJUDA] Criação de Regra IPTABLES [RESOLVIDO]

Gustavo Lima
gustavorglima

(usa CentOS)

Enviado em 02/10/2013 - 18:19h

px escreveu:

gustavorglima escreveu:

Mas eu estou em um computador externo o servidor no qual faço os testes é uma cloud, creio que esteja quase lá pois já está funcionando para porta 80 agora só falta saber o porque não funciona para 7777


mas esta 7777 é udp? tente fazer o teste do ip externo mesmo assim


É udp e tcp, fiz o teste lá, mostra que a porta está fechada, porém limpei o iptables e liberei a porta 7777 e fiz o teste de novo no site e consta que está fechada...

Com a porta 80 primeiro acusou fechada depois que limpei o firewall acusa como aberta..

Não entendo para porta 80 funciona perfeitamente somente para a que eu quero que não...

Usei o site:
http://ping.eu/port-chk/






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts