Compartilhar internet entre placas de rede?

1. Compartilhar internet entre placas de rede?

Wesley
wesleyzao

(usa Outra)

Enviado em 27/05/2017 - 01:47h

Galera um salve a todos, compartilhar internet entre placas de rede em qualquer uma distribuição linux(em qualquer uma que seja) é possível?Digo "entre placas de rede" pois estava pensando em montar um servidor de internet no qual seria nesse cenário:
Tenho aqui parado um core 2 duo com 3 gb de ram e gostaria de utilizar ele para atuar como um "servidor de internet" no qual seria mais ou menos assim uma placa de rede sem fio denominada como "A" iria receber a internet do provedor A e compartilhar essa internet com a placa de rede ethernet 0 e a outra placa de rede sem fio denominada como "B" iria receber uma internet de outro provedor denominado como "B" compartilhando assim essa internet com a placa de rede ethernet 1.
Pergunto a vocês, seria possível fazer isso com uma distribuição linux de preferencia uma distribuição leve(lightweight) com ou sem interface gráfica...?Se sim, poderiam me explicar como faz?Sei que quando é o compartilhamento de 1 internet entre placas sei que tem como...e também sei que poderia utilizar um tp-link loadbalance...mas como tenho uma máquina aqui parada gostaria de utilizar-la..e aí?


  


2. Re: Compartilhar internet entre placas de rede?

Wesley
wesleyzao

(usa Outra)

Enviado em 28/05/2017 - 13:49h

Ninguém?


3. Re: Compartilhar internet entre placas de rede?

Carlos APC
Carlos_Cunha

(usa Linux Mint)

Enviado em 28/05/2017 - 21:00h

È so habilitar o ip_forward


E ter um Gateway configurado e pronto.

#-------------------------------------------------------------------------------------#
Administrador de Redes Mistas Linux/Windows
LPI 101-102
LPI 201
Para consultas particulares acesse:
www.cunhatec.com.br

"Falar é fácil, me mostre o código." - Linus Torvalds


4. Re: Compartilhar internet entre placas de rede?

Buckminster
Buckminster

(usa Debian)

Enviado em 29/05/2017 - 08:05h

Você tem algum conhecimento de Linux e Iptables?


5. Re: Compartilhar internet entre placas de rede?

Wesley
wesleyzao

(usa Outra)

Enviado em 29/05/2017 - 17:56h

Buckminster escreveu:

Você tem algum conhecimento de Linux e Iptables?

Tenho...pouco limitado mas tenho.




6. Re: Compartilhar internet entre placas de rede?

Buckminster
Buckminster

(usa Debian)

Enviado em 30/05/2017 - 10:17h

Bom, a distribuição eu te sugiro o Debian, mas isso é da tua preferência.
Caso optar pelo Debian, baixe e instale somente o CD1 em um dos links:

https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/ <<< caso teu PC for 64 bits vá no link debian-8.8.0-amd64-CD-1.iso

https://cdimage.debian.org/debian-cd/current/i386/iso-cd/ <<< caso teu PC for 32 bits vá no link debian-8.8.0-i386-CD-1.iso

Na instalação opte pela interface gráfica XFCE que é bem leve.

Depois para compartilhar a internet como tu quer, deverá fazer o compartilhamento no Iptables.
Sobre isso, depois que tu tiver instalado e deixado o sistema funcionando redondo, vamos conversando por aqui.


7. Re: Compartilhar internet entre placas de rede?

Wesley
wesleyzao

(usa Outra)

Enviado em 30/05/2017 - 16:06h

Buckminster escreveu:

Bom, a distribuição eu te sugiro o Debian, mas isso é da tua preferência.
Caso optar pelo Debian, baixe e instale somente o CD1 em um dos links:

https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/ <<< caso teu PC for 64 bits vá no link debian-8.8.0-amd64-CD-1.iso

https://cdimage.debian.org/debian-cd/current/i386/iso-cd/ <<< caso teu PC for 32 bits vá no link debian-8.8.0-i386-CD-1.iso

Na instalação opte pela interface gráfica XFCE que é bem leve.

Depois para compartilhar a internet como tu quer, deverá fazer o compartilhamento no Iptables.
Sobre isso, depois que tu tiver instalado e deixado o sistema funcionando redondo, vamos conversando por aqui.


Sistema instalado e rodando perfeitamente...qual o proximo passo?


8. Re: Compartilhar internet entre placas de rede?

Buckminster
Buckminster

(usa Debian)

Enviado em 31/05/2017 - 00:28h

Crie um script de firewall para o Iptables.
Usei o vim, você use o teu editor de texto preferido.
# vim /etc/init.d/firewall.sh <<< dei o nome de firewall.sh, você dê o nome que quiser, sugiro um nome que não seja óbvio como esse (firewall.sh)

Coloque dentro o seguinte conteúdo:

#! /bin/sh
### BEGIN INIT INFO
# Provides: nome_do_arquivo_sem_sh_no_final
# Short-Description: executa o arquivo do Iptables
### END INIT INFO
#
#Desabilitando o tráfego entre as placas
#################################
echo 0 > /proc/sys/net/ipv4/ip_forward
#
##Apagando e restaurando as chains e tabelas
######################################
iptables -F # Remove as regras de todas as chains
iptables -Z # Zera as regras de todas as chains
iptables -X # Apaga todas as chains
# iptables -t nat -Z
# iptables -t nat -F
# iptables -t nat -X
# iptables -t mangle -Z
# iptables -t mangle -F
# iptables -t mangle -X
#
##Proteção contra ping, SYN Cookies, IP Spoofing e proteções do kernel
##########################################################
echo 1 > /proc/sys/net/ipv4/tcp_syncookies # Syn Flood (DoS)
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # Port scanners
echo 0 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses # Sem resposta remota
for i in /proc/sys/net/ipv4/conf/*; do
echo 0 > $i/accept_redirects # Sem redirecionar rotas
echo 0 > $i/accept_source_route # Sem traceroute
echo 1 > $i/log_martians # Loga pacotes suspeitos no kernel
echo 1 > $i/rp_filter # Ip Spoofing
echo 1 > $i/secure_redirects; done # Redirecionamento seguro de pacotes
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all # Sem ping e tracert
#
# Carregando os módulos - Não é necessário todos os módulos,
# somente aqueles que você irá utilizar.
# O iptables, por padrão, carrega os módulos principais automaticamente.
# Para identificar qual módulo adicional carregar, você deve elaborar todo o script
# e depois de acordo com o nome do alvo utilizado, você carrega o mesmo módulo.
# Por exemplo, se você utilizar a seguinte regra:
# iptables -A FORWARD -p udp -m multiport --dport 80,1024:65535 -j DROP
# o módulo "ipt_multiport" deve ser carregado.
# Abaixo estão quase todos os módulos.
################################
modprobe ip_tables
modprobe iptable_nat
modprobe iptable_filter
modprobe iptable_mangle
#
# modprobe ip_conntrack
# modprobe ip_conntrack_ftp
# modprobe ip_conntrack_irc
# modprobe ip_nat_ftp
# modprobe ip_queue
# modprobe ip_gre
#
# modprobe ipt_LOG
# modprobe ipt_MARK
# modprobe ipt_REDIRECT
# modprobe ipt_REJECT
# modprobe ipt_MASQUERADE
# modprobe ipt_TCPMSS
# modprobe ipt_TOS
#modprobe ipt_NETMAP
#
# modprobe ipt_limit
# modprobe ipt_mac
# modprobe ipt_multiport
# modprobe ipt_owner
# modprobe ipt_state
# modprobe ipt_tos
# modprobe ipt_mark
# modprobe ipt_tcpmss
# modprobe ipt_string
# modprobe ipt_statistic
#
# modprobe nf_nat_pptp
# modprobe nf_nat_proto_gre
# modprobe nf_nat_irc
#
# Definindo políticas padrões
######################
iptables -P INPUT DROP # iptables a política padrão da chain INPUT é proibir tudo
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#
# Liberando a Loopback
####################
iptables -A INPUT -i lo -j ACCEPT
#
## Regras de segurança na internet e acessos
#####################################
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW ! -i sem_fio_A -j DROP
iptables -A FORWARD -m state --state NEW ! -i sem_fio_A -j DROP
iptables -A INPUT -m state --state NEW ! -i sem_fio_B -j DROP
iptables -A FORWARD -m state --state NEW ! -i sem_fio_B -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
#
# Redirecionamento para o Squid e mascaramento/compartilhamento
###########################################
# iptables -t nat -A PREROUTING -i ethx -p tcp --dport 80 -j REDIRECT --to-port 3128 # Interface da rede interna
iptables -t nat -A POSTROUTING -s xxx.xxx.xxx.xxx/xx -o sem_fio_A -j MASQUERADE # Em xxx tu coloca o endereço e a máscara da rede da placa ethernet_0
iptables -A FORWARD -d xxx.xxx.xxx.xxx/xx -j ACCEPT # Em xxx tu coloca o endereço e a máscara da rede da placa ethernet_0
iptables -t nat -A POSTROUTING -s xxx.xxx.xxx.xxx/xx -o sem_fio_B -j MASQUERADE # Em xxx tu coloca o endereço e a máscara da rede da placa ethernet_1
iptables -A FORWARD -d xxx.xxx.xxx.xxx/xx -j ACCEPT # Em xxx tu coloca o endereço e a máscara da rede da placa ethernet_1
#
# A partir daqui você pode inserir as regras de liberação e bloqueio.
#
# Finalizando:
# Habilitando o tráfego entre as placas
##########################
echo 1 > /proc/sys/net/ipv4/ip_forward
#

Salve e saia do arquivo.
Dê permissão de execução:

# chmod +x /etc/init.d/firewall.sh

Coloque dentro do arquivo /etc/rc.local, antes de exit 0, assim:

/etc/init.d/firewall.sh start

exit 0

Salve e saia do arquivo.
Dessa maneira tu pode iniciar, parar e reiniciar o Iptables no terminal:

# /etc/init.d/firewall.sh start
# /etc/init.d/firewall.sh stop
# /etc/init.d/firewall.sh restart

Veja bem, as regras de mascaramento/compartilhamento devem funcionar. Caso não funcionar e der algum erro, poste aqui.
Acredito que não precisaremos partir para definição de rotas.
Onde estiver sem_fio_A e sem_fio_B tu coloca os nomes das respectivas placas de rede.
Reinicie o servidor e teste.
Qualquer dúvida, posta aqui.

https://www.vivaolinux.com.br/artigo/Manual-do-IPtables-Comentarios-e-sugestoes-de-regras/?pagina=1


9. Re: Compartilhar internet entre placas de rede?

Wesley
wesleyzao

(usa Outra)

Enviado em 01/06/2017 - 12:02h

Buckminster escreveu:

Crie um script de firewall para o Iptables.
Usei o vim, você use o teu editor de texto preferido.
# vim /etc/init.d/firewall.sh <<< dei o nome de firewall.sh, você dê o nome que quiser, sugiro um nome que não seja óbvio como esse (firewall.sh)

Coloque dentro o seguinte conteúdo:

#! /bin/sh
### BEGIN INIT INFO
# Provides: nome_do_arquivo_sem_sh_no_final
# Short-Description: executa o arquivo do Iptables
### END INIT INFO
#
#Desabilitando o tráfego entre as placas
#################################
echo 0 > /proc/sys/net/ipv4/ip_forward
#
##Apagando e restaurando as chains e tabelas
######################################
iptables -F # Remove as regras de todas as chains
iptables -Z # Zera as regras de todas as chains
iptables -X # Apaga todas as chains
# iptables -t nat -Z
# iptables -t nat -F
# iptables -t nat -X
# iptables -t mangle -Z
# iptables -t mangle -F
# iptables -t mangle -X
#
##Proteção contra ping, SYN Cookies, IP Spoofing e proteções do kernel
##########################################################
echo 1 > /proc/sys/net/ipv4/tcp_syncookies # Syn Flood (DoS)
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # Port scanners
echo 0 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses # Sem resposta remota
for i in /proc/sys/net/ipv4/conf/*; do
echo 0 > $i/accept_redirects # Sem redirecionar rotas
echo 0 > $i/accept_source_route # Sem traceroute
echo 1 > $i/log_martians # Loga pacotes suspeitos no kernel
echo 1 > $i/rp_filter # Ip Spoofing
echo 1 > $i/secure_redirects; done # Redirecionamento seguro de pacotes
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all # Sem ping e tracert
#
# Carregando os módulos - Não é necessário todos os módulos,
# somente aqueles que você irá utilizar.
# O iptables, por padrão, carrega os módulos principais automaticamente.
# Para identificar qual módulo adicional carregar, você deve elaborar todo o script
# e depois de acordo com o nome do alvo utilizado, você carrega o mesmo módulo.
# Por exemplo, se você utilizar a seguinte regra:
# iptables -A FORWARD -p udp -m multiport --dport 80,1024:65535 -j DROP
# o módulo "ipt_multiport" deve ser carregado.
# Abaixo estão quase todos os módulos.
################################
modprobe ip_tables
modprobe iptable_nat
modprobe iptable_filter
modprobe iptable_mangle
#
# modprobe ip_conntrack
# modprobe ip_conntrack_ftp
# modprobe ip_conntrack_irc
# modprobe ip_nat_ftp
# modprobe ip_queue
# modprobe ip_gre
#
# modprobe ipt_LOG
# modprobe ipt_MARK
# modprobe ipt_REDIRECT
# modprobe ipt_REJECT
# modprobe ipt_MASQUERADE
# modprobe ipt_TCPMSS
# modprobe ipt_TOS
#modprobe ipt_NETMAP
#
# modprobe ipt_limit
# modprobe ipt_mac
# modprobe ipt_multiport
# modprobe ipt_owner
# modprobe ipt_state
# modprobe ipt_tos
# modprobe ipt_mark
# modprobe ipt_tcpmss
# modprobe ipt_string
# modprobe ipt_statistic
#
# modprobe nf_nat_pptp
# modprobe nf_nat_proto_gre
# modprobe nf_nat_irc
#
# Definindo políticas padrões
######################
iptables -P INPUT DROP # iptables a política padrão da chain INPUT é proibir tudo
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#
# Liberando a Loopback
####################
iptables -A INPUT -i lo -j ACCEPT
#
## Regras de segurança na internet e acessos
#####################################
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW ! -i sem_fio_A -j DROP
iptables -A FORWARD -m state --state NEW ! -i sem_fio_A -j DROP
iptables -A INPUT -m state --state NEW ! -i sem_fio_B -j DROP
iptables -A FORWARD -m state --state NEW ! -i sem_fio_B -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
#
# Redirecionamento para o Squid e mascaramento/compartilhamento
###########################################
# iptables -t nat -A PREROUTING -i ethx -p tcp --dport 80 -j REDIRECT --to-port 3128 # Interface da rede interna
iptables -t nat -A POSTROUTING -s xxx.xxx.xxx.xxx/xx -o sem_fio_A -j MASQUERADE # Em xxx tu coloca o endereço e a máscara da rede da placa ethernet_0
iptables -A FORWARD -d xxx.xxx.xxx.xxx/xx -j ACCEPT # Em xxx tu coloca o endereço e a máscara da rede da placa ethernet_0
iptables -t nat -A POSTROUTING -s xxx.xxx.xxx.xxx/xx -o sem_fio_B -j MASQUERADE # Em xxx tu coloca o endereço e a máscara da rede da placa ethernet_1
iptables -A FORWARD -d xxx.xxx.xxx.xxx/xx -j ACCEPT # Em xxx tu coloca o endereço e a máscara da rede da placa ethernet_1
#
# A partir daqui você pode inserir as regras de liberação e bloqueio.
#
# Finalizando:
# Habilitando o tráfego entre as placas
##########################
echo 1 > /proc/sys/net/ipv4/ip_forward
#

Salve e saia do arquivo.
Dê permissão de execução:

# chmod +x /etc/init.d/firewall.sh

Coloque dentro do arquivo /etc/rc.local, antes de exit 0, assim:

/etc/init.d/firewall.sh start

exit 0

Salve e saia do arquivo.
Dessa maneira tu pode iniciar, parar e reiniciar o Iptables no terminal:

# /etc/init.d/firewall.sh start
# /etc/init.d/firewall.sh stop
# /etc/init.d/firewall.sh restart

Veja bem, as regras de mascaramento/compartilhamento devem funcionar. Caso não funcionar e der algum erro, poste aqui.
Acredito que não precisaremos partir para definição de rotas.
Onde estiver sem_fio_A e sem_fio_B tu coloca os nomes das respectivas placas de rede.
Reinicie o servidor e teste.
Qualquer dúvida, posta aqui.

https://www.vivaolinux.com.br/artigo/Manual-do-IPtables-Comentarios-e-sugestoes-de-regras/?pagina=1

Olá muito obrigado pela ajuda ainda não coloquei esse script em prática mas pretendo colocar hoje a tarde...mas fiquei com uma dúvida/curiosidade e caso eu necessite futuramente já sabereri o que fazer então vamos lá minha dúvida é o seguinte e se por ventura fosse acrescentado mais duas internet de entrada e saída cada uma para sua respectiva placa de rede ethernet...por exemplo na situação atual temos entrada de internet placa sem fio A saída placa de rede Ethernet A ... agora se fosse acrescentado placa sem fio C, saída placa de rede Ethernet C, placa sem fio D, saída placa de rede ethernet D...lhe pergunto o que acresentaria no script acima para acrescentar essas entradas e saída s de internet (C e D)?



10. Re: Compartilhar internet entre placas de rede?

Wesley
wesleyzao

(usa Outra)

Enviado em 01/06/2017 - 19:55h

@Buckminster
infelizmente não deu certo apliquei o script conforme instruído por você mas não deu certo não...a rede interna não acessa a internet, em nenhuma das 2 placas...:(


11. Re: Compartilhar internet entre placas de rede?

Buckminster
Buckminster

(usa Debian)

Enviado em 02/06/2017 - 09:51h

wesleyzao escreveu:

@Buckminster
infelizmente não deu certo apliquei o script conforme instruído por você mas não deu certo não...a rede interna não acessa a internet, em nenhuma das 2 placas...:(


Dá alguma mensagem de erro?


12. Re: Compartilhar internet entre placas de rede?

Wesley
wesleyzao

(usa Outra)

Enviado em 02/06/2017 - 13:34h

Buckminster escreveu:

wesleyzao escreveu:

@Buckminster
infelizmente não deu certo apliquei o script conforme instruído por você mas não deu certo não...a rede interna não acessa a internet, em nenhuma das 2 placas...:(


Dá alguma mensagem de erro?


Não, sem mensagem de erro até agora...



01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts