Iptables

1. Iptables

Marcello
gmsweb

(usa OpenSuSE)

Enviado em 24/03/2009 - 13:59h

Pessoal, preciso de ajuda pra montar uma regra com o iptables....

Meu problema é o seguinte... preciso permitir o tráfego que vem de fora, de um determinado IP e determinada porta, para uma outra porta de um computador na minha rede interna.....

Tenho o squid rodando no meu servidor......

Alguém pode me ajudar !?!?

Obrigado.

S.O = OpenSuse


  


2. MELHOR RESPOSTA

Eduardo Paim Silveira
eduardo

(usa Linux Mint)

Enviado em 24/03/2009 - 14:19h

Boa tarde,

Para redirecionar para dentro, você pode utilizar a tabela nat. Como eu sempre utilizo o RELATED,ESTABLISHED, vou lhe mostra um exemplo baseado nessa idéia.


iptables -t nat -A PREROUTING -s ip_do_cara_que_vai_acessar -d ip_da_sua_placa_externa_do_server -p tcp porta_que_o_cara_vai_usar -j DNAT --to ip_da_máquina_interna:porta_da_máquina ###essa regra redireciona pra dentro
iptables -A FORWARD -j ACCEPT -s ip_do_cara_que_vai_acessar -d ip_da_máquina_interna -p tcp --dport porta_da_máquina --syn ###essa regra deixa repassar.


Ex:
iptables -t nat -A PREROUTING -s 201.1.2.3 -d 189.7.65.4 -p tcp 1234 -j DNAT --to 192.168.1.2:5900
iptables -A FORWARD -j ACCEPT -s 201.1.2.3 -d 192.168.1.2 -p tcp --5900 --syn


Nota:
Se a o seu server não possui IP fixo, e sim, só o modem adsl, você precisa criar uma regra no modem também, para repassar. O --syn eu coloquei porque utilizo o RELATED,ESTABLISHED, como falei antes.
Se o cara que vai acessar não tiver ip fixo, não precisa botar o IP dele. Só que dai ficara liberado para todo mundo poder acessar.



Abraços.

3. Re: Iptables

Marcello
gmsweb

(usa OpenSuSE)

Enviado em 24/03/2009 - 15:30h

thedrummer, obrigado pela resposta... mas não rolou não...

Deixa eu tentar explicar melhor.. pode ser que eu não tenha sido muito claro...

Na minha rede eu tenho um aplicativo rodando em uma máquina com Windows server 2003... recentemente contratamos um servico que acessa as informações que são produzidas por esse aplicativo. Para tal o cliente entre em uma determinada pagina da internet, faz o login e acessa os dados. Essa página está hospedada em um dos servidores da autora do software.... e pra se conectar com a nossa máquina ela usa nosso endereco de ip (que é fixo) e tenta acessar através da porta 8099. Só que esse endereço de ip se refere ao nosso servidor de internet, que compartilha a conexão com os demais micros da rede. Nesse servidor eu estou usando o OpenSuse (não foi escolha minha !)... nele eu tenho o squid rodando pelo que constatei através do comando iptables -L não havia nenhuma regra do iptables rolando... não tinha nada...
Neste servidor eu tenho duas placas de rede eth1-local e eth2-externo. Preciso fazer com que a requisição chegue na porta 8099 do meu computador que esta rodando o windows server 2003, lugar onde o aplicativo reside.
Como não tinha nada de regras no iptables eu coloquei umas bem básicas a fim de dar um minimo de proteção ao servidor (bloqueio de ping, ip spoofing, etc)

A seguir o resultado do comando iptables -L

Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP icmp -- anywhere anywhere icmp echo-request
DROP 0 -- anywhere anywhere state INVALID
ACCEPT 0 -- anywhere anywhere
ACCEPT 0 -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
DROP 0 -- 192.168.0.0/24 anywhere
DROP 0 -- !192.168.0.0/24 anywhere

Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- bsd131.onestop.net 192.168.0.10 tcp dpt:8099 flags:FIN,SYN,RST,ACK/SYN
ACCEPT tcp -- bsd132.onestop.net 192.168.0.10 tcp dpt:8099 flags:FIN,SYN,RST,ACK/SYN

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Desculpe se acabei complicando... mas a intenção é explicar o máximo possível para que vc tenha uma melhor ideia do que está acontecendo...

Mais uma vez obrigado.


4. Re: Iptables

Eduardo Paim Silveira
eduardo

(usa Linux Mint)

Enviado em 24/03/2009 - 16:12h

Boa tarde,

O que você precisa fazer é um DNAT mesmo. COmo está tudo liberado, a regra de baixo nem precisa.

Então faça o seguinte para funcionar.


echo "1" /proc/sys/net/ipv4/ip_forward #habilita repassagem de pacotes
iptables -t nat -A PREROUTING -d ip_válido -p tcp --dport 8099 -j DNAT --to ip_winserver

Essa regra tem que funcionar. Significa que tudo que vier de fora, acessando a eth2 (wan), pela porta 8099, será redirecionado para o ip do win server na mesma porta.


Tenta ai e vê se funciona.


5. Re: Iptables

Marcello
gmsweb

(usa OpenSuSE)

Enviado em 24/03/2009 - 16:29h

Não rolou... coloquei essas regras que vc citou mas aí eu não consegui acessar a página da web pra ver se a conexão rola...

Outra coisa... ao invés de colocar o IP da máquina que está tentando fazer a conexão, tem como eu colocar o nome do dominio !??! ai eu libero o acesso pra determinado dominio (ex. www.xyz.xx.br) que esteja batendo na porta 8099.... é possível isso !?!?


6. Re: Iptables

Eduardo Paim Silveira
eduardo

(usa Linux Mint)

Enviado em 24/03/2009 - 16:57h

Sobre estar te bloqueando a conexão, deve estar havendo algum problema de bloqueio. Ou talvez quando volta ele esta´pegando aquela regra. Por isso utilizo o RELATE,ESTABLISHED.
Sobre colocar um nome, até dá. Mas se eles não tem IP fixo, quando eles trocarem o IP, você terá que reiniciar o firewall para ativar a regra. Senão ele ficará com o IP anterior. E outra, caso o server se reinicie, e o iptables iniciar antes que o DNS, vai dar erro, pois ele não conseguirá resolver o domínio.

Desculpe não poder ajudar mais,
Abraços.


7. Re: Iptables

Sérgio Abrantes Junior
pelo

(usa Debian)

Enviado em 24/03/2009 - 17:23h

Meu caro,

Tente o seguinte:

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -A FORWARD -i eth2--dport 8099 -j ACCEPT

iptables -t nat -A PREROUTING -i eth2 --dport 8099 -j DNAT --to 192.168.0.10:8099

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


Sérgio Abrantes
[]'s


8. Re: Iptables

Eduardo Paim Silveira
eduardo

(usa Linux Mint)

Enviado em 24/03/2009 - 17:29h

O que o Sérgio passou serve para o caso de voce não querer utilizar o RELATED,ESTABLISHED.

Tem que funcionar. A regra de FORWARD não é necessária, pois você tem tudo liberado na Política FORWARD. se você quiser colocar, não tem problema.


Abraços.


9. Re: Iptables

Sérgio Abrantes Junior
pelo

(usa Debian)

Enviado em 24/03/2009 - 17:33h

O que ele falou é verdade.

Qualquer coisa, de uma olhada no script que eu fiz.

http://www.vivaolinux.com.br/etc/rc.firewall-pelo

Sérgio Abrantes
[]'s


10. Re: Iptables

Marcello
gmsweb

(usa OpenSuSE)

Enviado em 25/03/2009 - 10:27h

cara.. ainda não tá rolando... eu não sei como é que a pessou que configurou esse servidor fez.... vou continuar tentando.. assim que obtiver a resposta eu posto aqui... muito obrigado..

ah, obrigado pelo script ! muito legal.


11. Re: Iptables

Sérgio Abrantes Junior
pelo

(usa Debian)

Enviado em 25/03/2009 - 17:13h

Meu caro,

Coloque então qual o ip que vai receber o pacote e qual a porta.
Coloque também o ip da rede interna e a porta que ele vai receber o pacote.
Caso seja de apenas uma origem externa, coloque o IP de fora que está tentando acessar.

Ai eu faço um script pra você testar.

Sérgio Abrantes
[]'s


12. Re: Iptables

Marcello
gmsweb

(usa OpenSuSE)

Enviado em 26/03/2009 - 15:13h

Sergio,

A coisa é mais ou menos assim :

as requisiçoes vem do IP aaa.aa.aa.aaa(mundo externo) para o meu ip bbb.bb.bb.bbb na porta 8099 (meu ip externo é fixo). daí eu preciso redirecionar isso pra um computador dentro da minha rede local no endereço 192.168.0.10 na porta 8099.

** toda vez que eu alterar minhas regras no iptables eu preciso reiniciar meu servidor !?!?!

Desculpe por não colocar os IPs reais... mas é que quando se trata de internet... já viu né...

Muito obrigado pela ajuda.





01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts