configurar iptables certo


09-02-2005 por avalon_ufmt
configurar iptables certo
acabei de ler um livro do morimoto que ensina a implementar iptables, mas não consegui fazer isso com sucesso. Eu queria bloquear todas as portas e ir liberando apenas algumas, como por exemplo a 22,80,901,1863(amsn),6891,4662,4672(udp),6670. Ah, e também queria que o iptables aceitasse automaticamente pacotes vindo da própria rede.

as portas de 1863 em diante estão configuradas no meu modem pra fazer NAT, já que sem nat não posso conectar com ID alta no amule, conectar mais rápido no azureus, mandar arquivos pelo AMSN etc.

Bem pelo que eu sei iptables com NAT é qdo o proprio servidor tem firewall, oq nao eh meu caso, meu pc ta ligado num hub que distribui internet pra 2 pcs (configurei o modem adsl como Servidor DHCP).

adicionei as seguintes regras em um script:

iptables -A INPUT -p tcp -s 10.1.1.0/8 -j ACCEPT (aceitar conexoes da rede interna)

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE (mascaramento... se é que meu modem ja nao faz isso...???)

iptables -A INPUT -p tcp --sport 22 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -j ACCEPT
iptables -A INPUT -p tcp --sport 901 -j ACCEPT
iptables -A INPUT -p tcp --sport 1863 -j ACCEPT
iptables -A INPUT -p tcp --sport 6891 -j ACCEPT
iptables -A INPUT -p tcp --sport 4662 -j ACCEPT
iptables -A INPUT -p udp --sport 4672 -j ACCEPT
iptables -A INPUT -p tcp --sport 6881 -j ACCEPT
iptables -A INPUT -p tcp --sport 6670 -j ACCEPT
iptables -A INPUT -p tcp -j DROP

problema: é só ligar o amsn e testar que ele não consegue conectar, mas eu não entendo como... o amsn ta configurado pra escutar na porta 1863, e essa porta esta como liberada no script acima, entao pq nao ta aceitando conexão???

gostaria de uma ajuda e sugestões tb... valeu
09-02-2005 por avalon_ufmt
?????????????????????????????????????????????????? ???????????????????????????
09-02-2005 por Andre Gustavo
Tente liberar a porta 1333,1340,1347...

Toda vez que entro no aMSN ele muda a porta de conexao...eu fiz umas três vezes e as portas sempre comecavam com 13.
1333,1340,1347...Só usar o comando "netstat -na" quando vc entiver conectando.
Por causa do Azureus eu comecei a ler a respeito do IPTABLES,mas ate agora nada de conseguir resolver o tal problema de NAT que ele acusa...

Vlw
09-02-2005 por avalon_ufmt
Citação:
Postado Originalmente por Andre Gustavo
Tente liberar a porta 1333,1340,1347...

Toda vez que entro no aMSN ele muda a porta de conexao...eu fiz umas tr...
se vc quiser resolver o problema de nat do seu modem vai ter que adicionar regras de nat nele, caso ele esteja configurado pra ser servidor dhcp e seu ip seja dinamico. outra solução é desativar o dhcd e usar ip fixo... mas isso eu acho menos pratico... adicionar uma regra de nat ou duas já resolve seu problema. se vc tiver modem configuravel via browser, va em serviços e depois NAT, lah vc coloca porta de origem e porta de destino iguais as portas que vc quer liberar no azureus (tem 3 campos pra portas lah, vc coloca os 3 campos iguais pra cada regra, mais facil assim).
no local adress vc coloca seu ip usado no momento (da um /sbin/ifconfig pra saber ou ipconfig no windows).
e no global address vc deixa em branco, adiciona a regra e reinicia o modem.
obs se vc tiver usando o azureus no linux pode dar probl tb referente qdo vc salva numa partiçao fat32, pode dar uma mensagem de erro dizendo permissao negada, nesse caso veja as permissoes de arquivo nos diretorios q vc quer salvar e se tiver tudo certo tente de novo sem ter fechado o azureus, q na segunda vez ele aceita
ja liberei as portas q vc falou mas o probl continua o msmo...

nao entendo como funciona direito o iptables... qdo coloco INPUT qual é sport? a minha ou do servidor? e qual seria a --dport? a minha ou do servidor? isso eh importante saber... e qdo mudo pra OUTPUT a --sport vira --dport ou vice-versa??? ou --sport sempre sera minha porta e --dport sempre sera de um servidor da net????
13-02-2005 por Andre Gustavo
Ops,descupa a demora.Ano de vestibular...

Eu tava lendo um texto de um site(www.clubedasredes.eti.br/rede0023.htm)e não entendi quase nada.Dá só uma olhada na figura 2 desse texto.Foi uma das poucas coisas que eu entendi.

Sobre --sport e --dport ele só fala que: --sport -> especifica a porta de origem do datagrama(datagrama?); --dport -> especifica a porta de destino do datagrama.

Outra coisa.A rede que eu estou não é minha.Uso conexão predial e parece que todo mundo aqui do prédio faz parte da rede.Meu IP é fixo também e é um DHCP que me dá ele.E também parece que estou atrás de um server NAT.
O problema do meu Azureus é UPLOAD,por isso a lerdeza dos downloads.
Eu tenho que encaminhar meus pacotes para o NAT,pra depois ele mandar pra Internet.No aMSN tem uma opção de trabalhar atrás de um NAT,mas no Azureus não vi nada parecido.

Daí comecei a pesquisar sobre erros de NAT com o Azureus.Todas as dicas que eu achei favam do IPTABLES...mas aí eu usava aqueles comandos que eles davam...e nada mudava!

Tem outra coisa...meu aMSN não faz uploads de arquivos,só downloads!!!

Vlw
13-02-2005 por Dabel
Putz cara...

Vamos por partes.

Primeiro que datagrama é uma unidade de medida. Diz-se que é um agrupamento lógico de informações. Logo, datagrama não passa de um pacote com o nome mais sofisticado, hehe. Normalmente se designa um pacote IP como um datagrama IP. Sinceramente, dá na mesma.

Partiremos para as coisas mais complicadas. As extensões --dport e --sport significam, respectivamente, destination port (porta de destino) e source port (porta de origem).

Vejo que você pretende habilitar a porta 80. Esse é um erro bastante comum nos cursos de rede: dizem que para conectar-se a um site usa-se a porta 80. Sim, é verdade, mas a porta 80 do servidor web e não do seu PC. Para alguns pode parecer óbvio, mas eu também possuía esse erro conceitual. Então, se você não mantém um site, não tem por quê manter a porta 80 aberta.

Vou tentar te ajudar bastante porque também estou estudando IPtables. Em breve publicarei um artigo sobre isso no meu site. Por enquanto ainda estou verde.

Vejamos.

iptables -A INPUT -p tcp --sport 1863 -j ACCEPT

Você está aceitando (ACCEPT) conexões que chegam (INPUT) ao seu PC pela porta 1863 sobre protocolo TCP. Aí já está um erro. Você especificou --sport, isto é, source port ou porta de origem. O certo deveria ser porta destino. Corrigindo:

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

Até aí tudo bem, mas e a chain OUTPUT? Como é que o aMSN vai se conectar? Você está aceitando conexões na porta 1863, mas não permite que se inicie uma por ela. O certo, nesse caso, seria:

iptables -A INPUT -p tcp --dport 1863 -j ACCEPT # aceita pacotes recebidos na porta 1863
iptables -A OUTPUT -p tcp --sport 1863 -j ACCEPT # permite pacotes enviados da porta 1863

Pelo seu script, suponho que tenha alterado a política de INPUT, OUTPUT e FORWARD para DROP, correto? Senão essa discussão não tem sentido.

Não posso testar isso porque estou na minha máquina Windows. Além do mais não uso o aMSN. Mas acho que era isso. O restante da discussão não compreendi bem.
13-02-2005 por avalon_ufmt
Citação:
Postado Originalmente por Dabel
Putz cara...

Vamos por partes.

Primeiro que datagrama é uma unidade de medida. Diz-se que é um agrupamen...
aih eh q esta o estranho... o OUTPUT e FORWARD estão como ACCEPT, e soh INPUT esta como drop, mas isso nao com a opção -P, e sim com a opção -A.
essa idéia tirei do livro do morimoto, em que ele diz que para evitar que se conectem a seu computador basta fazer isso. O mais estranho disso tudo é isso: ja tentei com a opção --sport e --dport, e mesmo assim nao consegui me conectar no amsn, nem mesmo qdo o amigo sugeriu as outras portas. Com a OUTPUT configurada como ACCEPT, eu teria q me preocupar soh com input neh?

no ethereal ele rastreia pacores relacionados com portas bem diferentes das discutidas aqui, como por ex:
No. Time Source Destination Protocol Info
5 0.305797 10.1.1.9 207.46.104.20 TCP 32904 > 1863 [ACK] Seq=1 Ack=1 Win=5840 Len=0 TSV=1284963 TSER=0

No. Time Source Destination Protocol Info
7 0.374912 10.1.1.9 10.1.1.1 DNS Standard query A nexus.passport.com

Frame 8 (330 bytes on wire, 330 bytes captured)
Ethernet II, Src: 00:05:5d:99:f4:8b, Dst: 00:08:54:21:c0:c6
Internet Protocol, Src Addr: 10.1.1.1 (10.1.1.1), Dst Addr: 10.1.1.9 (10.1.1.9)
User Datagram Protocol, Src Port: domain (53), Dst Port: 32785 (32785)
Domain Name System (response)

No. Time Source Destination Protocol Info
9 0.427422 10.1.1.9 65.54.179.228 TCP 32905 > https [SYN] Seq=0 Ack=0 Win=5840 Len=0 MSS=1460 TSV=1285085 TSER=0 WS=2

Frame 9 (74 bytes on wire, 74 bytes captured)
Ethernet II, Src: 00:08:54:21:c0:c6, Dst: 00:05:5d:99:f4:8b
Internet Protocol, Src Addr: 10.1.1.9 (10.1.1.9), Dst Addr: 65.54.179.228 (65.54.179.228)
Transmission Control Protocol, Src Port: 32905 (32905), Dst Port: https (443), Seq: 0, Ack: 0, Len: 0

alguem ja viu uma coisa estranha dessas? OUTPUT E FORWARD liberados, porta INPUT fechada mas não com a opção -P, e sim -A, e mesmo com essa proteção relaxada nao conecta no amsn.
ps: agora tou usando o slackware 10, cansei dos updates massivos do fedora
14-02-2005 por avalon_ufmt
Citação:
Postado Originalmente por Andre Gustavo
Ops,descupa a demora.Ano de vestibular...

Eu tava lendo um texto de um site(www.clubedasredes.eti.br/rede0023.htm)...
seu problema parece de NAT mesmo... o fato do amsn so poder fazer download comprova isso.
Veja com o responsável pela internet no prédio se o servidor que distribui os IPs por DHCP é um pc, ou se é um modem ADSL, no segundo caso é só olhar o modelo do modem e entrar nas configurações dele e adicionar as regras de nat que te falei, e liberar as portas que mencionei (1863 e 6891). Acho q o administrador não vai se opor a fazer esse favor pra vc e facilitar sua vida e a de mta gente...

tem outra coisa, mesmo depois de fazer isso o seu azureus pode indicar um problema de nat (isso eh normal), se o smiley ficar amarelado. isso acontece as vezes nao por causa das suas configurações, varia de arquivo pra arquivo mesmo, uns vão ter esse problema e outros não.
se vc aplica NAT na porta de envio do amsn (nao lembro qual a porta, tenta mandar um arquivo q vai mostrar qual porta ele ta tentando usar) a partir daí poderá enviar arquivos pelo amsn sem problema.
no caso do azureus vc vai ver uma boa melhora na sua taxa de download se adicionar a regra de nat, pois o azureus nao trabalhando nas suas portas default é como ter id baixa no e-mule: vc faz mto upload e pouco download (e olha q qdo tem id alta a proporção melhora mto mas fica longe de vc fazer mto mais download q upload).
falow
14-02-2005 por Dabel
Código:
5 0.305797 10.1.1.9 207.46.104.20 TCP 32904 > 1863 [ACK] Seq=1 Ack=1 Win=5840 Len=0 TSV=1284963 TSER=0
Essa linha demonstra claramente que eu me enganei. O 207.46.104.20 é o servidor do MSN. A porta 1863 é a do servidor, não do seu pc. Logo, tanto faz liberar ou negar acesso a essa porta no seu PC.

Já as outras linhas não são referentes às suas conexões com o aMSN. É uma pesquisa DNS e uma requisição ao serviço HTTPS (HTTP seguro), ou seja, nada a ver com o aMSN. A máquina 10.1.1.1 é um servidor DNS???

Mas afinal, você está conectando ou não? Como última medida, para saber se o problema é mesmo o Iptables, limpe todas as configurações com:

# iptables -F

, modifique todas as políticas para ACCEPT e teste [isto é, se ainda não o fez]. Se mesmo assim não der certo, siga as dicas do colega acima.
14-02-2005 por Andre Gustavo
Putz,agora que você falou sobre datagrama fui dá uma olhada em um livro que eu tenho e achei esse mesmo termo...sabia que já tinha escutado em algum lugar.Vlw,Dabel por explicar as regras de sintaxe do IPTABLES.E vlw avalon_ufmt pela diaca do NAT.

Quanto o Azureus e suas portas,vou pediar ao administrador liberar.
Mas tenho uma dúvida,no Windows 98 não houve nenhum erro de NAT no Azureus,por isso eu pensei que o problema fosse no meu IPTABLES não no do server.Por que o Windows pode usar as portas e o linux não?

Vlw pela ajuda pessoal,qualquer novidade eu aviso.
14-02-2005 por avalon_ufmt
Citação:
Postado Originalmente por Andre Gustavo
Putz,agora que você falou sobre datagrama fui dá uma olhada em um livro que eu tenho e achei esse mesmo termo...sabia...
essa vou ficar te devendo, ja que aqui no meu pc tanto o azureus do windows como do linux sempre tiveram comportamento parecido...
falow
14-02-2005 por douglasgm
quando se quer abrir uma porta, sempre abra a entrada e a saida de dados dela... por exemplo:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

Obrigado
 
Guia do Hardware Melhores Tópicos