Configurando FreeBSD para servir como gateway e serviço DHCP

Bom, neste post irei explicar os passos necessários de como configurar um gateway na rede com serviço DHCP no FreeBSD 8.2

Nota: em0=(interface de rede externa) e em1=(interface de rede local)

Instalação:

via ports -> /usr/ports/net/isc-dhcp31-server
/usr/ports/net/isc-dhcp31-server: make install clean

Fazendo backup do arquivo exemplo e criando um arquivo novo

mv /usr/local/etc/dhcpd.conf.sample /usr/local/etc/dhcpd.conf

Usando o editor de texto ee (padrão do sistema)

ee /usr/local/etc/dhcpd.conf
option domain-name-servers “208.67.222.222,208.67.220.220”; #OpenDNS
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.11 192.168.1.90; #range de IPs
option routers 192.168.1.10; #gateway
}

Iniciar serviço dhcpd

#/usr/local/etc/rc.d/isc-dhcpd start

Ativar roteamento
#sysctl -w net.inet.ip.forwarding=1
(net.inet.ip.forwarding: 0 -> 1)

Habilitando os serviços necessários
ee /etc/rc.conf
ifconfig_em0=”DHCP”
ifconfig_em1=”inet 192.168.1.10 netmask 255.255.255.0″
dhcpd_enable=”YES”
natd_enable=”YES”
natd_interface=”em0″ #em0=placa1(conexão com Internet) em1=placa2(rede local)
gateway_enable=”YES”
firewall_enable=”YES”
firewall_type=”OPEN”

ee /boot/loader.conf
ipfw_load=”YES”
ipdivert_load=”YES”
net.inet.ip.fw.default_to_accept=”1″
options IPFIREWALL_FORWARD
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSE

Para poder usar o NAT, IPFIREWAL, IPDIVERT é necessário compilar o kernel
Compilando kernel FreeBSD
Então adicionaremos os parâmetros necessários para o funcionamento como gateway. No nosso exemplo copiaremos o arquivo GENERIC (este é apenas uma arquivo modelo) com outro nome (KERNCUSTOM). Teremos então dois arquivos, o modelo base (GENERIC) e o outro ao qual iremos modificar (KERNCUSTOM). Para realizar a cópia faça

#cp –p /usr/src/sysi386/conf/GENERIC /usr/src/sysi386/conf/KERNCUSTOM.

Manter o mesmo nome do arquivo de configuração e do próprio kernel (ident) ajuda a manter a organização.
Então adicionamos os seguintes parâmetros (as linhas que iniciam com # são comentários):
ident KERNCUSTOM  #Nome de identificação do kernel. Não há relação com o nome do arquivo, é apenas uma boa prática para identificar e/ou versionar e organizar as possíveis variações de kernel;
options IPFIREWALL  # Habilitando o módulo do IPFW (firewall);
options IPFIREWALL_FORWARD  # Habilita o repasse de pacotes entre interfaces de rede interna e externa;
options IPFIREWALL_DEFAULT_TO_ACCEPT  # Comportamento padrão para o firewall, definido como aberto (caso essa linha seja omitida o padrão será fechado, portanto as regras no arquivo de rc.firewall deverão ser alteradas);
options IPFIREWALL_VERBOSE   #Habilitando o log do firewall no syslogd;
options IPFIREWALL_VERBOSE_LIMIT=1000 – #Limite do log em Mb;
options IPDIVERT  #Habilitando o uso de socket divert por padrão na porta 8668.

Editado o arquivo KERNCUSTOM, devemos então retornar ao diretório /usr/src para que consigamos executar os comandos para construção e instalação do novo kernel.
A construção do kernel usando o arquivo de configuração que foi editado, a depender do microcomputador, pode ser demorada. Para isso, execute:

# make buildkernel KERNCONF=KERNCUSTOM

Se nenhum erro foi encontrado, instale o novo kernel usando o make:

#make installkernel KERNCONF=KERNCUSTOM

Se tudo ocorreu bem, teremos então o FreeBSD pronto para atuar como gateway. Assim, basta reiniciar o computador e ligar suas conexões de rede (interna e externa) nas interfaces corretas. Lembre-se das configurações do rc.conf, devemos nos atentar em ligar as conexões de rede às placas corretas.

Caso o cliente tiver problemas para navegar
#ipfw add 65000 allow ip from any to any #libera os pacotes que tava bloqueando

Referências:
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=20814
http://www.kodiva.com/post/freebsd-as-an-internet-gateway-with-dhcp-services
http://blog.clickgratis.com.br/mauricio/

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

%d bloggers like this: