Escolar Documentos
Profissional Documentos
Cultura Documentos
Tive a iniciativa de fazer este artigo por ver muitas postagens, no frum do Viva o
Linux, a respeito dos temas que sero abordados.
Outro fato, para ajudar estudantes de cursos tcnicos e superiores de informtica a
terem uma vivncia maior na utilizao do GNU/Linux em ambientes para servidores,
saindo apenas da teoria para a prtica propriamente dita.
A distribuio utilizada ser o Ubuntu Server. A explicao o fator do suporte e
compatibilidade grande quantidade de hardware como placas de rede e RAID. Esta
distribuio tem suporte de atualizaes at 2019, ou seja, mais um fator que contribui
para a sua utilizao.
Procurarei seguir os padres da LPIC para abordagem dos temas aqui propostos. Ento,
ser um complemento a mais para quem estiver se preparando para prestar este to
importante exame.
Cenrio
Imaginemos o seguinte cenrio, de acordo com a figura 1:
Um servidor;
Aplicar regras de segurana, j que esta mquina ser utilizada como Firewall;
Configurar os dois links de Internet de tal forma para que, quando um estiver
fora, o outro assuma.
IP do modem: 10.0.2.2
Mscara: 255.255.255.0
Rede: 10.0.2.0
Interface: eth0
Link 2 - Secundrio:
IP do modem: 192.168.1.1
Mscara: 255.255.255.0
Rede: 192.168.1.0
Interface: eth1
Rede local
Com essas informaes, j podemos configurar as interfaces de rede do servidor. A
mquina possui trs interfaces de rede, onde duas so para os links de Internet e a outra
para a rede local. O servidor precisa estar com os IPs configurados como fixo. Esta
configurao dever ser feita no arquivo /etc/network/interfaces.
# vi /etc/network/interfaces
E a configurao ficaria da seguinte forma:
# Link Primrio
auto eth0
iface eth0 inet static
address 10.0.2.254
netmask 255.255.255.0
network 10.0.2.0
broadcast 10.0.2.255
# Link Secundrio
auto eth1
iface eth1 inet static
address 192.168.1.254
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
# Rede Local
auto eth2
iface eth2 inet static
address 10.10.10.254
netmask 255.255.255.0
network 10.10.10.0
broadcast 10.10.10.255
Salve o arquivo e saia do mesmo.
Para que as interfaces de redes sejam configuradas, execute o comando:
# /etc/init.d/networking restart
Verifique se as trs placas subiram com as devidas configuraes.
# ifconfig
Se por algum motivo no estiver apresentando informaes dos IPs nas placas, ou se
elas no subiram, execute o comando abaixo que analisa o contedo do arquivo
/etc/network/interfaces e reconfigure as mesmas com as informaes contidas neste
arquivo:
# ifdown eth0
# ifup eth0
# ifdown eth1
# ifup eth1
# ifdown eth2
# ifup eth2
10.0.2.2 (Primrio)
192.168.1.1 (Secundrio)
E abaixo, est o script utilizado para fazer o FailOver dos dois links:
#!/bin/bash
#---------------------------#
# CONFIGURAO DOS GATEWAYS #
#---------------------------#
GW1=10.0.2.2
GW2=192.168.1.1
LOG=/root/rc.firewall.log
#------------------------------#
# INCIO DA FUNO DE FAILOVER #
#------------------------------#
# Aqui optei em por uma funo para deixar a estrutura do
# script mais organizada e legvel. de suma importncia
# que voc esteja familiarizado com o shell script
failover ()
{
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/root/failover.sh &
exit 0
Aps salvar o arquivo, reinicie a mquina e veja se o script estar rodando com o
comando:
# ps -auxf | grep failover
Pronto! Os links j esto configurados e liberando a Internet para a rede local. Vamos
agora configurar o servio de DHCP e, por ltimo, acrescentar mais algumas regras s
tabelas do IPtables.
Instalando o servio
Em distribuies derivadas do Debian o pacote a ser instalado o isc-dhcp-server:
# aptitude install isc-dhcp-server
Eu recomendo definir logo qual a placa que estaro servindo os IPs para o demais
micros na rede. Isso til para no haver problemas e conflitos no servio. Edite o
arquivo /etc/default/isc-dhcp-server:
# vi /etc/default/isc-dhcp-server
Na varivel "INTERFACE", digite o nome da interface de rede local. No meu caso
eth2 como visto abaixo:
# Defaults for isc-dhcp-server initscript
# sourced by /etc/init.d/isc-dhcp-server
# installed at /etc/default/isc-dhcp-server by the maintainer scripts
#
# This is a POSIX shell fragment
#
# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).
#DHCPD_CONF=/etc/dhcp/dhcpd.conf
# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).
#DHCPD_PID=/var/run/dhcpd.pid
Configurando um IP fixo
Em algumas situaes, pode ser necessrio que uma mquina ou dispositivo na rede,
tenha um IP fixo como uma impressora compartilhada em um computador, um
notebook de um gerente, entre outros.
Para resolver essa questo, basta inserir as informaes abaixo, aps a ltima chave
("}"):
host gerente {
hardware ethernet 00:80:C7:D2:E8:D3;
fixed-address 10.10.10.20;
}
O arquivo final, ficaria assim:
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 10.10.10.0 netmask 255.255.255.0 {
range 10.10.10.100 10.10.10.115;
option routers 10.10.10.254;
option domain-name-servers 8.8.8.8,208.67.220.220;
option broadcast-address 10.10.10.255;
}
host gerente {
hardware ethernet 00:80:C7:D2:E8:D3;
fixed-address 10.10.10.20;
}
Obs.: o IP da mquina do gerente, foi posto fora do range padro para diferenciar dos
demais. Apenas como forma de organizao.
Feche o arquivo e reinicie o servio de DHCP:
# service isc-dhcp-server restart
Para visualizar os IPs que j foram entregues s estaes de trabalho:
# cat /var/lib/dhcp/dhcpd.leases
Pronto! Finalizada mais uma etapa.
Neste momento, os clientes j esto recebendo IP automaticamente e navegando na
Internet sem problemas.
Configuraes de Firewall
# CONFIGURAO INICIAL
#------------------------------#
IPT=/sbin/iptables
#----------------------#
#
FUNES
#
#----------------------#
iniciar(){
#-----------------------------------------#
# Proteo contra ataques externos
#-----------------------------------------#
# Bloqueio de contedo
# Crie o arquivo blacklist e aponte para a sua exata localizao no loop
abaixo
# Dentro dessa lista voc vai por palavras como sexo, [*****], pornografia
entre outros
# Esta regra de iptables vai analisar o contedo do pacote e se achar uma
das strings que esto
# mencionadas
for i in `cat /root/blacklist`
do
$IPT -I FORWARD -m string --string "$i" --algo bm -j REJECT
done
# Bloquear torrent ( Precisa ter o mdulo xtables-addons-common
instalado )
$IPT
$IPT
$IPT
$IPT
$IPT
$IPT
$IPT
$IPT
$IPT
$IPT
$IPT
$IPT
$IPT
$IPT
#-------------------------------------------#
# Liberar portas TCP para a rede local
#-------------------------------------------#
do
$IPT -A FORWARD -d 0/0 -p udp --dport $i -j ACCEPT
$IPT -A FORWARD -d 0/0 -p udp --sport $i -j ACCEPT
done
# No arquivo urlbad, voc bota endereos especficos para bloquear como
www.youtube.com
# Evite por a palavra youtube no arquivo blacklist, pois, a o Google no vai
abrir por conta que a pgina
# deste contm referncia ao YouTube. Prefira utilizar a regra abaixo que
bloqueia qualquer urlbad para a rede local
# a minha rede local 10.10.10.0/24
for i in `cat /root/urlbad`
do
$IPT -I FORWARD -s $i -d 10.10.10.0/24 -j DROP
$IPT -I FORWARD -s 10.10.10.0/24 -d $i -j DROP
done
#-----------------------------------------------------------#
# Liberao de HOSTS para acessar FULL a internet
#-----------------------------------------------------------#
# Aqui voc pem os IPs que tero acesso FULL, os demais tero as
restries das regras anteriores. Basta apenas pr o nmero
# final do IP e ajustar a regra sua rede local
HOSTS_LIBERADOS="102 110"
for i in $HOSTS_LIBERADOS
do
$IPT -I FORWARD -d 10.10.10.$i -j ACCEPT
$IPT -I FORWARD -s 10.10.10.$i -j ACCEPT
done
}
parar(){
#------------------------------------------------#
# Apagando o contedo de todas as tabelas
#------------------------------------------------#
$IPT
$IPT
$IPT
$IPT
$IPT
$IPT
}
-F
-X
-t nat -F
-t nat -X
-t mangle -F
-t mangle -X
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parmetros start ou stop"
esac
Uma dica muito importante pr esse arquivo, rc.firewall.sh, para rodar
primeiro que o script do failover.sh, pois este ltimo realiza uma "limpeza"
nas regras do Netfilter (IPtables). Assim, os dois scripts iro funcionar
normalmente.
A execuo do script rc.firewall.sh da seguinte forma:
Iniciar o script:
# ./rc.firewall.sh start
Parar o script:
# ./rc.firewall.sh stop
Restartar o script:
# ./rc.firewall.sh restart
Veja como ficou o meu arquivo /etc/rc.local:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/root/rc.firewall.sh start
/root/failover.sh &
exit 0
Concluso