Configuração de Servidor · 8 min read · Oct 28, 2025
Gateway NAT, Iptables, Redirecionamento de Portas, Configuração de DNS e DHCP - Servidor Ubuntu 8.10
Gateway NAT, Iptables, Redirecionamento de Portas, Configuração de DNS e DHCP - Servidor Ubuntu 8.10
Então você está muito pobre para comprar outro roteador caro e quer fazer as coisas você mesmo. Você encontrou o tutorial certo! Este tutorial mostrará como configurar um roteador Ubuntu 8.10 com NAT, redirecionamento de portas, um servidor DNS e um servidor DHCP.
Por que Ubuntu, você pergunta?
Não só o Ubuntu é um ótimo sistema operacional, como também é muito flexível e poderoso o suficiente para permitir que você comece a funcionar rapidamente! Nota: Reinicie seu computador após cada etapa. Isso garantirá que tudo esteja funcionando corretamente.
Algumas das coisas básicas que vamos precisar são…
DHCP – dhcp3-server
DNS – bind9
iptables – incluído /w ubuntu
Primeiro as coisas
Você vai precisar de 2 placas de rede. Pegue sua primeira placa de rede e conecte sua conexão WAN a ela. Você deve saber qual placa de rede é essa, eth0, eth1, etc… Se você não souber qual é, tente e erre, meu amigo.
Vamos apenas dizer que sua placa WAN será eth0 ( se for eth1, faça tudo igual, mas ajuste sua configuração de acordo). Queremos localizar o arquivo /etc/network/interfaces. Faça um VI no arquivo, como
sudo vi /etc/network/interfacesVocê deve ver no arquivo ( se você não tiver nada configurado ainda):
# Este arquivo descreve as interfaces de rede disponíveis em seu sistema
# e como ativá-las. Para mais informações, veja interfaces(5).
# A interface de rede de loopback
auto lo
iface lo inet loopback
Vamos adicionar isso ao arquivo. Como uma observação, se você não souber como usar o VI, use o nano ou aprenda VI.
auto eth0
iface eth0 inet dhcp
O código auto eth0 diz ao eth0 para iniciar na inicialização, semelhante a executar
sudo ifconfig eth0 upO código iface eth0 inet dhcp diz à interface eth0 para procurar um servidor DHCP e obter suas informações a partir daí. Isso é importante se você estiver conectado a um modem a cabo, pois você vai querer obter um IP público do seu ISP.
O próximo passo é configurar sua placa de rede eth1. Esta será sua placa “LAN”.
Se você se lembra, nossa configuração /etc/network/interfaces parecia com
# Este arquivo descreve as interfaces de rede disponíveis em seu sistema
# e como ativá-las. Para mais informações, veja interfaces(5).
# A interface de rede de loopback
auto lo
iface lo inet loopback
# A interface de rede primária
auto eth0
iface eth0 inet dhcpVamos entrar novamente no arquivo interfaces e adicionar mais algumas linhas:
sudo vi /etc/network/interfacesAdicione estas linhas ao final do arquivo.
auto eth1
iface eth1 inet static
address 172.17.207.121
netmask 255.255.255.0
broadcast 172.17.207.255
network 172.17.207.0
Isso apenas lhe dá um endereço IP estático para seu servidor na sua placa LAN.
Seu arquivo agora deve parecer assim.
# Este arquivo descreve as interfaces de rede disponíveis em seu sistema
# e como ativá-las. Para mais informações, veja interfaces(5).
# A interface de rede de loopback
auto lo
iface lo inet loopback
# A interface de rede primária
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 172.17.207.121
netmask 255.255.255.0
broadcast 172.17.207.255
network 172.17.207.0
Agora, antes que nos esqueçamos, vamos editar seu arquivo /etc/hosts.
sudo vi /etc/hostsFaça o arquivo parecer como o meu, embora se você chamar seu servidor de userve ou myserver, você pode mudar isso.
Note também o nome de domínio asus.local, é uma boa ideia usar o seu, como mydomain.local, mas você pode usar o que eu tenho para fins de aprendizado.
Usamos .local porque é fácil de lembrar e não é público, então não interferiremos em nada.
127.0.0.1 localhost server.localhost
172.17.207.121 server.asus.local server asus.localAgora que temos nossas interfaces configuradas, vamos instalar e configurar um servidor DHCP. Para instalar o servidor DHCP, execute o comando
sudo apt-get install dhcp3-serverVamos editar o arquivo dhcpd.conf. Comece executando o comando
sudo vi /etc/dhcp3/dhcpd.confAgora, se houver algo nesse arquivo, REMOVA.
Copie e cole isso no seu arquivo, depois escreva e saia.
ddns-update-style none;
option domain-name "whatever.local"; //mude isso para algo que você queira.local, como mydomain.local
option domain-name-servers 172.17.207.121, 24.92.226.41; //você também pode querer mudar esse segundo servidor DNS para o servidor DNS local do seu ISP
option routers 172.17.207.121;
default-lease-time 42300;
max-lease-time 84600;
authoritative;
log-facility local7;
subnet 172.17.0.0 netmask 255.255.255.0 {
range 172.17.207.1 172.17.207.100; //você pode expandir o intervalo apenas mudando .100 para .254 ou algo assim
}
Agora execute o comando
sudo /etc/init.d/dhcp3-server startIsso iniciará seu servidor DHCP e podemos rotular esta parte como CONCLUÍDA.
Passando para… DNS
Bind é o pacote DNS que usaremos. Para instalar isso, basta executar
sudo apt-get install bind9Isso fará o download e instalará nosso servidor bind.
Comece executando o comando
vi /etc/bind/named.confEm seguida, remova tudo no arquivo e procure meus comentários, geralmente indicados por //.
// Este é o arquivo de configuração primário para o servidor DNS BIND chamado. // Por favor, leia /usr/share/doc/bind9/README.Debian.gz para informações sobre a // estrutura dos arquivos de configuração BIND no Debian, *ANTES* de personalizar // este arquivo de configuração. // Se você está apenas adicionando zonas, por favor, faça isso em /etc/bind/named.conf.local include "/etc/bind/named.conf.options"; // prime o servidor com conhecimento dos servidores raiz zone "." { type hint; file "/etc/bind/db.root"; }; // seja autoritativo para as zonas de encaminhamento e reversas do localhost, e para // zonas de broadcast conforme RFC 1912 zone "asus.local" { //mude asus.local para o que você nomeou seu domínio, como mydomain.local type master; file "/etc/bind/zones/asus.local.db"; //este arquivo ou pasta não existe, então precisaremos criá-lo }; zone "207.17.172.in-addr.arpa" { type master; file "/etc/bind/zones/rev.207.17.172.in-addr.arpa";//este arquivo não existe, então também precisaremos criá-lo }; zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; }; include "/etc/bind/named.conf.local";
Antes de podermos criar os dois arquivos asus.local.db e rev.207.17.172.in-addr.arpa, precisamos editar outro arquivo. Então
sudo vi /etc/bind/named.conf.optionsRemova tudo no arquivo e use isso…
options {
directory "/var/cache/bind";
// Se houver um firewall entre você e os servidores de nomes que você deseja
// conversar, pode ser necessário corrigir o firewall para permitir múltiplas
// portas para conversar. Veja http://www.kb.cert.org/vuls/id/800113
// Se seu ISP forneceu um ou mais endereços IP para servidores de nomes estáveis,
// você provavelmente deseja usá-los como encaminhadores.
// Descomente o bloco a seguir e insira os endereços substituindo
// o espaço reservado de todos os 0's.
forwarders {
24.92.226.41; //muito importante, mude isso para o(s) servidor(es) DNS LOCAL do seu ISP
24.92.224.40;
};
auth-nxdomain no; # conforme RFC1035
listen-on-v6 { any; };
};Preste atenção aos comentários, eles dizem para você MUDAR nosso(s) endereço(s) de encaminhadores para o(s) DNS do seu ISP LOCAL.
Em seguida, vá para o diretório bind:
cd /etc/bind/
sudo mkdir zones
cd zones
sudo vi asus.local.db
(ou use seu nome de domínio, como mydomain.local.db.)
Uma vez que você esteja no arquivo asus.local.db ou no arquivo mydomain.local.db (o que você chamou), copie e cole isso, faça as alterações apropriadas para o nome do seu domínio.
$ORIGIN .
$TTL 4000 ;
asus.local. IN SOA server.asus.local. admin.asus.local. (
2007031001 ; serial
28800 ; refresh
3600 ; retry
604800 ; expire
38400 ; min
)
NS server.asus.local.
$ORIGIN asus.local.
IN A 172.17.207.121
www IN A 172.17.207.121 //um exemplo
server IN A 172.17.207.121 //um exemplo
macpro IN A 172.17.207.4 //um exemploSe você fizer um nslookup macpro, você receberá 172.17.207.4 como resposta, então mude os nomes de domínio e IPs de acordo com suas configurações.
Em seguida, vamos editar o arquivo rev.207.17.172.in-addr.arpa que ainda não existe. Mas ele existirá assim que o salvamos. Então, supondo que você ainda esteja na pasta zones:
vi rev.207.17.172.in-addr.arpaCopie e cole o que eu tenho aqui, fazendo as alterações apropriadas.
$ORIGIN .
$TTL 28800 ; 8 horas
207.17.172.IN-ADDR.ARPA IN SOA server.asus.local. admin.asus.local. (
2008110601 ; serial
28800 ; refresh (8 horas)
7200 ; retry (2 horas)
604800 ; expire (1 semana)
86400 ; mínimo (1 dia)
)
NS server.asus.local.
$ORIGIN 207.17.172.IN-ADDR.ARPA.
4 PTR macpro.asus.local.Então agora, se você fizer uma pesquisa reversa em 172.17.207.4, você obterá macpro.asus.local.
Agora execute o comando para iniciar o named:
sudo /etc/init.d/named startSe não iniciar, verifique os logs em /var/logs.
Por último, mas não menos importante, IPTABLES
Primeiro, precisamos editar o sysctl.conf na pasta /etc/, então:
sudo vi /etc/sysctl.confDescomente a linha 28. Isso significa remover o # na frente dela. A linha deve ser net.ipv4.ip_forward=1
Em seguida, vamos para o rc.local:
sudo vi /etc/rc.localAdicione estas duas linhas ao final do arquivo:
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADEIsso configurará seu gateway usando iptables. Você pode usar iptables para tornar isso mais seguro do que esta configuração básica.
Para redirecionar portas, você pode adicionar algo assim ao final do arquivo rc.local.
/sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 -d jgibbs.dyndns.org --dport 3389 -j DNAT --to 172.17.207.4:3389A longa linha acima irá redirecionar todo o tráfego de entrada na porta 3389 para o IP 172.17.207.4, para que eu possa acessar a área de trabalho remota do meu Windows de fora da minha rede.
Você pode fazer isso com quaisquer portas que desejar.
REINICIE!
Além disso, relate quaisquer problemas e eu corrigirei este tutorial com atualizações. Obrigado, Jeremy user gibbsj.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.