Criando uma rede virtual com servidor de internet e estações utilizando VirtualBox

Neste artigo explicarei como montar sua rede virtual utilizando máquinas virtuais a partir do VirtualBox. É uma alternativa para iniciantes em servidores (como eu) para testes. Essa ferramenta pode ser muito útil no dia-a-dia de um técnico. Já me evitou catástrofes e vale a pena conferir!

[ Hits: 109.055 ]

Por: William Maggi Pardalz em 15/05/2012 | Blog: http://www.pardalz.xpg.com.br


Configuração do Squid e firewall



Nono passo - Configuração do Squid e firewall (servidor)

Squid no Debian:

# apt-get update
# apt-get install squid


Aqui no VOL existem vários artigos sobre como configurar o Squid, então não vou entrar muito em detalhes. Vamos apenas configurá-lo para que fique transparente.

Edite o arquivo /etc/squid/squid.conf e procure a linha:

http_port 3128

E deixe-a assim:

http_port 3128 transparent

Salve e feche.

Vamos agora criar um script para direcionar o tráfego para o Squid.

Crie um arquivo de texto:

# nano /home/firewall

Digite dentro do arquivo e preste muita atenção nos comentários.

#!/bin/sh

ipt=/sbin/iptables
cfg=/sbin/ifconfig
mod=/sbin/modprobe

LOOP=127.0.0.1
NET_BIOS="137:139"

IF_EXTERNA=eth0
IF_INTERNA=eth1

#Gateway da rede REAL
IP_ORIGEM=10.1.1.1

#FAIXA da rede Fictícia
LAN_INTERNA=192.168.0.0/24

$mod iptable_nat
$mod ip_conntrack
$mod ip_conntrack_ftp
$mod ip_nat_ftp
$mod ipt_LOG
$mod ipt_REJECT
$mod ipt_MASQUERADE

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

$ipt --flush
$ipt -X
$ipt -F -t nat
$ipt -X -t nat
$ipt -F -t mangle
$ipt -X -t mangle

$ipt -A POSTROUTING -t nat -o $IF_EXTERNA -s $LAN_INTERNA -j MASQUERADE
$ipt -A INPUT -p tcp --destination-port 80 -j ACCEPT
$ipt -t nat -A PREROUTING -i $IF_INTERNA -p tcp -d ! 200.201.174.207 --dport 80 -j REDIRECT --to-port 3128

$ipt -A INPUT -s $LOOP -j ACCEPT
$ipt -A INPUT -d $LOOP -j ACCEPT

$ipt -A INPUT -i $IF_INTERNA -j ACCEPT
$ipt -A FORWARD -i $IF_INTERNA -j ACCEPT

Pronto, feito isso salve e feche.

Vamos dar permissão de execução no arquivo com o comando:

# chmod +x /home/firewall

E agora adicioná-lo à inicialização do sistema operacional:

# ln -s /home/firewall /etc/rc2.d/S20firewall

Feito!

Reinicie o computador e teste a internet na estação.

Espero que tenha sido útil.
[]'z
William Maggi

Página anterior    

Páginas do artigo
   1. Instalações e configurações
   2. Instalação da estação e configuração da rede
   3. Configuração do Squid e firewall
Outros artigos deste autor

Utilizando ferramentas de virtualização para testar distros

Instalando Linux dentro do Windows

Endereço fixo para o seu IP dinâmico

Leitura recomendada

Gerenciamento de endereços IP com phpIPAM

Linux, uma experiência de uso

Configurando o Debian com 2 ADSLs pppoe e fixando as interfaces ppp0 e ppp1 por operadora

Entendendo a configuração de rede para RedHat e similares

Utilizando endereços personalizados no seu servidor web: passo-a-passo

  
Comentários
[1] Comentário enviado por Smithux em 03/03/2010 - 05:45h

Show de bola kra!
Meus parabéns pelo artigo.
Vai ser de grande valia!!! :D
+Favoritos!

[2] Comentário enviado por pardalz em 03/03/2010 - 08:08h

Obrigado Smithux
Tem um erro ali, para reiniciar o servidor é init 6 e nao init 0, desculpa

[3] Comentário enviado por pherde em 03/03/2010 - 11:15h

Só não entendi o motivo de reiniciar o servidor! Se for para configurar a rede de acordo com o arquivo interfaces não basta levanta-las com um #ifup eth0 eth1 ??

[4] Comentário enviado por pardalz em 03/03/2010 - 13:20h

eu nao conhecia desta forma, obrigado pela dica.

[5] Comentário enviado por primoo em 04/03/2010 - 14:36h

Continue assim =)

[6] Comentário enviado por Primo NT em 13/03/2010 - 10:28h

Muito legal! ;D

[7] Comentário enviado por Paro em 31/03/2010 - 14:47h

Ótimo tutorial, parabéns!

[8] Comentário enviado por RCA_ITA em 13/04/2010 - 11:20h

Olá,

excelente tutorial!!

gostaria de tirar algumas dúvidas.
Primeiro é a respeito do sétimo passo:

como configurar para que o servidor(que está na máquina virtual) receba intenet em qualquer lugar que eu conectar meu notebook?

Teria como estabelecer comunicação entre servidor e estação de trabalho em modo offline?

A respeito do oitavo passo:
É necessário colocar os servidores de DNS?
O endereço 192.168.0.1 é o endereço do servidor?


Por fim, é necessário sempre conhecer os endereços reais do local em que estou acessando? como faço, se é que é possível?

mais uma vez, excelente tuto.

[9] Comentário enviado por pardalz em 13/04/2010 - 14:18h

Ok, vamos lá
como configurar para que o servidor(que está na máquina virtual) receba intenet em qualquer lugar que eu conectar meu notebook?
primeira pergunta: Para deixar sua interface de rede "externa" como DHCP
configure no /etc/network/interfaces

allow-hotplug eth0
iface eth0 inet dhcp
dns-nameservers 200.225.197.37 200.225.197.34 #alterar para o DNS LOCAL REAL

allow-hotplug eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255

Mas isso só irá funcionar se vc tiver um servidor DHCP na rede.

Teria como estabelecer comunicação entre servidor e estação de trabalho em modo offline?
nao entendi o que vc ker dizer com MODO OFFLINE.

É necessário colocar os servidores de DNS?
É

O endereço 192.168.0.1 é o endereço do servidor?
sim, é o endereço do servidor virtual!

Por fim, é necessário sempre conhecer os endereços reais do local em que estou acessando? como faço, se é que é possível?
o ideial é que vc conhecesse pelo menos a faixa de ip, mascara, gateway e DNS. ou seja, sim!

Obrigado pelos parabens!

[10] Comentário enviado por RCA_ITA em 14/04/2010 - 09:14h

Vlw. Os comentários foram tão bons quanto o artigo

Parabéns ajudou bastante

SO mais umas dúvidas

O servidor parece está ok. Pois quando dou ping "www.gmail.com" ele encontra o host.

Já a estação não reconhece nada.

Além disso, o ifconfig no servidor só mostra a interface eth0 e lo, nao mostra eth1

[11] Comentário enviado por RCA_ITA em 14/04/2010 - 11:31h

CONSEGUI!!!

o problema esta na definição do arquivo interfaces(servidor).

vlw pela ajuda.

[12] Comentário enviado por rogerhot1 em 10/05/2011 - 16:58h

Olá,

Estou com dificuldades em montar uma rede virtual no qaul o cenário é composto por 03 máquinas inicialmente, sendo 02 Desktops comuns e 01 Servidor através do qual os usuários acessariam a internet através deste Servidor.
Neste mesmo servidor estarei implementando um script de balancemanento e redundância, sendo que a intenção do primeiro é redirecionar os acessos conforme o uso pelo usuário separando downloads e acesso a e-mail por exemplo, e o outro redirecionará a conexão para o outro link, caso uma delas caia.
O Servidor possui 3 placas de Rede,s endo:
eth0 : destinada a rede interna;
eth1: destinada ao link 01 (Speedy);
eth2: destinada ao link 02 (Net Virtua);
Estou confuso sobre os IPs q devo atribuir a rede local e as q usarei no link, e tbm n/ão entendo bem a função do modo NAT e Bridge..poderia me auxiliar como deveria fazer para montar esta rede?

Grato

[13] Comentário enviado por pardalz em 11/05/2011 - 07:14h

olá, obrigado pelo comentário, é o seguinte, os usuários que você se refere são as duas estações virtuais ou você está montando mesmo um servidor virtual para toda a rede (incluindo máquinas físicas)?
quanto aos IP:
eth0: você vai colocar um IP válido para sua rede.
eth1: testa como dhcp provavelmente funcionará
eth2: testa como dhcp provavelmente funcionará

[14] Comentário enviado por rogerhot1 em 11/05/2011 - 11:56h

Olá,

Sim, quando digo "os usuários" refiro me as 02 estações virtuais.
Utilizando o VM Ware, eu criei um grupo, e definir cada máquina virtual da seguinte forma:
=================
SERVIDOR DE INTERNET
=================
- eth0 que é destinado Rede Interna, mantendo comunicação com as 02 outras máquinas Desktop.
- eth1 e eth2 são destinados a conexão a internet disponibilizado ao SERVIDOR DE INTERNET através da máquina HOST, através do qual estou usando o aplicativo para simular a rede virtual. Como a intenção é simular 1 link para Net e outro para Speedy, eu deinfi o IP da eth1 como 192.168.10.10 e a eth2 como 192.168.20.10.
Estas placas (eth1 e eth2) estão dentro da range de 2 placas virtuais que o VM Ware criou após a instalação dele. Assim, quando visualizo minhas Conexões de Rede, visualizo 4 Placas sendo:
- Conexão Local, que é a placa física que uso na minha rede;
- VirtualBox-Host Only Network..........(IP 192.168.56.1);
- VMware Network Adapter VMnet1.....(IP 192.168.10.1);
- VMware Network Adapter VMnet8.....(IP 192.168.20.1);

=========
DESKTOP01
=========
192.168.0.20 (IP)
255.255.255.0 (Masc)
192.168.0.10 (Gateway, contendo o IP do SERVIDOR DE INTERNET, para que acesse através dele)

=========
DESKTOP02
=========
192.168.0.30 (IP)
255.255.255.0 (Masc)
192.168.0.10 (Gateway, contendo o IP do SERVIDOR DE INTERNET, para que acesse através dele)
Minha preocupação principal é conseguir efetuar estas configurações, pois como se trata de um ambiente virtual, poderei simular a queda de conexão em um dos links simplesmente desativando temporariamente uma das placas vistuais criadas elo VM Ware, e que para melhor entendimento poderia renomear cada uma como "Link Speedy" e "Link Net Virtua" denttro das Conexões de Rede.
Isos é um TCM estamos patinando feio em conseguir colocar isso pra rodar. Sei que pode parecer coisa simples pra muitos daqui, mas estamos começando a mexer com scripts e por isso definimos isso em 2 etapas:
1ª) Colocar a Rede Virtual para funcionar;
2ª) Inseir os scripts de balanceamento e redundância que enconramos aqui no Viva O Linux e customizamos conforme a configuração dos IPs adotados.

Abs

[15] Comentário enviado por pardalz em 12/05/2011 - 11:06h

olá fera.
primeiramente: esqueça as placas de redes físicas criadas no seu computador. vamos trabalhar somente com o virtualbox.
o que vc deve fazer basicamente é:
-Deixar o servidor com 3 placas de rede;
--Modo Bridge (com a sua placa de rede da Net) - defina o IP DA NET ou deixe como DHCP
--Modo Bridge (com a sua placa de rede da Speedy) - defina o IP DA SPEEDY ou deixe como DHCP
--Rede Interna (somente sua rede virtual acessará) - 192.168.0.10/255.255.255.0

Dae, é so tu colocar nas estações virtuais estes ips que tu me passou.
Lembrando que nas estações tu tem que colocar a placa de rede como "REDE INTERNA"
Tente pingar o 192.168.0.10 pelas estações virtuais e me diga o que deu.

Boa Sorte.

[16] Comentário enviado por pardalz em 12/05/2011 - 11:07h

Posta o que der no ping

[17] Comentário enviado por rogerhot1 em 13/05/2011 - 16:01h

Eu vou seguir o tutorial desde o comecinho, pois estava utilizando o VM Ware e seria complicado conseguir identificar qual procedimento estava faltando.
No Quarto Passo menciona que deverei configurar a Placa 1 que fará a comunicação com a parte externa da rede, tendo acesso a internet. E pra isso, é indicado configurar o campo "Conectado a:" indicando a placa que meu computador utiliza para conectar a internet.
Devido a região onde moro, só tenho disponível o acesso via Modem 3G, e não vi esta opção para colocar.
Bom, mas eu vou testar na faculdade e posto as informações que surgirem. Acho q agora finalmente vai ..rss, prq tenho apresnetação deste projeto pro TCM na semana que vem...

Grato

[18] Comentário enviado por rogerhot1 em 14/05/2011 - 16:04h

Olá William,

Estou com novas dúvidas agora..rs. Mas refere-se ao script firewall.
Na linha 27, existe o seguinte comando:
$ipt -t nat -A PREROUTING -i $IF_INTERNA -p tcp -d ! 200.201.174.207 --dport 80 -j REDIRECT --to-port 3128
Devo alterar a numeração onde aparece 200.201.174.207?
Conecto a máquina que utilizo como Host através de um Modem 3G.
Comecei do zero a minha rede virtual e descartei o uso de 3 placas de rede, para que meu foco no momento estivesse em possibilitar o acesso das estações através do servidor
-----------------------------------------------------------------
O SERVIDOR está assim:
-----------------------------------------------------------------
eth0 (Rede Interna, onde estão tbm as estações virtuais)
address 192.168.15.10
netmask 255.255.255.0
gateway 192.168.15.10
network 192.168.15.0
broadcast 192.168.15.0

eth1 (Rede Externa, através da qual o SERVIDOR receberá o sinal de internet)
address 192.168.0.10
netmask 255.255.255.0
gateway 192.168.0.2 (este é o numero de IP da minha máquina q esta acessando a net)
network 192.168.0.0
broadcast 192.168.0.0
-----------------------------------------------------------------
ESTÃÇÃO01
-----------------------------------------------------------------
eth0 (Rede Interna, onde estão tbm as estações virtuais)
address 192.168.15.30
netmask 255.255.255.0
gateway 192.168.15.10
network 192.168.15.0
broadcast 192.168.15.0

Já coloquei o script para carregar na inicialização, reiniciei o servidor e ainda não consigo acesso pelas estações. Será que é algo naquele script que não defini corretamente?

Abs
Luiz

[19] Comentário enviado por rogerhot1 em 14/05/2011 - 16:12h

Segue abaixo como está o cotyeúdo do firewall.sh q coloquei no SERVIDOR.

#!/bin/sh

ipt=/sbin/iptables
cfg=/sbin/ifconfig
mod=/sbin/modprobe

LOOP=127.0.0.1
NET_BIOS="137:139"

IF_EXTERNA=eth1
IF_EXTERNA=eth2
IF_INTERNA=eth0

#Gateway da rede REAL
IP_ORIGEM=192.168.0.2

#FAIXA da rede Fictícia
LAN_INTERNA=192.168.15.0/24

$mod iptable_nat
$mod ip_conntrack
$mod ip_conntrack_ftp
$mod ip_nat_ftp
$mod ipt_LOG
$mod ipt_REJECT
$mod ipt_MASQUERADE

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

$ipt --flush
$ipt -X
$ipt -F -t nat
$ipt -X -t nat
$ipt -F -t mangle
$ipt -X -t mangle

$ipt -A POSTROUTING -t nat -o $IF_EXTERNA -s $LAN_INTERNA -j MASQUERADE
$ipt -A INPUT -p tcp --destination-port 80 -j ACCEPT

# Nesta etapa, eu alterei o IP 200.201.174.207 para o Ip do meu Servidor, pois o SERVIDOR não estava acessando a internet.
#$ipt -t nat -A PREROUTING -i $IF_INTERNA -p tcp -d ! 200.201.174.207 --dport 80 -j REDIRECT --to-port 3128
$ipt -t nat -A PREROUTING -i $IF_INTERNA -p tcp -d ! 192.168.15.010 --dport 80 -j REDIRECT --to-port 3128

$ipt -A INPUT -s $LOOP -j ACCEPT
$ipt -A INPUT -d $LOOP -j ACCEPT

$ipt -A INPUT -i $IF_INTERNA -j ACCEPT
$ipt -A FORWARD -i $IF_INTERNA -j ACCEPT

[20] Comentário enviado por pardalz em 16/05/2011 - 07:20h

bom dia fera, olha, com um modem 3G eu nunca configurei, e vc não ta configurando conforme o tutorial, eu expliquei ali que na placa de rede do servidor na qual as estações se conectam vc só coloca ip, mask, bc e network, não pode colocar gateway.
e provavelmente o modem 3g não ficará como eth1, ficará provavelmente como ppp0, ou wlan0... sei lá.. nunca configurei...
o ideal seria que você me postasse um ifconfig do seu servidor e da sua maquina física, para podermos matar isso de uma vez

[21] Comentário enviado por wagnobre em 20/11/2015 - 15:41h

Prezado,

É minha primeira vez, esse servidor debian é um servidor de internet?
não encontrei um artigo para instalação do mesmo.

Desculpe a forma leiga de perguntar rsrs

[22] Comentário enviado por FelipeeArc em 18/09/2018 - 23:30h

Muito bom! Estou estudando sistemas de arquitetura aberta e esse tutorial foi de grande ajuda. Muito obrigado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts