Liberar computadores e portas [RESOLVIDO]

1. Liberar computadores e portas [RESOLVIDO]

Renato dos Santos
rensantos

(usa Ubuntu)

Enviado em 12/05/2013 - 23:42h

Olá a todos.

Tenho uma dúvida com nossas redes na empresa, tenho 2 redes, cada um com um firewall:

1a - Interface eth0 - interna (10.1.1.0) e eth1 - externa (com fibra e ip dedicado)
Início das regras:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -X
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

2a - Interface eth0 - interna (192.168.1.0) e ppp0 com adsl e um ip fixo
Início das regras:
modprobe ip_nat_ftp
iptables -t nat -F --> (Não posso trocar as regras -t nat ... apenas pelas -F e -Z abaixo?)
iptables -t nat -X
iptables -t nat -Z --> (Não posso trocar as regras -t nat ... apenas pelas -F e -Z abaixo?)
iptables -F
iptables -Z
iptables -t nat -A POSTROUTING -o ppp0 -p tcp -m multiport --dports 490001 -s 192.168.1.0/24-j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.1.0/24 -d ! 200.201.0.0/16 --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -d 65.55.200.0/24 -j MASQUERADE --> tem mais dessas com outras redes

Na 1a rede eu libero IP assim:
iptables -A FORWARD -s 10.1.1.10 -j ACCEPT

Mas na 2a eu tenho que liberar assim:
iptables -t nat -A POSTROUTING -s 192.168.1.10 -j MASQUERADE
Ou a faixa de IP:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE

Se eu colocar a mesma regra do primeiro na segunda rede não funciona, a mesma coisa com as portas.
Eu posso iniciar o iptables da 2a rede igual à esta regra da primeira? --> iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE <-- e depois disso usar as regras como na 1a rede?

Abs,
Renato


  


2. Re: Liberar computadores e portas [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 13/05/2013 - 05:33h

rensantos escreveu:

Olá a todos.

Tenho uma dúvida com nossas redes na empresa, tenho 2 redes, cada um com um firewall:

1a - Interface eth0 - interna (10.1.1.0) e eth1 - externa (com fibra e ip dedicado)
Início das regras:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -X
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

2a - Interface eth0 - interna (192.168.1.0) e ppp0 com adsl e um ip fixo
Início das regras:
modprobe ip_nat_ftp
iptables -t nat -F --> (Não posso trocar as regras -t nat ... apenas pelas -F e -Z abaixo?)
iptables -t nat -X
iptables -t nat -Z --> (Não posso trocar as regras -t nat ... apenas pelas -F e -Z abaixo?)
iptables -F
iptables -Z
iptables -t nat -A POSTROUTING -o ppp0 -p tcp -m multiport --dports 490001 -s 192.168.1.0/24-j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.1.0/24 -d ! 200.201.0.0/16 --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -d 65.55.200.0/24 -j MASQUERADE --> tem mais dessas com outras redes

Na 1a rede eu libero IP assim:
iptables -A FORWARD -s 10.1.1.10 -j ACCEPT

Mas na 2a eu tenho que liberar assim:
iptables -t nat -A POSTROUTING -s 192.168.1.10 -j MASQUERADE
Ou a faixa de IP:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE

Se eu colocar a mesma regra do primeiro na segunda rede não funciona, a mesma coisa com as portas.
Eu posso iniciar o iptables da 2a rede igual à esta regra da primeira? --> iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE <-- e depois disso usar as regras como na 1a rede?

Abs,
Renato


Vamos lá. Deixa ver se eu entendi: você tem dois servidores configurados para duas subredes internas.

Primeiro você faz assim: dá 3 pulinhos para a esquerda e repete: pé de pato mangalô 3 vezes.

Ou então, no primeiro servidor você coloca:
iptables -t nat A POSTROUTING -o eth1 -j SNAT --to-source ip_da_placa_da_rede_externa_do_servidor << mas veja bem, não vá colocar ip_da_placa_da_rede_externa_do_servidor nas tuas regras; é para colocar o IP da placa de rede externa do servidor.

E no segundo servidor:
iptables -t nat A POSTROUTING -o ppp0 -j SNAT --to-source ip_da_placa_da_rede_externa_do_servidor << mesmo caso de cima quanto ao IP.


iptables -t nat -F --> (Não posso trocar as regras -t nat ... apenas pelas -F e -Z abaixo?)
iptables -t nat -X
iptables -t nat -Z --> (Não posso trocar as regras -t nat ... apenas pelas -F e -Z abaixo?)

Essas 3 regras aí de cima são para limpar (-F), apagar (-X) e zerar (-Z) as chains na tabela nat.


iptables -t nat -A POSTROUTING -d 65.55.200.0/24 -j MASQUERADE --> tem mais dessas com outras redes.

Esta regra aí de cima está dizendo, ou melhor, está gritando: IPTABLES ADICIONE (-A) NA TABELA (-t) NAT NA CHAIN POSTROUTING (depois do roteamento) A REGRA DE QUE TUDO QUE FOR COM DESTINO (-d) À REDE 65.55.200.0/24 USE (-j) O MASCARAMENTO.

Porém, se você tem IPs fixos nas placas de rede internas e externas, NÃONÃONÃONÃONÃONÃONÃONÃO (desculpa, travou o teclado) NÃO se usa MASQUERADE com IP fixo. Se usa -j SNAT. O MASQUERADE é somente quando o IP na placa de rede utilizada na regra está dinâmico (automático).

Troque todas as regras que você tem com -j MASQUERADE por -j SNAT. Mas veja bem, o -j SNAT não é no fim da regra. Tome como exemplo as duas regras que coloquei lááá em cima. Só não vá colocar ip_da_placa_da_rede_externa_do_servidor.

E esse teu script é uma bagunça sem tamanho.

Veja aqui o Manual traduzido do IPtables:
http://www.vivaolinux.com.br/artigo/Manual-do-IPtables-Comentarios-e-sugestoes-de-regras/

E leia isto para te ajudar:
http://www.vivaolinux.com.br/artigo/Redes-de-Computadores-IPtables-Enderecos-IPs-Explicacoes-basicas...

Dúvidas, posta aqui.


3. Re: Liberar computadores e portas [RESOLVIDO]

Renato dos Santos
rensantos

(usa Ubuntu)

Enviado em 13/05/2013 - 17:30h

Olá Buckminster,

Então, dei 3 pulinhos e fiquei olhando pra tela, mas não aconteceu nada, tive q ler o resto.

Assim, as redes são em escritórios separados, na 1a ela parece mais estruturada, enquanto que na segunda eu, mesmo na minha ignorância quanto à iptables, achava ter alguma coisa errada, uma vez que o MASQUERADE realmente não se deve usar com IP dinâmico, tem até no man isso, porém, veja como está o /etc/network/interfaces:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo eth0
iface lo inet loopback

iface eth0 inet static
address 192.168.1.254
netmask 255.255.255.0

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth1 up # line maintained by pppoeconf
provider dsl-provider

auto eth1
iface eth1 inet manual

Apesar de termos um IP fixo, ele não está configurado na ppp0, está errado isto, não é? Por que teríamos um IP fixo e não configurar na interface, certo?

Ok, digamos que eu configure o IP fixo na ppp0, depois disso é só alterar as regras para SNAT, como no exemplo:

Esta regra:
iptables -t nat -A POSTROUTING -d 65.55.200.0/24 -j MASQUERADE
Ficaria:
iptables -t nat -A POSTROUTING -d 65.55.200.0/24 -j SNAT --to-source meu_ip_da_placa_da_rede_externa

Ou mantenho o IP dinâmico e não mexo nas regras do tipo MASQUERADE?

Abs,
Renato


4. Re: Liberar computadores e portas [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 13/05/2013 - 17:50h

Antes de qualquer coisa poste aqui a saída do comando ifconfig desse servidor aí.

Veja bem:
iptables -t nat -A POSTROUTING -d 65.55.200.0/24 -j MASQUERADE << esta regra está dizendo para aceitar tudo que entrar e/ou sair por QUALQUER PLACA DE REDE que tenha destino à rede 65.55.200.0/24. É isso mesmo que você quer?

E vai ver você pulou para a direita em vez de para a esquerda... daí não dá certo mesmo.


5. Re: Liberar computadores e portas [RESOLVIDO]

Renato dos Santos
rensantos

(usa Ubuntu)

Enviado em 13/05/2013 - 19:11h

Buckminster, segue:

eth0 Link encap:Ethernet Endereço de HW 70:71:bc:65:21:70
inet end.: 192.168.1.254 Bcast:192.168.1.255 Masc:255.255.255.0
endereço inet6: fe80::7271:bcff:fe65:2277/64 Escopo:Link
UP BROADCASTRUNNING MULTICAST MTU:1500 Métrica:1
RX packets:32767951 errors:0 dropped:0 overruns:0 frame:0
TX packets:28981075 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:1000
RX bytes:2401706603 (2.2 GiB) TX bytes:3042946509 (2.8 GiB)
IRQ:220 Endereço de E/S:0xa000

eth1 Link encap:Ethernet Endereço de HW 00:1a:3f:56:21:d5
endereço inet6: fe80::21a:3fff:fe56:21d5/64 Escopo:Link
UP BROADCASTRUNNING MULTICAST MTU:1500 Métrica:1
RX packets:30267660 errors:0 dropped:0 overruns:0 frame:0
TX packets:33028242 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:1000
RX bytes:3958087637 (3.6 GiB) TX bytes:705022796 (672.3 MiB)
IRQ:21 Endereço de E/S:0xd000

lo Link encap:Loopback Local
inet end.: 127.0.0.1 Masc:255.0.0.0
endereço inet6: ::1/128 Escopo:Máquina
UP LOOPBACKRUNNING MTU:16436 Métrica:1
RX packets:11208319 errors:0 dropped:0 overruns:0 frame:0
TX packets:11208319 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:0
RX bytes:3868566603 (3.6 GiB) TX bytes:3868566603 (3.6 GiB)

ppp0 Link encap:Protocolo Ponto-a-Ponto
inet end.: 128.241.204.103 P-a-P:177.42.95.2 Masc:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Métrica:1
RX packets:3943119 errors:0 dropped:0 overruns:0 frame:0
TX packets:4464694 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:3
RX bytes:2517457919 (2.3 GiB) TX bytes:1220373754 (1.1 GiB)



6. Re: Liberar computadores e portas [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 13/05/2013 - 21:59h

Ok, se a ppp0 está com IP dinâmico, deixa ela assim e coloca:

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Esta regra acima está dizendo que tudo que entrar pela placa ppp0 será compartilhado com todas as outras placas de rede que estiverem no servidor. E é isso que queremos.


iptables -t nat -A POSTROUTING -p protocolo -d 65.55.200.0/24 -j MASQUERADE << se você optar por essa regra precisa colocar -p e o protocolo 80, 443, etc. Ela vai encaminhar os pacotes com destino (-d) à rede 65.55.200.0/24 pelo protocolo especificado.

"Mas na 2a eu tenho que liberar assim:
iptables -t nat -A POSTROUTING -p protocolo -s 192.168.1.10 -j MASQUERADE
Ou a faixa de IP:
iptables -t nat -A POSTROUTING -p protocolo -s 192.168.1.0/24 -j MASQUERADE"

Estas duas regras acima, a primeira encaminha para os outros os pacotes que tiverem origem (-s) no IP especificado, e precisa -p e o protocolo. Use esta regra quando quiser liberar alguma coisa somente para um IP em específico.
A segunda encaminha para os outros os pacotes que tiverem origem na rede interna, e precisa -p e o protocolo.
Sempre com MASQUERADE precisa especificar o protocolo. Somente na regra de compartilhamento que não é necessário especificar o protocolo (iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE).



7. Re: Liberar computadores e portas [RESOLVIDO]

Renato dos Santos
rensantos

(usa Ubuntu)

Enviado em 14/05/2013 - 00:24h

Buckminster, eu tenho vários ips que estão com esta sintaxe:

iptables -t nat -A POSTROUTING -d 65.55.200.0/24 -j MASQUERADE

São vários mesmo, mais de 70, todos eu teria que alterar para, por exemplo -p 443? Não tem jeito de deixar direcionado a porta 80 pro proxy transparente (3128), e só BLOQUEAR o que eu não quiser na 443, como facebook por exemplo? Não por preguiça de modificar, isso eu posso fazer substituindo mas sei lá, talvez por performance? Ou não tem nada a ver?
E no caso de bloquear o facebook no firewall por IP, qual sintaxe eu posso usar?

Abs,
Renato


8. Re: Liberar computadores e portas [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 14/05/2013 - 00:55h

rensantos escreveu:

Buckminster, eu tenho vários ips que estão com esta sintaxe:

iptables -t nat -A POSTROUTING -d 65.55.200.0/24 -j MASQUERADE

São vários mesmo, mais de 70, todos eu teria que alterar para, por exemplo -p 443? Não tem jeito de deixar direcionado a porta 80 pro proxy transparente (3128), e só BLOQUEAR o que eu não quiser na 443, como facebook por exemplo? Não por preguiça de modificar, isso eu posso fazer substituindo mas sei lá, talvez por performance? Ou não tem nada a ver?
E no caso de bloquear o facebook no firewall por IP, qual sintaxe eu posso usar?

Abs,
Renato


Para redirecionar para o Squid faz assim:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

Para bloquear a porta 443:
iptables -A FORWARD -p 443 -j DROP << mas isso bloqueia todas as conexões pela porta 443.
Mas você pode criar uma ACL no Squid e colocar os IPs dentro do arquivo.


Para o facebook, use esse script de um membro aqui do VOL, cambj:

"Consegui o bloqueio do facebook e outros sites aqui na minha empresa e gostaria de compartilhar com vocês , ai vai :
Script que pega o ip do facebook e joga dentro de um arquivo chamado host_facebook, depois uma expressão regular usando o "sed" que captura dentro do arquivo host_facebook qualquer endereço de IP e joga para dentro de outro arquivo chamado ip_facebook e por fim uma regra que podemos adiciona-la dentro do nosso firewall que pega todos os ips dentro do arquivo ip_facebook e adiciona uma regra de INPUT e FORWARD DROP para cada IP.

Segue o script e lembrando que precisamos criar os arquivos e indicá-los no script sua localização:
#/bin/bash
#LIMPAR ARQUIVO ip_facebook
echo "" > ip_facebook
#CAPTURAR IP DO FACEBOOK
host www.facebook.com >> /root/host_facebook

## EXPRESSÃO REGULAR PARA CAPTURAR SOMENTE OS IPS DO ARQUIVO host_facebook
sed -n 's/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/\nip&\n/gp' /root/host_facebook | grep ip | sed 's/ip//'| sort | uniq >> /root/ip_facebook

## REGRA DE CONDIÇÃO PARA BLOCK DOS IPS
for ip in $(cat /root/ip_facebook); do
iptables -I FORWARD -s $ip -j DROP;
iptables -I INPUT -s $ip -j DROP;
done

Após tudo isso precisamos adicionar no agendador cron para execução do script de 2 em 2 minutos que é o tempo que estimei para renovação dos ips do facebook.

Abraços a todos espero ter ajudado."






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts