# Partilhar Net.

## Mythos

Gostava de saber uma coisa, o emerge dhcp, dá para partilhar net ? OU tenho que fazer sempre MASQUERADE no iptables, para partilha de net para uns quantos computadores 6 a 10 acham que devo configurar o dhcp ou fazer o MASQUERADE sem dhcp ?

  E já agora existe algum howto, rede interna já tenho, gostaria de partilhar com dhcp e não sem. Acham que usar o dhcp é seguro ? Ouvi dizer que tinha algumas "falhas". Nesse computador que estou a instalar o gentoo meti lá o hardened-dev-sources.

----------

## codemaker

Para partilhar a net precisas de ip forwarding e precisas do marquerading (NAT). Sem masquerading, a tua gateway não saberia para que máquina da rede interna deveria redireccionar um pacote que vem da rede exterior (internet).

O dhcp serve para atribuir ips dinamicamente. Se preferires atribuir a cada máquina um ip fixo, não precisas de dhcp para nada. 

Em minha casa, uso DHCP para ditribuir ips locais, os endereços dos servidores de DNS e o endereço do servidor NTP. Assim, sempre que ligo um computador qualquer à rede, fica automáticamente configurado para ligação à internet.

O DHCP deverá estar direccionado apenas para a tua rede interna e não deve ester visível de fora.

----------

## Mythos

Bom hoje já meti a fazer sharing mais dhcp, contudo reiniciei o PC, e deixou de funcionar !!!

lá tive que meter novamente as regras de iptables lol. depois disso fica o sharing bem .

O dhcp atribui já bem os ip's.

básicamente tenho esta configuração:

/etc/mythos.conf:

```
#!/bin/bash

IPTABLES='/sbin/iptables'

# Set interface values

EXTIF='eth0'

INTIF1='eth1'

# enable ip forwarding in the kernel

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

# flush rules and delete chains

$IPTABLES -F

$IPTABLES -X

# enable masquerading to allow LAN internet access

$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

# forward LAN traffic from $INTIF1 to Internet interface $EXTIF

$IPTABLES -A FORWARD -i $INTIF1 -o $EXTIF -m state --state NEW,ESTABLISHED -j ACCEPT

#echo -e "       - Allowing access to the SSH server"

$IPTABLES -A INPUT -p tcp --dport 21 --syn -j ACCEPT

#echo -e "       - Allowing access to the SSH server"

$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT

#echo -e "       - Allowing access to the HTTP server"

$IPTABLES -A INPUT -p tcp --dport 80 --syn-j ACCEPT 

$IPTABLES -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

$IPTABLES -A FORWARD -p tcp --tcp--flags SYN, ACK  -m limit --limit 1/s -j ACCEPT

$IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

chmod +x /etc/myhtos.conf

/etc/mythos.conf

/etc/init.d/iptables save

cp /var/lib/iptables/rules-save /etc/mythos.conf

 

/etc/init.d/iptables start; /etc/init.d/iptables stop; /etc/init.d/iptables start

rc-update add iptables default 
```

sempre que faço isto fica tudo bem  :Sad: , o prob é quando reinici-o o computador !!!

  O DHCP não meti porque funciona na perfeição. Mesmo atribuindo manualmente não funciona.

usei o hardened-dev-sources.

----------

## codemaker

/etc/init.d/iptables save

EDIT:

oops! Não tinha reparado que já fazias isso. Tens a certeza que as regras de iptables se vão? Se fizeres iptables -L não estão lá as regras?

Não será antes isto: 

```

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

```

vai ao ar?

----------

## Mythos

 *Quote:*   

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

 

Devo por outra coisa ?

echo "1" > /proc/sys/net/ipv4/ip_dynaddr 

???

Nope, aquilo parecia uma cena à certo tipo de sistema operativo!!! Sempre que volto a por as regras ele funciona, quando reinicio, faço iptables --list, e elas continuam lá !!!!

Estranho não é !

----------

## codemaker

Não é isso. É que aquele comando 

```

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

```

deve ser executado sempre que inicias o computador. Não tem nada a ver com regras do iptables. Experimenta fazer 

```

cat /proc/sys/net/ipv4/ip_forward 

```

logo a seguir a reiniciares a máquina. Se estiver a '0', tens aí o teu problema.

Eu tenho o meu no /etc/conf.d/local.start tal como é descrito no último ebuild do iptables.

----------

## Mythos

Ok thanx  :Smile:  vou tentar ver isso, deve ser isso ele não deve estar a por o ip_foward!!!

   ... mas só amanhã aquilo é um pequeno lab para o pessoal de informática, querem lá meter .net, e eu dou-lhes com o .net. mono power  :Twisted Evil: 

Thanx CodeMaker

----------

## Mythos

Tens razão apliquei mal o comando, o valor estava a zero, mas pronto fiz um scriptzito meti no rc-uptade lol e voilá

Thanx

----------

## Mythos

já agora caso alguém tenha o mesmo problema cá fica o script:

```
nano /etc/init.d/NAT

#!/sbin/runscript

  

start()

        {

        ebegin "Nat Activo"

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

        eend

        }

  

stop()

        {

        ebegin "Nat Desactivado"

        echo "0" > /proc/sys/net/ipv4/ip_forward

        }
```

```
chmod +x /etc/init.d/NAT
```

```

rc-update add NAT default
```

----------

## h0b

Não precisava criar esse script!  :Very Happy: 

Pode ativar o ip_forwarding em /etc/conf.d/iptables ou /etc/sysctl.conf

 :Wink: 

----------

## Mythos

pois e quando vais a desligar a máquina, fecha a iptables e deixa o nat activo, nesses poucos segundos podem acontecer muitas coisas digo eu ...

com o script, desliga o sharing .

 :Wink: 

----------

## m3thos

 *Mythos wrote:*   

> pois e quando vais a desligar a máquina, fecha a iptables e deixa o nat activo, nesses poucos segundos podem acontecer muitas coisas digo eu ...
> 
> com o script, desliga o sharing .
> 
> 

 

epá, primeiro que tudo, NAT, não é IP forwarding, que é o que tu estás a activar.

o ip forwarding é apenas a possibilidade de o teu PC poder reencaminhar pacotes que não são dirigidos a ele, usando a sua tabela de routing... 

e não deixa nat activo coisa nenhuma, a unica coisa que o ip forwarding faz é permitir aos PCs locais enviar dados(pacotes) para a internet, mas como a NAT foi desactivada, não tem consequencias nenhumas porque toda a comunicação no sentido contrário é filtrada.

e devo lembrar que para qualquer ligação TCP é preciso comunicação bidireccional..

conclusão, não deixa o "nat activo" e "nesses poucos segundos" não pode acontecer "muita coisa".....

e é melhor leres o iptables howto, ou algo do género, pois estás com os conceitos todos trocados....

MASQUERADING: um tipo de NAT, que significa: network address translation...

IP forwarding: tradução perguiçosa dá algo como: reencaminhamento de trafego IP..

DHCP: tal como já disseram, serve apenas para atribuir dinamicamente IPs a máquinas não tem nada a ver com a "partilha da net" ie: nat, ou ip forwarding.

----------

## Mythos

Ok.

O que eu queria meti a funcionar e era o que me intressava, quando queremos que funcione uma coisa, não vamos estar a abrir o LELO Universal para ler todos os significados.

NEste momento só me falta uma coisa aqui no PC de cima, por a porcaria do mozilla versao 0.9 para cima a compilar bem e lá em baixo o mono a compilar bem, num funciona uma coisa noutro outra grrrrrrrrrrrrr

----------

## Kobal

O Mythos, vc podia fazer um script do iptables pra min, não sei nada de iptables, segue minhas regras, e tb queria saber como fazer pra ele funcionar no boot. 

#!/bin/bash

#limpando tabelas

iptables -F &&

iptables -X &&

iptables -t nat -F &&

iptables -t nat -X &&

#liberando acesso interno da rede

iptables -A INPUT -p tcp --syn -s 192.168.1.0/255.255.255.0 -j ACCEPT &&

iptables -A OUTPUT -p tcp --syn -s 192.168.1.0/255.255.255.0 -j ACCEPT &&

iptables -A FORWARD -p tcp --syn -s 192.168.1.0/255.255.255.0 -j ACCEPT &&

#compartilhando a web na rede interna

#iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth1 -j MASQUERADE &&

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

# Protecao contra port scanners ocultos

iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

iptables -A INPUT -s 10.0.0.0/0 -p icmp -j DROP

# Bloqueando tracertroute

iptables -A INPUT -p udp -s 0/0 -i eth0 --dport 33435:33525 -j DROP

#Protecoes contra ataques

iptables -A INPUT -m state --state INVALID -j DROP

iptables -A OUTPUT -p tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j DROP

#Ping da morte

iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

# Porta Wincrash

iptables -A INPUT -p tcp --dport 5042 -j LOG --log-prefix "ServiÃ§o: Wincrash"

#Portas BackOrifice

iptables -A INPUT -p tcp --dport 12345 -j LOG --log-prefix "ServiÃ§o: BackOrifice"

#ProteÃ§Ã£o contra Syn-floods

iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

#Regras de  Mascaramento

#iptables -P INPUT DROP

#iptables -P FORWARD DROP

#iptables -P OUTPUT ACCEPT

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

#iptables -A FORWARD -i ppp0 -j ACCEPT

#iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT

Falta incluir as regras de NAT, esses que tão comentados eu deichei porque vai que um dia preciso. Valeu .

----------

## fernandotcl

Kobal, te recomendo esse tutorial de iptables. Eu também não sabia nada de iptables, agora já estou melhorando, mas ainda tenho que estudar muito mais. Eu recomendo que antes você dê uma olhada em documentação do TCP/IP. Eu encontrei alguma informação num livro do Morimoto, mas o livro em si não é nada bom.

Eu estou construindo um firewall com o iptables pra mim, e por enquanto passou em alguns testes de segurança, mas precisa ser aperfeiçoado. Acho que se o interesse continuar, devemos fazer um tópico sticky sobre iptables.

Quanto ao seu caso, você poderia dar mais detalhes da rede (quem é quem)? E na sua rede tem um computador 192.168.1.0 com máscara de rede 255.255.255.0, mas o correto não seria usar 192.168.0.x ou 10.0.0.x? Além disso, "iptables -F" já não limpa a tabela inteira?

----------

## Mythos

OKi, amanhã vou ter uma frequência deposi disso, mando aquilo que fiz ...

----------

## Kobal

 *Quote:*   

>   devemos fazer um tópico sticky sobre iptables.  

 

Ta precisando pinar um topico desse mesmo, muito bom esse tutorial que vc me falou,   :Very Happy:   , Será que falta muito pro pf vir pro Linux ?   :Very Happy: 

Vamo cria esse topico ae mesmo.

----------

## pilla

Mais um tópico sticky? Já temos 7 aqui no Portuguese.

----------

## fernandotcl

 *pilla wrote:*   

> Mais um tópico sticky? Já temos 7 aqui no Portuguese.

 

Temos bastante, mas alguns não são tão úteis quanto esse. O concurso de idéias para o gentoopt.org está parado desde fevereiro. Imagine quantos não estão atrás nem sequer de um simples firewall.

----------

## Kobal

Poderia remover esse: 

Sticky: [PT-DOC] - Gentoo Weekly Newsletter

----------

## Karma_Police

E que tal criar um sticky com links para os howtos daqui do forum português? Podia-se por uma pequena descrição do howto seguido do link. Assim não subiam o número de stickys, e parece-me que seria util para todos os novatos.

----------

## Kobal

Esse tb ( Sticky: [ Poll ] Aviso aos navegadores ) acho que esse poderia descer, ja que aqui nunca tem briga.

----------

## codemaker

 *Karma_Police wrote:*   

> E que tal criar um sticky com links para os howtos daqui do forum português? Podia-se por uma pequena descrição do howto seguido do link. Assim não subiam o número de stickys, e parece-me que seria util para todos os novatos.

 

Um sticky -> vários how-to. Parece-me uma excelente ideia para poupar no número de threads coladas  :Wink: 

----------

## fernandotcl

Acho que os stickys precisam de uma limpeza. A idéia do Karma_Police é boa. Talvez possamos un-stickar alguns tópicos, escrever how-tos (inclusive o do iptables) e publicar num site como o GentooBR e linkar num só sticky. E fazemos um tópico convencional para discutirmos o conteúdo do how-to do iptables. O que vocês acham?

----------

## Kobal

 *Quote:*   

>  O que vocês acham? 

 

Eu acho a ideia boa, criar um como o codemaker disse e outro como o fernandotcl disse pro comentarios.

----------

## Kobal

Decidiram algo ?

----------

## codemaker

 *Kobal wrote:*   

> Decidiram algo ?

 

Acho que faltam comentários dos moderadores.

----------

## klap

 *Kobal wrote:*   

>  *Quote:*     devemos fazer um tópico sticky sobre iptables.   
> 
> Ta precisando pinar um topico desse mesmo, muito bom esse tutorial que vc me falou,    , Será que falta muito pro pf vir pro Linux ?  
> 
> Vamo cria esse topico ae mesmo.

 

eu apoio  :Very Happy: 

----------

## fernandotcl

Vamos ver, parece que a comunidade aceitou, agora falta a aprovação dos moderadores e alguém para hospedar os how-tos.

EDIT: Acabei de me lembrar, o SourceForge.net hospeda projetos de documentação, então hospedagem não é um grande problema.

----------

## pilla

Acho que essa thread serve como repositório de links para recursos de Linux em português (e já está sticky).

----------

## Kobal

 *Quote:*   

>  Acho que essa thread serve como repositório de links para recursos de Linux em português (e já está sticky). 

 

Mais um com a ideia, ficaria melhor   :Very Happy:  .

 *Quote:*   

>   Acabei de me lembrar, o SourceForge.net hospeda projetos de documentação, então hospedagem não é um grande problema. 

 

Blz, agora têm que ver por onde começar a doc, instalação ja tem o official que ta blz.

----------

## fernandotcl

 *Kobal wrote:*   

>  *pilla wrote:*    Acho que essa thread serve como repositório de links para recursos de Linux em português (e já está sticky).  
> 
> Mais um com a ideia, ficaria melhor   .

 

É, a idéia inicial era limpar todos os stickys, mas se isso não for possível, certamente vamos encontrar outra maneira. É que talvez uma limpeza nos stickys poderia deixar o fórum mais limpo.

Eu aconselharia o nome do tópico sticky para "LEIA-ME", porque lá teriamos links pra FAQs, howtos, guias de instalação, entre outras coisas. Removeria tráfego desnecessário dos fórums com perguntas já respondidas, ou algumas que poderiam ser respondidas com um link. Mas isso só é possível, é claro, com a autorização da comunidade e dos moderadores.

 *Kobal wrote:*   

>  *fernandotcl wrote:*   Acabei de me lembrar, o SourceForge.net hospeda projetos de documentação, então hospedagem não é um grande problema.  
> 
> Blz, agora têm que ver por onde começar a doc, instalação ja tem o official que ta blz.

 

É, mas vamos com calma, é uma idéia boa, mas um grande projeto e que merece ser muito bem pensado.

Outra coisa, vamos começar a colocar idéias em outro tópico, isso aqui já está bastante off-topic.  :Wink: 

----------

## Mythos

Para um PC normal, ligado a um gateway router e afins que façam o NAT e o forward.

```
#!/bin/bash

#limpando tabelas

iptables -F &&

iptables -X &&

#liberando acesso interno da rede

iptables -A INPUT -p tcp --syn -s 192.168.1.0/255.255.255.0 -j ACCEPT &&

iptables -A OUTPUT -p tcp --syn -s 192.168.1.0/255.255.255.0 -j ACCEPT &&

iptables -A FORWARD -p tcp --syn -s 192.168.1.0/255.255.255.0 -j ACCEPT &&

# Protecao contra port scanners ocultos

#iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST  -m limit --limit 1/s -j ACCEPT

iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

# Bloqueando tracertroute

iptables -A INPUT -p udp -s 0/0 -i eth0 --dport 33435:33525 -j DROP

 #Protecoes contra ataques

iptables -A INPUT -m state --state INVALID -j DROP

 #Open

iptables -A INPUT -s localhost -d localhost -p tcp --dport 6000 -j ACCEPT

iptables -A INPUT -s localhost -d localhost -p tcp --sport 6000 -j ACCEPT

iptables -A INPUT -p tcp --dport 22 --syn -j ACCEPT

iptables -A INPUT -p tcp --dport 21 --syn -j ACCEPT

iptables -A INPUT -p tcp --dport 80 --syn -j ACCEPT

#BLOCKICMPUDP

iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p icmp -i eth0 --icmp-type ! echo-request -m limit --limit 2/second -j ACCEPT

iptables -A INPUT -p udp -j REJECT --reject-with icmp-host-prohibited

iptables -A INPUT -f -j REJECT --reject-with icmp-host-prohibited

```

Para PC's que precisem de partilhar a net :

```
#!/bin/bash

IPTABLES='/sbin/iptables'

# Set interface values

EXTIF='eth0'

INTIF1='eth1'

[color=violet]# enable ip forwarding in the kernel Não se esqueçam de meter isto no /etc/conf.d/iptables ou criar um runsricpt com isto.

/bin/echo 1 > /proc/sys/net/ipv4/ip_forward[/color]

# flush rules and delete chains

$IPTABLES -F

$IPTABLES -X

# enable masquerading to allow LAN internet access

$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

# forward LAN traffic from $INTIF1 to Internet interface $EXTIF

$IPTABLES -A FORWARD -i $INTIF1 -o $EXTIF -m state --state NEW,ESTABLISHED -j ACCEPT 

#liberando acesso interno da rede

iptables -A INPUT -p tcp --syn -s 192.168.1.0/255.255.255.0 -j ACCEPT &&

iptables -A OUTPUT -p tcp --syn -s 192.168.1.0/255.255.255.0 -j ACCEPT &&

iptables -A FORWARD -p tcp --syn -s 192.168.1.0/255.255.255.0 -j ACCEPT &&

# Protecao contra port scanners ocultos

#iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST  -m limit --limit 1/s -j ACCEPT

iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

# Bloqueando tracertroute

iptables -A INPUT -p udp -s 0/0 -i eth0 --dport 33435:33525 -j DROP

 #Protecoes contra ataques

iptables -A INPUT -m state --state INVALID -j DROP

 #Open

iptables -A INPUT -s localhost -d localhost -p tcp --dport 6000 -j ACCEPT

iptables -A INPUT -s localhost -d localhost -p tcp --sport 6000 -j ACCEPT

iptables -A INPUT -p tcp --dport 22 --syn -j ACCEPT

iptables -A INPUT -p tcp --dport 21 --syn -j ACCEPT

iptables -A INPUT -p tcp --dport 80 --syn -j ACCEPT

#BLOCKICMPUDP

iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p icmp -i eth0 --icmp-type ! echo-request -m limit --limit 2/second -j ACCEPT

iptables -A INPUT -p udp -j REJECT --reject-with icmp-host-prohibited

iptables -A INPUT -f -j REJECT --reject-with icmp-host-prohibited
```

Acho que são básicas mas é as que tenho, se alguém quiser criticar e melhorá-las está à vontade

----------

## fernandotcl

Eu uso regras que definem as políticas padrão para DROP, assim bloqueando tudo que não especifico. Eu acredito que sejam mais confiáveis, mas eu ainda sou um n00b quando o assunto é iptables, então não sei se estou certo.

```
#!/bin/bash

# Script de configuração do Iptables

NAMESERVER1=200.204.0.10

NAMESERVER2=200.204.0.138

# Limpar a tabela

iptables -F

# Ajustar as políticas padrão

iptables -P INPUT DROP

iptables -P OUTPUT DROP

iptables -P FORWARD DROP

# Liberar o loopback

iptables -A INPUT -i lo -s localhost -j ACCEPT

iptables -A OUTPUT -o lo -d localhost -j ACCEPT

# Liberar os servidores de nomes

iptables -A INPUT -s $NAMESERVER1 -j ACCEPT

iptables -A OUTPUT -d $NAMESERVER1 -j ACCEPT

iptables -A INPUT -s $NAMESERVER2 -j ACCEPT

iptables -A OUTPUT -d $NAMESERVER2 -j ACCEPT

# Aceitar tráfego de entrada se a conexão for ESTABLISHED ou RELATED

iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

# Aceitar tráfego de saída se a conexão for NEW, ESTABLISHED ou RELATED

iptables -A OUTPUT -p tcp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
```

Eu não sei se existe alguma outra maneira de desbloquear o acesso aos nameservers. No momento, eu não sei o que mais restringir a respeito disso, mas estou aberto à sugestões.

----------

## Kobal

Valeu Mythos. E ae moderação, o que decidiu ?

----------

## pilla

 *pilla wrote:*   

> Acho que essa thread serve como repositório de links para recursos de Linux em português (e já está sticky).

 

É o que está valendo. Não vamos aumentar os stickies até termos remodelado os mesmos.

Coloquem o link naquela thread para essa.

----------

## fernandotcl

 *pilla wrote:*   

>  *pilla wrote:*   Acho que essa thread serve como repositório de links para recursos de Linux em português (e já está sticky). 
> 
> É o que está valendo. Não vamos aumentar os stickies até termos remodelado os mesmos.
> 
> Coloquem o link naquela thread para essa.

 

Ok, mas o tópico pode ser renomeado para "Recursos do Gentoo em Língua Portuguesa"? "Recursos Portugueses de Gentoo" parece que é só referente à Portugal.

----------

