Este tutorial permite configurar um Servidor em Centos 6 com funções de Router, Firewall.
A configuração abaixo foi feita para sub dividir a rede em 3 sub redes, permitindo partilhar a ligação a Internet entre elas, bloquear e analisar tráfego.
Serviços que serão implementados.
Encaminhamento de Pacotes e Firewall através de IPTABLES
DHCP - Este serviço serve para atribuir Ips dinamicamente ás maquinas que se liguem à rede.
DNS - Este serviço serve para resolver nomes em Ips, sem ele a Internet seria catastrófica porque em vez de escrevermos www.google.pt teríamos que saber o seu endereço de IP http://74.125.224.72/, e como todos nós sabemos é mais fácil decorar nomes do que números.
NO-IP - Este é um serviço permite ter um DNS Dynamico que sempre que a ligação ADSL cai e o nosso ip muda o mesmo é actualizado automaticamente. Ideal para quem não pode comprar um IP Fixo para aceder aos servidores de casa ou trabalho.
Vantagens :
Internet mais rápido pois o nosso pequeno Router que o nosso fornecedor de ISP nos disponibiliza vai passar a ter menos tarefas a fazer. Isto porque no final da configuração todos estes serviços que estamos a configurar neste computador com Centos devem ser desactivados no nosso antigo Router.
Desvantagens :
Requer alguns conhecimentos de Linux.
A maquina tem que estar sempre ligada para que possamos trabalhar na rede.
Requisitos do Servidor :
2 ou mais placas de rede "depende do que se pretende" - Neste tutorial estou a usar 3 placas de rede e irei criar 3 redes distintas.
192.168.1.0 - REDE 1 onde irá estar ligada directamente ao modem Adsl.
192.168.100.0 - REDE 2
192.168.200.0 - REDE 3
Bem então vamos começar.
Antes de mais devem fazer o download da distribuição Centos 6 Minimal.
http://www.centos.org/modules/tinycontent/index.php?id=34
Esta instalação apenas irá conter o básico onde não vão encontrar qualquer tipo de ambiente gráfico.
"Apenas iremos ter uma linha de comandos maravilhosa onde o céu é o limite ..."
Após isto deixo aqui alguns prints da instalação do Centos (nota esta instalação é em modo de texto, podem também ser feita em modo Gráfico)
Dica : se fizerem em modo gráfico não configurem nenhuma placa de rede atreves desse modo, isto porque vamos aprender mais a frente como as podemos configurar através da consola.
Finalmente após reiniciar, estamos prontos para fazer login e começar a instalar e configurar serviços.
Configuração da Firewall básica do Centos
vi /etc/selinux/config
Editar o ficheiro
SELINUX=disabled
SELINUX=disabled
Reiniciar o servidor
reboot
Configuração do ip do servidor de resolução de nomes (DNS)
vi /etc/resolv.conf
Adicionar ao ficheiro
nameserver 8.8.8.8
Esta configuração é temporário, servirá apenas para podermos instalar os serviços através dos repositórios do Centos.
Logo que tenhamos o nosso serviço de dns instalado e configurados vamos alterar o 8.8.8.8 para 127.0.0.1
Logo que tenhamos o nosso serviço de dns instalado e configurados vamos alterar o 8.8.8.8 para 127.0.0.1
Configuração do nome da máquina e do Default Gateway (router de saída)
vi /etc/sysconfig/network
Adicionar ao ficheiro
HOSTNAME= router.megapc
GATEWAY=192.168.1.254 #ip do seu router adsl
Configuração da placa de Rede eth0 ( Interface de saída para a Internet )
vi /etc/sysconfig/network-scripts/ifcfg-eth0
Adicionar ao ficheiro
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.1.200
NETMASK=255.255.255.0
Activar a placa de Rede eth0
ifup eth0
Fazer restart aos interfaces de Redes
service network restart
Actualizar o Sistema Operativo
yum update
Instalação do compilador de C e do comando make “útil para compilar e instalar programas”
yum install gcc make
Configuração das interfaces Internas
Eth2
Editar o ficheiro de configurações da placa de rede eth2
vi /etc/sysconfig/network-scripts/ifcfg-eth2
Adicionar ao ficheiro
ONBOOT=yes
NETWORK=192.168.200.0
IPADDR=192.168.200.254
NETMASK=255.255.255.0
BROADCAST=192.168.200.255
Activar a placa de rede eth2
ifup eth2
Editar o ficheiro de configurações da placa de rede eth1
vi /etc/sysconfig/network-scripts/ifcfg-eth1
Adicionar ao ficheiro
ONBOOT=yes
NETWORK=192.168.100.0
IPADDR=192.168.100.254
NETMASK=255.255.255.0
BROADCAST=192.168.100.255
Activar a placa de rede eth2
ifup eth1
Instalação do editor Vim
yum install vim
Editar o ficheiro de configurações de comportamento da Rede
vim /etc/sysctl.conf
Alterar o valor do net.ipv4.ip_forward = 0 para net.ipv4.ip_forward = 1 desta forma irão ficar permanente o forward ipv4
Adicionar a linha ao ficheiro
net.ipv4.conf.default.forwarding=1
Activar o IP Forward entre placas de rede
echo 1 > /proc/sys/net/ipv4/ip_forward
Fazer restart as interfaces de rede para carregar as novas definições.
service network restart
-------------------------------- IP TABLES MASQUERADE -------------------------------
Configuração de iptables para fazer o MASQUERADE, desta forma todas as interfaces de redes tem como saída a interface eth0
service iptables stop
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
service iptables save
service iptables restart
--------------------------------------- DHCP SERVER ----------------------------------------
Vamos criar um scope para atribuição de ip’s automáticos para a rede 192.168.100.0.
Instalar o service dhcp
yum install dhcp
Editar o ficheiro de configuração do serviço
vim /etc/dhcp/dhcpd.conf
Adicionar ao ficheiro
#Novo scope
default-lease-time 600;
max-lease-time 7200;
authoritative;
#especificação da rede e mascara
subnet 192.168.100.0 netmask 255.255.255.0 {
# definição de rage de ips irá suportar até 100 maquinas
range dynamic-bootp 192.168.100.100 192.168.100.200;
#definição servidor de dns
option domain-name-servers 192.168.100.254;
# definição de broadcast
option broadcast-address 192.168.200.255;
# definição de gateway
option routers 192.168.200.254;
}
Colocar o dhcp no arranque
chkconfig dhcpd on
--------------------------------------- DNS SERVER ----------------------------------------
O servidor DNS irá ser configurado para resolver nomes do exterior (ex: google.pt) no caso de ele não conhecer alguns nomes irá consultar um Forward (servidor externo á rede).
Instalar o servidor de nomes Bind e as suas ferramentas
yum install bind bind-utils
Colocar o Bind no arranque.chkconfig named on
Editar o ficheiro que contem os ips dos servidores de nomes
vim /etc/resolv.conf
Editar/adicionar na primeira linha
nameserver 127.0.0.1 #será a própria maquia a resolver dns
Editar o ficheiro named.conf
vim /etc/named.conf
Adicionar / comentar as seguintes linhas.
options {
#abir a porta 53 para as seguinte redes
listen-on port 53 { 127.0.0.1;192.168.200.254;192.168.100.254; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
#permitir o acesso das seguintes redes
allow-query { localhost;192.168.200.0/24;192.168.100.0/24; };
#desactivar a recursividade para que o nosso servidor nao possa ser consultado do lado de fora
#recursion yes;
#permitir recusividade entres as redes internas
allow-recursion {127.0.0.1; 192.168.200.0/24; 192.168.100.0/24; };
#Desactivas as opções de dnssec
#dnssec-enable yes;
#dnssec-validation yes;
#dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
#Carregar os ip’s dos servidores de forward (podem ser adicionados varios terminando sempre com ‘;’
forwarders { 8.8.8.8; };
};
Fazer restart ao serviço de dns
service named restart
Fazer restart ao serviço de Rede
service network restart
------------------------------------------- NO IP -------------------------------------------
A ferramenta no-ip permite que quem não tenha IP fixo para aceder ao servidor do exterior, possa ficar com um DNS dinâmico que actualiza o ip sempre que ele é alterado.
Antes de ser instalado já deve possuir uma conta registada no site http://www.no-ip.com e um host criado do tipoaminhaorganização.no-ip.org.
Ir para a directoria src
cd /usr/src
Fazer download do source da aplicação cliente do no-ip
wget https://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
Descompactar o ficheiro
tar -zxvf noip-duc-linux.tar.gz
Entrar no directório criado após a extracção.
cd noip-2.1.9-1
Fazer um make para recompilar
#make
Fazer make install para criar a configuração e preencher os dados que são pedidos.
#make install
Dar permissões de execução ao script do no-ip
#chmod +x redhat.noip.sh
Copiar o script para a pasta de Daemon’s
#cp redhat.noip.sh /etc/init.d/noip2
Adicionar o dameon do no-ip ao arranque
#chkconfig --add noip2
Iniciar o dameon
# /etc/init.d/noip2 start
----------------------- IP TABLES REGRAS DE NAT -----------------------------
As regras abaixo descritas servem para encaminhar portas que venham do exterior para os vários servidores externos:
Encaminhamento da porta 10000 (webmin) para o servidor com o ip 192.168.200.223 (pc router)
#iptables -t nat -A PREROUTING -i eth0 -p udp -m udp --dport 10000:10100 -j DNAT --to-destination 192.168.200.223
Encaminhamento da porta 5060 (sip elaxtix) para o servidor com o ip 192.168.200.220 (servidor de voip)
# iptables -t nat -A PREROUTING -i eth0 -p udp -m udp --dport 5060 -j DNAT --to-destination 192.168.200.220
Encaminhamento da porta 3306 (mysql) para o servidor com o ip 192.168.200.240 (servidor de mysql)
#iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 3306 -j DNAT --to-destination 192.168.200.240
#LIMPEZA DE REGRAS
iptables -F
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F POSTROUTING -t nat
iptables -F PREROUTING -t nat
iptables -t nat -F
#STOP A FIREWALL
service iptables stop
#POLICAS
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#MASCARADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#PORTAS QUE PODEM ENTRAR NA MAQUINA FIREWALL
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT #SSH
iptables -A INPUT -p udp --dport 53 -j ACCEPT #DNS
iptables -A INPUT -p udp --dport 53 -j ACCEPT #DNS
iptables -A INPUT -j REJECT
#PORTAS QUE PODEM ATRAVESSAR A FIREWALL
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --dport 53 -j ACCEPT #DNS
iptables -A FORWARD -p udp --dport 53 -j ACCEPT #DNS
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT #HTTP
iptables -A FORWARD -p tcp --dport 443 -j ACCEPT #HTTPS
iptables -A FORWARD -p tcp --dport 3306 -j ACCEPT #MYSQL
iptables -A FORWARD -p tcp --dport 110 -j ACCEPT #POP
iptables -A FORWARD -p tcp --dport 25 -j ACCEPT #SMTP
iptables -A FORWARD -p tcp --dport 22 -j ACCEPT #SSH
iptables -A FORWARD -p tcp --dport 5050 -j ACCEPT #IPCAMCR
iptables -A FORWARD -p tcp --dport 9193 -j ACCEPT #ZONEMINDER
iptables -A FORWARD -p tcp --dport 21 -m state --state ESTABLISHED,NEW -j ACCEPT #FTP
iptables -A FORWARD -p udp --dport 137 -j ACCEPT #SAMBA NAME SERVER
iptables -A FORWARD -p udp --dport 138 -j ACCEPT #SAMBA DATAGRAMA
iptables -A FORWARD -p tcp --dport 139 -j ACCEPT #SAMBA ESTABLECIMENTO DE SESSAO
iptables -A FORWARD -p tcp --dport 902 -j ACCEPT #EXSI
iptables -A FORWARD -p tcp --dport 903 -j ACCEPT #ESXI
iptables -A FORWARD -p tcp --dport 445 -j ACCEPT #NETBIOS
iptables -A FORWARD -p tcp --dport 993 -j ACCEPT #IMAP GMAIL
iptables -A FORWARD -p tcp --dport 465 -j ACCEPT #SMTP GMAIL
iptables -A FORWARD -j REJECT
#PREROUTING ENCAMINHAMENTO DE PORTOS PARA OUTROS SERVIDORES
#SIP (UDP5060)
#iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 5060 -j DNAT --to-destination 192.168.200.220
#iptables -t nat -A PREROUTING -i eth0 -p udp -m udp --dport 5060 -j DNAT --to-destination 192.168.200.220
#IAX2/IAX
#iptables -t nat -A PREROUTING -i eth0 -p udp -m udp --dport 4569 -j DNAT --to-destination 192.168.200.220
#iptables -t nat -A PREROUTING -i eth0 -p udp -m udp --dport 5036 -j DNAT --to-destination 192.168.200.220
#RTP
#iptables -t nat -A PREROUTING -i eth0 -p udp -m udp --dport 10000:20000 -j DNAT --to-destination 192.168.200.220
#MGCP
#iptables -t nat -A PREROUTING -i eth0 -p udp -m udp --dport 2727 -j DNAT --to-destination 192.168.200.220
#MYSQL
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 3306 -j DNAT --to-destination 192.168.200.240
#ZONEMINDER
iptables -t nat -A PREROUTING -p tcp --dport 9193 -i eth0 -j DNAT --to 192.168.200.210:80
#GUARDAR AS DEFINIÇÕES E FAZER RESTART AO SERVIÇO
service iptables save
service iptables restart
#MODULOS
/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
/sbin/modprobe iptable_filter
/sbin/modprobe nf_conntrack
/sbin/modprobe nf_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe nf_conntrack_ftp
/sbin/modprobe ip_nat_ftp
----------------------------------------------------------------------------------
Espero ter ajudado :)
Alguma duvida contactem por email brunohorta82@gmail.com
Comentários
Enviar um comentário