iptables não executa as regras que altero, insiro ou excluo

1. iptables não executa as regras que altero, insiro ou excluo

z3pp3lin
z3pp3lin

(usa Debian)

Enviado em 13/10/2016 - 19:37h

Olá!
Estou com o seguinte problema: Há algum tempo, percebi que qualquer alteração nas regras do meu iptables não surte efeito, isto é, posso inserir ou modificar qualquer regra, salvar o arquivo e reiniciar o serviço que não acontece nada! O estranho é que, por exemplo, após inserir, modificar ou comentar determinada regra, digito o comando para listar as regras criadas e aparece, mas na prática não funciona! Tenho que liberar determinados acessos em alguns setores aqui da instituição e fico de mãos atadas por causa desse problema.

Por favor, alguém poderia me informar o que pode estar acontecendo?!

Segue arquivo com regras do IPTABLES que uso. O arquivo do firewall que uso está em /etc/init.d/firewall.

----------------------------------------------------IPTABLES-------------------------------------------------------
/etc/init.d/firewall
#!/bin/bash
#
echo "firewall-inicialização"
echo "setando variaveis"

ipt=/sbin/iptables
if_int=eth1
if_ext=eth0
rede_int=10.50.52.0/255.255.252.0
io=localhost

echo "carregando módulos"

/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_tables
#--------------------------------
echo "limpando regras"

$ipt -t nat -F
$ipt -t nat -X
$ipt -t nat -Z
$ipt -F
$ipt -X
$ipt -Z
#---------------------------------
#compartilhamento de conexão
#echo 1 > /proc/sys/net/ipv4/ip_forward
#---------------------------------
echo "Aplicando política padrão"

$ipt -P INPUT DROP
$ipt -P FORWARD DROP
#-------------------------------------------
echo "liberando localhost"

$ipt -A INPUT -s $io -j ACCEPT
$ipt -A FORWARD -s $io -j ACCEPT
#---------------------------------------------
echo "liberando FORWARD para rede interna"

$ipt -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$ipt -A FORWARD -s $rede_int -j ACCEPT
$ipt -A FORWARD -p icmp -j ACCEPT
$ipt -A FORWARD -s 172.16.0.0 -p tcp -m tcp -j ACCEPT
$ipt -A FORWARD -s 172.16.0.0 -p udp -m tcp -j ACCEPT
$ipt -A FORWARD -p tcp -m tcp --dport 3389 -j ACCEPT
#-----------------------------------------------------------------
echo "liberando INPUT"

$ipt -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$ipt -A INPUT -p tcp -m --dport 5000 -j ACCEPT
$ipt -A INPUT -p tcp -m --dport 3000 -j ACCEPT
$ipt -A INPUT -p tcp -m --dport 25 -j ACCEPT
$ipt -A INPUT -s 10.50.52.0/255.255.252.0 -p tcp -m tcp --dport 53 -j ACCEPT
$ipt -A INPUT -s 10.50.52.0/255.255.252.0 -p udp -m udp --dport 53 -j ACCEPT
$ipt -A INPUT -s 10.50.52.0/255.255.252.0 -p tcp -m tcp --dport 80 -j ACCEPT
$ipt -A INPUT -s 200.203.249.10 -p tcp -m tcp --dport 80 -j ACCEPT
$ipt -A INPUT -s 200.203.249.100 -p tcp -m tcp --dport 80 -j ACCEPT
$ipt -A INPUT -s 10.50.52.0/255.255.252.0 -p tcp -m tcp --dport 3128 -j ACCEPT
$ipt -A INPUT -p icmp -j ACCEPT
#
$ipt -I FORWARD -S 10.50.52.0/255.255.252.0 -p tcp --dport 1863 -j ACCEPT
$ipt -I FORWARD -S 10.50.52.0/255.255.252.0 -p tcp --dport 5190 -j ACCEPT
$ipt -I FORWARD -S 10.50.52.0/255.255.252.0 -p tcp --dport 1863 -j ACCEPT
$ipt -I FORWARD -S 10.50.52.0/255.255.252.0 -p tcp --dport 5190 -j ACCEPT
#
$ipt -A OUTPUT -p tcp --dport 1863 -j DROP
$ipt -A OUTPUT -p tcp --dport 5190 -j DROP
#
$ipt -A FORWARD -p tcp --dport 25 -j ACCEPT
$ipt -A FORWARD -p tcp --dport 110 -j ACCEPT
#
$ipt -A FORWARD -p udp -s 10.50.52.0/255.255.252.0 -d 200.175.5.139 --dport 53 -j ACCEPT
$ipt -A FORWARD -p udp -s 200.175.5.139 -sport 53 -d 10.50.52.0/255.225.252.0 -j ACCEPT
$ipt -A FORWARD -p udp -s 10.50.52.0/255.255.252.0 -d 201.10.120.2 --dport 53 -j ACCEPT
$ipt -A FORWARD -p udp -s 201.10.120.2 -sport 53 -d 10.50.52.0/255.225.252.0 -j ACCEPT
$ipt -A FORWARD -p tcp -s 10.50.52.0/255.255.252.0 --dport 25 -j ACCEPT #SMTP
$ipt -A FORWARD -p tcp -s 10.50.52.0/255.255.252.0 --dport 587 -j ACCEPT #SMTP
$ipt -A FORWARD -p tcp -s 10.50.52.0/255.255.252.0 --dport 110 -j ACCEPT #POP3
#-----------------------------------------------------------------
echo "redirecionando portas para o squid"

$ipt -t nat -A PREROUTING -s 10.50.52.0/255.255.252.0 -p tcp --dport 80 -j REDIRECT --to-port 3128
#-----------------------------------------------------------------
echo "liberando mascaramento de rede"

$ipt -t nat -A POSROUTING -o eth0 -j MASQUARADE
#-----------------------------------------------------------------FIM----------------------------------------------------

OBS: Essas regras não foram feitas por mim, mas por um antigo administrador da rede. Talvez existam regras aí que não são mais necessárias.
OBS2: infelizmente ainda sou noob no quesito iptables.
OBS3: utilizo iptables+squid (proxy não transparente).

No aguardo de qualquer informação que possa elucidar esse problema.


  


2. Re: iptables não executa as regras que altero, insiro ou excluo

Carlos APC
Carlos_Cunha

(usa Linux Mint)

Enviado em 13/10/2016 - 21:11h

Opa!
Olhando, o que me parece é que não é um script que executa ações, e sim somente varias regras. Por isso quando alterar não aparece nada.
Como vc faz para "executar" o script ?


#-------------------------------------------------------------------------------------#

"Linux is cool"


3. Re: iptables não executa as regras que altero, insiro ou excluo

z3pp3lin
z3pp3lin

(usa Debian)

Enviado em 13/10/2016 - 21:21h

Carlos_Cunha escreveu:

Opa!
Olhando, o que me parece é que não é um script que executa ações, e sim somente varias regras. Por isso quando alterar não aparece nada.
Como vc faz para "executar" o script ?


#-------------------------------------------------------------------------------------#

"Linux is cool"


Olá Carlos,

Então, uso o /etc/init.d/firewall restart (firewall é o nome do arquivo com as regras)



4. Re: iptables não executa as regras que altero, insiro ou excluo

Carlos APC
Carlos_Cunha

(usa Linux Mint)

Enviado em 13/10/2016 - 21:24h

[/quote]

Olá Carlos,

Então, uso o /etc/init.d/firewall restart (firewall é o nome do arquivo com as regras)
[/quote]

Pois é, esta faltando a função restart(e o restante) se for só isso o SCRIPT, não vai funcionar mesmo.

Execute assim e poste a saída aqui:

bash -x /etc/init.d/firewall restart


#-------------------------------------------------------------------------------------#

"Linux is cool"


5. Re: iptables não executa as regras que altero, insiro ou excluo

z3pp3lin
z3pp3lin

(usa Debian)

Enviado em 13/10/2016 - 22:37h

Carlos_Cunha escreveu:



Olá Carlos,

Então, uso o /etc/init.d/firewall restart (firewall é o nome do arquivo com as regras)
[/quote]

Pois é, esta faltando a função restart(e o restante) se for só isso o SCRIPT, não vai funcionar mesmo.

Execute assim e poste a saída aqui:

bash -x /etc/init.d/firewall restart


#-------------------------------------------------------------------------------------#

"Linux is cool" [/quote]

Conforme vc pediu, tá aqui a saida do comando:

root@srv-net:~# bash -x /etc/init.d/firewall restart
+ echo firewall-Inicializacao
firewall-Inicializacao
+ echo 'Setando variaveis'
Setando variaveis
+ ipt=/sbin/iptables
+ if_int=eth1
+ if_ext=eth0
+ rede_int=10.50.52.0/255.255.252.0
+ io=localhost
+ echo 'Carregando os modulos'
Carregando os modulos
+ /sbin/modprobe ip_conntrack
+ /sbin/modprobe ip_conntrack_ftp
+ /sbin/modprobe ip_nat_ftp
+ /sbin/modprobe ip_tables
+ echo 'Limpando regras'
Limpando regras
+ /sbin/iptables -t nat -F
+ /sbin/iptables -t nat -X
+ /sbin/iptables -t nat -Z
+ /sbin/iptables -F
+ /sbin/iptables -X
+ /sbin/iptables -Z
+ echo 'Aplicando politica padrão'
Aplicando politica padrão
+ /sbin/iptables -P INPUT DROP
+ /sbin/iptables -P FORWARD DROP
+ echo 'Liberando localhost'
Liberando localhost
+ /sbin/iptables -A INPUT -s localhost -j ACCEPT
+ /sbin/iptables -A FORWARD -s localhost -j ACCEPT
+ echo 'Liberando Forwad para rede interna'
Liberando Forwad para rede interna
+ /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
+ /sbin/iptables -A FORWARD -s 10.50.52.0/255.255.252.0 -j ACCEPT
+ /sbin/iptables -A FORWARD -p icmp -j ACCEPT
+ /sbin/iptables -A FORWARD -s 172.16.0.0 -p tcp -m tcp -j ACCEPT
+ /sbin/iptables -A FORWARD -s 172.16.0.0 -p udp -m udp -j ACCEPT
+ /sbin/iptables -A FORWARD -p tcp -m tcp --dport 3389 -j ACCEPT
+ echo 'liberando Input'
liberando Input
+ /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
+ /sbin/iptables -A INPUT -p tcp -m tcp --dport 5000 -j ACCEPT
+ /sbin/iptables -A INPUT -p tcp -m tcp --dport 3000 -j ACCEPT
+ /sbin/iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
+ /sbin/iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
+ /sbin/iptables -A INPUT -s 10.50.52.0/255.255.252.0 -p tcp -m tcp --dport 53 - j ACCEPT
+ /sbin/iptables -A INPUT -s 10.50.52.0/255.255.252.0 -p udp -m udp --dport 53 - j ACCEPT
+ /sbin/iptables -A INPUT -s 10.50.52.0/255.255.252.0 -p tcp -m tcp --dport 80 - j ACCEPT
+ /sbin/iptables -A INPUT -s 200.203.249.10 -p tcp -m tcp --dport 80 -j ACCEPT
+ /sbin/iptables -A INPUT -s 200.203.249.100 -p tcp -m tcp --dport 80 -j ACCEPT
+ /sbin/iptables -A INPUT -s 200.203.249.101 -p tcp -m tcp --dport 80 -j ACCEPT
+ /sbin/iptables -A INPUT -s 10.50.52.0/255.255.252.0 -p tcp -m tcp --dport 3128 -j ACCEPT
+ /sbin/iptables -A INPUT -p icmp -j ACCEPT
+ /sbin/iptables -I FORWARD -s 10.50.52.0/255.255.252.0 -p tcp --dport 1863 -j R EJECT
+ /sbin/iptables -I FORWARD -s 10.50.52.0/255.255.252.0 -p tcp --dport 5190 -j R EJECT
+ /sbin/iptables -A FORWARD -s 10.50.52.0/255.255.252.0 -p tcp --dport 1863 -j R EJECT
+ /sbin/iptables -A FORWARD -s 10.50.52.0/255.255.252.0 -p tcp --dport 5190 -j R EJECT
+ /sbin/iptables -A OUTPUT -p tcp --dport 1863 -j DROP
+ /sbin/iptables -A OUTPUT -p tcp --dport 5190 -j DROP
+ /sbin/iptables -A FORWARD -p tcp --dport 25 -j ACCEPT
+ /sbin/iptables -A FORWARD -p tcp --dport 110 -j ACCEPT
+ /sbin/iptables -A FORWARD -p udp -s 10.50.52.0/255.255.252.0 -d 200.175.5.139 --dport 53 -j ACCEPT
+ /sbin/iptables -A FORWARD -p udp -s 200.175.5.139 --sport 53 -d 10.50.52.0/255 .255.252.0 -j ACCEPT
+ /sbin/iptables -A FORWARD -p udp -s 10.50.52.0/255.255.252.0 -d 201.10.120.2 - -dport 53 -j ACCEPT
+ /sbin/iptables -A FORWARD -p udp -s 201.10.120.2 --sport 53 -d 10.50.52.0/255. 255.252.0 -j ACCEPT
+ /sbin/iptables -A FORWARD -p tcp -s 10.50.52.0/255.255.252.0 --dport 25 -j ACC EPT
+ /sbin/iptables -A FORWARD -p tcp -s 10.50.52.0/255.255.252.0 --dport 587 -j AC CEPT
+ /sbin/iptables -A FORWARD -p tcp -s 10.50.52.0/255.255.252.0 --dport 110 -j AC CEPT
+ echo 'Redirecionando portas para squid'
Redirecionando portas para squid
+ /sbin/iptables -t nat -A PREROUTING -s 10.50.52.0/255.255.252.0 -p tcp --dport 80 -j REDIRECT --to-port 3128
+ echo 'Liberando mascaramento de rede'
Liberando mascaramento de rede
+ /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE




6. Re: iptables não executa as regras que altero, insiro ou excluo

Perfil removido
removido

(usa Nenhuma)

Enviado em 13/10/2016 - 22:54h

A partir de uma determinada versão de kernel/netfilter/iptables não foi mais necessário carregar módulos de firewall com modprobe.
Pelo menos foi o que li. Nem uso modprobe.

Eu ainda desativo IPv6 porque li algo sobre que deixar ativado sem uso e configuração correta seria falha de segurança.

echo "1" | tee /proc/sys/net/ipv6/conf/*/disable_ipv6 > /dev/null

Por falar nesse comando acima você ativou alguma coisa como roteamento no IPv4?

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



7. Re: iptables não executa as regras que altero, insiro ou excluo

z3pp3lin
z3pp3lin

(usa Debian)

Enviado em 14/10/2016 - 03:11h

listeiro_037 escreveu:

A partir de uma determinada versão de kernel/netfilter/iptables não foi mais necessário carregar módulos de firewall com modprobe.
Pelo menos foi o que li. Nem uso modprobe.

Eu ainda desativo IPv6 porque li algo sobre que deixar ativado sem uso e configuração correta seria falha de segurança.

echo "1" | tee /proc/sys/net/ipv6/conf/*/disable_ipv6 > /dev/null

Por falar nesse comando acima você ativou alguma coisa como roteamento no IPv4?

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden


Como pode ver no script, está comentado. Que eu me lembre quando o vi pela primeira vez, já estava assim e como não tinha e não tenho muito conhecimento em IPTABLES, não alterei.

----------------------------------------------------IPTABLES-------------------------------------------------------
/etc/init.d/firewall
#!/bin/bash
#
echo "firewall-inicialização"
echo "setando variaveis"

ipt=/sbin/iptables
if_int=eth1
if_ext=eth0
rede_int=10.50.52.0/255.255.252.0
io=localhost

echo "carregando módulos"

/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_tables
#--------------------------------
echo "limpando regras"

$ipt -t nat -F
$ipt -t nat -X
$ipt -t nat -Z
$ipt -F
$ipt -X
$ipt -Z
#---------------------------------
#compartilhamento de conexão
#echo 1 > /proc/sys/net/ipv4/ip_forward
#---------------------------------
echo "Aplicando política padrão"

$ipt -P INPUT DROP
$ipt -P FORWARD DROP
#-------------------------------------------
echo "liberando localhost"

$ipt -A INPUT -s $io -j ACCEPT
$ipt -A FORWARD -s $io -j ACCEPT
#---------------------------------------------
echo "liberando FORWARD para rede interna"

$ipt -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$ipt -A FORWARD -s $rede_int -j ACCEPT
$ipt -A FORWARD -p icmp -j ACCEPT
$ipt -A FORWARD -s 172.16.0.0 -p tcp -m tcp -j ACCEPT
$ipt -A FORWARD -s 172.16.0.0 -p udp -m tcp -j ACCEPT
$ipt -A FORWARD -p tcp -m tcp --dport 3389 -j ACCEPT
#-----------------------------------------------------------------
echo "liberando INPUT"

$ipt -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$ipt -A INPUT -p tcp -m --dport 5000 -j ACCEPT
$ipt -A INPUT -p tcp -m --dport 3000 -j ACCEPT
$ipt -A INPUT -p tcp -m --dport 25 -j ACCEPT
$ipt -A INPUT -s 10.50.52.0/255.255.252.0 -p tcp -m tcp --dport 53 -j ACCEPT
$ipt -A INPUT -s 10.50.52.0/255.255.252.0 -p udp -m udp --dport 53 -j ACCEPT
$ipt -A INPUT -s 10.50.52.0/255.255.252.0 -p tcp -m tcp --dport 80 -j ACCEPT
$ipt -A INPUT -s 200.203.249.10 -p tcp -m tcp --dport 80 -j ACCEPT
$ipt -A INPUT -s 200.203.249.100 -p tcp -m tcp --dport 80 -j ACCEPT
$ipt -A INPUT -s 10.50.52.0/255.255.252.0 -p tcp -m tcp --dport 3128 -j ACCEPT
$ipt -A INPUT -p icmp -j ACCEPT
#
$ipt -I FORWARD -S 10.50.52.0/255.255.252.0 -p tcp --dport 1863 -j ACCEPT
$ipt -I FORWARD -S 10.50.52.0/255.255.252.0 -p tcp --dport 5190 -j ACCEPT
$ipt -I FORWARD -S 10.50.52.0/255.255.252.0 -p tcp --dport 1863 -j ACCEPT
$ipt -I FORWARD -S 10.50.52.0/255.255.252.0 -p tcp --dport 5190 -j ACCEPT
#
$ipt -A OUTPUT -p tcp --dport 1863 -j DROP
$ipt -A OUTPUT -p tcp --dport 5190 -j DROP
#
$ipt -A FORWARD -p tcp --dport 25 -j ACCEPT
$ipt -A FORWARD -p tcp --dport 110 -j ACCEPT
#
$ipt -A FORWARD -p udp -s 10.50.52.0/255.255.252.0 -d 200.175.5.139 --dport 53 -j ACCEPT
$ipt -A FORWARD -p udp -s 200.175.5.139 -sport 53 -d 10.50.52.0/255.225.252.0 -j ACCEPT
$ipt -A FORWARD -p udp -s 10.50.52.0/255.255.252.0 -d 201.10.120.2 --dport 53 -j ACCEPT
$ipt -A FORWARD -p udp -s 201.10.120.2 -sport 53 -d 10.50.52.0/255.225.252.0 -j ACCEPT
$ipt -A FORWARD -p tcp -s 10.50.52.0/255.255.252.0 --dport 25 -j ACCEPT #SMTP
$ipt -A FORWARD -p tcp -s 10.50.52.0/255.255.252.0 --dport 587 -j ACCEPT #SMTP
$ipt -A FORWARD -p tcp -s 10.50.52.0/255.255.252.0 --dport 110 -j ACCEPT #POP3
#-----------------------------------------------------------------
echo "redirecionando portas para o squid"

$ipt -t nat -A PREROUTING -s 10.50.52.0/255.255.252.0 -p tcp --dport 80 -j REDIRECT --to-port 3128
#-----------------------------------------------------------------
echo "liberando mascaramento de rede"

$ipt -t nat -A POSROUTING -o eth0 -j MASQUARADE
#-----------------------------------------------------------------FIM----------------------------------------------------









Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts